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:
+14
-6
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user