chaz-clark/canvas-toolbox
Canvas LMS course-management toolkit: mirror, edit, audit, and push courses through sanctioned tools with FERPA and Canvas-write safety gates.
Use for per-student interventions in Canvas — SAS/disability accommodations, quiz time extensions, late-work grace, assignment/date exemptions, group-override recalculation, and submitting on a student's behalf. All are keyed by an opaque --deid-code or --user-id the INSTRUCTOR supplies (you never look up the name). Load this when the task is "give student X extra time / late grace / an override / an exemption", NOT grading and NOT course content.
Use for READ-MOSTLY analysis of a Canvas course's design quality — one-command health checks (course_audit), post-push structural checks (course_quality_check), the 8-framework instructional-design audit stack, rubric quality/coverage, and blueprint exception reports. Load this when the task is "check / audit / report on" a course's structure or instructional design. (For Title IV engagement / unofficial-withdrawal compliance, use the title-iv skill instead.)
Use for building and syncing Canvas course CONTENT — mirroring a course to/from local files (canvas_sync pull/push/build), master→blueprint→section propagation (blueprint_sync), module prerequisites/completion settings (module_settings_sync), multi-course orchestration, and offline (.imscc) editing. Load this when the task is "make Canvas match the local source" or "propagate content across sections" — NOT grading and NOT read-only auditing.
Use for the de-identification / re-identification WORKFLOW — building the course-wide de-id master, de-identifying submissions or a gradebook (docx/pdf/xlsx/jupyter/databricks/text/comments) before anything reaches the LLM, re-identifying keyed results back to students, and scanning for name leaks. Load this when preparing student artifacts for AI processing or turning keyed results back into a named report. The FERPA *discipline* (never read Zone-2 files) is constitutional and always applies; this skill is the *how* of the de-id machinery.
Use for ANY grading work in a Canvas course — fetching submissions, running consensus grading, reviewing feedback, pushing grades/comments to Canvas (grader_push), the "your grade" standing column (grader_standing), de-identifying submissions before the LLM, or re-identifying results. Carries the HG-5 human-in-the-loop protocol, the push gates, the disclosure-tag menu, and the FERPA de-id/re-id flow. Load this before touching any grade that could reach a student.
Use to log, prioritize, move, or review COURSE IMPROVEMENTS — the local kanban backlog in the course's IMPROVEMENTS.md. Load whenever an audit surfaces findings, the user notes something to fix / try / revisit, a handoff lands action items, or you're asked "what's on the board / what's next / show the backlog / log this". Each improvement is a card that moves Backlog → Ready → In Progress → In Review → Done. This is CONTINUOUS IMPROVEMENT (kaizen) for the course — NOT continuous integration / CI pipelines / GitHub Actions.
Use for federal Title IV compliance — the last-date-of-academic-engagement / unofficial-withdrawal audit (course_engagement_audit), the cached Title IV snapshot (update_title_iv_snapshot), and AI-engagement classification. Load this when the task mentions Title IV, R2T4, unofficial withdrawal (UW/UF), last date of attendance/engagement, or "who stopped participating." This is a compliance domain, distinct from general course auditing — the classifications carry federal-aid consequences.
Use whenever you draft ANY student-facing text — grading comments, feedback, the "your grade" note, an announcement, an email. Load and apply the instructor's established VOICING PROFILE (their feedback tone/voice) so every comment sounds like them, not like a fresh AI voice each time. Never invent a new voice when a profile exists. Load this together with the grading skill before writing feedback.