Skip to content

Estate audit — Wave 7: ground the dashboard (every pass backed by an executable check)#502

Merged
hyperpolymath merged 3 commits into
mainfrom
claude/estate-audit-optimization-h19z12
Jul 17, 2026
Merged

Estate audit — Wave 7: ground the dashboard (every pass backed by an executable check)#502
hyperpolymath merged 3 commits into
mainfrom
claude/estate-audit-optimization-h19z12

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Context

Next phase of the estate program (umbrella #460; Waves 0–6 merged). The compliance dashboard was honest but self-asserted: a status = "pass" was prose, not proof. Wave 7 closes that: DYADT applied to the scorecards themselves — every pass row now carries an executable check that CI runs, and a claimed pass whose check doesn't hold fails the build.

What's here

  • check field (scorecard.schema.json): a read-only command, run from the repo root, that exits 0 iff the requirement currently holds — distinct from the human-readable system.
  • build-scorecards.sh --verify: runs every pass-row check. Broken pass → hard error. Fail-row whose check now passes → stale-fail re-grade prompt (advisory). Pass without a check → counted self-asserted (visible debt). Dashboard gains a Grounded column + rollup line.
  • The grounding sweep (per-spec fan-out; every proposed check was run before adoption):
Metric Before After
Grounded passes 0 / 85 (0%) 87 / 87 (100%)
Broken passes surviving 0
Self-asserted passes 85 0

82 checks added; 4 honest enforcement-gap flips (fact true on disk, previously unchecked); 4 licence-row re-grades to manual-only (Manual-Only policy). The ~250 implementation-gap rows deliberately stay honest fail — a check cannot invent missing engineering.

  • A real defect caught by grounding: avow-protocol's OSSF-scorecard evidence cited a nested workflow — which is dormant, since GitHub only executes root .github/workflows/. Evidence corrected to the root workflows that actually run, then grounded against them.

  • CI: registry-verify.yml's dashboard step now runs --check --strict --verify. Justfile: scorecards-verify.

Verification

  • All seven wave test suites pass; wave3-scorecards-test.sh gained 4 assertions (broken pass fails; holding checks stay green; grounded count reported; stale-fail advisory) and a fix for a grep -q/SIGPIPE race under pipefail.
  • --verify full run: 87 grounded · 0 broken · 0 self-asserted · 0 stale-fail.
  • Registry + dashboard both in --check sync; DYADT dogfood claims all confirmed.
  • MUST-passing moved 48 → 47 by honest regrade (a licence row to manual-only), not by loss.

Notes

🤖 Generated with Claude Code


Generated by Claude Code

claude added 2 commits July 17, 2026 22:55
…table check

The compliance dashboard's `status = "pass"` was self-asserted prose. Wave 7
makes it machine-verified: DYADT applied to the scorecards themselves.

- scorecard.schema.json: optional `check` field — a read-only shell command,
  run from the repo root, that exits 0 iff the requirement currently holds.
  Distinct from `system` (human-readable): `check` is what CI RUNS.
- build-scorecards.sh --verify: RUNS every pass-row check. A claimed pass whose
  check fails is a HARD error; a fail-row whose check now passes is flagged as
  a stale-fail re-grade candidate (advisory); passes without checks are counted
  as self-asserted (visible debt). Dashboard gains a Grounded column + rollup.
  extract_checks handles TOML-escaped quotes (strip trailing quote + unescape —
  first-quote truncation silently rewrote commands).
- Grounding sweep (per-spec fan-out, every check tested before adoption):
  87/87 pass rows now grounded — 0 broken, 0 self-asserted. 82 checks added,
  4 honest enforcement-gap flips (fact true on disk, previously unchecked),
  4 re-grades (licence rows to manual-only per Manual-Only policy).
  Implementation gaps (~250 rows) deliberately stay honest `fail` — a check
  cannot invent missing engineering.
- The grounding pass caught a real defect: avow-protocol's OSSF-scorecard
  evidence cited a NESTED workflow (dormant — GitHub only executes root
  .github/workflows); evidence corrected to the root workflows that actually
  run, and grounded against them.
- registry-verify.yml: the dashboard step now runs --check --strict --verify,
  with remediation hints. Justfile: scorecards-verify recipe.
- wave3-scorecards-test.sh: +4 assertions (broken pass fails, holding checks
  stay green, grounded count reported, stale-fail advisory); updated fixtures
  for the fully-grounded world; fixed a grep -q/SIGPIPE race under pipefail.

MUST-passing moved 48 -> 47 by honest regrade (licence row to manual-only),
not by loss. Licence/SPDX rows remain manual-only throughout; no SPDX edits.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0114ps6mY5jAH4SzbGxeuYjc
…gates

Promotes the enforcement surfaces that could not block, each honestly (no
manufactured red noise), each with a red-team proof it CAN fail.

- hypatia-scan-reusable.yml: baseline-aware gate. When a caller commits
  .hypatia-baseline.json (+ ships scripts/apply-baseline.sh), findings are
  filtered through the baseline and any UNBASELINED finding >= high FAILS the
  job (apply-baseline.sh blocking mode — thresholds, expiry, downgrades all
  already implemented there). Repos without a baseline keep the honestly-
  labelled ADVISORY behaviour; the gate arms itself the moment a baseline
  lands (standards#399/#437/#446).
- affinescript-verify.yml: SPLIT GATE replaces the blanket advisory. ADDED
  .affine files must compile — a failing added file fails the job (new code
  has no excuse); MODIFIED legacy ports stay advisory until the port backlog
  clears (LEGACY_BLOCKING flag to flip later); toolchain failures skip LOUDLY
  ("SKIPPED, not passed" — never a silent green claim). Job-level
  continue-on-error removed; verify step guards against a missing compiler
  checkout before cd.
- registry-verify.yml: Mustfile enforcement now gates PRs (structural check +
  run-mustfile.sh) — previously the invariants executed only on push-to-main,
  so a breaking change was caught after merge, not before.
- scripts/tests/wave8-gates-test.sh (11 assertions; Justfile: gates-test):
  unbaselined-high blocks / baselined passes / EXPIRED baseline entry stops
  suppressing / low severity below threshold; Mustfile gate passes on this
  repo and blocks on a failing critical invariant; workflow-shape checks
  (job-level continue-on-error gone, blocking branch present, loud skip).

Licence/SPDX untouched (flag-only policy).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0114ps6mY5jAH4SzbGxeuYjc
@hyperpolymath
hyperpolymath marked this pull request as ready for review July 17, 2026 23:07
@hyperpolymath
hyperpolymath merged commit 4dac1dd into main Jul 17, 2026
14 of 15 checks passed
@hyperpolymath
hyperpolymath deleted the claude/estate-audit-optimization-h19z12 branch July 17, 2026 23:07
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants