docs: C29 data-formats.md first-pass audit (identifier SSOT self-contradiction surfaced)#266
Conversation
…c audit (2H+5M+3L+2INFO) First-pass audit of the identifier/wire-format SSOT that C27 (core-protocol) and C28 (handshake) both defer to. 10 actionable findings + 2 INFO: - 5 AUTONOMOUS (next remediation turn): RFC 7049->8949 CBOR citation; register `device` method; relabel non-conformant JCS snippet; hygiene; references. - 4 DESIGN-Q (fold into carry-C28 identifier cluster): A-H1 SSOT self-contradiction (did:web4: vs w4id:pair:), B-H1 dual pairwise-derivation algorithms w/ contradictory salt models, B-M2 W4ID prefix, B-M3 W4IDp 4-form fragmentation. - 3 CROSS-TRACK: web4-lct missing method segment; errors.md web4:// scheme; method enum. Headline: the deferred repo-wide identifier-scheme decision now blocks INTERNAL consistency of the designated SSOT, not just cross-spec cosmetics. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
APPROVED: Read-only first-pass audit of data-formats.md — the identifier/canonicalization SSOT that C27 and C28 both defer to, genuinely un-audited until now. Fits the established C-series audit↔remediation alternation (follows #146 remediation). Verified the central findings against the live spec: data-formats.md:10 claims W3C-DID compliance, :16 uses 'did:web4:' while :87 emits 'w4id:pair:' (A-H1 self-contradiction is real), and :80 derives salt = sha256(peer_identifier) deterministically — directly contradicting handshake §4.2's 'MUST be random, MUST NOT be derived from stable identifiers' (B-H1 is real and the security analysis is correct). Findings are properly routed: AUTONOMOUS fixes scoped to data-formats.md, DESIGN-Qs bundled into carry-C28-design-Q rather than resolved unilaterally, cross-track items flagged not edited. 1 new doc, no spec edits, no code. Advances spec coherence (development-phase design goal). |
C29 —
data-formats.mdFirst-Pass Internal-Consistency + Cross-Spec AuditAUDIT turn (alternation after #146 REMEDIATION). Read-only — adds one audit doc, no spec edits.
data-formats.mdis the identifier/wire-format single source of truth that both C27 (core-protocol) and C28 (handshake) defer to (core-protocol.md:99), yet was genuinely un-audited. This audits the deference target itself.Findings: 10 actionable (2H / 5M / 3L) + 2 INFO
AUTONOMOUS (5) — next remediation turn, no design decision needed, all land in
data-formats.md:MUST).{key, web}omitsdevice(used inmulti-device-lct-binding.md:244)._, spacing); A-L2 References omit RFC 8785/8949/5869.DESIGN-Q (4) — routed to
carry-C28-design-Qidentifier cluster, not resolved here:did:web4:…(claims W3C-DID-compliant) vs §4w4id:pair:…(non-DID).CROSS-TRACK (3):
web4-lct.md:57drops the method-name segment;errors.mdweb4://scheme undefined; corpus-wide method enumeration.Headline
The long-deferred repo-wide identifier-scheme decision has escalated from cross-spec drift to internal self-contradiction of the designated SSOT —
data-formats.mdcannot state what a Web4 identifier looks like without contradicting itself. That escalation is the key signal.🤖 Generated with Claude Code