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:
@@ -27,7 +27,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 | Opt-in 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 | User-invoked, never auto-dispatched |
|
||||
| `boss` | User types `/boss` | autonomous-orchestrator session — dispatches the other skills until done-state or bounce-back; can optionally sign specs in the user's place (opt-in, see below) | User-invoked, never auto-dispatched |
|
||||
|
||||
Two further **utility skills** are invoked on demand rather than as
|
||||
pipeline phases: `issue` (file or update a tracker item) and `glossary`
|
||||
@@ -131,6 +131,33 @@ skipped and documented, never silently trusted. See
|
||||
`docs/profile-schema.md` § `spec_validation` for the shape and
|
||||
`templates/project-profile.yml` for a commented example.
|
||||
|
||||
### Spec auto-sign (opt-in)
|
||||
|
||||
By default a `specify` dispatch in a `/boss` session pauses at its
|
||||
user-review gate for the user's signature — the human approves every
|
||||
spec before any plan is built. A project that wants `/boss` to run
|
||||
unattended across spec boundaries can opt in with
|
||||
`pipeline.boss.spec_auto_sign: true`.
|
||||
|
||||
With it on, the orchestrator may sign a spec in the user's place, but
|
||||
never on its own confidence. Signing requires two stages to clear:
|
||||
|
||||
- **Objective gates** — the precondition gate, the parse-every-block
|
||||
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 single juror `BLOCK`, or any objective gate not green, falls back to
|
||||
the human sign-off pause the spec would have hit anyway. 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, `specify/agents/spec-skeptic.md`,
|
||||
and `boss/SKILL.md` §"Spec auto-sign".
|
||||
|
||||
## Install
|
||||
|
||||
See `INSTALL.md`. In short: clone, run `install.sh`, then drop
|
||||
|
||||
Reference in New Issue
Block a user