Give actionable, specific feedback on how well a student applied and contextualized a Minerva rubric (HC / LO) in an assignment. Reads from local PDF or Google Drive, evaluates every tagged HC across three dimensions using parallel discipline agents.
rubric-feedback
rubric-feedback audience
rubric-feedback audience,thesis
rubric-feedback https://forum.minerva.edu/.../assessments/123
rubric-feedback https://docs.google.com/document/d/<id>/edit
rubric-feedback https://docs.google.com/document/d/<id>/edit audience
rubric-feedback "My Assignment Title"
rubric-feedback "My Assignment Title" audience,thesis
Parse arguments as follows:
- Token matching
https://docs.google.com/document/d/...→ Google Docs URL - Token matching
https://forum.minerva.edu/...→ past-assignment URL to scrape - Token in double quotes → Drive title search
- All other tokens → rubric filter
- Empty → local PDF, evaluate every HC tag found
Classify each token:
https://docs.google.com/document/d/...→ setdrive_doc_urlhttps://forum.minerva.edu/...→ add tominerva_url_list- Double-quoted string → set
drive_search_title - Otherwise → add to
rubric_filter
If minerva_url_list is non-empty:
python3 scripts/scrape-feedback.py URL1 URL2 ...Browser opens for Google SSO login. Saves *-feedback.md per URL into references/past-assignments/. Stop on error.
Path A — Google Docs URL:
- Extract file ID from
/d/<id>/segment. - Use Google Drive MCP tool to confirm file exists and is accessible.
- Stop if not found or permission denied.
Path B — Drive title search:
- Search Google Drive:
title contains '<drive_search_title>' - No results → stop. Multiple → list and ask. One → use it.
Path C — Local PDF:
Glob assignment/*.pdf. One file → use it. Multiple → ask. None → tell user to add a PDF or provide a Drive source.
Drive (Path A/B): Read file content via Google Drive MCP. Preserve footnote markers.
Local (Path C): Read the PDF. If garbled (scanned), say so and stop.
Always re-read fresh.
rubric_filterempty → scan for all#rubrichashtag tags in body + footnotes.rubric_filterset → evaluate only those rubrics.
Tagging channels: inline hashtag + footnote number (A), footnote-only (B), user-specified location (C).
Rubric definitions: Read .claude/skills/rubric-feedback/references/rubrics/<name>.md for each rubric. If missing, ask user to paste the definition.
Professor feedback:
- Glob
references/past-assignments/*-feedback.md. - Read all files. Compile all professor comments (rubric-specific + overall).
- None found → skip dimension (c), note "No past feedback on file."
Dispatch all simultaneously. Use Sonnet for discipline agents, Haiku for grammar/typo agents.
| Agent | Model | Input |
|---|---|---|
| Social Science | Sonnet | Assignment + hc_social_science.md + past feedback |
| Art & History | Sonnet | Assignment + hc_art_history.md + past feedback |
| Computer Science | Sonnet | Assignment + hc_computer_science.md + past feedback |
| Natural Science | Sonnet | Assignment + hc_natural_science.md + past feedback |
| Grammar Check | Haiku | Assignment text only |
| Typo & Spelling | Haiku | Assignment text only |
Each discipline agent follows agents/discipline-agent.md. Skip a discipline agent if rubric_filter contains no rubrics from that discipline.
If an agent fails: log a warning and continue — do not halt.
Spawn one coordinator agent (Sonnet) following agents/coordinator-agent.md.
Provide all 6 agent outputs. Coordinator merges, deduplicates, orders by page/section, appends grammar/typo findings, writes one Overall verdict.
Output coordinator's report. English only. No preamble.
Target: 8–15 lines per HC. Don't manufacture weaknesses.
Located in .claude/skills/rubric-feedback/references/rubrics/:
| File | Discipline |
|---|---|
hc_social_science.md |
Social Science (SS) |
hc_art_history.md |
Art & History (AH) |
hc_computer_science.md |
Computer Science (CS) |
hc_natural_science.md |
Natural Science (NS) |
audience.md, thesis.md, composition.md, etc. |
Cross-disciplinary |
Agent templates: agents/discipline-agent.md, agents/coordinator-agent.md
Requires Google Drive MCP for Drive-sourced assignments. Configure your MCP client with:
Server URL: https://drivemcp.googleapis.com/mcp/v1
Auth: OAuth 2.0 (Google account)
- Generic praise without evidence → always say why
- Validating weak footnotes as "adequate" → call Weak
- Vague action items ("be more specific") → name exactly what to add/change
- Body–footnote mismatch → flag every time
- Hedging language ("might," "perhaps") → state judgments directly
- Padding → no pre-summaries of rubric or assignment