# ops scripts — experiment 6 Persisted out of a session scratchpad so they survive the run. See `docs/experiment-6-handoff.md`. - `check6.sh` — the periodic check. Reports every rate with its discriminators attached (nested 1h/6h/12h windows, a measured delta against the previous run, a batch-trough warning) so a short-window artifact cannot be mistaken for a trend. State file defaults to `~/.stream-exp6`; override with `SC=`. - `wsprobe.py` — minimal websocket client. `wsprobe ` (runs on the box under system python3) against `bsky.network`; prints `101` plus a binary commit frame if the firehose will still replay from that cursor. This is how you check the replay window has not lapsed. Deployed to `/usr/local/bin/wsprobe` on the workload host. - `dash-snapshot` — writes `/srv/dash/data.json` on the workload; driven by `dash-snapshot.timer` every 60s. - `dash-index.html` — the dashboard page, installed at `/srv/dash/index.html`. **Tooling note:** `wsprobe.py` and `dash-snapshot` run **on the Hetzner hosts**, where `uv` was never installed, so they use system `python3`. That is a provisioning gap, not a requirement — `uv` is a single static binary and installing it on the hosts would unify things. Do it at next provision rather than under a live run. Anything on the operator's own machine uses `uv` / `uvx` / `jq`, never `python3`.