scheduled-peer-review

Configures a GitHub Actions scheduler for deterministic Canvas group peer-review pairing.

4|4|Updated Apr 15, 2026
One-click install
npx skills add https://github.com/chaz-clark/canvas-toolbox --skill scheduled-peer-review-chaz-clark
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: scheduled-peer-review
Source: https://github.com/chaz-clark/canvas-toolbox/tree/main/.agents/skills/scheduled-peer-review
Command: npx skills add https://github.com/chaz-clark/canvas-toolbox --skill scheduled-peer-review-chaz-clark

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Instructors running Canvas peer reviews need pairing to happen automatically at a locked deadline without manual runs, while keeping student data private and credentials out of the course repository. ## Core Features & Use Cases - Scheduled pairing workflow: Installs a course-owned GitHub Actions workflow that polls on a cron cadence and gates execution to a configured local-time window using zoneinfo, so DST changes require no edits. - Dry-run safety by default: The scheduler runs as a no-op outside the configured window or before the lock time, and only writes pairings after explicit validation against a Canvas sandbox. - Secret-safe setup: A helper script uploads only CANVAS_API_TOKEN and CANVAS_BASE_URL as repository secrets and the course ID as a variable, never printing secret values. - Use Case: An instructor configures a peer-review schedule for a group assignment, validates the workflow manually with apply unchecked, then enables the schedule so pairings are assigned automatically after the submission lock time. ## Quick Start Ask the agent to set up the scheduled peer-review workflow for your course repository and walk through validating it in dry-run mode against a Canvas sandbox.

Frequently Asked Questions about scheduled-peer-review

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I schedule automatic Canvas peer review assignments?▼

Copy the scaffold workflow to .github/workflows/peer-review-sync.yml and the schedule config to .canvas/peer-review-schedule.yml, then run the github_actions_setup.py helper to upload secrets. The workflow polls on a cron cadence and delegates pairing to peer_review_assign.py.

How do I store Canvas API tokens for GitHub Actions?▼

Use the github_actions_setup.py helper, which reads only CANVAS_API_TOKEN, CANVAS_BASE_URL, and CANVAS_COURSE_ID from .env and writes them as repository secrets and a variable. It never prints secret values and runs as a dry run without --apply --yes.

Does the peer review scheduler handle daylight saving time changes?▼

Yes. The local lock time is evaluated with Python zoneinfo using an IANA timezone like America/Denver, while the GitHub cron is only a polling cadence. DST changes do not require editing the workflow.

Can the scheduled peer review workflow run in dry-run mode?▼

Yes, the schedule is dry-run by default and runs outside the configured window or before the lock time are no-ops. You should run the workflow manually with apply unchecked and validate against a Canvas sandbox before enabling production.

Does the scheduler expose student names or submission data?▼

No. The scheduler prints counts and status only; it does not print student names or submission contents. Pairing writes remain idempotent and read-back verified through peer_review_assign.py.