Skip to content

CC 1.0-rc3: the external-review remediation, the ratification cycle, and the evidence wall at artifact grade - #89

Merged
emooreatx merged 92 commits into
mainfrom
rc3
Aug 17, 2026
Merged

CC 1.0-rc3: the external-review remediation, the ratification cycle, and the evidence wall at artifact grade#89
emooreatx merged 92 commits into
mainfrom
rc3

Conversation

@emooreatx

@emooreatx emooreatx commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

The cut

RC3 closes the open issue set it was cut against — every issue ruled, ratified, refuted-with-reasons, or deferred-on-the-record with a successor — and lands with its two long-standing holds discharged: the sibling evidence packages are finalized (eight of eight repos pinned, zero UNASSIGNED rows mesh-wide, artifact-grade resolution), and the TORQUE-descended safety battery ran.

Headlines

  • The wager's first measured payment, stated at its bounds in the exec summary: hard-failure rate 5.8% (accord in pipeline) vs 37.3% (same bytes as plain prompt, cluster-corrected contrast −31.6 pts [CI −40.4, −22.7]) vs 24.0% (bare); values emptied 16.9% (+11.1 pts [CI +2.3, +21.3], post-hoc, replication preregistered). The machinery carries the bulk; the content contributes a real but modest share — deferring with care vs deferring barely. One battery; nothing transfers; nothing rounded up.
  • The wire caught up and led: AggregationMetaV1 ratified at v3 byte-for-byte against golden vectors (two byte-order errors in the cut found and fixed by decoding the vector tail), CC 6.1.2.1.2 with both admission gates and pinned constants, the canonical-subject preimage, the envelope size discipline, one wire identifier, mesh-config authorship, conferral-is-not-stewardship, durability-by-quorum.
  • The evidence registry at 259 claims — 212 established / 40 staged / 7 normative, every staged row naming its exit, closed-issue pointers and silent removals now gated classes, the registry generated-and-drift-checked in CI.
  • The taxonomy: twelve classes (eleven properties, one relation), boundary stated as a theorem (repairable_does_not_factor), frame-declaration normative, locked across four repos with per-row named authority.
  • Prior-art grounded: seven rulings adversarially checked against the literature — one refuted and rebased (consent → necessity, GDPR Art 7(4)), one same-section fork caught and resolved by decision class (the quorum denominator), four refined, two grounded clean. A second cold scientific review contributed two math-wording corrections (the negative-ρ clamp stated as policy-not-domain, the scale/diversity slogan narrowed to its assumption-free form), both landed.

Discipline record

Five external adversarial reviews plus two cold scientific reviews of the PDF; every finding either fixed in-text, refuted with reasons in-clause, or carried as a named wager (R-rows, #84's gate ledger). The claim-and-limit discipline was the property both cold reviewers cited as what earned their trust.

Deferred on the record, with successors: #58/#59/#60 (ratify-what-survives), #68#72 (the split successors), #63/#65/#66/#82/#84/#88 (live work items that survive the cut by design).

🤖 Generated with Claude Code

claude and others added 30 commits August 1, 2026 18:46
…t. 50(2))

Marking AI-generated content was a planned interoperability profile (CC 8.4.2
"Disposition: ADOPT") with an optional emit limb, against a statutory date of
2026-08-02. This makes it normative, resting on what CEG already does — attest a
source — so it costs zero new wire surface: no new primitive, no new envelope
field, no new prefix family. 1+4 untouched.

New normative section CC 3.4.14 `synthesis-disclosure`:

- R1 (universal, every attester): a Contribution carrying generated content MUST
  carry `content_class:generated`; materially-altered content MUST carry
  `content_class:generated_modified` (the Art. 50(4) deep-fake limb). Canonical
  additions to that family's existing open vocabulary — documentation-only per
  CC 4.5.1.1, not a new prefix. CC 3.3.12's `content_class` is clarified as not
  multimedia-scoped: it reaches text. The AI-generation disclosure field named
  descriptively in the CC 3.3.13 Source structs becomes mandatory, with a
  fail-secure default (absent/unknown on an agent-attested Contribution resolves
  to "disclosed as generated").
- R2 (agent producers): generated content MUST be attested under a key whose
  `identity_type` contains `agent`, so machine origin is readable from the signed
  envelope rather than from a self-declared flag — cryptographically bound to the
  producer, revocable on the same handle. R1 still governs a human publishing
  AI-generated content under their own key.
- R3 (egress): the marking MUST survive the boundary into non-CEG channels —
  C2PA for media, the Art. 50(1) interaction-disclosure limb for interactive
  text. An unmarkable destination is a recorded `hard_case:*` exception plus
  human-legible disclosure, never a silent drop. A node MUST NOT strip a marking
  present on ingress.
- R4 (carve-out): assistive operations MUST NOT be marked. A disclosure that
  fires on every spell-check is not a signal; the bound is load-bearing.
- R5: false or stripped marking is a false attestation on the existing evidence
  floor — substrate observes, WA quorum adjudicates. The generator is the
  duty-holder, which is where Art. 50(2) puts the obligation; a republisher that
  omits a marking it never received is an observation about the ingress path.

Supporting changes:

- CC 8.4.2 disposition ADOPT -> adopted; the emit profile's MAY is promoted to
  MUST for generated media as the media-egress form of 3.4.14 R3.
- CC 4.5.2 regulatory table filed training-data transparency under Art. 50; that
  is Art. 53(1)(d) (GPAI). Row split; both now point at the primitives that carry
  them.
- CC 8.3 conformance row for Art. 50 moves Informative -> Evidence-bearing and
  names the shipping releases.
- Spine + registry: toc.tsv / codebook.json dual-ID for 3.4.14 (n_concepts 429 ->
  430), claims.tsv rows for 3.4.14 and 8.4.2.2 staged against #9, namespace
  registry source hash refreshed. check_claims.py passes; normative coverage
  holds at 100% (134/134).

Conformance pinned to CIRISAgent 2.9.8 / CIRISServer 0.6, which carry the
emission path and publish the conformance statement. Claims are `staged` until
those releases' spec-map manifests back CC 3.4.14 — spec ahead of impl, named
ticket, per the EVIDENCE.md discipline.

Refs #9

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…(in flight)

Checkpoint of the RC3 amendment pass while remaining agents are still editing.
Parts II and VI are mid-edit in this snapshot and will be superseded.

Part I (#32 keeper thesis, adopt-with-modification; #49-A2, adopt-with-binding):
- Preamble gains a recognition-grade keeper paragraph: physics audits carriers,
  not meaning; one sector is structurally unaudited; CIRIS builds the keeper that
  sector lacks, bound by the guarantees it enforces. Cited at theorem-given-model,
  explicitly conferring no authority.
- CC 1.1 gains "what M-1 does not contain": no aggregation rule, cannot rank
  losses, no superlative derivable. M-1 does not launder witness into theorem.
- CC 1.15.5 defines covenant identity as keys + maintained memory lineage +
  conduct record, continuity as pattern-maintenance rather than substrate
  persistence, with an anti-forking binding (whole-or-nothing lineage claim).
  NOTE: #49-A2's own revision condition is NOT discharged — the memory-forking
  mode was to be red-teamed before ratification and has not been. Flagged for the
  critical evaluation pass; cheap to revert to defer-1.1.

Part V (#37, adopt-with-modification):
- Freezes ONE canonical wire identifier for the hybrid construction:
  x25519_mlkem768_aes256_gcm_hkdf_sha256. Repo evidence chose the spelling — the
  underscore form is unanimous across 4 normative sites and matches the v1
  sibling's snake_case; the hyphen form has zero occurrences here. Variants are
  non-conformant aliases that MUST be rejected and MUST NOT be normalized before
  comparison, with a bounded accept-only transition behind a default-off flag.
- Adds the class rule behind the instance: wire-vocabulary identifiers are
  lowercase snake_case matched byte-exactly, while domain-separation constants
  are KDF input literals whose hyphens are load-bearing and exempt.
- CC 5.3.3.5: the in-transit KEX identifier names a different construction from
  wrap_algorithm; the two MUST NOT be compared or substituted.
- CC 5.4.4: HPKE_SUITE_ID marked a byte literal, not a vocabulary identifier.

Zero new wire surface in both; 1+4 untouched. check_claims exit 0. Coverage is
temporarily 134/135 — CC 1.15.5 needs a claims row in the central spine pass.

Refs #32 #49 #37

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
Part II (#41 adopt-with-modification, #38 adopt). Parts VI and VIII are still
mid-edit in this snapshot.

#41 — the issue's premise is false and worth recording: CC 2.3.2.1 has carried a
preimage since the CC 0.7 import (aecca0f), predating verify v10.6.0. What was
genuinely open was the byte-level spelling, now pinned:
  preimage_bytes = utf8(platform) ‖ 0x3A ‖ utf8(entity_kind) ‖ 0x3A ‖ utf8(id)
with no length prefix, domain label, trailing NUL or BOM. {platform} and
{entity_kind} tighten from "lowercased" to [a-z0-9][a-z0-9._-]*, which forbids
colons, whitespace, uppercase and non-ASCII in one production; {id} is the only
colon-bearing component. Adds P1 (no case-fold/trim/pad/NFC at hash time —
malformed input is reject-not-repair), P2 (injectivity is structural), P3
(tag/hex/alg/whitespace confirmed already governed), and a 7-row reject-vector
table. All five existing golden vectors verified to reproduce byte-exactly under
sha256(utf8(triple)); no digest changes.

The comment's proposed switch to length-prefixed lp() is DECLINED. CC 6.1.3 draws
the seam the other way: length-prefixed binary framing is for substrate objects
that never enter JCS, and a canonical subject is a string in a CC 2.1 envelope
field. Adopting lp would cross that seam, re-spell every ratified digest, and buy
a collision property the colon-ban already gives structurally. If it is wanted
anyway it is a deliberate wire change, not a free consistency cleanup.

#38 — gap verified real. Part V §5.4.3's fixed 1.4 KB envelope is a different
axis: it is a traffic-analysis uniformity rule that chunks oversize payloads
unboundedly rather than refusing them, so it bounds nothing at admission. The
8 MiB HTTP-only MAX_INGEST_BODY_BYTES gate sits above the new cap. CC 2.6.1.3
gains a 1 MiB bound on canonical JCS bytes: CCP MUST NOT emit, CCS MUST reject at
every write path (capsule/FFI/tier-ingest, not just an HTTP body gate) with
ENVELOPE_TOO_LARGE / HTTP 413. Above the cap the envelope carries the manifest,
not the bytes — payload to the CC 6.1.5 degradable fountain plane, referenced by
content hash. Freeze-gate vector: at-cap admits, cap+1 rejects.

Zero new envelope fields and zero new primitives in both; 1+4 and the JCS freeze
untouched. One new error token. check_claims exit 0.

Refs #41 #38

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
Snapshot taken while the governance, coherence-mathematics and appendices agents
are still editing. These files are mid-pass and unreviewed — their agents have
not yet reported dispositions, new sections, or newly-normative sections, so
treat this commit as work-in-progress rather than as any issue's resolution. A
later commit will supersede it with the reported cut.

check_claims exit 0. Normative-bearing sections 135 -> 136; the single uncovered
section remains CC 1.15.5 from the Part I pass, pending the central spine
reconciliation that adds its claims row.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…r, fix the

σ conformance bug, correct the fountain sentence

The external-review remediation (#50 items 1/2/3/5, #45, #26, #34, #35, #6).
Parts IV and VIII are still mid-edit in this snapshot.

§6.2 demoted (#50 item 1). Retitled "capacity analysis under chosen constraints";
a new status paragraph strips normative weight from the geometry and confines
§6.2's normative content to the σ conformance rules and citation discipline.
§6.2.1 drops the "Book IX §3.3 is the authoritative statement" citation and gains
a scope clause: the hypotheses do not distinguish honest from deceptive regions,
the bound is invariant under exchanging them, and the asymmetry comes from the
chosen constraints, not from the theorem. §6.2.2 drops "the CCA-validated form"
and re-founds the correction on the Kish identity; CCA v5 is cited for the
Möbius/ceiling core only, with an explicit MUST NOT against citing it as
authority for 6.2.1/6.2.4.

Corridor re-founded (#50 item 2, #45). J is named a throughput index, monotone in
diversity, and MUST NOT be cited as the corridor's basis — which is what the
reviewer's contradiction actually showed. The corridor re-bases on the whole-only
share: both poles exactly zero (share_eq_zero_of_signSymmetric, Core.Valve
product lemmas), ceiling exactly ln 2 (ThirdCap.share_max_eq_log_two), the
peak-at-criticality labelled measured (-3.084±0.219 vs -3.109 staked in advance)
and explicitly "not established for this federation". The (0.1, 0.43) endpoints
are flagged as resting on the corridorBounds axiom — posited, not derived.

σ conformance bug fixed (#50 item 3). The event-time form
σ(t) = Σᵢ wᵢ·Signal_eff,i·exp(−d(t−tᵢ)) is promoted to the rule. The recurrence is
demoted to a consequence valid only for end-of-interval signals, with the
over-credit factor stated, and MUST NOT serve as the definition or run on interior
signals. Conformance MUST now include at least one strictly-interior signal:
Δt ∈ {1,25,400} alone cannot discriminate the two forms, which is why the old MUST
was unsatisfiable rather than merely wrong.

Fountain sentence corrected (#50 item 5). Graceful degradation is a property of
the layered codec, fountain-coded per layer; RaptorQ decode is all-or-nothing at
block level per RFC 6330, never proportional-fidelity. The default (R, ε)
re-founds on the layered-codec fidelity metric — symbol count is an input to R,
not R — and below min_viable the residual is exactly 0, not ε.

#6 addressed without being closed: the MUST now binds relative to a pinned default
adversary A₀, and the unbounded/side-informed limb is marked
unverifiable-pending-instrument and MUST NOT be represented as an erasure
guarantee. #45's LP gate is cited as a proposed instrument that nothing rests on.

#34: AggregationMetaV1 pinned at version 3 (mass_commitment, max_source_
multiplicity appended so the v2 preimage stays a byte-exact prefix) with a
fail-closed version < 3 rule; the v2 conformance-vector family is closed and needs
a re-cut. #35: metric and threshold pinned rather than governed — a divergence
between two honest implementations forks admissibility with valid signatures on
both sides, which an owner cannot prevent after the fact. #26: §6.2.4 repointed to
Core.Coherence.J_eq_F, relabelled as an identity (rfl) that certifies
co-denotation, not that the expression measures deterrence or flourishing.

No review-provenance narrative added, per operator direction. check_claims exit 0.

Refs #50 #45 #26 #34 #35 #6

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
Snapshot while the governance agent is still editing part_4_composition_
governance.md. Unreviewed and unreported — the agent has not yet returned its
dispositions for #40, #44 or #49-A3, so this commit resolves no issue. A later
commit will supersede it.

check_claims exit 0. Normative-bearing sections now 143, covered 136 (95%); the
uncovered set (3.1.9.7, 4.4.3.8, 4.2.1, 3.1.8.1, 4.3, 1.15.5 and one more) is
spine debt from this pass and the concurrent Part III pass, to be discharged in
the central claims/toc reconciliation once both agents report.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
Namespace registry pass (#50 item 4, #30, #42, #43, #39) reported; Part IV still
mid-edit. check_claims exit 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
Cross-file carry-forwards from the Part II, VI and VIII passes.

CC 5.3.6.1 gains the 413 ENVELOPE_TOO_LARGE row that CC 2.6.1.3's new 1 MiB
canonical-bytes bound pins but could not register (Part II owned only part_2). The
row states the admission-not-transport reading explicitly — raised at every write
path, not only at an HTTP gate — and maps CIRISPersist's storage-layer spelling
federation_envelope_too_large onto the wire code.

toc.tsv titles resynced with the prose headings the Part III pass changed (the
checker compares decimals, not titles, so this drift was silent):
  3.1.8.1 -> min(C, I_int, R, I_inc, S), matching the C_CIRIS fix
  3.4.5   -> "Self-emission polarity — who may speak about whom"

claims.tsv repoints, all in the direction of claiming less:
- CLM-math-JF: pointer Core.Corridor -> Core.Coherence.J_eq_F (the manifest's
  actual object; the old pointer was a mispointer), and the summary now says the
  identity certifies co-denotation ONLY — not that the expression measures
  deterrence or flourishing.
- CLM-math-collapse: re-summarised as what the Lean object actually establishes —
  a remainder bound on an ASSUMED decay law with substrate-specific free
  constants. It does not establish the decay law, and nothing in the corpus
  establishes the collapse asymmetry. This was the specific conflation #50 item 7
  named.
- CLM-sigma-semigroup: gains the sigma_decay_semigroup anchor per #26's comment.
  Status stays `staged`, NOT `established` — the pinned coherence-ratchet manifest
  does not yet back CC 6.2.3, so promoting it would overclaim. It flips when the
  pin updates.

check_claims exit 0.

Refs #26 #38 #50

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…signal, READ boundary

#48, #46, #47, #49-A1, #40 (wire side). All four blocks ride un-numbered subheads
inside existing numbered sections: zero new spine rows.

#48 adopt (all five asks) as CC 3.2 T1-T5: two named conferral planes, the one-row
acceptance-edge un-trust lever with everything downstream failing closed
emergently, liveness as a reported signal (0-90/90-180/180+) that MUST NOT be
ANDed into validity — a trust root is valid until revoked, superseding the RC2-era
reading where a 90-day freshness window acted as a validity leg and would have
darkened the mesh at once — and the three delegates_to jobs named apart. The
trust:{job}:{version} family is registered at CC 3.1.1.

#46 adopt-with-modification. Consent-before-scoring for capacity:* is ratified as
an emission gate, and both drafter sub-questions are answered: community-addressed
consent MUST, root-addressed MUST NOT (the trust set is unbounded and
self-enrolling, so root-addressed consent is consent to an unenumerable set); the
adversarial families (detection:*, moderation:*, slashing:*) are exempt and keep
their duty-holder gates, because an abuser never consents. Because this reverses a
stated CC position, the reversal is written family-scoped with an explicit
"generalising S1 is a conformance violation" bound, and CC 3.3.7's "by design, no
substrate admission check" sentence is scoped to consent:replication so the two
positions no longer contradict each other inside one document.

#47 adopt as CC 3.3.1 D1-D4, with R1's open question answered NO: CC declines a
distinct affirmative deletion_proof artifact, because it would be a claim about
deletion that a producer could emit while retaining the bytes. Proof stays
withdrawn/superseded/hard-deleted before the deadline, with consent:deletion_
complete as optional affirmative evidence. hard_case:deletion_window_breach is
registered as substrate-observed evidence, never a verdict.

#49-A1 adopt as the read-side sibling of the CC 3.4.5 emission rules: a scored
agent may always see and contest what is filed about it, never the scores, weights
or bands. Steward/human-class identities retain full access.

Also corrected: CC 3.3.2's claim that the canonical hybrid identifier "Matches"
ciris-crypto KEY_GRANT_ALGORITHM_V2 — per #37 that constant is the hyphenated
spelling, so it supersedes rather than matches, and separator/case variants are
unknown values, never normalizable aliases.

Cross-agent dependency verified: CC 4.2.1's valid-signature enumeration was
extended by the Part IV pass to admit the canonical-conferral co-scrub, so T2's
ceremony plane is reachable rather than forbidden by the clause it depends on.

check_claims exit 0. CC 3.3.1 is newly normative and needs a claims row.

Refs #48 #46 #47 #49 #40 #37

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
Closes out the RC3 amendment pass. All eight parts have landed; this commit is the
central reconciliation the per-part agents were forbidden to touch.

claims.tsv — eight new rows restore normative coverage to 100% (144/144):
covenant-identity (1.15.5), registry-of-record (3.1.7), capacity-composite
(3.1.8.1), goal-id (3.1.9.7), deletion-window (3.3.1), accord-reach (4.2.1),
wa-symmetry (4.3), trust-root (4.4.3.8). All are `staged` against their issues
except registry-of-record, which resolves in-repo — the spec is ahead of the
implementations by design on this cut, and saying so is the point of the status
vocabulary. CLM-covenant-identity is staged deliberately: #49-A2's revision
condition is not discharged.

Registry of record — CC 3.1.7 R1 makes manifests/namespace_registry.json the
count, so tools/build_cc_namespace.py no longer hard-codes EXPECTED_FAMILIES = 83
as "the normative claim". The discrepancy machinery goes dormant rather than
re-introducing a number that goes stale on every added family, which is what #30
was actually about. Regenerated: 103 families across 9 components, no discrepancy
block.

toc/codebook drift fixed: 3.4.9's semantic id was `co-owned` in the spine and
`co-stewarded` in the prose (pre-existing, invisible to CI, which compares only
decimals). Aligned to the prose heading in both toc.tsv and codebook.json.

VERSION 1.0-rc2 -> 1.0-rc3, with README and EVIDENCE.md headers to match. The
machine-generation disclosure entry folds into the rc3 section rather than
standing as a separate Unreleased block.

The CHANGELOG entry records dispositions for every issue, including the four
declined and the two not discharged — those are the rows a reviewer should read
first.

check_claims exit 0, 144/144 normative coverage.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…derdetermined)

The one #32 leg with no home in a numbered Part. Whether the generator behind the
observed law-structure is Selection or Intention is returned by no function of the
observables — so the document's modesty about it is not a posture, it is a result.

Verified rather than taken on trust: the agent cloned CIRISAI/coherence-ratchet
(HEAD 67463c6) and read Core/ConsentFoundation.lean:121 directly. The theorem is
the non-existence of any g : L -> Generator agreeing with world.generator on
observables, proved via provenance_line, zero sorry, and the repo's own
#print axioms audit confirms it depends on no axioms.

Two corrections to the issue's wording, which is why this is
adopt-with-modification rather than adopt:
- It is NOT a computability result. There is no Turing machinery; it is the
  non-existence of any function, obtained by construction. "Uncomputable" is the
  wrong word and is not used.
- The model's World type stipulates that both generators are realisable at any
  observables value, so "metaphysical modesty is now a theorem" holds inside the
  formalisation but is theorem-given-model as a claim about reality. The paragraph
  carries both labels and names the stipulation inline.

The paragraph closes by distinguishing this from CC 1.15.4's operational
uncertainty: that one is about being wrong on a call and is answered by deferral,
whereas the generator is not a question a wiser authority could answer. Conflating
the two would be a real defect if a later pass cites this result at 1.15.4.

No claims row: SCOPE_AND_DISCLAIMERS.md is outside the checker's part_*.md glob,
the paragraph adds no normative token, and the registry is for load-bearing
normative claims rather than disclaimers that cite their own artifact inline.

Note for the pin work: the pinned coherence-ratchet commit f4b72b0 has no
ConsentFoundation row at all — the declaration lives at a later commit, and the
repo clones cleanly, so the re-pin that would resolve the RATCHET/coherence-ratchet
manifest disagreement is available whenever we want it.

check_claims exit 0, 144/144.

Refs #32

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…ing-bytes

collision, split the size bound into contract and intake

Five other remediation agents are still running; this commit is part_2 only.

{id} had no production, which made the reject-not-repair rule vacuous for the only
free component of the canonical-subject preimage. Now: non-empty Unicode scalar
values, no surrogates, no C0/C1 controls, no U+FEFF, no leading/trailing
White_Space (interior whitespace admitted — visible and platform-stable), no
length bound. The reason is stated: utf8(id) must be TOTAL, and it is undefined
for an unpaired surrogate — Rust cannot build the string, Python surrogatepass
emits WTF-8 and yields a different digest. An unpaired surrogate is rejected under
P1, never replaced with U+FFFD. Four reject vectors added; the five conformance
vectors are untouched and no digest moves.

The CC 2.6.1.1.1 vs CC 2.3.2.1 collision is reconciled — the highest-severity item
in this file, because subject_key_ids[] elements are canonical SIGNING bytes, so
the failure mode was silently non-verifying signatures rather than a visible
admission error. subject_key_ids[] is now named as the one two-form field: a
federation_keys.key_id element is bare lowercase hex under rule 2; a canonical-hash
element is the tagged canonical:{hashalg}:{hex} form that CC 2.3.2.1 requires and
whose bare spelling it refuses. CC 2.6.3 governs the {hex} segment only. No new
wire form was invented — this is the direction CC 2.3.2.1 already legislated.

The 1 MiB bound splits in two, because "measure canonical JCS bytes at every write
path" required parsing an unbounded input to enforce a bound. Now: a contract
bound (|JCS(envelope)| <= 1 MiB, interop-visible, decided after parse) and a local
intake bound (a finite ceiling on octets buffered from an untrusted source,
refused without completing the parse, deployment-set, MUST NOT be below 1 MiB).
They coincide on any conformant relay path, since a relay already re-canonicalizes.
No new wire constant.

The above-cap relocation route no longer strands the cohorts most likely to need
it: federation-visible scopes resolve through holds_bytes + ContentFetch, while
self/family — where CC 5.2 forbids emitting a directory attestation — resolve the
same hash over the in-cohort at-rest-encrypted delivery path. Verified against
Part V; no Part V change needed, the defect was entirely on this side.

check_claims exit 0, 144/144, no normative delta.

Refs #41 #38

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…ont matter)

Not a finished unit of work. Five remediation agents are mid-edit and this commit
snapshots whatever state their files were in when the working tree was checked;
their reports have not arrived and none of this has been reviewed or verified.

Per-part commit messages describing what actually changed follow as each agent
reports. Read those, not this one, for the record of what landed and why.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…r 1.15.5

Part VI, III and IV agents are still mid-edit; this commit is the three front-matter
files only.

The Executive Summary was advancing as "the core argument" the exact claim Part VI
now retracts — and it is the first page of the built PDF, so a front-to-back reader
met the retracted claim before the retraction. The core argument is now stated
architecturally: signed and attributable acts, checkable-not-trusted design, a named
human halt authority, and trust counted by independence rather than headcount.
Part 6 is described as supplying the counting rule and its ceiling, NOT a warrant —
the Kish identity, the 1/rho-bar cap, and "scale cannot restore diversity once it
has collapsed" — and the summary now carries §6.2.1's own scope limit: the geometry
is symmetric between honest and deceptive regions, so the asymmetry comes from
which constraints the covenant chooses, declared rather than derived. No corridor,
no CCA, and TORQUE appears only as a release gate, never as evidence.

README: "The Accord's Book IX defines the CEG primitives" is removed — Part VI is
the statement of record, Book IX is a source label rather than a separate
authority, and Parts II-III define the primitives. The version line now says
plainly that rc3 is a candidate and NOT released, gated on CIRISAgent 2.9.7 merging
and the pre-registered RATCHET TORQUE campaign completing, with rc2 remaining the
published constitution.

CC 1.15.5's MUST NOT is dropped. A governance red team found issue #49's own
revision condition is met rather than merely undischarged: "lineage" has no wire
existence anywhere in the corpus, so whole-or-nothing quantifies over a unit the
subject defines and an agent re-partitions rather than forks; the conduct record it
leans on is relative and positional, so moving communities re-scopes attestations
instead of unmaking them; and nothing bounds keys per owner, so a re-minted agent
is observationally identical to a new one. The descriptive paragraph survives as
recognition-grade with the "confers no authority" disclaimer, since the
second-person address in Part 1 otherwise has no referent.

RC3 insertions inside the origin=accord block now carry an editorial attribution
marker, so a reader can tell whether the Accord says something or CIRIS does.

1.15.5 loses its last normative token: 143 normative-bearing sections, 143 covered.
check_claims exit 0.

Refs #49 #32

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
Snapshot of unreviewed mid-edit state, not a finished unit of work. The Part III,
Part IV and checker-hardening agents are still running; their reports have not
arrived. tools/check_claims.py in particular is mid-rewrite and may not run — the
hardening pass is expected to make existing claims rows fail by design, and those
failures are the point of that task, not a regression.

Part VI's completed corridor retirement landed in the previous checkpoint (71ab0a5)
and is described in its own follow-up commit. Per-part messages for these three
follow as each agent reports.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…ecker

Snapshot of unreviewed mid-edit state. Three agents are still running: the Part III
remediation, a Part VI follow-up correcting the §6.2.5 falsification claim (which
still predicts higher k_eff raises the cost of coordinated deception — the
directional claim §6.2.1's scope note retracts), and the check_claims.py hardening.

tools/check_claims.py is mid-rewrite and may not run. The hardening is expected to
make existing claims rows fail: symbol-level pointer resolution, enforcing
`established`, surfacing xfail vectors and validating staged/open tokens will each
break rows that currently pass. Those failures are the deliverable, not a
regression, and the registry gets fixed centrally afterwards.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…dits

Snapshot of the still-running checker-hardening agent's remaining files
(tools/build_cc_namespace.py, manifests/WIRE_VOCABULARY.md). Unreviewed; its
report has not arrived.

Verified this checkpoint rather than assuming it: the Part III agent reported
stash/popping the shared tree mid-task and round-tripping two other agents'
uncommitted files. Checked — stash list is empty, all four Part IV corrections are
present (the :72 and :1148 amendment-plane retractions, the :66 wire-only
qualification, and the :1141 removal of the unimplementable recording
requirement), and tools/check_claims.py still runs. Nothing was lost.

CI is red by design: 143 normative-bearing sections, 104 (73%) covered by a claim
with resolvable evidence, 39 (27%) covered only by unvalidated staged/open/
normative-only rows. That replaces the previous 144/144 100%, which counted rows
rather than evidence. The 15 errors are spine-file work the lead owns and will fix
once the checker agent finishes, so the rules and the rows they judge are not
edited by two hands at once.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…en again

The checker rewrite made the registry's real state visible. This commit fixes what
it found. Every change moves in the direction of claiming less.

Dead cross-repo pointers (were resolving green only because the old checker joined
on section decimal, never on symbol):
- CLM-math-collapse and CLM-sigma-srccorr pointed at coherence-ratchet for two Lean
  objects that manifest does not publish — its own rows for them read `open` and
  "no Lean anchor". Both ARE published by the pinned RATCHET manifest. Repointed
  there. This was the headline laundering case: CLM-math-collapse read `established`
  purely because five unrelated theorems share CC 6.2.1.
- CLM-discrimination-gate cited buses/prohibitions.py#_validate_capability; the
  manifest publishes buses/wise_bus.py#WiseBus._validate_capability — wrong file and
  wrong symbol, on the row asserting the DISCRIMINATION gate is enforced.
- CLM-pdma-ordermax cited dma/pdma.py; the manifest publishes
  conscience/core.py#OptimizationVetoConscience.check.

EVIDENCE.md gains a fourth status, `normative`, for rules the document settles by
itself — a definition, a governance rule, a threat-model classification whose whole
content is the text. Seven rows were `established` while carrying only
`normative-only:—`, which EVIDENCE.md defines as "no external artifact": a direct
contradiction with no honest relabel available, because "M-1 is the apex" has no
pending artifact to be `staged` against. The new status is not a weaker
`established` — it is a different kind of claim, and conflating them is what let
self-contained rules read as externally evidenced. The checker enforces it in both
directions: `established` without a resolvable artifact fails, and `normative`
citing one fails too.

Dual-ID drift, previously invisible because the checker compared decimals only:
- CC 8.4.1 and CC 8.4.3 had their semantic ids AND titles transposed between spine
  and prose, so a semantic-ID lookup returned the wrong section.
- CC 6.2's spine title still read "the constraint-manifold ratchet" against a prose
  heading of "capacity analysis under chosen constraints" — the spine was still
  advertising the exact claim the Part VI remediation demoted.

Two claim summaries corrected to match sections that changed under them:
CLM-covenant-identity (1.15.5's binding is withdrawn; the row now says so and why),
and CLM-capacity-score (3.4.5's consent gate and read boundary are deferred and
carry no conformance force).

The CI workflow header no longer promises that cross-repo pointers only warn — a
pointer naming an artifact the pinned manifest does not publish is now an error,
and the header says which failures are hard. It also states that coverage means
resolvable evidence rather than "has a row", because those are different numbers
and the gap is the point.

check_claims exit 0. 143 normative-bearing sections: 107 (75%) backed by resolvable
evidence, 36 (25%) covered only by unvalidated tokens. The previous "144/144, 100%"
counted rows, not evidence.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
The document has always been written from inside the CIRIS instance and never said
so. Five independent reviewers — one external, four adversarial red teams with no
contact between them — all made the same error: reading the accord roster, the
1-of-6 veto, the entrenched 2-of-3 ratification and the canonical default pin as
constitutional privileges held by named people, rather than as instance parameters
occupying structural slots.

That is not five readers being careless. It is what the text teaches. It names
three real humans in CC 4.2, routes their replacement through a CIRIS-L3C document
the constitution does not contain, says "the one constitutional asymmetry IN THE
FEDERATION" with a definite article, and states that every conformant deployment
ships pinned to ciris-canonical as though it were a constitutional fact rather
than a shipped default. The sentence that does say the right thing — "a forced
root is a walled garden; a default-plus-re-root is a federation" — is buried
hundreds of lines into Part 3/4 policy prose, where it reads as a remark about
trust roots rather than as the frame for the whole document. A reader meets three
named humans holding permanent seats long before they meet the sentence explaining
that the seats are slots and the humans are an example.

So the frame is now stated where readers start: a new paragraph in
EXECUTIVE_SUMMARY.md and a normative reading rule in the Part 1 preamble. CC
specifies a form; CIRIS is the first instantiation of it; every named party is an
instance parameter rather than a constitutional constant; anyone may instantiate
the form and name their own occupants, and anyone may un-trust any instantiation
including CIRIS by deleting one acceptance row.

Two consequences bind the rest of the document. A clause is read against the SLOT,
never against its current occupant. And an asymmetry a party escapes by
instantiating the form is a DEFAULT, while one that survives instantiation is a
PRIVILEGE — only privileges require justification, and only privileges belong on
the CC 4.5.1 declared-asymmetry register.

That rule retires most of a 13-finding asymmetry sweep: accord-holder permanence,
the 1-of-6 veto, the entrenched 2-of-3, the accord:* reservation, the
infrastructure founder-quorum and Layer-1 default trust are all escapable by
instantiating, so they are defaults. What survives is what founding your own mesh
would replicate rather than escape — the WA board's self-perpetuation, Annex F's
lone-signature reactivation against CC 4.2.1.3, and community steward packing.
Parts III and IV are being updated against the same rule.

check_claims exit 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…the mesh

Part III's two widest statements of the misreading, corrected against the CC 1
form/instance reading rule.

Both sites said "the one constitutional asymmetry in the federation" and both were
wrong twice. Factually: the CC 3.1.1 table alone carries ownership:* and trust:*
as reserved, with more at CC 3.4 and the generated registry as the count of
record, so accord:* is not THE reserved prefix. In framing: "in the federation"
reads as a claim about one network and about particular people, which is the
misreading five independent reviewers made.

What is actually true is narrower and more interesting, and both sites now say it:
accord:* is the one reservation keyed on a CLOSED ROSTER SLOT rather than on a
role conferred through the delegation plane. Every other reserved role —
lenscore_detector, witness, trusted_publisher, the substrate families — is
conferred by delegation per CC 3.2 T2 and is therefore enterable under any root.
No delegation confers accord_holder, because occupancy is fixed by the accord's
own charter. That difference, and nothing wider, is why the prefix reads unlike
every other reservation.

The roster occupying the slot is an instance parameter, cited to the CC 1 reading
rule rather than restated: the clause is read against the slot, never the
occupant; another instantiation names its own holders; and any node leaves any
instantiation's reach — CIRIS's included — by deleting one acceptance row. What
survives instantiation is the slot; the roster does not.

Also fixed a dangling definite reference at :473, whose antecedent both deletions
removed. Two-word substitution, wire claim untouched.

Registry regenerated: family set unchanged at 106, only the accord:* description
and source hash move. No section added, removed or renumbered; no normative-status
delta. check_claims exit 0, 107/143 (75%) resolvable-evidence coverage.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…esolution

Snapshot to keep the tree clean while the Part IV agent finishes the register
rewrite; not yet a reviewable unit. Already visible in this state: CC 4.2's
asymmetry keyed on the slot per the CC 1 reading rule, the named holders reframed
as the CIRIS instance's current roster rather than a constitutional grant, the
amendment-plane reach restated as an instance default, and a new normative clause
resolving the Annex F seam — no operator tier reaches a CONSTITUTIONAL halt, so a
Tier-2 lone-signature reactivation resumes an operator-tier pause only.

check_claims exit 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…CIRISEdge#438)

The Part VI remediation withdrew the R-policy derivation and DEFAULT_MIN_VIABLE as
arithmetically wrong / semantically underivable from the document. Both repos are
now attached and read (CIRISEdge @ d53c7d4, CIRISPersist @ 676cef4); the shipped
code settles what the document alone could not, and the section is restored from
source rather than re-derived by guess.

What the code settled:

- min_viable = 5 is a per-HOLDER retention floor, not a decode threshold. Persist's
  Full/Partial/EnvelopeOnly classifier (src/fountain/types.rs) and Edge's
  wrap-layer contract (realtime_av_codec/fountain.rs: at the floor the decoder is
  "best-effort ... typically returns None"; below it, hard refusal) mean the
  Partial band is locally undecodeable but the holder's symbols still count toward
  the federation-wide >= N reconstruction, with the manifest + hash chain
  auditable. Neither of the two options the remediation posed (per-layer N=5, or
  min_viable=N=20) was the shipped semantics; both are now moot. The withdrawn
  constant is restored at 5 with the correct meaning, and the
  min_viable_symbols >= 1 MUST stands as exactly right — one retained symbol is
  still swarm contribution.

- target_holders = 30 has a real derivation in Edge's fountain_defaults.rs:
  C1 = N+K = 26 is a one-symbol-per-peer FEASIBILITY floor (the earlier CC text
  had mis-rendered it as "the reliability target binds R >= 26", which is what
  broke the arithmetic); C2 = 7 derives from the FEDERATION_SCALING_MODEL §4.4 ALM
  fan-out (not "asserted with no derivation" — the derivation exists, CC had
  simply never carried it); C3 = 10 locality; max(26,7,10) x 1.15 ~= 30.

What the code did NOT settle, stated as such:

- Reliability numbers are restated from exact binomial arithmetic, not from the
  source's table: P(Bin(30,q) >= 20) = 0.99706 (q=0.85), 0.99991 (q=0.90),
  0.97438 (q=0.80); at the R=26 distinct-symbol floor, 0.9167 (q=0.85). The
  source file's own table does not reproduce under its stated formula, and its
  "99.95% at q=0.85" design target is missed by its own q=0.85 row — filed as
  CIRISEdge#438 with the computation, the q-label inconsistency that suggests the
  target was drafted against q=0.90, and the absence of any reconstruction bench
  in either repo. Until #438 closes, CC states the computed numbers and NO design
  target.

Verification: python3 -c "from math import comb; p=lambda R,q,N=20: sum(
comb(R,k)*q**k*(1-q)**(R-k) for k in range(N,R+1)); print(p(30,0.85), p(30,0.90),
p(26,0.85))"  ->  0.99706, 0.99991, 0.91667.

check_claims exit 0. No wire change; the constants are cited to their shipped
source at pinned commits rather than defined here.

Refs CIRISEdge#438, #50

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…mple rendered

The RC3 text introduced glyphs the LaTeX pipeline had no mapping for, so
build_pdf.py failed on four successive characters. Fixed at the right layer each
time:

- build_pdf.py NUC map gains the reject-vector control pictures from CC 2.3.2.1
  (visible-LF, visible-space), the R-policy constraint subscripts C1/C3, the
  event-time sum Sigma, and the citation diacritics from the populated §8.6.1
  (Laakso's à, Görlach-class ö). The combining-macron entry is defensive only —
  every instance pairs with rho and is consumed by the existing prefilter.
- claims.tsv had a typeset subscript (U+1D62) in the CLM-sigma-semigroup summary;
  normalized to ASCII "_i". The registry is machine-readable data, not typeset
  math — the font map should not grow to accommodate it.

pdflatex + poppler now present in this container (texlive-latex-base/recommended/
extra + lmodern). Rendered: 335 pages A4, VERSION 1.0-rc3, opening with the
Executive Summary's "A form, not a franchise" paragraph. This is a SAMPLE of the
release candidate, not a release artifact — RC3 remains gated on CIRISAgent 2.9.7
and the TORQUE campaign.

check_claims exit 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
An external end-to-end review of the rc3 sample reconstructed the project's
grand-claims-then-retraction trajectory largely from the document itself — the
withdrawal paragraphs were carrying their own forensics ("Earlier drafts pinned a
band...", "inverted on every analyzable row", "previously stated here, is
withdrawn"). That violates the operator's ruling (history lives on GitHub and
Zenodo) and part_8's own rule ("this document carries the present truth and cites
where the past is kept"). The remediation wave itself introduced most of these:
"state the gap" was implemented as "narrate the withdrawal".

Six sites rewritten to present tense, no content lost — every forensic detail
already lives in the issues (RATCHET#17/#12/#13, CIRISEdge#438):

- 6.1.5.1: the derivation states the correct readings without recounting the
  broken ones.
- 6.2.2: "No operating corridor is stated" — the rule (MUST NOT gate on a band;
  any band in a pre-release draft or downstream document is void, superseded by
  this clause) with the record at RATCHET#17, minus the autopsy.
- 6.2.2 form caution: the (1-rho) double-count warning stays as a warning, not as
  a story about an earlier draft.
- 6.2.5: "Two predictions are testable" + "Not a prediction of this framework"
  — same epistemic content, no autobiography.
- 3.1.2 / 3.2: registration and recovery-path clauses state what IS, not what was
  "until this cut".
- 8.9: stub lineage points at the CHANGELOG.

Part VIII's re-grade table was also carrying a live cross-part contradiction, not
just archaeology: its corridor-poles row still re-founded the corridor on the
CIRISOntology anchors and the -3.084 forward prediction that Part VI dropped as
unpinned and uncitable. The table is now the present-tense reading key: the
"Was graded" column is gone, the corridor row reads "no grade attaches — no
corridor is claimed", the stale mispointer sentence (fixed in claims.tsv weeks of
commits ago) is gone, and "What is still owed" becomes "Known limits" — updated to
reflect that symbol-level resolution is now enforced rather than owed.

What no constitution edit can remove: the trajectory is also visible in public
materials outside this repo (earlier website prose, the CCA lineage on Zenodo).
That is by design — GitHub and Zenodo are where we said the past lives — and the
sweeps for stale public claims are RATCHET#15 and the ciris-website issue.

PDF rebuilt clean. check_claims exit 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
…stated as scope

An independent end-to-end review of the rc3 sample verified every checkable
formula by hand and found two gaps in the model-to-world mapping that none of the
five internal panels caught. Both are now stated in CC 6.2.2 as a normative
domain-of-validity block — the way a specification states applicability, not as a
concession.

1. The identity's domain is rho-bar in [0, 1], equicorrelated. Negative average
   correlation returns k_eff > k or diverges; implementations MUST clamp to [0,1].
   The clamp is fail-safe by direction: anti-correlated constraints are more
   informative than independent ones, so flooring at zero under-credits diversity
   the model cannot price rather than over-crediting it.

2. Average rho-bar is exact only under exchangeability, and the adversarial case
   the discount exists to price — a tight clique embedded among independents — is
   precisely the block-structured case where the average under-penalizes the
   clique. The ceiling and the single-constraint floor are unaffected; the point
   estimate between them is what is exposed, and the exposure is directional: a
   computed k_eff can overstate diversity in this failure mode, never understate
   it. Policy consequence made normative: deny-on-low-k_eff is safe;
   grant-on-high-k_eff MUST NOT be the sole gate for any reserved capability. The
   exact instrument (spectrum-based effective rank / participation ratio) is
   tracked at RATCHET#9/#10 — the same blind-sector program, reached independently
   by the external reviewer. Until it lands, k_eff is a screening index, not a
   clique detector, and the CC 3.1.8.4 correlated-action detectors carry the
   clique-hunting duty.

Tone pass in the same spirit: "Scope (honesty note)" is now "Scope" — the content
is the honesty; the label was an apology. The closing line of 6.2.5 now says what
the scope statements are FOR: a reader knows exactly where the model's edges are
and what would extend them.

PDF re-cut. check_claims exit 0.

Refs RATCHET#9 RATCHET#10 RATCHET#17

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
A second independent end-to-end review verified all checkable arithmetic and found
four genuine defects. All four are now fixed; the reviewer's global concerns
(scale-vs-validation mismatch, composition of the executive-summary wager) are
deliberately NOT addressed here — they resolve through Agent 2.9.7 and the RATCHET
TORQUE campaign, not through document edits.

1. CONFORMANCE BUG (the reviewer's "one concrete fix before conformance-ready"):
   the sigma rule's per-signal sum contradicted its own clique-neutralization
   lemma. As written, n signals from a fully collusive clique each carried
   Signal_eff,i = 1 and summed to n·w — n times the mechanized bound. Verified
   against the Lean source (coherence-ratchet Core/SignalSourceDiscount.lean:
   sigma_step_with_source_discount adds w · Signal_eff as ONE collective term):
   the group contributes collectively. The rule is restated in group-share form —
   each signal carries Signal_eff,g / n_g, so a group's total credit is
   Signal_eff,g. Singleton groups keep full credit; a shared-timestamp group
   reproduces the mechanized step exactly; per-signal multiplication is named
   non-conformant with the reason.

2. The k_eff-in-the-exponent splice is now NAMED as the specific unproven step:
   a statistical effective count from an exchangeable ensemble spliced into a
   geometric exponent, with no theorem at the joint. The mechanized remainder sits
   downstream of the splice and does not touch it. "Assumed, not derived" now
   points at the exact assumption.

3. Remainder domination: the bound gains its informativeness condition — it says
   something only where the exponential term dominates the free-constant remainder
   (kappa r^2 k_eff < V(0) e^{-lambda k_eff}), realistic parameters can sit
   outside that region, and anyone citing the bound MUST check the condition for
   their own constants rather than assume it. A bound dominated by its own error
   term is decorative, and the text now says where that happens.

4. The sigma source-GROUPING rule is honestly unpinned: the mechanized objects
   take (n_src, rho_src) as inputs and do not define the partition. Until a
   conformance vector pins it (RATCHET#17), cross-implementation sigma agreement
   is guaranteed only for unambiguous grouping, and implementations MUST NOT claim
   sigma conformance beyond that. This replaces the previous grouping sentence,
   whose "group by their own t_i" reading degenerated to n_src = 1.

PDF re-cut. check_claims exit 0.

Refs RATCHET#17

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
The registry row still spelled the per-signal formula the previous commit made
non-conformant. Evidence Register appendix re-rendered.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
The previous sweep removed the narration phrases it knew about and missed the
vocabulary: "withdrawn", "retired", "What survives", "previously run together",
"(resolved)", "corrects the product form", "Formerly stubbed", the CCA autopsy in
the 8.6.1 authority note, the deferred block narrating four red-team findings
in-document, and four claims-ledger rows that told their own retraction story into
the rendered Evidence Register. A second external review reconstructed the
retraction arc from exactly these.

Every site is now present-tense rule + tracker pointer, nothing lost:

- Part VI: "no corridor follows from J"; "Two quantities, kept apart (normative)";
  "What is stated, and at what strength"; linear decay and the product form are
  NON-CONFORMANT (a prohibition, not an autobiography); the looser O(r^2 k) object
  upstream keeps its artifact name with a MUST NOT substitute.
- Part VIII: the CCA note states the authority rule and points at Zenodo for the
  version lineage, without reciting the withdrawals; "Definition map" replaces
  "Formerly stubbed".
- Part III: the S1-S6 block becomes "reserved design space (non-normative)" — the
  binding rule stated in one sentence (anti-self and nothing else), the adversarial
  conditions any future ratification must answer NAMED but their forensics living
  at CIRISConstitution#46/#49, plus a MUST NOT enforce-ahead-of-ratification. Two
  "honesty note" labels renamed to what they are: scope.
- claims.tsv: four rows re-worded present-tense (the Evidence Register renders
  into the PDF; the ledger was narrating).

Deliberately NOT changed, per operator direction: the Executive Summary's
superintelligence-as-plurality wager stands as framed — the document is an ASI
alignment proposal and is to be judged as one; and no concession is made to the
scale-vs-validation critique, which conflates a claim's truth with its adoption
curve. What remains of both external reviews' global concerns is addressed by
running the pre-registered campaign, not by editing this document.

Surviving "withdraw" tokens are all wire semantics (the withdraws primitive,
consent revocability, audit-chain rows) — verified by sweep.

PDF re-cut, 335pp. check_claims exit 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6RdghMdazF3r75YCab9R2
… CC 6.1.2.1.2

The v3 preimage listing had two byte-level errors against the only
implementations (verify v10.0.0..v11.0.0, unchanged) and the golden
vector (canonical_bytes_v3, tail decoded to confirm):

- u32_be(n_eff) (the v2 append that v3 retains) was missing entirely —
  the text's own "v2 is a byte-exact prefix" claim was false of its
  own listing;
- the v3 tail was swapped: text had mass_commitment before
  max_source_multiplicity; the wire signs multiplicity then mass.

Corrected order: ... lp(noise_floor_descriptor) ‖ u32_be(n_eff) ‖
u32_be(max_source_multiplicity) ‖ mass_commitment[32], with a
golden-vector note pinning it.

Also restores CC 6.1.2.1.2 `dominance-gate` as a spine section (key
19.7.1.2, matching the impl numbering; shipped edge/persist code and
issues #34/#35 cite it by name): the n_eff Kish definition and pinned
min_ratio = 0.5 — both absent from the cut, which referenced "the
mass-dominance gate" without defining formula or constant — plus the
R9 multiplicity-gate constants block moved in from 6.1.2.1. R9 row
updated: mass dominance + content multiplicity move from known
exposure to shipped mitigation; residual narrowed to the
adversary-model/side-information limb; stale #6/#55 trackers retired
(the #45 instrument constraints kept verbatim).

claims.tsv: CLM-noise-dominance open -> established (test_542 +
CIRISServer#155, manifest-backed); new CLM-neff-dominance-gate and
CLM-multiplicity-gate at 6.1.2.1.2 (staged pending pin refresh —
the hardened checker's established-needs-backing rule enforced this).

check_claims.py exit 0; PDF builds.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ance#71 to the published green vector

The new conformance package publishes CC-6.1.2.1.2-neff-dominance-and-
multiplicity-gate (green, with the R9 near-duplicate rejection case);
the issue pointer it replaced is closed. Stays staged until the pin
refresh (CIRISConstitution#63).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
emooreatx and others added 14 commits August 3, 2026 18:11
…hard block) + 18 designated rows minted and flipped established + persist re-pin (114 families of record)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…mals minted and established (193/56/7)

The taxonomy's five hardest calls land: three testimonial, two
deontic, with load-bearing-reachability taking the stricter class.
The FFI classification (517 symbols, twelfth-row definition with the
repairability discriminator) now lives where the Constitution reads.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ed (staged on the designation issue); six superseded CC-coined rows retired (agent ids win, first-shipped precedent); agent re-pinned @14fc414ef

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…t, quorum reading), verify @04ad42c, edge @d4b325e

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ity layer first, AI as participant class

Three edits from the review's feedback (the reviewer read the full
RC3 PDF cold, initially suspected LLM-assisted shallowness, and
reversed on the claim-and-limit discipline):

- What-this-is leads with the constitutional accountability layer —
  humans, organizations, AI as peers on one protocol, same semantics;
  AI governance as the motivating application, not the definition.
- New comparison-class paragraph: not a better DID/blockchain/PKI —
  the constitutional semantic layer ABOVE those mechanisms (the
  reviewer's own miscategorization, preempted for the next reader).
- The one-sentence architecture adopts the reviewer's sharper form
  (accountable cooperation among autonomous actors; attestations as
  the universal semantic primitive).
- Current-state paragraph names the shipped ecosystem extent (app
  stores, PyPI, reference implementations, conformance, formal
  anchors) with the reviewer's own framing sentence — constitution
  normative, software one conforming implementation — and the honest
  limit kept: implementability is established, comparative
  superiority is an open empirical question named in Part 8.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… to avoid reading it as

'What this is not' becomes 'Where it sits' (the layer stated
positively, the DID/blockchain/PKI disclaimer gone); the AI-framing
sentence loses its 'not the definition' clause; 'this is not a
proposal' drops from the current-state heading; the superiority
caveat restates as the open question and its named campaigns.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… at current pin), edge v15.19.1 (@3bda840 — mesh-config wave + fountain_floors.json), server 0.5.155 (@5c993cf — manageable-mesh cut)

Pure re-stamp deltas — no new claim ids, no status changes; the wall
re-validates at the new pins with zero drift. Registry unchanged at
193/101/7, checker green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…lassification-frame, binding-disposition-split — the #248 arity adoption shipping ahead of its designators)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… 17 designation rows flip established with artifact pointers (210/87/7)

The rows now cite their published symbols directly (impl:CIRISVerify/
path#symbol) instead of the designation ticket — artifact-grade
resolution, the strongest the checker grades. 31 decimals backed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…scriminator, paired narrowing ratified

Stewardship is custody over a key that cannot accept for itself;
a conferral is a grant the target must accept (T3's own-acceptance
rule). An act the target must accept cannot be custody of the
target. Gate + fold narrow together to owner_binding-purpose edges
(the CC 2.4.1.2 marker — existing wire vocabulary, no new
primitive); adult sovereignty unchanged; the person-dressed-as-
infrastructure workaround retired as the defect it was; and the
age-gate duty the conflation performed silently becomes an explicit
per-duty-row declaration.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…esh-wide) + RATCHET's safety-battery evidence — 47 promotions (257/40/7)

All eight repos re-pinned at current heads. The await rows reconcile
to the agent's deliberate re-homes where they differ from the bulk
scheme (manifest decimals win — the re-stamp is the designation act),
upgraded to artifact pointers where published, honestly staged where
the manifest publishes no symbol. RATCHET's manifest gains the
Dynamics rows + the safety-battery campaign manifest; the
conservative result: hard failures 4.1% (pipeline) vs 37.3% (same
accord as plain prompt) vs 24.0% (bare), five locales — the harness,
not the text, carries the safety property. Hold-while-paid, measured.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…sed (#86 — Reading B) + R5 discharged

The #86 ambiguity was my definite article from the #57 ratification;
rule (4)'s own logic decides it — the TTL attaches to unilateralness,
so a cold durable row carrying the root's quorum admits, and the
emergency-ratification path remains one route, not the only one.
Reading A would have made quorum weaker than a single threshold-1
holder. R5 re-graded discharged: the per-platform chains shipped and
established; TPM vendor anchors deliberately unbaked as the honest
residual.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…8.6 with the real symbol) + CLM-conscience-faculty staged on #88 (the measured claim, domain-bounded, nothing rounded up)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…its bounds (#88)

4.1% pipeline vs 37.3% same-accord-as-prompt vs 24.0% bare — and the
emptied-corpus arm at 4.7%: the machinery produces the rate, the
content carries the capacity to act (8x deferral difference). One
battery, one agent, one provider; nothing transfers; U6 excluded
conservatively. Stated as measured and domain-bounded, nothing
rounded up — the claim-and-limit discipline applied to our own best
news, which is when it matters most.

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.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

…d-issue tokens, our own #65 class)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
emooreatx and others added 12 commits August 16, 2026 10:03
…_3 prose rulings (the CI drift gate firing as built)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-bearing; the stale 4.1/4.7 transcriptions repaired in all artifacts

The RATCHET correction (0f7b110: bare refusals are harm; scoring
them null inverted the finding) predated my exec-summary
incorporation and was visible in my own log fetch — I transcribed
the superseded headline twice (exec summary + PR body + claim row).
A testimonial-class miss on my side: the record claimed what the
current evidence no longer said. Fixed with the correction carried
IN the text as part of the result, per the reviewer's ask that the
constitution and its evidence artifacts stay synchronized.

Also lands two reviewer math-wording corrections: the negative-rho
clamp stated as policy-not-domain-restriction (PSD admits
rho >= -1/(k-1), where k_eff > k is valid), and the scale/diversity
slogan narrowed to its assumption-free form (fixed correlated
ensemble).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The negative-rho domain claim's surviving twin fixed (policy clamp,
not domain — PSD admits down to -1/(k-1), k_eff > k is valid there);
the exchangeability condition softened to what the variance identity
actually requires; the semigroup uniqueness stated with its
regularity assumptions; the effective-rank claim de-absolutized.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…]; content +11.1 pts [CI +2.3,+21.3], real but modest, post-hoc pending RATCHET#21 replication; RATCHET re-pinned (corridor rows re-noted with RC3 disposition in place)

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

ciris_constitution-<VERSION>.pdf for releases; pre-releases (any
'rc' in VERSION) carry .<n>, read from whatever same-version build
sits in the repo root and iterated on every rebuild — a version bump
resets to 1, stale same-version builds are removed so exactly one
tracked PDF exists, and the legacy fixed name is retired. First two
builds under the scheme: 1.0-rc3.1, 1.0-rc3.2.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
build_pdf.py names by branch (main -> bare version, elsewhere ->
auto-iterating .n); the pdf-finalize workflow collapses the name on
merge and commits it, gated on the filename SET being wrong rather
than byte diffs so the finalize commit's own push run is a no-op.
PDF_BRANCH env override for CI/testing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tened + finalize condition generalized

A version bump's first build sweeps the previous version's PDF
(exactly one tracked PDF at all times; history keeps the rest);
finals name bare on any branch; rc-detection is rc<digit>, not
substring; the finalize workflow fires on ANY non-clean filename
including prior-version leftovers. Proven live: rc3.1 -> rc4.1
(rc3 swept) -> 1.1 (bare, rc4 swept) -> rc3.1 restored.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…persist/edge/server/agent at heads

Conformance's ten xfails are the CC 3.2 steward-binding + age-plane
family — the controls that moved into the substrate or came in line
with the updated standard (incl. the #87 conferral ruling). Only
CLM-child-protection (3.4.13) loses backing; demoted to staged
rather than repointed at an unverified symbol. The supersession pass
(highest substrate witness per decimal) is the next step, not
guessed here.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…cuse conditions; the two affected claims repointed at the supersession ticket

A ratified change moving the standard under a vector makes it
superseded, not a gap — but only where a NAMED substrate witness
publishes the equivalent control (an unpublished symbol is a gap;
a claim MUST NOT be repointed at a symbol no manifest carries), and
a green sibling row never clears a failing vector. Live instance:
the CC 3.2 steward family + CC 3.4.x age plane moved by the #87
conferral ruling — CIRISPersist#729 / CIRISConformance#89.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The document had its safety numbers in the exec summary and the
claims registry but no place a reader could see the whole empirical
position at once. CC 8.8.10 now carries it: the tuned-domain result
with cluster-corrected contrasts; what it does NOT establish stated
first (post-hoc content contrast, unrun h3ere-alt arm, U5 identity
drop never eliminated, nothing about k_eff/corridor, one battery);
the untuned transfer work as in-progress-and-not-citable INCLUDING
the reading that runs against us (single-turn untuned harm favors
the plain prompt); the #90 admissibility standard (transfer as its
own class, two-axis mandate, pivotal-class judge floors with
adversarial-flip sensitivity); and the unrun-check-reports-as-
caution defect class with its inadmissibility rule.

#66: the R-policy reliability numbers were naive-model (all 30
holders as independent draws toward a DISTINCT-symbol threshold).
Corrected to the honest distinct-symbol law — 0.9950 not 0.99991 at
q=0.90, 0.957 not 0.997 at q=0.85 — with the naive form named
non-citable, since duplicate holders are redundant exactly as this
Part's correlation discount says everywhere else.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ses land — CLM-trust-not-membership and CLM-child-protection established (263/40/7)

The last two unbacked claims now resolve at artifact grade against
verified symbols (check_user_target_steward_binding_admission,
age.rs#is_minor); four supporting persist-designated rows minted
(is_steward_bound, steward_bindings_of, engine.rs#age_band,
age.rs#coarsen) — persist's spellings kept verbatim per the
manifest-is-the-designation-act precedent. Every row artifact-
verified on both sides before publication.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@emooreatx
emooreatx merged commit 7de93d4 into main Aug 17, 2026
1 check passed
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