recover-runlisted
Install: claude install-skill mohammadhprp/teammate
# Recover a run
A run breaks in two ways: the primary's context is lost (restart or compaction)
while workers keep running, or a worker stops making progress. The ledger
survives the primary; the subagent calls do not. Because `tm` is ledger-only it
cannot list live subagents, so recovery reconciles the ledger against the
evidence on disk — the brief, `.teammate-report.md`, and the diff.
The dangerous mistake is re-sending a brief whose first delivery may already
have taken effect. A worker that received it may already have edited files, and
a resend duplicates that work. When delivery cannot be ruled out, escalate: a
question is cheaper than a duplicated change.
## When to use
- The primary restarted or compacted while work was in flight.
- A worker is orphaned, stalled, or never returned.
- The developer asks what happened to work that was running.
## When not to use
- A healthy run that is merely slow: that is `monitor-agents`.
## Inputs
- The ledger (`state_dir`, default `~/.teammate/`).
- The briefs under `<state_dir>/<project>/briefs/` and the reports under
`<state_dir>/<project>/reports/`, or the project's `.teammate-report.md`.
- `python3 scripts/tm.py diff --cwd "<root>"` for what actually changed.
- Each task's project root and linked worker.
## Classify before acting
`tm` cannot list live subagents, so classify from the ledger and the evidence:
| Class | How you recognize it | Default action |
| --- | --- | --- |
| healthy | a report or a progressing d