Scope
Extend bstack doctor to lint everything specified in spec §3 contracts; promote advisory gates to enforceable where possible; close pre-existing test failures; publish substrate SLOs. Closes gaps 4.2.1 (soft gates advisory), 4.2.2 (reflexive primitives have no lint), 4.2.3 (P20 not enforced), 4.2.4 (no bypass audit), 4.2.5 (control-gate-hook workspace-only), 4.6.3 (vetted test allowlist), 4.6.4 (no SLO declarations).
Deliverables
- EDIT
scripts/doctor.sh — new sections:
- §10 Setpoint measurement reachability (every setpoint has a measure-S.sh)
- §11 Gate enforcement type validation (every blocking gate has pattern or runtime_check)
- §12 Reflexive-primitive compliance sampling (parse
docs/conversations/ for P14/P15 phrases)
- §13 Skill roster completeness (cross-check with
references/companion-skills.yaml)
- NEW
scripts/control-gate-hook.sh — moved into bstack from workspace; templated for downstream installs
- NEW
~/.bstack/gate-audit.jsonl — bypass attempt log (e.g., --no-verify invocations)
- NEW
SLOs.md — per-operation latency targets, CI gate enforces no regression
- EDIT
auto_merge block in policy.yaml.template — require p20_score >= 7 for substantive PRs
- FIX
tests/template_lockstep.test.sh — update "twenty irreducible primitives" assertion
- FIX
scripts/onboard.sh — add --non-interactive flag; unblock tests/onboard.test.sh
- EDIT
.github/workflows/ci.yml — remove vetted-test allowlist; run all tests/*.test.sh
- EDIT
CHANGELOG.md + VERSION → 0.8.0
Risks + mitigations
- Risk: stricter doctor lint blocks legitimate workspaces. Mitigation: severity levels (informational vs blocking); profile-aware lint output.
- Risk: cross-review P20 enforcement creates friction. Mitigation: only on substantive PRs (>200 LOC OR public API OR multi-file OR governance-class); profile-controlled.
SLO targets (introduced this phase)
See SLOs.md (new file). Per-operation targets per spec §7.3.
Spec reference
§6 Phase 5 of specs/2026-05-18-substrate-completion.md.
Blocked by: Phase 4 (skill roster YAML needed for §13 lint).
Scope
Extend
bstack doctorto lint everything specified in spec §3 contracts; promote advisory gates to enforceable where possible; close pre-existing test failures; publish substrate SLOs. Closes gaps 4.2.1 (soft gates advisory), 4.2.2 (reflexive primitives have no lint), 4.2.3 (P20 not enforced), 4.2.4 (no bypass audit), 4.2.5 (control-gate-hook workspace-only), 4.6.3 (vetted test allowlist), 4.6.4 (no SLO declarations).Deliverables
scripts/doctor.sh— new sections:docs/conversations/for P14/P15 phrases)references/companion-skills.yaml)scripts/control-gate-hook.sh— moved into bstack from workspace; templated for downstream installs~/.bstack/gate-audit.jsonl— bypass attempt log (e.g.,--no-verifyinvocations)SLOs.md— per-operation latency targets, CI gate enforces no regressionauto_mergeblock inpolicy.yaml.template— requirep20_score >= 7for substantive PRstests/template_lockstep.test.sh— update "twenty irreducible primitives" assertionscripts/onboard.sh— add--non-interactiveflag; unblocktests/onboard.test.sh.github/workflows/ci.yml— remove vetted-test allowlist; run alltests/*.test.shCHANGELOG.md+VERSION→ 0.8.0Risks + mitigations
SLO targets (introduced this phase)
See
SLOs.md(new file). Per-operation targets per spec §7.3.Spec reference
§6 Phase 5 of specs/2026-05-18-substrate-completion.md.
Blocked by: Phase 4 (skill roster YAML needed for §13 lint).