Bound the spec-skeptic auto-sign panel with an editorial self-correction loop #6
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Concern
The
spec-skepticauto-sign panel introduced incbd460ewasone-shot: under
/bosswithpipeline.boss.spec_auto_sign: true, theStep-6 gate in
specify/SKILL.mdtreated any panelBLOCKasterminal and fell straight back to the human sign-off pause.
Observed effect: the panel is adversarial-by-design and rarely returns
a unanimous
SOUND, so/bossescalated to the user even for defectsthe orchestrator could mechanically repair (a requirement readable two
ways, an over-broad scope, missing worked evidence). The user is
contacted for editorial work that does not require a human judgement.
Desired behaviour: contact the user only when a genuine design
question is at stake, or when self-correction has demonstrably failed.
Resolution (implemented)
The five lenses are partitioned by what a
BLOCKmeans:criterion,ambiguity,plan-readiness. The specis under-articulated; repairable by editing prose without settling a
new design or fact.
scope-fork,grounding. The ground is not settled;the orchestrator may never settle these in the user's place.
Step 6 now runs a bounded loop instead of the one-shot table:
SOUND-> auto-sign (unchanged).INFRA_ERROR, a design-lensBLOCK, or an exhausted budget ->escalate to the human sign-off pause.
BLOCKonly -> self-correct in place, re-run Step 4self-review and re-dispatch Step 5
grounding-check(the editinvalidates the prior
PASS), then re-dispatch all five lenses.<= 2self-correction rounds; the 3rd unresolvededitorial
BLOCKescalates. N=2 is hard-coded, matching theper-task re-loop idiom in
implement/agents/implement-orchestrator.md.Safety property: re-dispatching all five lenses every round is the
backstop. If an editorial repair launders an unsourced design decision
into the spec, the re-run
scope-fork/groundingjurorsBLOCKonit, and a design
BLOCKescalates. Auto-sign still requires a freshunanimous
SOUNDon a green objective gate; model self-confidencenever signs. No new profile slot.
Surface touched
specify/SKILL.md— Step 6 loop (gate owner), Red Flags, Cross-refsspecify/agents/spec-skeptic.md— juror stays lens-agnostic; theBLOCKconsequence is decided by the skill, not the jurorboss/SKILL.md,README.md,docs/profile-schema.md,docs/pipeline.md— restating-doc sync