canvas-humanizerlisted
Install: claude install-skill X-isdoingreat/canvas-pilot
# canvas-humanizer
Transform a verified local draft without changing its assignment claims,
citations, quoted material, required structure, or platform state. This skill is
an optional drafting stage, never a correctness guarantee or submission step.
## Inputs and boundaries
Require:
- `draft_path`: existing `.docx` or `.md`;
- `output_path`: new file with the same extension;
- `voice_register`;
- `course_id`, `assignment_id`, and the caller's stable `work_dir`;
- optional `student_identity`, `hard_locks`, and rubric anchors.
`work_dir` must end in
`course-<course_id>__assignment-<assignment_id>`, as produced by
`src.course_artifacts.stable_work_dir`. Both input and output must be inside the
current assignment's private run tree. Refuse to overwrite the only source
copy; keep the pre-pass draft.
This skill performs local file I/O only. Never call Canvas or another learning
platform. It does not write assignment `result.json`; the calling course skill
does that after re-running its own verification.
Write `humanizer_log.json` beside `output_path`. Diagnostic values in that file
are internal pipeline outcomes, not Canvas Pilot result statuses.
## Deterministic helpers
Use the existing symbols instead of reimplementing them:
```python
from src.humanizer_segmentation import split_sentences, segment_paragraph
from src.humanizer_segment_extract import extract_locks
from src.humanizer_score import score_candidate, divergence
```
For DOCX extraction, the existing command i