Skip to content

bstack Phase 5 — doctor extensions + soft gate promotion (v0.8.0) #1345

@broomva

Description

@broomva

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).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions