feat(boss): opt-in spec auto-sign via adversarial spec-skeptic panel
Add `pipeline.boss.spec_auto_sign` (default off). With it on, a /boss run may sign a spec in the user's place — but only through a gate built to never rely on the orchestrator's own confidence: all objective gates green (precondition, parse, grounding-check PASS with no human override) AND a unanimous five-lens adversarial spec-skeptic panel (criterion, grounding, scope-fork, ambiguity, plan-readiness). Any single BLOCK falls back to the human sign-off pause. On a clean sign the orchestrator commits the spec ((boss-signed) in the subject), fires a mandatory informational-with-veto notify, and proceeds to planner without stopping. A later veto is a forward correction, never a history rewind. - new agent: specify/agents/spec-skeptic.md (read-only, one lens per dispatch) - specify Step 6 + Iron Law: approval may come from the auto-sign gate, never from model self-confidence - boss: third notify category, §"Spec auto-sign", rationalisations, red flags - profile-schema + template: the opt-in slot - pipeline.md, agent-template.md, README: the auto-sign path documented
This commit is contained in:
@@ -74,7 +74,7 @@ plugin's agent path is enough disambiguator).
|
||||
|
||||
Examples: `architect`, `bencher`, `debugger`, `implementer`,
|
||||
`tester`, `fieldtester`, `docwriter`, `grounding-check`,
|
||||
`plan-recon`, `spec-reviewer`, `quality-reviewer`,
|
||||
`spec-skeptic`, `plan-recon`, `spec-reviewer`, `quality-reviewer`,
|
||||
`implement-orchestrator`.
|
||||
|
||||
### `description`
|
||||
@@ -93,7 +93,7 @@ agents.
|
||||
Common tool sets:
|
||||
|
||||
- Read-only review (architect, spec-reviewer, quality-reviewer,
|
||||
grounding-check, plan-recon): `Read, Glob, Grep, Bash`
|
||||
grounding-check, spec-skeptic, plan-recon): `Read, Glob, Grep, Bash`
|
||||
- Implementation (implementer, tester, debugger, docwriter,
|
||||
fieldtester, bencher): `Read, Edit, Write, Bash, Glob, Grep`
|
||||
- Orchestrator (implement-orchestrator): `Read, Edit, Write,
|
||||
|
||||
@@ -104,6 +104,14 @@ interview. Bounces to `brainstorm` the moment the sources do not
|
||||
resolve a load-bearing design decision. A core node, not opt-in
|
||||
(unlike `tdd`).
|
||||
|
||||
The sign-off is the user's by default, including under `/boss`. The
|
||||
one exception is the opt-in `pipeline.boss.spec_auto_sign` slot: with
|
||||
it on, a `/boss` run may sign a spec in the user's place — but only
|
||||
when every objective gate is green AND a unanimous five-lens
|
||||
`spec-skeptic` panel passes; the orchestrator's own confidence never
|
||||
signs. Any juror `BLOCK` falls back to the human sign-off pause. See
|
||||
`../specify/SKILL.md` Step 6 and `../boss/SKILL.md` §"Spec auto-sign".
|
||||
|
||||
### planner
|
||||
|
||||
Hard-gate before implement. Produces a placeholder-free,
|
||||
|
||||
+19
-1
@@ -215,11 +215,29 @@ pipeline:
|
||||
alt_to: brainstorm # alternative design entry; bounces back on a design fork
|
||||
boss:
|
||||
user_invoked: true # autonomous-orchestrator mode, /boss
|
||||
spec_auto_sign: false # opt-in: let /boss sign a spec in the user's place (default off)
|
||||
```
|
||||
|
||||
Phases not listed are disabled for the project. A project that
|
||||
does not want a `fieldtest` phase simply omits the key. `tdd` is
|
||||
opt-in the same way. `specify`, by contrast, is a **core** node — it
|
||||
opt-in the same way.
|
||||
|
||||
`boss.spec_auto_sign` is an opt-in slot, default off (a missing key
|
||||
reads as `false`). With it off — the conservative default — a
|
||||
`specify` dispatch in a `/boss` session always pauses at its Step-6
|
||||
user-review gate for the user's signature, exactly as before. With it
|
||||
**on**, the orchestrator may sign a spec in the user's place, but only
|
||||
through `specify`'s auto-sign gate: every objective gate green
|
||||
(precondition, parse, a `grounding-check` `PASS` with no human
|
||||
override) AND a unanimous five-lens `spec-skeptic` panel. A single
|
||||
juror `BLOCK`, or any objective gate not green, falls back to the
|
||||
human sign-off pause. Model self-confidence alone never signs — the
|
||||
gate is built specifically not to rely on it. On a clean sign the
|
||||
orchestrator commits the spec (subject carries `(boss-signed)`), sends
|
||||
the mandatory informational-with-veto notify, and continues to
|
||||
`planner` without stopping. See `../specify/SKILL.md` Step 6 (gate
|
||||
owner), `../specify/agents/spec-skeptic.md` (the juror), and
|
||||
`../boss/SKILL.md` §"Spec auto-sign" (notify + veto contract). `specify`, by contrast, is a **core** node — it
|
||||
is the spec-production gate before `planner` on every design path,
|
||||
reachable directly from settled sources or via the optional
|
||||
`brainstorm` discovery stage. `tdd` opt-in only adds the
|
||||
|
||||
Reference in New Issue
Block a user