Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/agentproto/ts/durable-supervisionnpx skills add agentproto/ts --skill durable-supervisiongit clone --depth 1 https://github.com/agentproto/tsWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00172 | $0.03930 |
| Opus 5 | $0.00086 | $0.01965 |
| Sonnet 5 | $0.00034 | $0.00786 |
| Haiku 4.5 | $0.00017 | $0.00393 |
Grade C, and why
durable-supervision scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
**inside** the workspace (cwd does not escape), test, then `rm -rf`. How it starts
The opening of the file, as written. The whole thing — 285 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Durable supervision (in-daemon policy engine)
The durable supervisor does not live in cowork (which depends on the app being
open) but in the agentproto daemon. It subscribes to session events
(turn-end/awaiting-input/exited), runs a gate at the end of a turn,
and emits the result on an event bus that you read without token-hungry
polling. It is the governance layer on top of sessions; topology (who spawns
whom) belongs to nested-orchestration, model execution to
light-coder-orchestration.
Everything below has been proven live except the sections explicitly marked "source" (code-complete + unit tests, but not re-executed here).
One-line principle
session → (turn-end) → gate (shell|judge) → policy:passed|failed → [then: emit | commit (human ack) → policy:committed]
Before delegating, paste the Brief Contract from supervisor-session into
every brief.
1. Attach a policy to a session
policy_attach({
sessionId: "sess_xxx", // OR sessionIds:[...] for a fan-in group
then: "emit", // "emit" → policy:passed/failed ; "commit" → stage+commit
gate: { command, args?, cwd?, timeoutMs? }, // shell: exit 0 = pass
onFail?: { nudge?, maxRetries? }, // re-prompt N times then blocked
next?: <policy> // DAG: chains a policy on done (source)
})
- Lifecycle proven:
watching→ (turn-end)gating→done(green) /blocked(red, no retry left) /awaiting-ack(commit). Read it viapolicy_status({policyId}); inventory viapolicy_list(). - The gate runs after the watched session's
turn-end. Attach the policy BEFORE the session finishes its turn (spawn idle → attach → prompt), otherwise you run the same race risk aswait_for_any(the transient event can be missed). - No gate → the policy passes immediately at turn-end (useful to just milestone a completion on the bus).
2. The (shell) gate — two lived invariants
The shell gate is { command, args?, cwd?, timeoutMs? }, exit 0 = pass. Two
traps proven live:
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 285 lines · 172 tokens per session scan C e4457738a90b
durable-supervision is a skill published in the GitHub repository agentproto/ts (5 stars, last pushed 3d ago), licensed Apache-2.0. It adds 172 tokens to every session and 3,930 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
pre-push
Runs the local equivalent of the CI merge gate before you push. Detects which areas (Python, TypeScript, docs) your changes touch, auto-fixes what it can, then runs only those checks. Use when the user asks to run pre-push checks, get push-ready, verify changes before pushing or opening a PR, "make sure CI will pass"…
docs-planner
Identify documentation gaps and prioritize the docs backlog. Use when planning a docs improvement sprint, after signals surface repeated friction, when new SDK features ship without docs, or for periodic health assessment. Also triggers on "plan docs work", "what docs need writing", "prioritize the backlog", "docs…
pr-feedback
Fetches PR review feedback and inline comments, categorizes them, and presents options to the user. Use when the user asks to get, read, address, or fix review comments on a pull request.
document-service
This skill should be used when the user asks to "analyze this codebase", "document this service", "generate technical docs", "I inherited this code", "help me understand this system", "create docs for this project", "what does this system look like", "onboard me to this codebase", "this codebase has no docs"…
hyperpod-cluster-debugger
Diagnose and remediate cluster-wide HyperPod (EKS or Slurm) problems — creation / deployment failures (CloudFormation, EFA health check, lifecycle scripts, capacity), EKS access, node replacement, CloudFormation nested-stack errors, post-maintenance rollback state, dangling nodes, autoscaler conflicts. Includes…
hyperpod-nccl
Diagnose NCCL failures and adjacent training-pod failures on HyperPod GPU clusters (EKS or Slurm) — training hangs, AllReduce / collective-op timeouts, EFA or libfabric errors, rendezvous failures, EFA TCP fallback, /dev/shm or memlock issues, NCCL version mismatch across pods, container OOM / exit-137 / OOMKilled…