canvas-reading-annotationlisted
Install: claude install-skill X-isdoingreat/canvas-pilot
# canvas-reading-annotation
Handle short writing-course work after the deterministic writing router selects
the non-essay path. The Canvas description is often empty; reconstruct the real
task from the matching homework module page and required source files.
## Contract
Require the current assignment snapshot, approved plan item, `course_id`,
`assignment_id`, and `run_dir`. Use only this work directory:
```python
from src.course_artifacts import ensure_stable_work_dir
work_dir = ensure_stable_work_dir(run_dir, course_id, assignment_id)
```
Its stable name is `course-<course_id>__assignment-<assignment_id>`.
Write one `result.json` with `src.course_artifacts.write_course_result`:
- `draft_ready`: required sources loaded and all executable checks pass;
- `skipped`: paper/in-class/identity-bound work;
- `error`: required source missing, unsupported shape, or persistent failure.
This skill is draft-only. Do not call Canvas upload/submit endpoints. Plan
approval and overlay text do not authorize mutations. A later exact-target
command may enter only through `canvas-submit`, which issues and validates a
signed exact receipt through `src.authorization`.
## Route and overlay
Confirm `src.ac_eng_router.route_ac_eng_assignment(...) == "short"` unless the
approved plan explicitly overrides the route. Send long essays to
`canvas-essay`.
Read `_private/canvas-reading-annotation-app.md` and select the exact course and
assignment-kind block. It may define module IDs, reading-fil