canvas-course-pulse — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited canvas-course-pulse (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.
Educator skill for a longer-horizon view of course health: assignment performance trends, login patterns, engagement gaps, and student activity — across a week or more of data.
Use this skill for trend analysis over days or weeks. For today's immediate check (submission rates, upcoming deadlines, grade distribution this morning), use `canvas-morning-check` instead.
Ask the user which course to analyse. Accept a course name, course code, or Canvas ID.
If unclear, call list_course_enrollments with the course ID to confirm the course exists and has enrolled students.
Offer three pulse views or ask the user what they want to know:
| View | What it answers |
|---|---|
| Assignment trends | Which assignments have low completion or low average scores? How has performance trended? |
| Engagement & login activity | Who is logging in regularly? Who has gone quiet? What's happening in the activity stream? |
| Per-student deep-dive | How is a specific student tracking across assignments, grades, and participation? |
You can combine views in a single report.
get_course_analytics with the course ID. This returns aggregate assignment-level data: submission counts, score averages, and on-time vs late rates per assignment.list_assignments with the course ID to get assignment titles, due dates, and point values (for context the analytics data may not include).Cross-reference to build a trend table, ordering by due date:
Assignment Trends — [Course Name] (last 4 weeks)
Assignment Submitted Avg Score On Time
"Week 1 Reflection" 47/50 (94%) 88% 92%
"Reading Quiz 2" 46/50 (92%) 81% 89%
"Group Project Draft" 44/50 (88%) 74% 71% ← slipping
"Week 3 Reflection" 39/50 (78%) 68% 58% ← needs attention
"Midterm Essay" 41/50 (82%) 72% 63%Flag assignments where submission rate has dropped more than 10 percentage points from the course average, or where the on-time rate is below 65%.
get_course_activity_stream with the course ID. This returns the recent activity feed: discussion posts, assignment submissions, grade postings, and other course events.list_course_enrollments with the course ID and type=StudentEnrollment to get the enrolled student list with last-activity timestamps.Identify students who have not had any course activity in the past 7 days. For courses with 50+ students, narrow to the bottom quartile by last-activity date rather than listing all students.
Present a summary:
Engagement Pulse — [Course Name]
RECENT ACTIVITY (last 7 days)
Total events: 312
Discussion posts: 87
Assignment submissions: 134
Grade views: 58
Other: 33
ACTIVE STUDENTS: 43/50 this week
DISENGAGED STUDENTS (no activity in 7+ days)
• Student A — last seen 12 days ago
• Student B — last seen 9 days ago
• Student C — last seen 8 days ago
• … (3 more — ask to see full list)Ask the instructor if they want to reach out to disengaged students or investigate further.
get_student_analytics with the course ID and the student's user ID. This returns the student's per-assignment scores, submission behaviour, and participation data.Present a compact per-student pulse:
Student Pulse — Student A — [Course Name]
Assignments submitted: 7/9 (78%)
Current grade: 71%
Trend: down from 81% four weeks ago
SUBMISSION HISTORY
• "Week 1 Reflection" ✓ submitted on time 88%
• "Reading Quiz 2" ✓ submitted on time 76%
• "Group Project Draft" ✓ submitted 2 days late 62%
• "Week 3 Reflection" ✗ not submitted —
• "Midterm Essay" ✓ submitted on time 71%Flag if the student's grade is trending downward (more than 8 points over the past 3 assignments) or if they have 2+ missing submissions.
After presenting the requested views, offer concrete next steps:
canvas-at-risk-students for full outreach workflow.)Course Pulse — [Course Name] (analysed [date])
ASSIGNMENT TRENDS
Submission rate this week: 82% (↓ from 91% two weeks ago)
Average score trend: 74% (↓ from 81%)
Assignments needing attention: 2
ENGAGEMENT
Active students this week: 43/50
Disengaged (7+ day gap): 7 students
SUGGESTED ACTIONS
• Review "Week 3 Reflection" submissions — lowest completion (78%) and scores (68%)
• Check in with 7 disengaged students — 3 are also below 70% grade
• Student A has missed 2 assignments and grade is trending down 10 ptscanvas-morning-check is a same-day health check (today's submission rates, this morning's grade distribution). This skill analyses trends over days or weeks — use it for mid-course adjustments, not for daily ops.get_course_analytics returns aggregate data per assignment, not per-student scores. For individual student trajectories, use get_student_analytics (Step 3C).get_course_activity_stream may return a large event list. Summarise by event type and highlight disengagement signals rather than listing all events.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.