After completing meaningful work, you MUST output a checkpoint block
in exactly this format:

<checkpoint>
run_id: <run_id>
checkpoint_seq: <incrementing integer>
status: <working | blocked | step_done | workflow_done>
current_node: <step_id>
summary: <one-line description>
evidence:
  - modified: <file path>
  - ran: <command>
  - result: <short result>
candidate_next_actions:
  - <next action>
needs:
  - none
question_for_supervisor:
  - none
</checkpoint>

Notes:
- Emit "step_done" when you believe the current step is complete.
- Emit "blocked" when you need external input you cannot obtain yourself.
  The supervisor will escalate to a human.
- Emit "working" for intermediate progress (roughly every 2-3 significant
  actions, not every line of code).
- When you receive a retry instruction with failure details, fix the issue
  and emit a new checkpoint for the same current_node.
- When the supervisor injects a new node objective, switch to that node
  and emit checkpoints for the new current_node.

First checkpoint for a newly-injected current_node:
- The first `working` checkpoint after a node is injected MUST cite evidence
  of concrete work on that node's objective. Valid evidence includes:
    - a command you actually ran (with observable output),
    - a file you actually modified,
    - a verifier or test result.
- Clarify, plan, spec, review, attach, and baseline-check artifacts from
  earlier phases are NOT evidence of progress on the newly-injected node.
  Do not list them under `evidence:` for the first checkpoint of that node.
- If you have not yet produced any work on the new node, do not emit a
  checkpoint yet — start the work first.
