feat(boss): bolder autonomous /boss — grounding-PASS auto-sign, rollback sandbox, reference issue

Retire the obligatory five-lens spec-skeptic auto-sign panel (worst case
18 agent runs per spec under /boss). The autonomous signature is now the
Step-5 grounding-check PASS alone — an independent fresh-context agent's
verdict against currently-green tests; a no-override BLOCK/INFRA_ERROR
routes to the human sign-off pause.

The judgement the panel applied moves upstream into specify Step 1.5,
whose stance inverts: a load-bearing fork the orchestrator can DERIVE an
answer for (sources, code, consistency, risk) is decided boldly and
recorded on the run's reference issue; only a pure-preference fork
bounces. spec-skeptic survives as an optional ad-hoc bias-breaker the
orchestrator pulls when unsure whether its leaning is judgement or bias —
not a gate, not a veto.

Every /boss run carries a mandatory reference issue (created if the cycle
had none): the fork-decision log, the orchestrator's cross-run memory,
and the only surviving trace of a hard-dropped attempt.

Relax main-sacrosanct below the session anchor: within an autonomous run
the orchestrator may git reset --hard its OWN UNPUSHED commits above the
anchor on a dead end — never below the anchor, never a pushed commit
(forward-only/revert). Discarded attempts are hard-dropped, no parking.

Verified across the 9 edited files by a 4-lens adversarial review
(retired-panel residue, cross-file contracts, rollback-boundary safety,
stance coherence): unanimous SOUND. Baseline tagged pre-autosign-rework.

closes #8
This commit is contained in:
2026-06-19 00:06:44 +02:00
parent 012e70b058
commit eb74f99bd4
9 changed files with 470 additions and 388 deletions
+15 -6
View File
@@ -97,10 +97,18 @@ too.
- **Only the orchestrator commits.** No skill agent runs `git commit`.
Agents write into the working tree as unstaged changes; the
orchestrator inspects, decides commit shape, and commits.
- **main HEAD is sacrosanct.** Nobody runs `git reset` / `git revert`
on main (or any other protected branch). main moves forward only via
orchestrator commits; a wrong agent diff is discarded with
`git checkout -- <paths>` / `git stash`, never by rewinding main.
- **main HEAD is sacrosanct — below the session anchor.** Nobody runs
`git reset` / `git revert` on user-ratified main history (or any
protected branch). main moves forward only via orchestrator commits; a
wrong agent diff is discarded with `git checkout -- <paths>` /
`git stash`, never by rewinding ratified history.
**One narrow `/boss` exception — the rollback sandbox:** inside an
autonomous run the orchestrator anchors on the `main` HEAD it started
from (the last user-ratified state) and MAY `git reset --hard` its
*own* commits *above* that anchor — autonomous, **unpushed** work only
— back toward (never below) the anchor when it has run into a dead end.
A pushed commit has left the sandbox and is forward-only (`git revert`).
See `../boss/SKILL.md` § Direction freedom.
These also appear in the universal-discipline fragment
(`../templates/CLAUDE.md.fragment`) that each project's CLAUDE.md
@@ -111,8 +119,9 @@ imports.
The tracker is **Gitea** and the commit close-marker is `closes #N`
(`refs #N` for non-closing work). The per-project repo slug and the
list/show commands live in the project's CLAUDE.md project facts
(see below) — the `boss` skill reads the forward queue from there,
and the `spec-skeptic` `scope-fork` juror reads single issues with
(see below) — the `boss` skill reads the forward queue from there and
records its fork decisions on the run's reference issue there, and an
ad-hoc `spec-skeptic` `scope-fork` dispatch reads single issues with
their comment threads from there.
## Pipeline
+6 -2
View File
@@ -53,8 +53,12 @@ The plugin owns:
states.
- **Working-tree-as-quarantine** — agents write artefacts to
the working tree, never commit. Only the orchestrator commits.
- **main HEAD sacrosanct** — no reset, no revert, by any actor.
main moves forward only via orchestrator commits.
- **main HEAD sacrosanct below the session anchor** — no reset, no
revert of user-ratified history, by any actor; main moves forward only
via orchestrator commits. The one narrow exception is the `/boss`
rollback sandbox: the orchestrator may wind back its *own* unpushed
autonomous commits above the run's start anchor (`boss/SKILL.md`
§ Direction freedom).
- **No nested subagent dispatch** — a hard Claude Code platform
constraint: an agent cannot spawn further agents. Workflows do not
lift it; a workflow script orchestrates from the **top level**, and
+20 -19
View File
@@ -125,26 +125,27 @@ Hard-gate before plan — the spec-production core and the carrier of the
`brainstorm`), applies the feature-acceptance criterion, writes the
spec to `docs/specs` (an ephemeral active-cycle artefact, git-tracked
and `git rm`'d at cycle close — see `conventions.md` § Lifecycle), runs
the `grounding-check` gate, and takes user sign-off — with review but no interview. Bounces to `brainstorm` the moment the sources do not
resolve a load-bearing design decision. A core node — the
spec-production gate before `planner` on every design path.
the `grounding-check` gate, and takes sign-off — with review but no
interview. Under the bold stance it decides every load-bearing fork it
can *derive* an answer for and records the decision in the run's
reference issue; it bounces to `brainstorm` only when a fork hangs on a
pure user preference no source settles. A core node — the spec-production
gate before `planner` on every design path.
Outside `/boss` the sign-off is the user's. Under `/boss` the
orchestrator may sign a spec in the user's place through the auto-sign
gate — but only
when every objective gate is green AND a unanimous five-lens
`spec-skeptic` panel passes; the orchestrator's own confidence never
signs. A `BLOCK` is never signed over: an editorial one (`criterion` /
`ambiguity` / `plan-readiness`) is repaired in a bounded ≤ 2-round loop
that re-runs the objective gates and re-dispatches all five lenses each
round; a design one (`scope-fork` / `grounding`), an `INFRA_ERROR`, or
an exhausted budget falls back to the human sign-off pause. When the
entry is in-context, `specify` gives the `scope-fork` juror an auditable
source for an in-context fork resolution (Step 1.5) — a provenance-
bearing reconciliation comment when a seeding issue lags the discussion,
or a freshly created seeding issue when the cycle had none — so the
juror can ratify the resolution instead of blocking for lack of one. See
`../specify/SKILL.md` Step 6 and `../boss/SKILL.md` §"Spec auto-sign".
Outside `/boss` the sign-off is the user's. Under `/boss` the autonomous
signature is the **`grounding-check` `PASS`** itself: an independent
fresh-context agent's verdict against currently-green tests, not the
orchestrator's confidence. On `PASS` the orchestrator commits the spec
(subject `(boss-signed)`), fires the vetoable auto-sign notify, and
continues to `planner`; a no-override grounding `BLOCK` / `INFRA_ERROR`
routes to the human sign-off pause. The former obligatory five-lens
`spec-skeptic` panel is **retired** (baseline tag `pre-autosign-rework`):
the judgement it applied now lives upstream in Step 1.5's bold-decide
stance, and `spec-skeptic` survives only as the optional ad-hoc
bias-breaker the orchestrator pulls when unsure whether its leaning on a
fork is judgement or bias. Editorial roughness the panel would have
caught is let through deliberately — cheap to patch inline downstream.
See `../specify/SKILL.md` Step 6 and `../boss/SKILL.md` §"Spec auto-sign".
### planner