canvas-outcome-tracker — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited canvas-outcome-tracker (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Surface learning outcome mastery data across a course — by outcome, by student, or by group — to support program assessment and accreditation reporting.
Ask the user which course to analyse. Accept a course name, code, or Canvas ID.
If unclear, call list_courses to let them select.
Call get_root_outcome_group to get the top-level outcome group for the course. Then call list_outcome_groups to retrieve all outcome groups in the course.
For each group, call list_outcome_group_outcomes to enumerate the individual outcomes. Build a flat list:
Ask the user if they want to focus on a specific outcome group or review all outcomes.
Offer three modes:
| Mode | Description |
|---|---|
| Class overview | Mastery distribution for all outcomes at once |
| Per-student rollup | Which outcomes each student has or hasn't mastered |
| Single outcome deep-dive | All students' results for one outcome |
For each outcome, call get_outcome_mastery_distribution with the course ID and outcome ID. This returns the count of students at each mastery level (exceeds / meets / approaching / not yet).
Summarise as a ranked table, lowest mastery first:
Outcome Mastery Distribution — [Course Name]
LOWEST MASTERY (action needed)
• "Critical Analysis" — 38% not yet mastered (19/50 students)
• "APA Citation" — 24% not yet mastered (12/50 students)
MEETING EXPECTATIONS
• "Thesis Construction" — 82% mastered
• "Research Synthesis" — 79% masteredCall get_outcome_rollups with the course ID. This returns each student's rolled-up mastery status per outcome.
Format as a matrix or highlight students with 3+ unmastered outcomes as high-priority advising targets.
Call get_outcome_results with the course ID and outcome ID to retrieve individual student result records — score, alignment source, and mastery status.
Call get_outcome_contributing_scores for the detailed score breakdown per student if the user wants to see which assignments contributed to mastery.
Based on the data, suggest:
Ask if the instructor wants to export the data or drill further into any outcome.
Outcome Tracker — [Course Name]
SUMMARY
Total outcomes tracked: 12
Students at or above mastery on all outcomes: 31/50 (62%)
Outcomes needing attention (< 70% mastery): 3
AT-RISK STUDENTS (3+ unmastered outcomes)
• Jordan Lee — 5 unmastered outcomes
• Sam Park — 4 unmastered outcomes
OUTCOME HEALTH SNAPSHOT
✗ Critical Analysis 38% mastered ← reteach recommended
✗ APA Citation 64% mastered
✗ Thesis Construction 68% mastered
✓ Research Synthesis 79% mastered
✓ Source Evaluation 84% masteredget_outcome_rollups and get_outcome_mastery_distribution — these map directly to standard program assessment formats.get_outcome_contributing_scores provides the most granular data and may be slow on large courses; use it selectively.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.