main-po-patrollisted
Install: claude install-skill reoring/sds
# main-po-patrol — patrolling the POs
**English** | [日本語](SKILL.ja.md)
When one person runs many projects, each project has a PO session — and
someone must watch the watchers. The **main PO** is a PO of POs: it supervises
PO sessions themselves and drives their rotation. **Its subjects are POs, not
lanes** — lanes belong to each project PO. The main PO touches a lane only as
emergency proxy when that PO is dead (recorded in the ledger).
## 0. Principles
- Take the real time (`date +%H:%M`) before starting — no mental arithmetic.
- Consolidate the report into the final message of the turn.
- Patrol is read-only by default. The only mutations: driving a rotation, and
appending to the roster/ledger.
- **Leave self-running POs alone. The best main PO is idle.**
## 1. Measure the PO roster (every patrol, no skipping)
```bash
herdr pane list | jq -r '.result.panes[] | select(.agent=="claude") | [.pane_id, .agent_status, .cwd] | @tsv'
```
Cross-check against `<main-po-dir>/po-roster.md` (space → PO pane map; create
on first patrol):
- Roster pane gone or replaced → update the roster from measurement.
- Unrostered PO-looking pane (cwd in a PO operations dir) → ask it, then add.
- **Never send to a pane ID from a snapshot** — re-measure right before sending.
## 2. Health-check each PO
For each rostered PO:
```bash
herdr pane read <pane> --source visible --lines 5 --format text # statusline + current state
herdr pane read <pane> --source recent --lines 20 --format text