canvas-submitlisted
Install: claude install-skill X-isdoingreat/canvas-pilot
# canvas-submit
Perform one explicitly authorized Canvas mutation after the scan, approval, and
draft boundary. This skill is the interactive submit entry point; neither
`canvas-scan`, `canvas-execute`, nor a course drafting skill may invoke it on
the user's behalf.
## 1. Enforce the later-message boundary
Use the raw text of the **current user message**. Never reconstruct authority
from an earlier message, quoted text, a plan decision, an overlay, a schedule,
or the agent's own recommendation.
Pass the complete current message to
`src.mutation_approval.parse_mutation_command`. Accept only one whole
expression recognized by that parser:
- `submit N` or `提交第N项` for one ordinary assignment;
- `take quiz N`, `参加测验第N项`, or `做测验第N项` for one first quiz attempt;
- `retake quiz N`, `重做测验第N项`, or `重考测验第N项` for one explicitly
authorized retake.
Outer whitespace may be retained, but no other prose is allowed. Reject
`submit all`, `approve all`, `please submit 1`, `submit 1 and 2`,
`take quiz 1 now`, hypotheticals, and any command copied from a prior turn. One message
authorizes at most one indexed target. Never translate a vague request into an
accepted command.
Plan approval is not submission authority. `approve 1`, `all`, `do 1`, and a
`plan.json` decision may authorize drafting through `canvas-execute`, but they
must never mint or substitute for a mutation receipt. This skill is not an
automatic-submit or cron workflow.
## 2. Bind the current plan target
Use only the run d