Skip to content

fix(audit): reference catalogs and pointers are not governance documents (0.1.0-alpha.13) - #43

Merged
jaruesink merged 2 commits into
mainfrom
fix/governance-metadata-scoping
Aug 9, 2026
Merged

fix(audit): reference catalogs and pointers are not governance documents (0.1.0-alpha.13)#43
jaruesink merged 2 commits into
mainfrom
fix/governance-metadata-scoping

Conversation

@jaruesink

Copy link
Copy Markdown
Contributor

Takes #2 and #3 from the brief. #1 and #4 are reported, not built — see below, because #4 turns out to already exist.

What shipped

Validation Date Coverage asked every canonical governance file for a Last validated: line. Two document kinds were never governance documents:

  • docs/patterns/** — a reference catalog read on demand. lc-classic-starter sat CRITICAL at 22%, and 7 of its 9 governance files were catalog entries.
  • pointer documents — already named by isPointerDocument, which this check did not consult. Confirmed by reading, as asked.

Both leave the denominator, and the exemption is stated: 100% ... (excludes 7 reference/pointer docs). Scoped to this one figure — both kinds stay on the scoring surface for every other check, exactly as #41's shim exclusion was scoped to Low-Yield.

Fleet sweep, 17 repos

CRITICAL NEEDS WORK PASS
before 6 4 7
after 5 5 7

Exactly one verdict moves: lc-classic-starter CRITICAL → NEEDS WORK. forge stays CRITICAL correctly — after exempting its 3 catalog entries, its two remaining .devagent files are ordinary instruction docs that genuinely carry no date.

Two mistakes, both caught by the harness

I also exempted docs/bootstrap-templates/**, which the brief never asked for. Anvil's own governance surface is 18 bootstrap templates, all dated — so the exemption emptied its denominator, and an empty denominator read as 0%, turning Anvil's own verdict PASS → CRITICAL. verify:self-audit-proof caught it, one turn after I loosened that proof's PR-churn normalization, which is decent evidence the loosening didn't blind it.

The empty-denominator case is now guarded separately: when everything is exempt there is nothing to measure, so it falls back to the full set rather than inventing a 0%.

Verify

lint · format:check · release:pin --check · typecheck · 507 pass / 0 fail · verify:self-audit-proof — all green.

🤖 Generated with Claude Code

jaruesink and others added 2 commits August 9, 2026 11:09
Validation Date Coverage asked every canonical governance file for a
`Last validated:` line. Two document kinds were never governance documents:

- `docs/patterns/**` — a reference catalog read on demand. lc-classic-starter
  sat CRITICAL at 22% coverage, and 7 of its 9 governance files were catalog
  entries. Stamping ~20 of them changes no agent behaviour.
- pointer documents — already named by isPointerDocument, which this check did
  not consult.

Both leave the denominator rather than being counted and forgiven, and the
exemption is stated in the check detail so a coverage figure that rose stays
auditable: "100% ... (excludes 7 reference/pointer docs)". Scoped to this one
coverage figure — both kinds remain on the scoring surface for every other
check, exactly as the shim exclusion in #41 was scoped to Low-Yield.

Two mistakes of mine are worth recording, because both were caught by the
harness rather than by me:

I also exempted `docs/bootstrap-templates/**`, which the brief never asked for.
Anvil's own governance surface is 18 bootstrap templates, all dated, so the
exemption emptied its denominator and an empty denominator read as 0% — turning
Anvil's own verdict from PASS to CRITICAL. verify:self-audit-proof caught it,
one turn after I loosened that proof's PR-churn normalization, which is decent
evidence the loosening did not blind it. Templates are now treated as the
governance documents they are.

The empty-denominator case is guarded separately: when every governance file is
exempt there is nothing left to measure, so the check falls back to the full set
rather than inventing a 0%.

Fleet sweep across 17 repos, before -> after: exactly one verdict moves,
lc-classic-starter CRITICAL -> NEEDS WORK. Nothing else shifts. forge stays
CRITICAL correctly — after exempting its 3 catalog entries, its two remaining
`.devagent` files are ordinary instruction docs that genuinely carry no date.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 7 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 16d10400-6079-470f-8509-febd0d314d5e

📥 Commits

Reviewing files that changed from the base of the PR and between 103448f and 740abe0.

📒 Files selected for processing (11)
  • README.md
  • docs-site/public/llms-full.txt
  • docs-site/src/content/docs/reference/cli.md
  • docs/byok-trust-model.md
  • docs/first-user-proof-packet.md
  • docs/first-user-proof.md
  • docs/getting-started.md
  • docs/proofs/current-outside-tester-send-packet.md
  • package.json
  • scripts/audit.ts
  • scripts/governance-metadata-scoping.test.ts

Comment @coderabbitai help to get the list of available commands.

@jaruesink
jaruesink merged commit 0858a53 into main Aug 9, 2026
3 checks passed
@jaruesink
jaruesink deleted the fix/governance-metadata-scoping branch August 9, 2026 19:12
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.

1 participant