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 skills add jasp-nerd/courseforge --skill canvas-course-qcgit clone --depth 1 https://github.com/jasp-nerd/courseforgeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jasp-nerd/courseforge/canvas-course-qc)<a href="https://agentmods.dev/skills/jasp-nerd/courseforge/canvas-course-qc"><img src="https://agentmods.dev/badge/skills/jasp-nerd/courseforge/canvas-course-qc/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jasp-nerd/courseforge/canvas-course-qc"><img src="https://agentmods.dev/badge/skills/jasp-nerd/courseforge/canvas-course-qc.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What 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.1 | $0.00087 | $0.00447 |
| Opus 5 | $0.00044 | $0.00224 |
| Sonnet 5 | $0.00017 | $0.00089 |
| Haiku 4.5 | $0.00009 | $0.00045 |
Grade A, and why
canvas-course-qc 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 8d 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.
What it actually says
Canvas course QC
Run a readiness review of a Canvas course and deliver a prioritized, actionable report.
With courseforge-mcp connected
- Call
check_course_setupwith thecourse_id— it returns structured findings:- assignments without due dates
- graded assignments worth 0 points
- unpublished modules / empty modules
- quizzes with no questions
- assignment-group weights that don't sum to 100
- Deepen where it warns:
list_modules+list_module_itemsto spot ordering problems (e.g. an assignment due before its content module),get_courseto check the syllabus exists.
Manual review dimensions (beyond the automated checks)
- Navigation: is the home page (
default_view) sensible? Does module 1 orient students (start-here page, syllabus link)? - Pacing: due dates spaced evenly? Nothing due before its module unlocks?
- Grading story: do the group weights match what the syllabus promises?
- Accessibility basics: pages use real headings (h2/h3, not bold text), links have descriptive text (not "click here"), images referenced in HTML have alt attributes, color contrast of any custom banner ≥ 4.5:1.
- Student view: remind the teacher to use Canvas's Student View before publishing.
Report format
Give the teacher: ✅ what's ready, ⚠️ warnings with the exact item names and one-line fixes, and a short "do these 3 things before publishing" list. Offer to fix findings directly (via the structure tools or by editing the cartridge with the imscc-editor skill) — but only change things after they agree.
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.
- 8d ago First seen · 31 lines · 87 tokens per session scan A 16013ac9f492
canvas-course-qc is a skill published in the GitHub repository jasp-nerd/courseforge (2 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 87 tokens to every session and 447 once invoked, about $0.0004 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-cli
Manage Canvas LMS (https://www.instructure.com/canvas) from the terminal with the canvas CLI — courses, assignments, submissions and grading, modules, pages, quizzes, discussions, announcements, users, enrollments, sections, files, and analytics. Use this whenever the user wants to list or create assignments, grade…
canvas-admin-roster
Admin skill for walking the Canvas account hierarchy: list accounts and sub-accounts, see courses and users under each, look up which canned reports are available, and enroll or remove users from a specific course — one action at a time. Trigger phrases include "admin roster", "list accounts", "sub accounts", "account…
canvas-peer-review-tracker
Educator skill for tracking peer-review assignments in Canvas. Lists who has been asked to review whom, who has submitted versus who is still pending, and lets you assign new reviewers or send reminder messages — one student at a time. Trigger phrases include "peer reviews", "who hasn't done their peer review", "peer…
canvas-accessibility-sweep
Educator and learning-designer skill for a pre-launch accessibility and broken-link sweep of a Canvas course. Walks the structural accessibility audit and the link audit over a course's pages, assignments, syllabus, announcements, and (optionally) quizzes, then produces a prioritised remediation list you can work…
canvas-course-pulse
Educator skill for tracking week-over-week course health trends in Canvas. Surfaces assignment performance trends, login activity, engagement gaps, and struggling students across a longer time horizon than a daily check. Trigger phrases include "course pulse", "course health", "course trends", "week-over-week…
canvas-discussion-facilitator
Educator skill for browsing, reading, replying to, and creating Canvas discussion topics. Surfaces active threads, unread entries, and announcement activity — then lets you post replies or create new topics without leaving your agent session. Trigger phrases include "discussion board", "course discussions", "reply to…