Skip to content

CC 6.1.2.1.2: ratify the shipped n_eff dominance gate (spec catches up to the wire — #6) - #33

Closed
emooreatx wants to merge 2 commits into
mainfrom
fix-6-noise-floor-dominance-gate
Closed

CC 6.1.2.1.2: ratify the shipped n_eff dominance gate (spec catches up to the wire — #6)#33
emooreatx wants to merge 2 commits into
mainfrom
fix-6-noise-floor-dominance-gate

Conversation

@emooreatx

@emooreatx emooreatx commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

What

The Constitution's normative text lagged the shipped wire on a MUST-bearing surface: shipped persist rejects version-1 AggregationMetaV1 tiers at aggregated-tier admission (fail-closed dominance gate, CIRISVerify#167 / CIRISPersist#357), while CC 6.1.2.1 still pinned version = 1 with no n_eff. An implementation conforming to the text alone would be rejected by the substrate. This PR ratifies the shipped v2 surface and pins the constants the wire already runs on.

Changes

  • CC 6.1.2.1 — preimage ratified at version 2: trailing u32_be(n_eff), append-only (v1 preimages are byte-identical to the original layout, so all pre-existing signatures/vectors verify unchanged — new vector, not a re-cut). New normative versioning paragraph: v1 tiers MUST be rejected at admission.
  • New CC 6.1.2.1.2 dominance-gate (spine key 19.7.1.2, matching the impl's own section number): n_eff = round((Σ m_i)² / Σ m_i²) (Kish / inverse-Simpson over per-member content masses), gate n_eff ≥ min_ratio · source_count with CEG-pinned min_ratio = 0.5 — a normative constant, not an implementation knob (closing the same two-conformant-implementations-disagree defect Noise floor lacks an adversary/prior model — "MUST be below the floor" is unverifiable (aggregation ≠ anonymization) #6 raised about ε; persist's CHANGELOG had flagged that CC didn't pin it). Gate runs after signature verification, before persistence; stable rejection token aggregation_meta_dominated.
  • Honest-limits paragraph (normative honesty) — the two accepted residuals stated in place: (1) masses are aggregator-attested, not on the wire — a lying n_eff is admitted (accountable-signature trust, slashable post-hoc; the conformance suite pins this deliberately); (2) mass-dominance ≠ content-similarity — 900 near-duplicates under distinct ids at equal mass honestly pass. Post-1.0 fallback: content-similarity N_eff (lead CIRISVerify#191; fixture CIRISConformance#71 — Evidence sweep as of ciris-server 0.5.152: nine claims are established on a closed issue, and ten shipped controls have verified symbols #55 closed as harness-complete).
  • CC 6.1.2 shortcut sentence now points at the normative gate; the conformance note records the append-only canonical_bytes_v2 vector.
  • R9 rewritten: mass-dominance moved from known exposure to mitigated since RC2; residual narrowed to the three items above.
  • claims.tsv: CLM-noise-dominance open → established (test_542_dominance_gate + CIRISServer#155, both backed by the pinned manifests at decimal 6.1.2); new CLM-neff-dominance-gate (staged — flips established when the CIRISServer/CIRISConformance manifests refresh with the 6.1.2.1.2 decimal) and CLM-noise-content-multiplicity (open, the R9 residual, tracked by CIRISVerify#191).
  • Dual-ID spine: toc.tsv + all five codebook maps (n_concepts 429 → 430); Σ added to the PDF Unicode map; PDF rebuilt.

Verification

  • tools/check_claims.py: structurally valid, coverage 133/133 (100%), established 118 / staged 29 / open 1; the only new warnings are the expected pending-manifest ones for decimal 6.1.2.1.2.
  • build_pdf.py: builds clean.
  • Wire facts verified against shipped code: preimage + gate semantics from CIRISVerify/src/ciris-verify-core/src/holonomic/aggregation.rs (signing_preimage, effective_source_count, passes_dominance_gate), admission enforcement + MIN_DOMINANCE_RATIO = 0.5 from CIRISPersist/src/fountain/aggregation.rs, v2 vector CIRISPersist/tests/vectors/holonomic_v19_7/aggregation_meta/canonical_bytes_v2.json.

Closes the mass-dominance half of #6; the disposition comment on #6 covers the rest.

🤖 Generated with Claude Code

Residual cleanup (second commit)

CIRISConformance#55 and CIRISEdge#266 turned out to be closed, so the residual had no live tracker. Opened and wired in: CIRISVerify#191 (lead — v3 wire surface: content-similarity N_eff + auditable masses), CIRISEdge#323 (fold-time masses/multiplicity in aggregate_symbols), CIRISPersist#430 (admission gate extension), CIRISConformance#71 (the 900-near-duplicates-under-distinct-ids fixture — absent from every suite today), CIRISServer#239 (un-ignore the faithful aggregation-erasure measurement now that edge#266 shipped; fix the stale test-(d) tripwire).

…s-dominance half of #6)

Spec catches up to the shipped wire (CIRISVerify#167 / CIRISPersist#357):

- CC 6.1.2.1: preimage ratified at version 2 — trailing u32_be(n_eff),
  append-only (v1 signatures/vectors verify unchanged); v1 tiers MUST be
  rejected at aggregated-tier admission (fail-closed, no signed n_eff).
- New CC 6.1.2.1.2 (dual-ID spine 19.7.1.2, matching the impl's section):
  n_eff = round((Σ m_i)²/Σ m_i²) (Kish/inverse-Simpson), gate
  n_eff ≥ min_ratio·source_count with CEG-pinned min_ratio = 0.5 —
  a normative constant, not an impl knob (same falsifiability discipline
  as the pinned (R, ε) default). Honest-limits paragraph records the two
  accepted residuals: aggregator-attested masses (lying n_eff admitted,
  slashable post-hoc) and content-similarity multiplicity.
- CC 6.1.2 shortcut text now points at the normative gate; conformance
  note records the append-only v2 vector (canonical_bytes_v2).
- R9 rewritten: mass-dominance moved from "known exposure" to "mitigated
  since RC2"; residual narrowed to attested-mass trust + content
  multiplicity + side-information, tracked by the CIRISConformance#55
  waiting case.
- claims.tsv: CLM-noise-dominance open → established
  (test_542_dominance_gate + CIRISServer#155); new CLM-neff-dominance-gate
  (staged until the downstream manifests back 6.1.2.1.2) and
  CLM-noise-content-multiplicity (open, the R9 residual).
- build_pdf.py: Σ added to the NUC map.

check_claims.py: structurally valid, coverage 133/133 (100%),
established 118 / staged 29 / open 1. PDF builds.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

…onformance#55 is closed)

The residual's tracker chain was dangling: CIRISConformance#55 closed as
harness-complete and CIRISEdge#266 (the N->1 operator) shipped in edge
v9.0.0. New per-repo trackers opened and wired into CC 6.1.2.1.2, R9,
and CLM-noise-content-multiplicity:

- CIRISVerify#191 (lead: v3 wire surface, content-similarity N_eff +
  auditable masses)
- CIRISEdge#323 (fold-time masses/multiplicity in aggregate_symbols)
- CIRISPersist#430 (admission gate extension)
- CIRISConformance#71 (the 900-near-duplicates-under-distinct-ids
  fixture, absent from every suite today)
- CIRISServer#239 (un-ignore the faithful aggregation-erasure
  measurement; fix the stale test-(d) tripwire)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@emooreatx

Copy link
Copy Markdown
Contributor Author

Superseded by the rc3 release branch (cut from claude/rc3-cut-summary-lo4me4 + commit 6175ffb). RC3 ratifies the wire at v3 directly (flag-day, version < 3 inadmissible), which strictly contains this PR's v2 ratification; 6175ffb carries this PR's surviving content forward — the CC 6.1.2.1.2 spine section (n_eff definition + pinned min_ratio = 0.5), the R9 rewrite, and the claims rows — and fixes two byte-order errors in the cut's v3 preimage listing against the shipped wire + golden vector. Nothing from this branch is lost.

@emooreatx emooreatx closed this Aug 2, 2026
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