/ar:stop — end the run
Halt cleanly, leaving everything recoverable.
Steps
Read state (
cat ./.ar/ar.jsonl | tail -50). Noar.jsonlmeans no run to stop — say so and stop.If
HEADcarries aResult: pendingtrailer, an iteration was interrupted mid-measurement. Leave the commit alone, and record it in the sentinel'sreasonso a later/ar:resumere-measures rather than reverting it.Append the sentinel — the last line of the file, and what
ar-loop.shgreps for:{ "run": <n>, "status": "stopped", "segment": <s>, "reason": "<why>" }Write
./.ar/final_report.md(see the/ar:reportskill for its shape).Print the final status block, the best commit, and — as text, not as a command to run — how to get back:
git switch <config.originBranch> # return to where the run started git log --format='%h %s' --grep='"status":"keep"' <config.branch>
Hard rules
- Destroy nothing. No reverts, no branch deletion, no
git clean. Stopping is not discarding: the experiment branch and every kept commit stay exactly as they are, and the operator decides later what to merge or bin. - Do not switch branches. Print the command and leave the experiment branch checked out for inspection.
- Stopping is reversible — a later
/ar:resumeopens a new segment and carries on from the same state. Say so.
Completion status
End with a terminal status token as the last line of your reply — DONE,
DONE_WITH_CONCERNS, BLOCKED, or NEEDS_CONTEXT — per
references/completion-status.md. For /ar:stop, DONE once the
status:stopped sentinel is appended and the report written; NEEDS_CONTEXT if
there is no active run to stop.