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