Claude
Skills
Sign in
Back

canvas-peer-review-manager

Included with Lifetime
$97 forever

Educator peer review management for Canvas LMS. Tracks completion rates, analyzes comment quality, flags problematic reviews, sends targeted reminders, and generates instructor-ready reports. Trigger phrases include "peer review status", "how are peer reviews going", "who hasn't reviewed", "review quality", or any peer review follow-up task.

Productivity

What this skill does


# Canvas Peer Review Manager

A complete peer review management workflow for educators using Canvas LMS. Monitor completion, analyze quality, identify students who need follow-up, send reminders, and export data -- all through MCP tool calls against the Canvas API.

## Prerequisites

- **Canvas MCP server** must be running and connected to the agent's MCP client (e.g., Claude Code, Cursor, Codex, OpenCode).
- The authenticated user must have an **educator or instructor role** in the target Canvas course.
- The assignment must have **peer reviews enabled** in Canvas (either manual or automatic assignment).
- **FERPA compliance**: Set `ENABLE_DATA_ANONYMIZATION=true` in the Canvas MCP server environment to anonymize student names. When enabled, names render as `Student_xxxxxxxx` hashes while preserving functional user IDs for messaging.

## Steps

### 1. Identify the Assignment

Ask the user which course and assignment to manage peer reviews for. Accept a course code, Canvas ID, or course name, plus an assignment name or ID.

If the user does not specify, prompt:

> Which course and assignment would you like to check peer reviews for?

Use `list_courses` and `list_assignments` to help the user find the right identifiers.

### 2. Check Peer Review Completion

Call `get_peer_review_completion_analytics` with the course identifier and assignment ID. This returns:

- Overall completion rate (percentage)
- Number of students with all reviews complete, partial, and none complete
- Per-student breakdown showing completed vs. assigned reviews

**Key data points to surface:**

| Metric | What It Tells You |
|--------|-------------------|
| Completion rate | Overall health of the peer review cycle |
| "None complete" count | Students who haven't started -- highest priority for reminders |
| "Partial complete" count | Students who started but didn't finish |
| Per-student breakdown | Exactly who needs follow-up |

### 3. Review the Assignment Mapping

If the user wants to understand who is reviewing whom, call `get_peer_review_assignments` with:

- `include_names=true` for human-readable output
- `include_submission_details=true` for submission context

This shows the full reviewer-to-reviewee mapping with completion status.

### 4. Extract and Read Comments

Call `get_peer_review_comments` to retrieve actual comment text. Parameters:

- `include_reviewer_info=true` -- who wrote the comment
- `include_reviewee_info=true` -- who received the comment
- `anonymize_students=true` -- recommended when sharing results or working with sensitive data

This reveals what students actually wrote in their reviews.

### 5. Analyze Comment Quality

Call `analyze_peer_review_quality` to generate quality metrics across all reviews. The analysis includes:

- **Average quality score** (1-5 scale)
- **Word count statistics** (mean, median, range)
- **Constructiveness analysis** (constructive feedback vs. generic comments vs. specific suggestions)
- **Sentiment distribution** (positive, neutral, negative)
- **Flagged reviews** that fall below quality thresholds

Optionally pass `analysis_criteria` as a JSON string to customize what counts as high/low quality.

### 6. Flag Problematic Reviews

Call `identify_problematic_peer_reviews` to automatically flag reviews needing instructor attention. Flagging criteria include:

- Very short or empty comments
- Generic responses (e.g., "looks good", "nice work")
- Lack of constructive feedback
- Potential copy-paste or identical reviews

Pass custom `criteria` as a JSON string to override default thresholds.

### 7. Get the Follow-up List

Call `get_peer_review_followup_list` to get a prioritized list of students requiring action:

- `priority_filter="urgent"` -- students with zero reviews completed
- `priority_filter="medium"` -- students with partial completion
- `priority_filter="all"` -- everyone who needs follow-up
- `days_threshold=3` -- adjusts urgency calculation based on days since assignment

### 8. Send Reminders

**Always use a dry run or review step before sending messages.**

For targeted reminders, call `send_peer_review_reminders` with:

- `recipient_ids` -- list of Canvas user IDs from the analytics results
- `custom_message` -- optional custom text (a default template is used if omitted)
- `subject_prefix` -- defaults to "Peer Review Reminder"

Example flow:

1. Get incomplete reviewers from step 2
2. Extract their user IDs
3. Review the recipient list with the user
4. Send reminders after confirmation

For a fully automated pipeline, call `send_peer_review_followup_campaign` with just the course identifier and assignment ID. This tool:

1. Runs completion analytics automatically
2. Segments students into "urgent" (none complete) and "partial" groups
3. Sends appropriately toned reminders to each group
4. Returns combined analytics and messaging results

**Warning:** The campaign tool sends real messages. Always confirm with the instructor before running it.

### 9. Export Data

Call `extract_peer_review_dataset` to export all peer review data for external analysis:

- `output_format="csv"` or `output_format="json"`
- `include_analytics=true` -- appends quality metrics to the export
- `anonymize_data=true` -- recommended for sharing or archival
- `save_locally=true` -- saves to a local file; set to `false` to return data inline

### 10. Generate Instructor Reports

Call `generate_peer_review_feedback_report` for a formatted, shareable report:

- `report_type="comprehensive"` -- full analysis with samples of low-quality reviews
- `report_type="summary"` -- executive overview only
- `report_type="individual"` -- per-student breakdown
- `include_student_names=false` -- recommended for FERPA compliance

For a completion-focused report (rather than quality-focused), use `generate_peer_review_report` with options for executive summary, student details, action items, and timeline analysis. This report can be saved to a file with `save_to_file=true`.

## Use Cases

**"How are peer reviews going?"**
Run steps 1-2. Present completion rate, highlight any concerning patterns (e.g., "Only 60% complete, 8 students haven't started").

**"Who hasn't done their reviews?"**
Run steps 1-2, then step 7 with `priority_filter="urgent"`. List the students who need follow-up.

**"Are the reviews any good?"**
Run steps 4-6. Present quality scores, flag generic or low-effort reviews, and surface recommendations.

**"Send reminders to stragglers"**
Run steps 1-2 to identify incomplete reviewers, then step 8. Always confirm the recipient list before sending.

**"Give me a full report"**
Run steps 2, 5, 6, and 10. Combine completion analytics with quality analysis into a comprehensive instructor report.

**"Export everything for my records"**
Run step 9 with `output_format="csv"` and `anonymize_data=true` for a FERPA-safe dataset.

## MCP Tools Used

| Tool | Purpose |
|------|---------|
| `list_courses` | Discover active courses |
| `list_assignments` | Find assignments with peer reviews enabled |
| `get_peer_review_assignments` | Full reviewer-to-reviewee mapping |
| `get_peer_review_completion_analytics` | Completion rates and per-student breakdown |
| `get_peer_review_comments` | Extract actual comment text |
| `analyze_peer_review_quality` | Quality metrics (scores, word counts, constructiveness) |
| `identify_problematic_peer_reviews` | Flag low-quality or empty reviews |
| `get_peer_review_followup_list` | Prioritized list of students needing follow-up |
| `send_peer_review_reminders` | Send targeted reminder messages |
| `send_peer_review_followup_campaign` | Automated analytics-to-messaging pipeline |
| `extract_peer_review_dataset` | Export data as CSV or JSON |
| `generate_peer_review_feedback_report` | Quality-focused instructor report |
| `generate_peer_review_report` | Completion-focused instructor report |

## Example

**User:** "How are peer reviews going for Assignment 3 in BADM 350?"

**Agent:** Calls `get_peer_review_completion_anal

Related in Productivity