Add the abandon command
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 1m18s

A4 already names abandon as one of the ways out of a halt (continue,
re-plan, or abandon) and 0.2 closes a work item as completed or
abandoned, but no command did it: from a gate or a question the only way
to drop a task was to edit the state database.

- 'abandon' ends the task from any waiting state and returns to IDLE.
  The move is made durable first; then the plan issue and any open
  milestone PR are closed with a note (branches kept), and any
  unresolved intent is aborted so boot reconciliation does not gate on
  work dropped on purpose. A Gitea failure is reported, not fatal.
- Like 'status' it is a command in every state, never read as an answer
  or feedback. While work runs, 'stop' comes first, as before.
- The restart / stranded question and the PR_OPEN hints mention it.
- Spec: B1 gains the abandon edge and B2 the command.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
This commit is contained in:
dongarandClaude Opus 5.5 committed 2026-09-29 17:43:43 +00:00
1 parent 4e8ebea26a
commit d68e3b3a83
7 files changed
+307 -7

No files matched your search

+11 -2
View File
@@ -909,6 +909,9 @@ EXECUTING autonomous; no per-command approval
PR_OPEN
→ open PR; react to review comments and commits (review loop)
→ on acceptance → next milestone, or project complete
any waiting state (a sign-off gate, AWAIT_INPUT, PR_OPEN)
→ [abandon] close the plan issue and any open PR, → IDLE
```
### B2. Requirements
@@ -917,8 +920,14 @@ PR_OPEN
or the agent switches on its own under 0.2's rules; other projects stay parked at
their last position and resume where they left off.
- **Operator commands** (over transport): `use <project>`, `approve`,
`reject <feedback>`, `start milestone <n>`, `status`, `stop` (A4), plus free
text during planning (forwarded to the agent as answers).
`reject <feedback>`, `start milestone <n>`, `status`, `stop` (A4), `abandon`,
plus free text during planning (forwarded to the agent as answers).
- `abandon` ends the current work item from any waiting state: the "abandon"
among A4's continue / re-plan / abandon, and a close in 0.2's terms. It closes
the plan issue and any open milestone PR with a note, keeps the branches, and
marks any unresolved intent aborted so boot reconciliation does not gate on
work dropped on purpose. While work is running, `stop` comes first. Like
`status`, it is a command in every state, never read as an answer or feedback.
- **Plan gating** per A4: architecture plan and each milestone plan require sign-off
before the next phase. Enforced structurally. Plans and approvals are externalized
to Gitea issue comments (Part H, decided); Matrix and Gitea are both approval