SSM-Clock—Governance, Smoke Tests & Naming (7.4–7.6)

7.4 Governance (versioning and change policy)

  • Frozen manifest policy. Once accepted, clock_manifest.json is immutable for v1.1. Any change yields a new versioned release.
  • Versioning (semantic).
    • MAJOR: kernel or search-policy changes affecting outputs (e.g., new objective or horizon rule).
    • MINOR: added diagnostics or non-breaking inverse knobs (e.g., extra telemetry, optional flags).
    • PATCH: docs/packaging only; no code-path changes.
  • Tagged releases. Publish the document and golden CSV together at a clear tag (e.g., v1.1). Keep notes/run_meta.json alongside your acceptance CSV for provenance.
  • No hand edits. Regenerate manifests via scripts; do not hand-edit JSON after acceptance.
  • Minimal provenance. Record the exact commands used (from this blog), keep the acceptance CSV, and (optionally) row count + byte size.

7.5 Determinism smoke tests (ASCII, quick)

Test A: runner idempotence.

python ssm_clock_runner.py --manifest "clock_manifest.json" --obs "clock_obs.csv" --grid_step_min 2.0 --refine brent > notes\run1.txt
python ssm_clock_runner.py --manifest "clock_manifest.json" --obs "clock_obs.csv" --grid_step_min 2.0 --refine brent > notes\run2.txt
fc /b notes\run1.txt notes\run2.txt    # FC should report no differences.

Test B: bench reproducibility (knobs fixed).

python ssm_clock_longbench_v2.py --period_sets "1,7,29.5306,365.2422" --seeds 200 --noise_list "6" ^
  --grid_step_min 2.0 --stack 5 --stack_dt_days 0.5 --multistart_k 7 --refine brent --refine_steps 80 --bracket_mult 2 ^
  --alpha_kz 0.0 --emit_detail "notes\\lb_detail_run1.csv"

python ssm_clock_longbench_v2.py --period_sets "1,7,29.5306,365.2422" --seeds 200 --noise_list "6" ^
  --grid_step_min 2.0 --stack 5 --stack_dt_days 0.5 --multistart_k 7 --refine brent --refine_steps 80 --bracket_mult 2 ^
  --alpha_kz 0.0 --emit_detail "notes\\lb_detail_run2.csv"

fc /b notes\lb_detail_run1.csv notes\lb_detail_run2.csv

Locale safety (optional).

set PYTHONIOENCODING=ascii
# Keep prints ASCII-only (avoid special characters).


7.6 Naming conventions (files and zips)

  • Manifests: clock_manifest.json (current). Optional archival: clock_manifest_v1.1_YYYYMMDD.json.
  • Summaries: notes\longbench_summary.csv (canonical), notes\longbench_detail.csv (per-seed, if emitted).
  • Zips: dist\SSM-Clock_v1.1_Audit_YYYYMMDD_HHMMSS.zip (audit pack). Optionally dist\SSM-Clock_v1.1_review_YYYYMMDD_HHMMSS.zip (PDF/CSV handoff).
  • README (if included): README_SSM_Clock_v1.1.txt.

Where to place blog-inline artifacts.

  • Pocket calculator: included inline in Appendix A (copy-paste, stdlib-only).
  • Golden CSV (2 rows): included inline in Appendix D so readers can test immediately.

Navigation

Back: SSM-Clock—Determinism, Audit & Provenance (7.1–7.3)
Next: SSM-Clock—Acceptance Note & Provenance Chain (7.7–7.8)