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