Skip to content

Fix SG-0 census classification taxonomy - #2659

Merged
briansrls merged 15 commits into
mainfrom
session/silent-swift-300
May 12, 2026
Merged

briansrls merged 15 commits into
mainfrom
session/silent-swift-300

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Follow-up to #2653 / review at sha 40cead4.

Summary:

  • Removes the ungenerated C5 audit class by teaching scripts/classify-sg0-census.py to classify the temporary ComplexitySummary / nested SymbolicCost expected-value blocker as existing Class C.
  • Regenerates docs/audit/sg0-census-classification-2026-05-09.md from the current SG-0 census so the audit remains generated from A-G/STRUCTURAL only.

Test plan:

  • python3 scripts/classify-sg0-census.py
  • git diff --check
  • cargo fmt --check

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: eb6bd45b · Trigger: schedule
  • Thinking: 174s wall

Non-blocking — Strengths

  • scripts/classify-sg0-census.py The generator keeps the SG-0 classification taxonomy derived and folds the ad-hoc C5 case into existing Class C without adding a parallel authority.

✅ No blocking concerns; the changed audit output and classifier rule are consistent with the Pure Bootstrap SG-0 census discipline.

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-pro
  • Commit: eb6bd45b · Trigger: manual
  • Comparison: main @ cf28d320 ... session/silent-swift-300 @ eb6bd45b
  • Conversation: View conversation

1. Story of the diff

This PR fixes the SG-0 census classifier so a temporary Rust receipt blocked by typed expected-value carrier gaps is no longer classified as an accidental C5 bucket, but folds into the real Class C taxonomy. The script change adds that rule in the classifier data table at scripts/classify-sg0-census.py:48, and the regenerated audit reflects it by reclassifying complexity_lens_behavioral_completion.rs as C | typed expected-value carrier gap at docs/audit/sg0-census-classification-2026-05-09.md:90. The audit snapshot also updates the live census shape: lens_testgen.rs moves out of the non-test file list, lens_testgen_body.txt is counted as a hand-authored fragment at docs/audit/sg0-census-classification-2026-05-09.md:193, new hand-authored tests are included in the test bucket, and the summary totals are recalculated at docs/audit/sg0-census-classification-2026-05-09.md:200-208.

2. Invariant categories

  1. LAYER MODEL (substrate vs implementation).

N/A — the diff is an audit/classifier change only; it does not touch Dag-resident substrate types, dag.rs, cross-pass modeled facts, or new substrate variants.

  1. INVARIANTS.md + modeling-discipline.md.

Compliant — Boundary Discipline / single authority is preserved by putting the taxonomy rule in the classifier table (scripts/classify-sg0-census.py:48) and regenerating the audit output from that rule (docs/audit/sg0-census-classification-2026-05-09.md:90), rather than leaving C5 as a parallel ad hoc class.

  1. CODING.md.

Compliant — the implementation follows the data-table style already used by the script: a new regex row is added to the classification table at scripts/classify-sg0-census.py:48, with no new hidden state, object method surface, or branchy special-case helper.

  1. TESTING.md.

Compliant — this is a generator/taxonomy fix, and the same PR includes the regenerated behavioral receipt: the old C5 row becomes Class C at docs/audit/sg0-census-classification-2026-05-09.md:90, and the summary totals are updated at docs/audit/sg0-census-classification-2026-05-09.md:200-208. I do not see a need for a separate compiler behavior test because no compiler runtime behavior changes.

  1. LOCKED DESIGN DECISIONS.

Compliant — the diff does not weaken the Pure Bootstrap zero-floor target; it makes the census more faithful by separating EXPECTED_HAND_AUTHORED_FRAGMENTS at docs/audit/sg0-census-classification-2026-05-09.md:188 and increasing the visible total/untagged counts instead of hiding them at docs/audit/sg0-census-classification-2026-05-09.md:207-208.

  1. TRACKED vs UNTRACKED DEBT.

Compliant — this PR does not introduce a new scaffold as implementation; it records census debt. Where debt is not fully tracked, the audit keeps that visible, for example lens_testgen_body.txt remains — UNTAGGED at docs/audit/sg0-census-classification-2026-05-09.md:193, and the summary reports Untagged explicitly at docs/audit/sg0-census-classification-2026-05-09.md:208.

2.5. Top-down PM intent review

Compliant — the highest-level intent here is to keep SG-0 census classification honest while driving the hand-authored surface toward zero, not to make residual Rust more acceptable. The diff supports that: it fixes an invalid/accidental taxonomy bucket through the classifier rule at scripts/classify-sg0-census.py:48, preserves the fragment bucket explicitly at docs/audit/sg0-census-classification-2026-05-09.md:188-193, and reports the increased total and untagged counts at docs/audit/sg0-census-classification-2026-05-09.md:207-208 rather than semantically diluting the zero-floor plan.

3. Verdict

APPROVE

The PR is narrow and consistent: classifier authority and generated audit output move together, the old C5 taxonomy leak is dissolved into Class C, and the census remains honest about fragment and untagged debt. I found no blocking invariant or PM-intent mismatch in the changed lines.

@briansrls
briansrls merged commit d24a444 into main May 12, 2026
5 checks passed
@briansrls
briansrls deleted the session/silent-swift-300 branch May 12, 2026 04:57
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