# Old guards -> owners (Manager, 8 Oct 2026, board #31)
How-to: http://159.223.88.168/hx-c9ois/fw/tm-guards-howto.md . Each owner: add your checks to /opt/guard/checks.json on the box, run `guard.py --dry`, 24 h side by side, then retire the old one ("RETIRED <date> (in guard mesh)"). **Deadline 15 Oct.** Test Manager reviews each move.

| Old guard (main unless noted) | Owner | Note |
|---|---|---|
| super (/opt/supervisor/super.py, super.timer) | Test Manager | the big one; split its list by owner as you go |
| unitfix, guardkit (cron, /opt/supervisor) | Test Manager | |
| alertgate + tgguard (/opt/common) | Test Manager | library, keep as the send path for the mesh until mesh sends alone |
| livewatch2 (timer, /opt/livewatch/livewatch2.py) | Test Manager | livewatch (live chain) stays until its checks are in |
| sentinel, pickguard (/opt/hist) | Test Manager | they guard aipick, which feeds fml2 / fml2v (Ben's tests) |
| diskguard, walguard | Test Manager | use the `system` check type |
| w2guard (+ w2guard-fast) | Test Manager | SW; only until the D-020 verdict 14 Oct |
| dcguard | Test Manager | check if anything it guards still runs (dc32x is off since 8 Oct); if not, retire |
| watchdog-bots | Test Manager | waits on Ben's call on the wallet alert bots (delete audit item 1); if they go off, retire with them |
| ppfeedguard (research-box), ppfeedguard2 (main) | PP Feeds | |
| runtrack-guard | PP Feeds | mesh shows "M PP feed runtrack (runners)" BAD, heartbeat 74 min old at 19:45 |
| pdguard | PP Data | Price Predict data |
| judgeguard, pwguard, laneradar/stale.py, lanecheck | PP Data | lane radar + prewatch: inputs of aipick5 / prewatch (both KEEP) |
| giver_fix | Manager | giver reader stays on main |
| chainfix | done | off with chainbrain (KILL, 8 Oct) |
| legwatch/stale.py | done | off with legwatch (KILL, 8 Oct) |
| rotfix, rotation/fresh.py, chains/stale.py | done | ROT moved to rot-box; main watches the outputs with 7 "L ROT" mesh checks; fresh/stale retired |
