5.1 Streaming inverse (recap, one command)
ASCII-safe producer (no UTF-16; writes plain text via CMD redirection):
python ssm_clock_stream_v2.py --manifest "clock_manifest.json" ^
--obs_stream "clock_obs_stream.csv" --dt_days 0.002 --grid_step_min 2.0 --refine brent ^
> "notes\tau_stream.log"
Output lines look like:
tau_days=0.000000
tau_days=0.002000
...
Notes.
- Avoid PowerShell
Tee-Objecton Windows (default UTF-16). If you must tee, prefer CMD redirection as above or ensure UTF-8 explicitly in PowerShell 7+. --dt_daysis the assumed tick (e.g.,0.002day ≈ 2.88 min per tick).- Keep logs under
notes/for audit; keep everything ASCII-only.
5.2 SSM-Wait: trigger when Delta_tau >= target minutes
Idea. Start from the first tau value t0. Each new tau_days gives an increment. Because tau is defined modulo T_search, we unwrap across the horizon so elapsed grows monotonically. Fire when the accumulated elapsed reaches your target.
Trigger definition (ASCII).
target_days = minutes / 1440
elapsed_days = unwrap( tau_k - t0 , modulo = T_search )
fire when elapsed_days >= target_days
T_search policy.
if all periods are integers (days): T_search = LCM(periods)
else: T_search = max(periods)
Helper (ssm_wait.py).
Reopen-on-poll tail; modulo-aware unwrap; exits 0 on trigger.
Run (two windows).
- Window A (producer): create the live tau log (5.1).
- Window B (consumer): wait for N minutes of symbolic time:
python ssm_wait.py --manifest "clock_manifest.json" --tau_log "notes\tau_stream.log" --minutes 5
Expected message on trigger:
TRIGGER: Delta tau >= 5.0 min (elapsed=..., tau_days=...)
Notes.
--minutesis symbolic (tau-based), not wall-clock.- The tailer is robust to wraps at
T_search; it advances elapsed across the boundary. - The helper never edits your stream; it only reads the growing log.
Navigation
Back: SSM-Clock—Harmonics, Stress Matrix & Diagnostics (4.5–4.7)
Next: SSM-Clock—Guardrails & One-shot Alarm (5.3–5.4)