7.4 Governance (versioning and change policy)
- Frozen manifest policy. Once accepted,
clock_manifest.jsonis 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). Keepnotes/run_meta.jsonalongside 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). Optionallydist\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)