Skip to content

docs: C29 data-formats.md first-pass audit (identifier SSOT self-contradiction surfaced)#266

Merged
dp-web4 merged 1 commit into
mainfrom
worker/web4-20260603-120001
Jun 3, 2026
Merged

docs: C29 data-formats.md first-pass audit (identifier SSOT self-contradiction surfaced)#266
dp-web4 merged 1 commit into
mainfrom
worker/web4-20260603-120001

Conversation

@dp-web4
Copy link
Copy Markdown
Owner

@dp-web4 dp-web4 commented Jun 3, 2026

C29 — data-formats.md First-Pass Internal-Consistency + Cross-Spec Audit

AUDIT turn (alternation after #146 REMEDIATION). Read-only — adds one audit doc, no spec edits.

data-formats.md is 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:

  • B-M1: §5.2 CBOR determinism cites obsoleted RFC 7049 → RFC 8949 §4.2 (rules already match; citation is stale in a MUST).
  • A-M1: §1.2 method set {key, web} omits device (used in multi-device-lct-binding.md:244).
  • A-M2: §5.1 "JCS" snippet does not implement RFC 8785 (no recursive key sort / number canon) — relabel non-normative.
  • A-L1 hygiene (stray _, spacing); A-L2 References omit RFC 8785/8949/5869.

DESIGN-Q (4) — routed to carry-C28-design-Q identifier cluster, not resolved here:

  • A-H1 (HIGH): the SSOT contradicts itself — §1 did:web4:… (claims W3C-DID-compliant) vs §4 w4id:pair:… (non-DID).
  • B-H1 (HIGH): two divergent normative pairwise-derivation algorithms with contradictory salt models (data-formats: salt = sha256(peer_id), deterministic; handshake §4.2: salt MUST be random, MUST NOT derive from stable ids). Handshake's model is the security-defensible one.
  • B-M2 W4ID prefix token drift; B-M3 W4IDp 4-form surface fragmentation.

CROSS-TRACK (3): web4-lct.md:57 drops the method-name segment; errors.md web4:// 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 SSOTdata-formats.md cannot state what a Web4 identifier looks like without contradicting itself. That escalation is the key signal.

🤖 Generated with Claude Code

…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>
@dp-web4
Copy link
Copy Markdown
Owner Author

dp-web4 commented Jun 3, 2026

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).

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