SSM-Clock Stamp – Verify Pack & Public Handoff (8.1)

Goal. Hand a third party everything needed to verify files, stamps, chains, and daily anchors — fully offline, plain ASCII.


What to ship (normative, minimal)

A) Core verifiers (Python, stdlib-only)

  • ssmclock_core.py, ssmclock_verify.py, ssmclock_check_ledger.py
  • ssmclock_rollup_from_sidecars.py, ssmclock_verify_anchor.py
  • ssmclock_resync_from_sidecars.py, ssmclock_chainwalk_rebuild.py

B) Stamp/verify wrappers (CMD)

  • 22_ssmcs_verify.cmd, 25_ssmcs_check_ledger.cmd
  • 24b_ssmcs_rollup_from_sidecars.cmd, 24c_ssmcs_verify_anchor.cmd, 24d_ssmcs_anchor_note.cmd
  • 33_ssmcs_verify_all.cmd, 33a_ssmcs_verify_one.cmd

C) One-screen spec note (TXT)

  • Include the three core lines (copy-paste ASCII):
Stamp line: SSMCLOCK1|iso_utc|rasi_idx|theta_deg|sha256(file)|chain[|kv:...]]
Chain rule: chain_k = H_chain( ascii(chain_{k-1} + "|" + stamp_core) ) with chain_0 = "0"*64
Roll-up:   rollup_D = sha256( ascii(Stamp_1 "|" ... "|" Stamp_n) )   # canonical sort

  • Note that the label sha256(file) is historical; the value uses kv:algo if present (default sha256).

D) Samples (optional, recommended)

  • 2–4 tiny files with sidecars and a mini ledger for quick PASS checks.

E) Integrity for the pack itself

  • verify_pack.zip and verify_pack.zip.sha256.txt (ASCII, 64-hex digest).

F) Policy manifests (recommended)

  • POLICY.txt (leap-second stance), ALGO.txt (enabled digests), FORMAT.txt (theta_prec, float model).
  • Optional joined commitment:
    policy_sha256 = sha256( ascii(POLICY.txt|ALGO.txt|FORMAT.txt concatenation) )

Pack layout (suggested)

verify_pack.zip
verify_pack.zip.sha256.txt    # two lines: size_bytes=..., sha256=...
README_SSM-CS.txt             # one-screen, copy-friendly
tools/                        # .py verifiers
cmd/                          # .cmd wrappers
samples/                      # tiny files + sidecars + mini ledger (optional)
policy/                       # POLICY.txt, ALGO.txt, FORMAT.txt (optional)


Receiver’s quick path (offline, ASCII)

  1. Check the pack hash
    Compute sha256(file_bytes_of_zip) and compare to verify_pack.zip.sha256.txt.
  2. Unzip and smoke-test
    Run the verify wrapper on a sample file → expect VERDICT=PASS.
  3. Check ledger continuity
    Run the ledger checker → expect LEDGER_OK=true.
  4. Check anchor parity (one UTC day)
    Recompute both ways (ledger and sidecars). Expect:
    rollup_D(ledger) == rollup_D(sidecars) and counts match.
  5. Optional resync
    Rebuild ledger from sidecars starting chain_0 = "0"*64; the new ledger should match previous anchors.
  6. Optional policy witness
    Recompute policy_sha256 if manifests are included.

Navigation
Back: SSM-Clock Stamp – Conformance Checklist (7.3)
Next: SSM-Clock Stamp – Build & (Optionally) Sign the Verify Pack (8.2)