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
+26 -33
View File
@@ -28,7 +28,7 @@ The pipeline skills, each with the agents it primarily dispatches:
| `tdd` | Test-specifiable feature / issue (third entry path, alongside `brainstorm` and `specify`) | RED executable-spec in working tree → `implement` mini-mode | Standard entry path; bounces to `brainstorm` on a design fork |
| `fieldtest` | Orchestrator-dispatched post-audit | example fixtures + friction spec | Per-cycle optional; milestone fieldtest is the closing gate for a surface-touching milestone |
| `docwriter` | API surface stable across N cycles | rustdoc / docstring sweep | Optional |
| `boss` | User types `/boss` | autonomous-orchestrator session — dispatches the other skills until done-state or bounce-back; signs specs in the user's place through the auto-sign gate (see below) | User-invoked, never auto-dispatched |
| `boss` | User types `/boss` | autonomous-orchestrator session — dispatches the other skills until done-state or bounce-back; signs specs in the user's place on the `grounding-check` `PASS` (see below) | User-invoked, never auto-dispatched |
**Entry is a selector cascade, not a single door.** New feature work is
routed on a verification / enumeration axis, walked top to bottom, first
@@ -99,7 +99,9 @@ This repo (the **plugin**) carries everything that is universal:
- Status protocol: `DONE / DONE_WITH_CONCERNS / PARTIAL / BLOCKED
/ NEEDS_CONTEXT`
- Working-tree-as-quarantine and only-orchestrator-commits
- main HEAD sacrosanct
- main HEAD sacrosanct below the session anchor (the one narrow
exception is the `/boss` rollback sandbox — own unpushed autonomous
commits above the run's start anchor)
- No nested subagent dispatch (Claude Code platform constraint;
Workflows orchestrate at the top level but do not lift it — the
execution loops run as Workflow scripts so their phase agents are
@@ -134,38 +136,29 @@ project's `CLAUDE.md`, which is standing reading on every dispatch.
### Spec auto-sign
Under `/boss`, the orchestrator signs a spec in the user's place rather
than pausing at the user-review gate — so a `/boss` run carries on
across spec boundaries unattended. (Outside `/boss` the user signs every
spec directly.) The orchestrator never signs on its own confidence;
signing requires two stages to clear:
than pausing at the sign-off gate — so a `/boss` run carries on across
spec boundaries unattended. (Outside `/boss` the user signs every spec
directly.) The autonomous signature is the **`grounding-check` `PASS`**:
an independent fresh-context agent's verdict against currently-green
tests, not the orchestrator's confidence. On `PASS` the orchestrator
commits the spec (`(boss-signed)` in the subject), sends a mandatory
informational notify that names the signed capability and invites a
veto, and continues to `planner` without stopping. A no-override
grounding `BLOCK` / `INFRA_ERROR` routes to the human sign-off pause.
- **Objective gates** — the precondition gate and a `grounding-check`
`PASS` with no human override.
- **A unanimous adversarial panel** — the `spec-skeptic` agent
dispatched five times in parallel, one per lens (`criterion`,
`grounding`, `scope-fork`, `ambiguity`, `plan-readiness`), each
trying to *refute* the spec. All five must return `SOUND`.
A `BLOCK` is never signed over. The five lenses split by what a `BLOCK`
means: an *editorial* one (`criterion`, `ambiguity`, `plan-readiness` —
the spec is under-articulated) the orchestrator repairs in a bounded
loop (edit, re-run the objective gates, re-dispatch all five lenses, up
to 2 rounds); a *design* one (`scope-fork`, `grounding` — the ground is
not settled), an `INFRA_ERROR`, any objective gate not green, or an
exhausted budget falls back to the human sign-off pause the spec would
have hit anyway. Re-dispatching all five lenses every round is the
backstop that stops an editorial repair from quietly settling a design
question. When a fork was settled in-context, `specify` gives the
`scope-fork` juror an auditable source for it (Step 1.5): a provenance-
bearing reconciliation comment when a seeding issue exists but lags the
discussion, or a freshly created seeding issue when the cycle had none —
either read via the project's issue show command, closing the blind spot
where the in-context entry path could otherwise never clear that lens.
On a clean sign the orchestrator commits the spec
(`(boss-signed)` in the subject), sends a mandatory informational notify
that names the signed capability and invites a veto, and continues to
`planner` without stopping. A later veto is a forward correction, never
a history rewind. See `specify/SKILL.md` Step 6,
The judgement work happens **upstream**: under the bold stance, `specify`
Step 1.5 *decides* every load-bearing fork it can derive an answer for
(from the sources, the code, consistency, risk) and records the decision
on the run's reference issue, pulling an ad-hoc `spec-skeptic` lens as a
bias-breaker when it is unsure whether its leaning is judgement or bias;
only a *pure-preference* fork bounces to the human. The former obligatory
unanimous five-lens `spec-skeptic` panel is **retired** (baseline tag
`pre-autosign-rework`) — editorial roughness it would have caught is let
through deliberately, cheap to patch inline downstream. A wrong derived
call is recovered by the user's veto or, within the run, the rollback
sandbox (`boss/SKILL.md` § Direction freedom): the orchestrator may
hard-reset its *own unpushed* autonomous commits back toward the session
anchor on a dead end. See `specify/SKILL.md` Step 6,
`specify/agents/spec-skeptic.md`, and `boss/SKILL.md` §"Spec auto-sign".
## Install