SSM-Clock Stamp – Additive Key–Value Tail (1.8)

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 ;-separated key=value pairs (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 declared algo.
  • chain_algo (chain digest). One of {sha256, sha3_256, blake2b-256}64 hex. Rewalk uses each stamp’s own chain_algo.
  • theta_prec (angle string precision). Integer in {3..9}; default 5. theta_deg must be emitted/compared with exactly theta_prec fractional digits using IEEE-754 binary64 round-half-to-even.
  • float (numeric mode). Must be ieee75464 (binary64). Any other value → FAIL.
  • time_mode. One of {derived_utc, observed}; core checks always derive angles from iso_utc.
  • ssmc_hint_min (advisory). Minutes Δ with |Δ| <= 30. Verifiers may compute an advisory theta_deg' using unix_seconds + 60*Δ; core checks remain anchored to iso_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_prec in {3..9}; theta_deg string obeys exact-digit printing and banker’s rounding.
  • float == ieee75464; time_mode ∈ {derived_utc, observed}; otherwise FAIL.
  • If ssmc_hint_min present: check |Δ| <= 30; otherwise ignore or flag producer error (policy).
  • If chain_id present: [0-9a-fA-F]{8}; if device present: [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=value pairs in the stamp line.

Navigation
Back: SSM-Clock Stamp – Observed-time Mode (1.7)
Next: SSM-Clock Stamp – Leap-second Policy (1.9)