SSM-Clock Stamp – Daily Anchor Parity (ledger vs sidecars) (5.6)

Objective. Confirm that the same UTC day anchored from two independent sources — a local ledger and discovered sidecars — yields identical digest and count. Everything is plain ASCII.

Inputs

  • UTC date YYYY-MM-DD.
  • Source A: local append-only ledger of full lines
    SSMCLOCK1|iso_utc|rasi_idx|theta_deg|sha256(file)|chain[|kv:...]
  • Source B: discovered sidecar files containing the same full lines.

Procedure (deterministic, copy-ready)

  1. Collect same-day sets (per source).
    • Select lines whose iso_utc share the UTC day key YYYY-MM-DD (strict ...Z, no subseconds).
  2. Canonical order each set by the tuple (iso_utc, stamp_core, chain), where
    stamp_core = "SSMCLOCK1|" + iso_utc + "|" + rasi_idx + "|" + theta_deg + "|" + sha256(file).
  3. Literal join each ordered set: "Stamp_1|...|Stamp_n" (single |, no leading/trailing |).
  4. Hash each joined string:
    rollup_D = sha256( ascii(Stamp_1 "|" ... "|" Stamp_n) )
    Output must be lowercase 64-hex.
  5. Compare parity: digests and counts must match across sources.

Expected results

  • rollup_D(ledger) == rollup_D(sidecars)
  • count(ledger) == count(sidecars)

If they differ (root-cause checklist)

  • Re-run UTC day selection (no local time).
  • Re-emit theta_deg as recorded (fixed theta_prec, round-half-to-even, IEEE-754 binary64); do not reprint/normalize lines.
  • Ensure lowercase 64-hex for digests.
  • Confirm exact ASCII join with | (no spaces, no newline separators).
  • Diff sets (ASCII) to list missing_in_ledger and missing_in_sidecars.
  • Rewalk chain in the ledger to detect deletions/reorders:
    chain_k = H_chain( ascii(chain_{k-1} + "|" + stamp_core_k) ) with chain_0 = "0"*64.

Example (minimal parity report, ASCII)

VERIFY_DATE=2025-10-14
LEDGER_RECOMPUTE=<64-hex> COUNT=12
SIDECARS_RECOMPUTE=<64-hex> COUNT=12
ANCHOR_LEDGER_OK=true
ANCHOR_SIDECARS_OK=true
VERDICT=PASS

Why parity matters
Two independent reconstructions of the same day’s anchor make manipulation (subset, reorder, omission) obvious. The rules hinge only on public, reproducible strings.

Navigation
Back: SSM-Clock Stamp – Resync from Sidecars (repair local ledger) (5.5)
Next: SSM-Clock Stamp – Anchor Mismatch → Root-Cause (5.7)