Purpose. Provide algorithm agility and policy knobs without changing the core fields of an SSM-Clock Stamp. The tail is plain ASCII, forward-compatible, and non-breaking.
Extended single-line form (optional tail after chain)SSMCLOCK1|iso_utc|rasi_idx|theta_deg|<file_digest_hex>|<chain_digest_hex>|kv:algo=sha256;chain_algo=sha256;theta_prec=5;float=ieee75464;time_mode=derived_utc
Parsing rules (must)
- The tail begins with
kv:and carries;-separatedkey=valuepairs (ASCII only; no spaces). - Keys SHOULD be lowercase
[a-z0-9_]+. Values MUST NOT contain|or;. - Unknown keys are ignored (forward-compatible).
- Duplicate keys are invalid (FAIL).
- If
kv:is absent, apply defaults:algo=sha256,chain_algo=sha256,theta_prec=5,float=ieee75464,time_mode=derived_utc.
Fields (normative set)
algo(file digest). One of{sha256, sha3_256, blake2b-256}→ 64 hex. Verifier recomputes file digest with the declaredalgo.chain_algo(chain digest). One of{sha256, sha3_256, blake2b-256}→ 64 hex. Rewalk uses each stamp’s ownchain_algo.theta_prec(angle string precision). Integer in{3..9}; default5.theta_degmust be emitted/compared with exactlytheta_precfractional digits using IEEE-754 binary64 round-half-to-even.float(numeric mode). Must beieee75464(binary64). Any other value → FAIL.time_mode. One of{derived_utc, observed}; core checks always derive angles fromiso_utc.ssmc_hint_min(advisory). MinutesΔwith|Δ| <= 30. Verifiers may compute an advisorytheta_deg'usingunix_seconds + 60*Δ; core checks remain anchored toiso_utc.a_stamp(advisory). Bounded quality scalar in(-1,+1); metadata only; does not affect pass/fail.- Provenance (optional).
chain_id = <8 hex>(e.g.,1a2b3c4d)device = <ascii_token>matching[A-Za-z0-9._-]{1,32}
These aid multi-device merge safety; no effect on verification math.
Acceptance rules (verifier, must/should)
- File digest hex and chain digest hex are 64 lowercase hex and match recomputation under declared
algo/chain_algo. theta_precin{3..9};theta_degstring obeys exact-digit printing and banker’s rounding.float == ieee75464;time_mode ∈ {derived_utc, observed}; otherwise FAIL.- If
ssmc_hint_minpresent: check|Δ| <= 30; otherwise ignore or flag producer error (policy). - If
chain_idpresent:[0-9a-fA-F]{8}; ifdevicepresent:[A-Za-z0-9._-]{1,32}. - Unknown keys: ignored (do not alter pass/fail).
- Duplicate keys: FAIL (malformed tail).
Tiny example (copy-ready)SSMCLOCK1|2025-10-14T06:12:03Z|3|186.01875|<h_file>|<chain>|kv:algo=sha3_256;chain_algo=blake2b-256;theta_prec=5;float=ieee75464;time_mode=observed;chain_id=1a2b3c4d;device=edge.cam01
Why a tail? (design intent)
- Non-breaking evolution: change algorithms/policies per-stamp without altering core fields.
- Forward-compatibility: older parsers ignore unknown
kv:keys while still validating file/clock/chain. - Audit clarity: decisions are visible as simple
key=valuepairs in the stamp line.
Navigation
Back: SSM-Clock Stamp – Observed-time Mode (1.7)
Next: SSM-Clock Stamp – Leap-second Policy (1.9)