Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/jasp-nerd/courseforge/imscc-editornpx skills add jasp-nerd/courseforge --skill imscc-editorgit clone --depth 1 https://github.com/jasp-nerd/courseforgeWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00112 | $0.00739 |
| Opus 5 | $0.00056 | $0.00369 |
| Sonnet 5 | $0.00022 | $0.00148 |
| Haiku 4.5 | $0.00011 | $0.00074 |
Grade A, and why
imscc-editor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 54 lines — stays where its author put it; the contents beside it link to each section on GitHub.
IMSCC editor
A .imscc is a ZIP with imsmanifest.xml plus Canvas extension XMLs. The @courseforge/imscc library understands both; the full format anatomy is in references/imscc-format.md — consult it whenever a field is ambiguous.
Inspect
npx -y @courseforge/imscc inspect course.imscc # structure as JSON
npx -y @courseforge/imscc validate course.imscc # cross-reference invariants (the #1 import-failure cause)
Modify (export → modify → re-import loop)
Use the library in a small Node script (pnpm add @courseforge/imscc or run inside the CourseForge repo):
import { readFileSync, writeFileSync } from 'node:fs';
import { CartridgeEditor, validateCartridge } from '@courseforge/imscc';
const ed = CartridgeEditor.fromBytes(readFileSync('export.imscc'));
console.log(ed.listModules());
ed.addItem('Week 1', { type: 'page', title: 'Office hours', body: '<p>Tue 14:00</p>' });
ed.addModule('Week 9 — Review');
ed.removeItem('Week 2', 'Old quiz');
const bytes = ed.toBytes();
console.log(validateCartridge(bytes)); // must have zero errors before shipping
writeFileSync('export-modified.imscc', bytes);
Item inputs are CourseSpec module items (see the canvas-course-builder skill's course-spec reference): page, assignment, quiz (+questions), discussion, link, file, header.
Key rules the editor enforces for you — don't work around them by hand-editing XML:
- identifiers stay stable across edits, so Canvas updates instead of duplicating on re-import
- manifest organization ↔
module_meta.xmlstay consistent - removing an item removes its resources and files only when nothing else references them
Repair a failing import
validate— every error names the dangling reference or missing file.- Typical causes: an
identifierrefpointing at a deleted resource, a<file href>missing from the zip,imsmanifest.xmlnot at the zip root, ids starting with a digit. - Fix via
CartridgeEditor(or parse withreadCartridge, adjust, re-serialize), re-validate, then re-import. - If Canvas imported but content is missing: check the migration issues (MCP tool
list_migration_issues) and whether the cartridge lacked the Canvas flag file (course_settings/canvas_export.txt) — without it Canvas ignores all module/assignment settings.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 54 lines · 112 tokens per session scan A 72cbd561b1cb
imscc-editor is a skill published in the GitHub repository jasp-nerd/courseforge (2 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 112 tokens to every session and 739 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
canvas-reading-annotation
Use for an approved short academic-reading assignment routed by canvas-execute, including in-place PDF annotation, answer blanks, video worksheets, or short reflection drafts. Verify sources and artifacts locally and stop without submitting.
html-ppt-course-module
A first-30-days onboarding module for new hospitality hires — the behaviors, the practice, the checks, and the manager follow-up. Built as a decision-grade professional training deck for new hires, managers.
pptx-import
会话里有上传的 .pptx,且用户要把这份幻灯片填进一节已建的课(先 createstage 建课,再 importpptx 把页面追加进这节课堂,保留原版排版;课堂标题以 createstage 为准,PPT 不接管)。随后逐页检查(有 renderscenepreview 就渲染看)并修 bad case,理解整课之后才写旁白/spotlight,最后 TTS。仅在用户要求时插入 quiz 或 interactive。不要重新规划整课。.
create-lecture
Create a new Beamer lecture .tex from source papers and materials, with notation consistency checks and the project's preamble wired in. Use when user says "create a lecture on X", "new lecture from these papers", "start a deck on topic Y", "scaffold a new Beamer file", "build me a lecture from these PDFs". Scaffolds…
read-book
When you want to read and extract structured notes from a book — PDF, EPUB, MOBI, markdown, .txt, pasted text, or URL to a public-domain work. Reads in chunks (by chapter when a TOC exists, by 50-page blocks otherwise), extracts per-chapter TL;DR + key concepts + quotes + action items + frameworks, and offers to…
training-report
Produce a professional training/workshop report as a .docx file. Use this skill whenever the user mentions "training report", "workshop report", "compte rendu", "compte rendu de formation", "formation report", "debriefing a workshop", "write up a training session", "résumé de formation", or any request to document a…