iter disc.1: boss-only commits + main-as-quarantine (no branches in implement)

Two project-wide rules are now explicit across every skill:

1. Only the Boss commits. No skill agent (implementer,
   brainstormer, planner, debugger, fieldtester, docwriter,
   architect, bencher) runs `git commit`. Agents write their
   artefacts to the working tree as unstaged changes; the Boss
   inspects, decides commit shape, and commits.
2. main HEAD is sacrosanct. No actor runs `git reset` or
   `git revert` on main. Bad work stays in the working tree
   where it is still discardable via `git checkout -- <paths>`.

Implement loses the `iter/<iter_id>` branch mechanic entirely;
Phase 0 of the orchestrator-agent now does a clean-tree check
and refuses to start on a dirty tree. Per-task agent commits
are removed everywhere; reviewers operate against
`git diff HEAD` instead of `pre_task_sha..head_sha`.

Motivation: 2026-05-11 iter 23.4 stranded prep2/prep3 commits on
an iter-branch that never integrated to main, then a corrected
spec falsely claimed those commits had shipped. Branch-per-iter
+ manual-Boss-merge + iter-stacking made the strand structurally
possible. See docs/journals/2026-05-11-iter-disc.1.md for the
full per-task notes and motivation.
This commit is contained in:
2026-05-11 22:44:43 +02:00
parent 841d65d88c
commit 51da9fab53
18 changed files with 552 additions and 248 deletions
+14 -6
View File
@@ -1,6 +1,6 @@
---
name: debug
description: Use when a bug surfaces — failing test, segfault, wrong stdout, panic, or any observable misbehaviour. Bug fixes are RED-first TDD; no fix is attempted before the failing test is committed. Mandatory for any bug, including ones that look trivial.
description: Use when a bug surfaces — failing test, segfault, wrong stdout, panic, or any observable misbehaviour. Bug fixes are RED-first TDD; no fix is attempted before the failing test exists in the working tree. Mandatory for any bug, including ones that look trivial.
---
# debug — RED-first bug diagnoser
@@ -57,10 +57,17 @@ Dispatch `ailang-debugger` with:
| `repro_known` | One-line repro if known, otherwise the agent finds one |
| `recent_iter` | Iteration that last touched the suspected area (often `git log` tail) |
The agent commits the RED test as `test: red for <symptom>` and reports
the handoff carrier for `implement` mini-mode. The agent does NOT write
the fix — splitting RED (this skill) and GREEN (`implement` mini-mode)
across two dispatches keeps the diagnosis honest.
The agent writes the RED test to the working tree (uncommitted) and
reports the handoff carrier for `implement` mini-mode. The agent does
NOT commit anything, and does NOT write the fix — splitting RED (this
skill) and GREEN (`implement` mini-mode) across two dispatches keeps
the diagnosis honest. The Boss decides whether to commit the RED test
as a separate audit-trail commit before dispatching `implement` mini-
mode, or to hand the dirty working tree directly to mini-mode (the
mini-mode orchestrator's Phase-0 clean-tree check will refuse the
latter — so for an audit-trail-preserving flow the Boss commits the
RED test first; for a streamlined-fix flow the Boss commits the
combined RED+GREEN at the end of mini-mode).
## Handoff Contract
@@ -82,7 +89,8 @@ scope for the bug-fix iteration and gets queued for a separate one.
Common Rationalisations table, and the Red Flags list. The
orchestrator does not execute these phases directly.
- **Hand-off target:** `skills/implement/SKILL.md` — runs the GREEN
side after the RED test is committed.
side after the Boss has decided whether to commit the RED test
separately or as part of the final fix commit.
- **Project source:** former CLAUDE.md "Bug fixes — TDD, always"
section is now superseded by this file; CLAUDE.md keeps a one-line
pointer.