canvas-morning-check — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited canvas-morning-check (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.
Start the teaching day with a prioritised briefing: what needs grading, who hasn't submitted, which deadlines are coming, and which students may need a nudge — all from a single agent session.
Call list_courses to retrieve your currently active courses (use enrollment_type=teacher if needed to filter to courses where you are the instructor). Alternatively, call get_dashboard_cards for a quick overview of courses with pending items.
Note each course ID, name, and enrollment count.
For each active course, call list_submissions_awaiting_grading with the course ID. This tool is purpose-built for the grading queue: it returns every submission still needing a human grade — both workflow_state=submitted (never graded) and workflow_state=pending_review (Classic Quiz essays Canvas auto-graded but left for manual scoring) — sorted oldest-waiting first and grouped by assignment or quiz. It replaces the old manual list_assignments → per-assignment list_submissions fan-out.
Build a grading backlog table: course → assignment → ungraded count → oldest wait.
Pass only_pending_review=true for just the quiz-essay queue. Note: New Quizzes (Quizzes.Next) submissions may not surface here — grade those in the New Quizzes interface.Also call list_submission_comments_needing_attention for each course to catch submissions where the student left the most recent comment with no reply or grade yet. These are easy to miss and often time-sensitive.
For each course, call list_students_needing_attention with the course ID. This returns a factual report of students flagged by inactivity, missing or late submissions, and low current score — each finding lists the exact signals that fired and the thresholds used. Use it instead of manually cross-referencing enrollment lists against submissions.
For courses flagged with participation issues or declining grades, call get_course_analytics (with the course ID) to see aggregated participation and on-time submission rates.
For individual students flagged in Step 3, call get_student_analytics (with course ID and student user ID) to confirm declining trends before including them in the action list.
Call list_assignments for each active course and surface any assignments due within the next 48 hours that have not yet been published or that have zero submissions (a student reminder may be needed).
Organise output in this order:
Ask the instructor if they want to drill into any item or take action (messaging students, opening a submission for review).
Morning Check — [Instructor Name]
[Date] | Active courses: [n]
GRADING QUEUE
• [Course A] — [Assignment] [n] ungraded (due [date])
• [Course B] — [Assignment] [n] ungraded (due [date])
UPCOMING DEADLINES (next 48 h)
• [Course] — [Assignment] due [datetime] submissions so far: [n]/[total]
PARTICIPATION GAPS
• [Course] — [Student Name] — no submission in last 2 assignments
• [Course] — [Student Name] — grade trending down (was 82% → now 67%)
ANALYTICS FLAGS
• [Course] — on-time submission rate dropped to [n]% this week
All clear on remaining courses.canvas-at-risk-students for the outreach step.list_submissions_awaiting_grading and list_students_needing_attention do the pagination and cross-referencing server-side — you get a triage list back rather than raw submission pages. Still lead the briefing with the highest-count course to keep it concise.get_student_analytics may be slow on large courses; call it only for students already flagged in Step 3, not for every student.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.