From cc-course
Review student submissions with detailed feedback, PDF reports, and parallel agent execution. Usage: /cc-course:review <path-to-zip-or-directory>
How this skill is triggered — by the user, by Claude, or both
Slash command
/cc-course:reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Analyze student homework submissions and produce detailed, critical reviews with scoring across 5 dimensions. Each reviewer agent writes reports directly to a `reviews/` folder — instructor report and student feedback as both markdown and PDF.
Analyze student homework submissions and produce detailed, critical reviews with scoring across 5 dimensions. Each reviewer agent writes reports directly to a reviews/ folder — instructor report and student feedback as both markdown and PDF.
$ARGUMENTS can be:
seminar*.zip files in the directory{cwd} for seminar*.zip filessubmissions/ subdirectory and scan thatIf the path is relative, resolve it against {cwd}. Verify the path exists before proceeding.
When $ARGUMENTS points to a single zip file.
SUBMISSIONS_DIR = parent directory of the zip
REVIEWS_DIR = SUBMISSIONS_DIR/reviews
STUDENT_DIR = REVIEWS_DIR/{zip-basename-without-ext}
REVIEW_DIR="/tmp/cc-review-$(date +%s)"
mkdir -p "$REVIEW_DIR"
unzip -o "{path}" -d "$REVIEW_DIR"
manifest.json — extract module key and student infosubagent_type: "general-purpose"REVIEW_DIR, STUDENT_DIR, module key, and plugin rootSTUDENT_DIRReview complete. Reports saved to:
Instructor: {STUDENT_DIR}/instructor-report.pdf
Student: {STUDENT_DIR}/student-feedback.pdf
rm -rf "$REVIEW_DIR"
When $ARGUMENTS points to a directory containing seminar*.zip files.
Glob for seminar*.zip files in the directory
If no zips found:
No seminar*.zip files found in {directory}.
Show batch preview:
Found {N} submissions to review:
- seminar1-jane-doe-2026-02-10.zip
- seminar1-john-smith-2026-02-10.zip
- ...
Launching {N} reviewer agents in parallel...
For each zip, compute:
REVIEW_DIR — unique temp directory for unpackingSTUDENT_DIR — output directory under {directory}/reviews/{zip-basename-without-ext}/Unzip all — each to its own temporary directory
Quick-read each manifest.json — extract module key for each
Launch ALL reviewer agents in parallel — use the Agent tool with multiple calls in a single message:
REVIEW_DIR, STUDENT_DIR, and module keyAfter all agents complete — collect REVIEW_RESULT|... lines from each agent's output
Write batch summary to {directory}/reviews/batch-summary.md:
# Batch Review Summary
**Date**: {current date}
**Submissions reviewed**: {N}
## Results
| Student | Module | Grade | Score | Flags |
|---------|--------|-------|-------|-------|
| {from REVIEW_RESULT lines} |
## Distribution
| Grade | Count |
|-------|-------|
| Excellent | {N} |
| Good | {N} |
| Satisfactory | {N} |
| Needs Improvement | {N} |
| Incomplete | {N} |
## Flagged Submissions
{List submissions with CRITICAL or WARNING flags}
Display batch summary inline and note:
Individual reports saved to: {directory}/reviews/
Batch summary: {directory}/reviews/batch-summary.md
{N} submissions reviewed. {N} flagged for attention.
Cleanup all temporary directories:
rm -rf /tmp/cc-review-*
Every reviewer agent (single or batch) receives this prompt. The agent is fully responsible for creating the output folder, writing reports, and generating PDFs.
You are a homework reviewer for the Claude Code developer course.
READ THESE FILES FIRST (in this order):
1. {plugin_root}/agents/reviewer.md — your persona, behavioral guidelines, and report formats
2. {plugin_root}/skills/review.md — the complete review methodology (Phases 1-6: rubric, scoring, feedback, persistence)
3. {plugin_root}/lesson-modules/{module-key}/SCRIPT.md — the module's teaching script (for dynamic rubric extraction)
SUBMISSION TO REVIEW:
- Unpacked at: {REVIEW_DIR}
- Original zip: {zip_filename}
- Contains: manifest.json, student-work/, progress/, sessions/
OUTPUT DIRECTORY: {STUDENT_DIR}
You MUST write all reports to this directory. Create it if it doesn't exist.
YOUR TASK:
1. Read manifest.json and progress/progress.json from {REVIEW_DIR}
2. Follow the review pipeline in skills/review.md (Phases 1-5)
3. Use cclogviewer MCP tools to analyze session data (MANDATORY — see agents/reviewer.md)
4. Score all 5 dimensions, detect flags, generate both reports
5. Write reports to {STUDENT_DIR} (Phase 6 of skills/review.md):
a. Create directory: mkdir -p {STUDENT_DIR}
b. Write {STUDENT_DIR}/instructor-report.md (full review with all flags and MCP evidence)
c. Write {STUDENT_DIR}/student-feedback.md (constructive student-facing version — NO fraud flags, NO raw MCP data)
d. Generate PDFs if pandoc+weasyprint are available:
pandoc {STUDENT_DIR}/instructor-report.md -o {STUDENT_DIR}/instructor-report.pdf --pdf-engine=weasyprint
pandoc {STUDENT_DIR}/student-feedback.md -o {STUDENT_DIR}/student-feedback.pdf --pdf-engine=weasyprint
e. If pandoc/weasyprint unavailable, skip PDFs and note in output
6. End your output with: REVIEW_RESULT|{name}|{module}|{grade}|{score}|{flags}
File not found: {path}
Provide the path to a seminar submission zip or a directory containing submissions.
"{path}" is not a valid zip archive. Was it created with /cc-course:submit?
This zip does not contain manifest.json.
It may not be a valid course submission. Was it created with /cc-course:submit?
No SCRIPT.md found for module "{module-key}".
Expected at: lesson-modules/{module-key}/SCRIPT.md
Cannot build review rubric without the module script.
cclogviewer MCP is not available. Session analysis will use data from the zip's sessions/ directory instead.
If the zip also has no session data:
No session data available. The Process dimension will be scored as N/A and excluded from the overall grade.
No seminar*.zip files found in {directory}.
Ensure submission zips are in this directory (created by /cc-course:submit).
npx claudepluginhub seleznovivan/claude-code-education --plugin cc-courseGrades skill test outputs against expectations using transcripts and files, extracts implicit claims, and provides evaluation feedback.
Reviews evaluation results for Claude Code skills. Presents judge scores and skill outputs for human feedback, then proposes SKILL.md improvements based on user input.
Audits course designs across 5 adversarial dimensions (alignment, evidence, cognitive load, persona simulation, prerequisite chains) and produces a confidence score. Runs in a clean-context sub-agent for unbiased synthesis.