Skip to content

docs(ceremony): cite the spec sections the code follows - #84

Merged
xgreenx merged 8 commits into
mainfrom
docs/spec-citations
Oct 5, 2026
Merged

xgreenx merged 8 commits into
mainfrom
docs/spec-citations

Conversation

@xgreenx

@xgreenx xgreenx commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Comments and one test message cite spec sections and rules that are outdated or do not exist. No behaviour change.

Follows libid-org/libID#112, which adds platform-ceremonies section 4.1 "Attested data". Merge this after it.

Changes

  • X token body: profile notes, generated constants (Solidity, Rust, TS) and XPlatformVerifier cite REQ-PLAT-63 instead of "stricter than the specification on ASM-PROV-07"; source is profiles.json + regen-ceremony-profiles.py.
  • Attested-data bytes: INotaryService, GoogleJwtRoots, CeremonyAttestation and four test files cite platform-ceremonies section 4.1, scoped to X and GitHub; ceremony-common 9.1 holds the verification rules.
  • NotaryService.t.sol:12: section 9.2 does not exist; cites 9.1.
  • Deploy.s.sol:51: REQ-COMMON-49 does not exist; cites REQ-COMMON-33.
  • CeremonyAuthorization.t.sol:79: the message names the Platform Ceremony Version, the value the case changes.
  • IdentityRegistry.sol:81: the Authorization Digest is the nullifier (spentDigests, REQ-COMMON-03/03A); the observedAt watermark stops older proofs.

Verified

  • forge fmt --check, forge build, forge lint -D notes pass.
  • forge test: 653 passed, 0 failed.
  • Both regen-*.py --check report no drift.
  • No remaining ASM-PROV-07 claim about X's specification.

Not verified / known issues

🤖 Generated with Claude Code

The specification now holds X's whole token body to REQ-PLAT-63's exact
five-field form, as it holds GitHub's to REQ-PLAT-61, and no launch
profile depends on ASM-PROV-07. The profile notes and the generated
constants still said X's specification rested on that assumption.

Assisted-by: Claude Opus 5.5
Signed-off-by: xgreenx <xgreenx9999@gmail.com>
Ceremony-common section 9.1 holds the verification and fee rules, not
the attested-data bytes, which platform-ceremonies section 4.1 defines.
Section 9.2 does not exist, and REQ-COMMON-49 is REQ-COMMON-33.

Assisted-by: Claude Opus 5.5
Signed-off-by: xgreenx <xgreenx9999@gmail.com>
The case changes ceremonyVersion, which is the Platform Ceremony
Version. The Verifier Version is not in the Authorization Digest.

Assisted-by: Claude Opus 5.5
Signed-off-by: xgreenx <xgreenx9999@gmail.com>
bind records every accepted digest in spentDigests and refuses a repeat
(REQ-COMMON-03, REQ-COMMON-03A). The contract doc and a test comment
still said there was no nullifier.

Assisted-by: Claude Opus 5.5
Signed-off-by: xgreenx <xgreenx9999@gmail.com>
Platform-ceremonies section 4.1 scopes the attested-data layout to the X
and GitHub profiles. The Google Platform Verifier consumes no notarized
record, and its tests build none.

Assisted-by: Claude Opus 5.5
Signed-off-by: xgreenx <xgreenx9999@gmail.com>
test_aDigestIsSpendableOnce lives in CeremonyBind.t.sol, not beside the
comment that cites it.

Assisted-by: Claude Opus 5.5
Signed-off-by: xgreenx <xgreenx9999@gmail.com>
The verifier refuses the encoded duplicate under REQ-PLAT-63, and
TEST-PLAT-09C is the vector. The GitHub sibling opens the same way with
REQ-PLAT-61 and TEST-PLAT-12.

Assisted-by: Claude Opus 5.5
Signed-off-by: xgreenx <xgreenx9999@gmail.com>
The header said the layout was an unpublished agreement between four
components. Platform-ceremonies section 4.1 now publishes it for the X
and GitHub profiles, which the other citations on this branch follow.

Assisted-by: Claude Opus 5.5
Signed-off-by: xgreenx <xgreenx9999@gmail.com>
@xgreenx
xgreenx merged commit 0a6c5d3 into main Oct 5, 2026
12 checks passed
@xgreenx
xgreenx deleted the docs/spec-citations branch October 5, 2026 14:21
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