Skip to content

CC 1.0-rc4: the actor/substrate line, ledgers as content, and every row resolving - #99

Merged
emooreatx merged 11 commits into
mainfrom
rc4
Sep 3, 2026
Merged

CC 1.0-rc4: the actor/substrate line, ledgers as content, and every row resolving#99
emooreatx merged 11 commits into
mainfrom
rc4

Conversation

@emooreatx

Copy link
Copy Markdown
Contributor

CC 1.0-rc4 — the actor/substrate line, ledgers as content, and every row resolving

Six revisions since rc3, each a downstream ruling landed in-text with its reasoning so the next reader inherits it, plus the evidence lockdown. VERSION1.0-rc4; pdf-finalize collapses ciris_constitution-1.0-rc4.8.pdf to the release name on merge.

The rulings

The evidence lockdown

All eight pins at heads. The two closed manifest-tracking tickets (Conformance#59, Server#155) retired as pointers — 139 rows rewritten to the symbols and node ids the pinned manifests publish, under a strict rule (a manifest row naming a different claim id is that claim's evidence, never this one's). 270 established / 38 staged / 7 normative, zero unresolved artifacts, every staged row on an open ticket. Seven rows graduate on real artifacts; none demote. Per-repo asks filed: CIRISConformance#90, CIRISServer#536, CIRISPersist#803, CIRISAgent#1139; ciris-website#31 for the D23 rendering.

Checked under main's upgraded check_claims.py (exit 0; the ten xfails are the documented superseded-vector set).

🤖 Generated with Claude Code

https://claude.ai/code/session_01Soe9bhkYcaLeEdUGsKX6n6

emooreatx and others added 11 commits August 18, 2026 16:40
…ssion, not the addressing mode). RC4 opens.

The #91 targeted announce is unanticipated, not excepted: on RNS
transport no directed announce satisfies the purposive clause —
multi-hop path learning is outsider observation (path state a
subpoena reaches), and the epoch-bound derivation forces either a
roster-wide re-announce wave on every Add/Remove or a removed
member holding every peer's addressing forever. The flat sentence
was never broadcast-era shorthand — the same section bans the
targeted per-destination query in the same breath. The trade on
offer was a structural, claimable guarantee for a traffic-analysis-
statistical one, a claim base CEG/RET declines to make (1.13.3.1 —
the goal stands; the Anonymous Tier is its opt-in). The leak
reading's sound insight is kept in-text: in-group MLS distribution
of addressing material was never prohibited. Multi-hop scoped
reach is an amendment-plane design question with its bar stated
in-clause. VERSION bumps to 1.0-rc4; this is the first RC4
revision.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019JkKhkreWZxeTbq99HixQ5
…ack (#91 prior-art record)

Locks in the positioning the #91 survey established: the design sits
in the membership-concealment corner (MCON floor satisfied entirely
by members), realizing the 1.13.3.4 default stance. The two-plane
split (public identity plane, derived group plane) dissolves the
darknet bootstrap cost; determinism-replaces-coordination (6.1.6)
recovers log-depth ALM fan-out without the coordinator that would
have to learn the group exists. The ballot corollary is recorded
without minting a conformance surface: structural invisibility hides
the election, not just the vote. The Tor-v3/I2P blinded-retained-
state family is named as the nearest admissible relaxation for a
future multi-hop amendment, with the rotation rule explicit: clocks
global, never group-event-driven.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019JkKhkreWZxeTbq99HixQ5
…lue (#92; rc4.3 cut for persist)

Owner-serialized content, cohort-witnessed conservation: total order
in the owner's hash chain, never the grammar (CC 3.2 single-owner =>
consensus number 1, which also corrects the stance's dated premise —
the real exclusions named in-text). Nine normative clauses hardened
by a three-track prior-art sweep plus a verified attempted-systems
record: the witness cadence stated as the exposure window (SUNDR's
2004 timestamp box; CT's failed voluntary gossip makes the anchor an
obligation), checkpoints riding descent (the regulator-endorsed
shape), the deterministic byte-equal fold (Sardex's zero-sum
invariant; PeerReview's transferable evidence), fork-as-adjudicated-
slashing with mandatory restore-then-resync (SSB's unhealed fork-
death answered; Keybase's in-chain delegation as L3's shipped
precedent), Sardex's load-bearing brokers hooked to the named-
moderator invariant, Circles' rail-boundary death shaping the
netting guidance. Closed with the kernel note: bounded siblings of
famous problems, the novelty budget spent once on the deployed
two-plane kernel. CC 5.4.6 Position adopts the lightnet/darknet
name edge already carries. Spine: toc row 432, codebook cc:3.3.10.1,
two claim rows staged on #92/CIRISPersist#754. Lightnet settles;
darknet transacts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019JkKhkreWZxeTbq99HixQ5
… (F5 — the position, stated)

An assurance finding the substrate passed by behaving as designed:
an aged THOUGHT_START with no ACTION_RESULT is purged, the project
test asserts that purge, and nothing in the compliance surface said
it was deliberate. A reviewer reading only the code cannot tell
design from oversight, and was right that they cannot. The defect
was documentation; the repair is a stated position.

Traces anchor on the terminal ACTION_RESULT — no action, no trace.
Two reasons, both load-bearing: accountability attaches to acts (an
abandoned path produced no effect and created nothing to redress),
and retained deliberation is a permanent archive of unexecuted
thought that carries the conversation's humans at their most exposed
while carrying no accountability weight — pressure against the very
considering CC 1.9 requires. Ephemerality is a privacy property, not
a hole in one.

The safety argument is reduced to one attackable invariant: absence
of an ACTION_RESULT asserts no external effect occurred. So the
sweep can only ever discard deliberation that produced nothing, and
a counterexample is a defect in the emission path, never in the
purge. Stated as a named wager (#84) with its falsification
condition and dye test — a totality test over effect-producing
paths, explicitly NOT a retention test on thoughts — filed at #93.
Plus rate-observability on the purge, and the honest residual:
interrupted-path forensics is an operator opt-in, not claimed
everywhere. Spine: toc 1.13.6, codebook cc:1.13.6, CLM-trace-anchor
staged on #93. PDF rc4.4.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019JkKhkreWZxeTbq99HixQ5
Standards Action on the hash-pinned wire vocabulary. CIRISEdge shipped
MessageType::EphemeralResponse in v18.2.0 (the typed request/response
correlation that made Edge::send a working API — it had been returning
Err on success) without this amendment. The cohabitation suite's
wire-vocabulary drift gate caught it correctly: wheel-only, not in
manifest.

The placement is derived from this manifest, not chosen:

- Tier 2 is structurally unavailable to it. §3.1: "CIRISEdge holds no
  Tier-2 kind range by design... This is intentional, not an omission."
  The substrate's own reply mechanism has no Private-Use code point.
- The §3.3 ethical-primitive test is the EXIT test toward Tier 2, and
  what exits must carry a schema, canonicalization and API into a range
  steward's repo. This variant has none: edge never parses the payload
  and the canonicalization is the outer envelope's.

So Tier-1 by exclusion, stated as such in §2.9 rather than implying an
ethical weight it does not have. Count 25 → 26; the conformance gate
(test_520_wire_vocabulary) derives its accept-set from this table, so it
goes green on the hash re-pin without a hand-copied list.

Interop note, for the record: a peer on an older edge refuses the variant
at PARSE with an unknown-variant error enumerating the accepted set — so
the pre-amendment consequence was fail-closed non-delivery of typed
ephemeral replies, never a silent acceptance.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FejjcCbAbRFpLkmcgCDLEY
CC 0.7 §2.6.4: EphemeralResponse enters Tier-1 (§2.9) — Standards Action
…d the gate that reads membership)

CC enforced one direction and was silent on its converse. A node-only
key may not RECEIVE agency; nothing stopped an actor key from BEING
the infrastructure — and the live agent topology fused both onto one
key, so owner_of() resolved a person to an actor where a node was
asked for. Worse, the escape was legal in CC's own text: 4.4.3.4.3's
conformance rule fired only on node-ONLY recipients, so adding agent
to a node's role-set repealed the invariant. The loophole was spelled
as a simplification.

Six clauses. (A) node is exclusive of agent/user — a key is substrate
or actor, never both; the carve-out is at the axis, so fabric-node
co-location of {substrate_persist, steward, lenscore_detector,
witness} stands. (B) the agency gate reads SET MEMBERSHIP, never
purity — A and B are both required, since A stops a fused key being
minted and B is what protects against the ones that already exist.
(C) the actor<->node relation is entailed, never asserted: neither
party has standing (a node has no agency to confer, an agent no
authority over infrastructure), so the pairing derives from two
human-signed edges and cannot be forged by either side. (D) the
common-human predicate — exists h. h = owner_of(node) AND h in
stewards_of(agent) — existential because node ownership is
single-valued while stewardship is multi-parent; fail-closed, never
"unknown", because this axis fails by silent withhold. (E) the
enforcement seam is the NODE'S: infrastructure holding no agency is
exactly what can be trusted to refuse it, where an actor gating
itself is the constrained party checking its own constraint; refusal
by infra:attest needs no new authority. (F) fused keys are
non-conformant, not deprecated — forward-only, so history stands and
re-minting backwards would re-author every historical trace, and
still refused agency meanwhile. Multi-tenant hosting beyond
co-stewardship: deferred, not denied.

Also repaired: "infrastructure must not have agency" was cited FOUR
times at CC 1.13.5 — the operational-language gate, which says
nothing about agency — and persist inherited the bad pointer into its
own doc comments. 3.4.7.3 is now that rule's numbered home; all four
repoint. Spine: toc 3.4.7.3, codebook cc:3.4.7.3, CLM-actor-substrate
+ CLM-common-human staged on #95. PDF rc4.5.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019JkKhkreWZxeTbq99HixQ5
…(persist v38.6.0 @ffa6608)

Downstream reported that Clause D's multi-parent premise is
expressible only via steward_bindings_of's occurrence half plus one
custody claim, a second marker-bearing claim being refused
NodeAlreadyOwned. Verified in source and it sharpens two ways.

First, WHICH SET. steward_bindings_of gates the delegation half
through OwnerBindingOnly for any key that can accept for itself — an
agent — so for agents only marker-bearing custody edges anchor
stewardship (the #87 conferral-is-not-stewardship discriminator: an
unmarked delegation gives a job, not custody). Clause D now says so
normatively, because reading stewards_of as "every human who
delegated agency" would silently widen an authorization gate into a
capability list. That is the security-relevant half.

Second, CARDINALITY. Occurrence half yields at most one anchor;
custody yields at most one (second distinct claim refused at bind
time, same-owner refresh idempotent). So the premise is carried by
occurrence + one custody claim — two anchors by two structurally
different routes, never N co-equal stewards.

Consequently this section's first statement — that co-stewardship
expresses multi-tenant hosting directly and covers the
community-server case — was too broad and is WITHDRAWN in text. Two
shapes are admissible: one human at both corners, or the node owner
as the agent's identity_occurrence anchor with a second human holding
custody (expressible, but it asserts the agent IS an occurrence of
that identity — not general hosting). General hosting needs its own
conferral on the node's infra:* plane where the owner has standing.
The deferred space is most of multi-tenancy, not an exotic corner —
now correctly sized rather than quietly oversold.

Claim rows stay staged: the persist pin is b840d72 (36.1.0) and
graduation needs the re-pin at the v38.6.0 tag with 3.4.7.3 rows in
the vendored manifest. PDF rc4.6.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019JkKhkreWZxeTbq99HixQ5
All eight pins re-vendored at heads. The two closed manifest-tracking
tickets (Conformance#59, Server#155) retired as pointers: 139 rows
rewritten from section-level placeholders to the symbols and node ids
the pinned manifests publish, under a strict rule — a manifest row
naming a different claim id is that claim's evidence, never this
one's. Seven rows graduate on real artifacts (the ledger pair, reverse
quorum, age-assurance, registry-canonical, affiliations, cohabitation);
none demote — sibling manifests back every decimal Server and
Conformance do not reach. 39 staged rows, all on open tickets:
Conformance#90, Server#536, Persist#803, Agent#1139 filed as the
per-repo evidence asks. CLM-noise-N5 moves to 6.1.2. Nine toc drifts
fixed. CC 2.1: a mode shift is a superseding delegates_to, not an
accountability:* dimension (the family was never one to mint). CC
1.13.4: the RATCHET 11+1 kinds-of-change map — the 27 are the Record's
vocabulary; deep kinds want instruments, not a 28th dimension.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Soe9bhkYcaLeEdUGsKX6n6
…ow resolving — version cut

Six revisions since rc3, each a downstream ruling landed in-text:
CC 5.4.6 (#91 — a directed announce inherits the prohibition; the
lightnet/darknet name adopted), CC 3.3.10.1 (#92 — in-grammar ledgers,
the ballot machinery extended to value, on a three-track prior-art
sweep), CC 1.13.6 (F5 — the durable trace anchors on the act), CC
3.4.7.3 (#95 — node is exclusive; the gate reads membership; the
common-human predicate over the custody set), CC 2.1 (a mode shift is
a superseding delegates_to), CC 1.13.4 (the RATCHET 11+1 map). Plus
the evidence lockdown: eight pins at heads, the two closed tracking
tickets retired as pointers, 270 established / 38 staged / 7
normative, zero unresolved artifacts, every staged row on an open
ticket. Front matter and EVIDENCE.md header to rc4.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Soe9bhkYcaLeEdUGsKX6n6
@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.

@emooreatx
emooreatx merged commit 6cb55a7 into main Sep 3, 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.

1 participant