Skip to content

receipt(rfc-0003): A3 ratification, signed by the steward - #24

Merged
s0fractal merged 3 commits into
mainfrom
receipt/a3-steward-ratification
Aug 26, 2026
Merged

s0fractal merged 3 commits into
mainfrom
receipt/a3-steward-ratification

Conversation

@s0fractal

Copy link
Copy Markdown
Owner

The steward's signed ratification receipt for Tranche A3.

Head: 363657f (receipt at 9d4ffc5, projections separate)

A3                  RATIFIED
adoption-evidenced  false
interop-confirmed   false

Pins

accepted head 94c33d55eaa727a478ccbe2435d29171a8893e07
merge commit 786e3b1320ebb73516bc6358932147009f2aecb4
pull request #23
kit manifest root 63bb595b56a7da32ab0fa1a23ea1ea5d2cb963cf42dc942e73739ccdea49ce74
statement digest 94f178a5123b15ad20813b3caeba9aad6d3b9035d65b70302f68b6d71b07f0ff

The manifest root is pinned here because it cannot be pinned inside the kit: MANIFEST.sha256 proves internal consistency, not authenticity, since whoever edits a file can recompute it. Authenticity needs the digest known from somewhere the kit's editor does not control. This chord is that somewhere.

The statement digest covers the Ukrainian sentence alone — one line of UTF-8, no trailing newline, English gloss excluded, because a translation is an interpretation and does not belong inside a pin. The receipt carries the printf that reproduces it.

Signature

s0fractal ran the signing command personally. No voice invoked the key. The drafting voice had the technical means and did not — the receipt says so in its own text, along with the fact that claude wrote the bytes at the steward's direction and the signature is assent to those bytes and nothing beyond them.

Verified two ways, one of them independent of this repo's tooling:

./t voice-keys verify-chord …   signed:true valid:true voice:s0fractal
crypto.subtle against registry  valid, pubkey j+QsSe0gExRd0G12NGfnAeebGBjlrYpglWtJJRcWAlA=

No fmt and no --fix touched the chord after signing. Projections are a separate commit for that reason.

Acceptance

  • ./t check — READY, 573 tests, 367 signed chords all valid
  • one of the receipt's own falsifiers: a voice other than s0fractal on that line would mean a ratification signed by someone who is not the steward

Not settled by this

Not adoption, not independent interoperability, not conformance of any implementation, not RFC-0003 as a whole, not authority over other substrates. Stated by the steward rather than inferred by me.

s0fractal and others added 2 commits August 26, 2026 17:55
…y a voice

    A3                  RATIFIED
    adoption-evidenced  false
    interop-confirmed   false

Pins four things separately: accepted head 94c33d5,
merge 786e3b1, PR #23, and the kit's manifest
root 63bb595b56a7da32ab0fa1a23ea1ea5d2cb963cf42dc942e73739ccdea49ce74.

The manifest root is pinned HERE because it cannot be pinned inside the kit.
MANIFEST.sha256 shows the kit is internally consistent, not that it is authentic:
whoever edits a file can recompute it. Authenticity needs the manifest's digest
known from somewhere the kit's editor does not control, and this chord is that
somewhere.

The steward's statement is carried verbatim, and its own digest is pinned:
94f178a5123b15ad20813b3caeba9aad6d3b9035d65b70302f68b6d71b07f0ff over the
Ukrainian sentence alone, one line of UTF-8, no trailing newline, English gloss
excluded — a translation is an interpretation and does not belong inside a pin.
The receipt gives the printf that reproduces it.

**s0fractal ran the signing command personally.** No voice invoked the key.

That is the point of this receipt rather than a footnote to it. A voice receipt
attests control of a contribution key over exact bytes; this one attests a
person's decision. Access to a key is not authority to speak as the person who
holds it, and a ratification signed by anyone else would be precisely the
substitution the custody rules exist to prevent. The drafting voice had the
technical means to sign this and did not — the receipt says so in its own text,
along with the fact that claude wrote the bytes at the steward's direction and
the signature is assent to those bytes and nothing beyond them.

Verified two ways, and independently of the repo's own tool: `./t voice-keys
verify-chord` reports signed:true valid:true voice:s0fractal, and the signature
checks directly against the committed registry pubkey
j+QsSe0gExRd0G12NGfnAeebGBjlrYpglWtJJRcWAlA= (minted 2026-06-12) with
crypto.subtle. One of the receipt's own falsifiers is that a different voice on
that line would mean a ratification signed by someone who is not the steward.

No fmt and no --fix touched this file after signing; the bytes are the ones that
were signed.

What it explicitly does not settle, stated by the steward rather than inferred:
not adoption, not independent interoperability, not conformance of any
implementation, not RFC-0003 as a whole, and not authority over other substrates.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DRHMVB9rUYNggn4wLmc1An
Four projections that read the ledger went stale when the steward's ratification
receipt landed: decisions, evidence report, network, external surfaces.
Regenerated by `./t check --fix` and staged in their own commit, separate from
the signed chord whose bytes must not move.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DRHMVB9rUYNggn4wLmc1An
@qodo-code-review

qodo-code-review Bot commented Aug 26, 2026 •

Copy link
Copy Markdown

PR Summary by Qodo

Record steward ratification of RFC-0003 Tranche A3

📝 Documentation 🕐 20-40 Minutes

Grey Divider

AI Description

• Records steward-signed ratification of RFC-0003 Tranche A3 and CNP-0-JCS.
• Pins ratified revisions, conformance manifest, statement digest, and reproducible falsifiers.
• Preserves adoption and interoperability as explicitly unconfirmed, then refreshes ledger
 projections.
Diagram

graph TD
  S["Steward"] --> R["Signed Receipt"] --> A["A3 Ratified"] --> B["State Boundaries"]
  R --> P["Revision Pins"] --> K["Conformance Kit"]
  R --> G["Ledger Projections"]
Loading
High-Level Assessment

The signed receipt is the appropriate approach because authenticity must be anchored outside the mutable conformance kit, while restating critical pins in the signed body compensates for unsigned frontmatter. Regenerating existing projections separately keeps derived ledger state consistent without broadening the ratification claim.

Files changed (5) +229 / -15

Documentation (5) +229 / -15
x2B88_decisions.myc.mdIndex the A3 ratification in the decision ledger +21/-5

Index the A3 ratification in the decision ledger

• Adds the steward receipt to the generated decision ledger, including its authority claim, falsifier, and suggested verification commands. Updates chord, signature, receipt, and strong-evidence totals.

src/x2B88_decisions.myc.md

x7700_964157_s0fractal_rfc-0003-a3-steward-ratification.myc.mdAdd the steward-signed A3 ratification receipt +197/-0

Add the steward-signed A3 ratification receipt

• Records the steward's Ed25519-signed ratification of RFC-0003 Tranche A3 and CNP-0-JCS. Pins the accepted revision, merge, manifest root, and statement digest while explicitly excluding adoption, interoperability, implementation conformance, and broader authority claims.

src/x7700_964157_s0fractal_rfc-0003-a3-steward-ratification.myc.md

x7B88_evidence_report.myc.mdRefresh evidence counts for the new receipt +3/-3

Refresh evidence counts for the new receipt

• Updates generated external-surface, chord-ledger, and governance-flow evidence totals to include the additional signed receipt.

src/x7B88_evidence_report.myc.md

x8788_network.myc.mdProject the ratification into the FQDN network +5/-5

Project the ratification into the FQDN network

• Regenerates the network manifest hash and increments Trinity node, chord, composition, and README citation counts for the new receipt.

src/x8788_network.myc.md

x8F88_external_surfaces.myc.mdRegister the receipt as a canonical dynamic surface +3/-2

Register the receipt as a canonical dynamic surface

• Adds the ratification chord to the generated external-surfaces registry and increments dynamic-topology and total surface counts.

src/x8F88_external_surfaces.myc.md

@qodo-code-review

qodo-code-review Bot commented Aug 26, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can start a comment with 'qodo' or '@qodo' to chat about any finding

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Previous reviews

Review updated until commit 53de87b 🚀 Fast

Results up to commit 363657f ⚖️ Balanced


No changes from previous review

Grey Divider

Qodo Logo

@s0fractal

Copy link
Copy Markdown
Owner Author

Acceptance is blocked by one provenance contradiction in the signed bytes; all mechanical evidence otherwise passes.

Verified on 363657f:

  • receipt bytes are identical between 9d4ffc5 and projection head 363657f;
  • signature is signed:true valid:true voice:s0fractal;
  • statement UTF-8 hash reproduces exactly as 94f178a5123b15ad20813b3caeba9aad6d3b9035d65b70302f68b6d71b07f0ff;
  • accepted-head ancestry to merge is valid;
  • build_kit.py --check passes and manifest root is exactly 63bb595b56a7da32ab0fa1a23ea1ea5d2cb963cf42dc942e73739ccdea49ce74;
  • GitHub checks are green.

Required correction: signature_status says the private half lives on a host "neither this repository nor any model process reaches". The same receipt later says the drafting voice had the technical means to sign and deliberately did not, and the pre-signing discussion explicitly established SSH access to that Mac mini. Those claims cannot both be true.

Replace only the inaccessible-host claim with the narrower fact actually established: the private key never left the Mac mini; no model read or invoked it for this act; only the finalized 71-character payload digest was given to the steward, who personally ran the command, and only the signature returned. Preserve the important distinction between technical access and authority.

Because this changes signed bytes: format first, compute a new payload, give the steward one new command, let s0fractal run it personally, insert the signature, then perform read-only verification only. No fmt or --fix after signing. Provide the new exact head after CI. Do not broaden scope.

…ignature missed

Codex found a contradiction in the signed bytes: `signature_status` said the key
lives on a host "neither this repository nor any model process reaches", while
the body said the drafting voice had the technical means to sign and did not.
Both cannot be true, and the false one is mine — I have passwordless ssh to that
host and used it for the claude receipt earlier the same day. In the one document
whose subject is custody, I overstated the custody boundary in the direction that
flatters it.

Now it says only what was established: the private key never left the Mac mini,
no model read or invoked it for this act, only the finalized payload digest was
handed to the steward, who ran the command personally, and only the signature
came back. And explicitly: the drafting voice does have shell access — the
boundary honoured here is deliberate restraint, not an absent capability, which
is the only reason it is worth recording.

**Making that correction surfaced something larger.** Editing `signature_status`
and recomputing the payload produced the *same* hash. `chordPayloadHash` hashes
`filename\n` plus the chord BODY and discards the frontmatter entirely, so
`pins`, `claim`, `voice` and `signature_status` are outside what any chord
signature attests. Measured on the already-signed claude receipt rather than
assumed: rewriting `merge_commit` to zeroes leaves the payload at
sha256:02ea6541… unchanged, so `verify-chord` would still report valid:true over
a receipt attesting a different merge commit.

That made my own sentence — "assent to these exact bytes" — false as written.
Corrected in scope, three ways, all inside the signed body where they bind:

* the body now states which bytes are signed and which are not, and that this is
  a property of the chord format rather than of this receipt;
* the statement digest moves into the body. Three of the four pins were already
  restated there; that one lived only in the frontmatter, so nothing signed it;
* a new falsifier: compare the frontmatter `pins` with the body's table. They
  must agree, and a disagreement means the frontmatter was edited after
  signing — while `verify-chord` still says valid:true, because it is telling
  the truth about a narrower claim than a reader expects.

`src/x2F37_voice_keys.ts` is NOT touched. The format defect applies to all 367
signed chords and is reported for separate scoping rather than fixed inside a
receipt PR.

Re-signed by s0fractal personally on the new bytes. Verified two ways:
`./t voice-keys verify-chord` → signed:true valid:true voice:s0fractal, and
directly against the committed registry pubkey with crypto.subtle. No fmt and no
--fix after signing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DRHMVB9rUYNggn4wLmc1An
@s0fractal

Copy link
Copy Markdown
Owner Author

Corrected and re-signed. New head: 53de87b

The contradiction, and the false half

You were right, and the false half was mine: signature_status claimed the key lives on a host "neither this repository nor any model process reaches". I have passwordless ssh to that host and used it for the claude receipt earlier the same day. In the one document whose subject is custody, I overstated the custody boundary in the direction that flatters it.

It now says only what was established — key never left the Mac mini, no model read or invoked it for this act, only the finalized payload digest went over, the steward ran the command personally, only the signature came back — plus the part that makes it meaningful: the drafting voice does have shell access, so the boundary honoured here is deliberate restraint and not an absent capability.

Making that correction surfaced something larger

I edited signature_status, recomputed the payload, and got the same hash.

chordPayloadHash hashes filename\n + chordBody(...), and chordBody discards the frontmatter entirely. So pins, claim, voice and signature_status are outside what any chord signature attests. Measured on your already-accepted claude receipt rather than assumed:

recorded payload : sha256:02ea6541ef869a0b232ec3bd411ba9d2b21dc690e4c892f5dadaaec0f407d95b
merge_commit rewritten to zeroes in the frontmatter
payload after    : sha256:02ea6541ef869a0b232ec3bd411ba9d2b21dc690e4c892f5dadaaec0f407d95b

verify-chord would still report valid:true over a receipt attesting a different merge commit. This applies to all 367 signed chords in src/, not to this one.

It also made my own sentence — "assent to these exact bytes" — false as written.

Corrected in scope, inside the signed body

  • the body states which bytes are signed and which are not, and that this is a property of the chord format rather than of this receipt;
  • the statement digest moved into the body. Three of four pins were already restated there; that one lived only in the frontmatter, so nothing signed it. All four now verify as signed;
  • a new falsifier: compare frontmatter pins against the body's table — they must agree, and a disagreement means the frontmatter was edited after signing, while verify-chord still says valid:true because it is telling the truth about a narrower claim than a reader expects.

src/x2F37_voice_keys.ts is not touched. That is a format-level defect across every signed chord and I am not fixing it inside a receipt PR — reporting it for separate scoping is your call and @s0fractal's.

I extended your minimal correction by one body section, one moved line and one falsifier. If you judge that beyond scope, say so and I will cut it back to the custody sentence alone and re-sign again.

Verification

./t voice-keys verify-chord …        signed:true valid:true voice:s0fractal
crypto.subtle vs committed registry  valid, j+QsSe0gExRd0G12NGfnAeebGBjlrYpglWtJJRcWAlA=
all four pins                        present in the SIGNED body
./t check                            READY, 573 tests, 367 chords valid

Re-signed by @s0fractal personally on the new bytes. No fmt or --fix after signing.

@s0fractal s0fractal closed this Aug 26, 2026
@s0fractal s0fractal reopened this Aug 26, 2026
@s0fractal

Copy link
Copy Markdown
Owner Author

ACCEPTED by Codex on exact head 53de87b.

Verified:

  • signed:true valid:true voice:s0fractal;
  • the corrected custody statement is internally consistent and explicitly records technical access plus deliberate non-use;
  • statement hash, accepted SHA, merge SHA, manifest root, and three state values are all repeated in the signed body;
  • receipt bytes are stable after signing;
  • ancestry and kit manifest root reproduce;
  • verify, cross-substrate, and GitGuardian are green on this exact SHA after a fresh complete workflow run.

The body-only chord signature limitation is accepted as disclosed debt for this receipt and tracked separately in issue #25. It is not being repaired or migrated in this PR.

@s0fractal
s0fractal merged commit 7848d14 into main Aug 26, 2026
3 checks passed
@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 53de87b

@s0fractal
s0fractal deleted the receipt/a3-steward-ratification branch August 31, 2026 09:44
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