SSM-Clock Stamp – Leap-second Policy (1.9)

Purpose. Define a clear, interoperable rule for leap seconds in SSM-Clock Stamp so all implementations behave the same in boundary conditions.

Policy (normative, must).

  • Stamping during a leap second is forbidden. If iso_utc equals YYYY-MM-DDT23:59:60Z, do not produce a stamp.
  • Verifier behavior: Any stamp whose iso_utc contains :60 MUST be rejected (FAIL).
  • Allowed seconds: 00..59 only. Seconds must not include subseconds.

Rationale (safety & simplicity).

  • The clock mapping is purely UTC→angle:
    theta_deg = wrap360( (unix_seconds / 86400) * 360 )
    Introducing :60 would force special-case math or retroactive remapping. A ban keeps the model and replays deterministic and ephemeris-free.

Producer guidance (boundary handling).

  • If your platform surfaces 23:59:60:
    • Defer stamping by 1 second to 00:00:00Z of the next day, or
    • Advance earlier by at least 1 second before the leap.
  • Never coerce 23:59:60 into 59 or 00; do not remap or “round” the second.
  • In observed-time mode: if your median observation lands on :60, set iso_utc to a permitted second and record the evidence as usual (sidecar). The stamp line itself must not carry :60.

Verifier guidance (strict checks).

  • Shape check first: iso_utc must match YYYY-MM-DDThh:mm:ssZ with ss ∈ {00..59}.
  • Leap-second reject: if ss == 60, FAIL immediately.
  • Proceed to normal checks only for valid seconds (00..59).

Examples (valid vs invalid).

  • Valid: 2025-06-30T23:59:59Z, 2025-07-01T00:00:00Z
  • Invalid: 2016-12-31T23:59:60Z, 2015-06-30T23:59:60Z

Anchors and leap seconds.

  • Daily anchors operate on the set of issued stamp lines. Since stamps at :60 are forbidden, anchors naturally exclude that second.
  • No special handling is needed in rollup_D = sha256( ascii(Stamp_1 "|" ... "|" Stamp_n) ).

Acceptance summary (must).

  • iso_utc second field in 00..59 → continue.
  • :60 present → FAIL.
  • All other conformance rules apply unchanged (angle print, digests, chain, kv:).

Navigation
Back: SSM-Clock Stamp – Additive Key–Value Tail (1.8)
Next: SSM-Clock Stamp – Normative Verification — File, Clock, Chain (2)