Scope: this skill is AgentOps operating doctrine for NTM. The binary is self-describing — for command syntax, flags, schemas, and examples use ntm --robot-docs=quickstart|commands|examples|exit-codes, ntm --robot-capabilities, ntm --robot-schema=all, or ntm --help. Never trust this file (or any notes) over the live contract. For tending loops, marching orders, unstick ladders, and swarm cadence, use the companion vibing-with-ntm skill.
atm is the same binary. atm (Bo's fork/alias, ~/.local/bin/atm) is byte-identical to ntm — same --help, same --robot-* surface, same flags, same exit codes. Every ntm … form documented here and in the references applies verbatim to atm …, and vice-versa. Use them interchangeably; the companion out-of-session substrate skill is literally named using-atm. When --robot-capabilities matters, query whichever binary you invoked — they resolve to the same contract.
NTM — Named Tmux Manager
The One Rule: Discover the live NTM contract first, then use the least interactive surface that can prove and execute the action. No --robot-capabilities / --robot-snapshot evidence -> no automation assumption.
The most common NTM mistake is treating it like a tmux macro runner. NTM is a control plane: robot API, attention feed, work graph, locks/mail, pipelines, safety, approvals, serve API, and durability all have explicit contracts. Use the contract.
Outcome — When an NTM Action Has Delivered
A state-changing NTM action is complete only when all of the following hold:
- The intended state transition is visible in
ntm --robot-snapshot — not just acknowledged by the command's exit code. (NTM commands can succeed at the API layer while panes/work/locks remain unchanged; trust the snapshot, not the return value.)
- The attention feed (
--robot-attention / --robot-tail) shows the expected event(s) — pane output, work-graph movement, lock acquire/release, mail delivery. Absence is evidence of failure.
- Adjacent state (git, br/beads, mail, pipelines) reflects the action's downstream effects within one observation window — otherwise the action fired in isolation and likely didn't accomplish its real purpose.
- Locks and pipelines you opened are either released / completed by you, or explicitly handed off via mail with a thread the next operator can claim. Orphaned locks block the swarm.
- For dispatched marching orders: the targeted pane has acknowledged (printed the order, started the work, or replied via mail). A sent-but-not-acknowledged order is not "done."
If the snapshot or attention feed disagrees with what the command said happened, trust the snapshot and re-discover the contract — the local model of NTM is stale.
Cold Start: Which NTM Skill?
| Situation |
Start here |
You need NTM doctrine, then exact syntax via --robot-docs / references |
This skill |
| You are tending an already-running swarm and deciding whether to nudge, restart, stand down, or dispatch marching orders |
$vibing-with-ntm |
| You are running a Brenner-style hypothesis investigation or incident RCA through NTM panes |
brennerbot-with-ntm |
| You only need Beads or BV mechanics |
$beads-br or $beads-bv |
For any state-changing action, verify the live contract with ntm --robot-capabilities before executing.
Folded triggers (ag-s43tg wave 1): ntm-browser-test-coordination + ntm-review-worker-orchestration route here
- Browser/UI test coordination. Use when coordinating browser or UI tests through NTM panes
with screenshots and handoffs: dispatch the test run as marching orders to a dedicated pane,
reserve the surfaces under test via
agent-mail, keep screenshot/artifact paths in the pane
output, and confirm completion in --robot-snapshot + the attention feed before handing off.
- Review/analysis workers. Use when operating an NTM review or
analysis worker with bounded inputs and evidence-backed output: scope the worker
to an explicit input set (files, diff, bead),
require artifact-backed findings (paths + line refs, not impressions), and treat a worker that
emits conclusions without evidence as not-done — re-dispatch with the bounded-input contract
restated.
The Loop (Mandatory)
1. DISCOVER -> ntm --robot-capabilities; ntm --robot-tools; repo AGENTS.md/README.md
2. SNAPSHOT -> ntm --robot-snapshot; inspect sources/degraded_sources, cursor, sessions, panes
3. SELECT -> choose the smallest surface: work/assign/send/wait/pipeline/locks/mail
4. PROVE -> fill the NTM action card: target, contract, safety, ownership, rollback
5. EXECUTE -> prefer --robot-* for automation; avoid human-only TUIs
6. VERIFY -> attention/events/causality/tail plus git/br/mail evidence changed as expected
7. CLEANUP -> release/renew locks, checkpoint/handoff, prune old pipeline state when appropriate
8. REPEAT -> re-snapshot on cursor expiry or after any state-changing action
NTM Action Card
For every state-changing NTM action, be able to answer this before running it:
## NTM action: <command>
- Target session/project: <name/path>; resolved by: `ntm config get projects_base` / `ntm quick` / snapshot
- Live contract checked: `ntm --robot-capabilities` contains <flag>; schema/docs checked if unfamiliar
- Evidence before: cursor=<N>; sources=<fresh/degraded>; panes=<count>; locks=<summary>
- Ownership/safety: Agent Mail reservation or worktree policy is clear; user pane inclusion is intentional
- Blast radius: panes/files/sessions affected; destructive/safety/policy approvals required? <yes/no>
- Verification after: <robot event / tail movement / bead state / git change / pipeline status>
- Recovery: <smart restart / interrupt / checkpoint restore / cancel pipeline / handoff>
If you cannot fill the card, do a read-only discovery pass first.
Surface Selection
Score candidate surfaces when several could work:
Score = (ContractFit x Observability x Reversibility) / BlastRadius
ContractFit 1-5: exact robot/schema match beats human help text
Observability 1-5: action emits cursor/event/status/causality evidence
Reversibility 1-5: easy cancel/retry/restore/checkpoint
BlastRadius 1-5: one pane/file is low; whole session/process tree is high
Pick the highest score. In ties, prefer the surface that produces structured output. Enumerate candidates from ntm --robot-docs=commands, not from memory. Standing preferences:
--robot-* for anything machine-driven; ntm dashboard / ntm palette / ntm view are human-only TUIs.
--robot-format=toon (or NTM_ROBOT_FORMAT=toon) and --robot-verbosity=terse when context is tight.
- Recovery order: diagnose -> probe / is-working -> smart-restart -> explicit restart. Never kill before a liveness proof.
- Event-driven tending (
--robot-wait / --robot-attention) over fixed sleep/poll loops.
Pattern Tiers
Escalate only with the action card filled; each tier raises the proof bar:
- Tier 1 — safe read-only (capabilities/schema, snapshot, events/digest/attention, work triage/queue-dry, locks list/check). Always permitted; proof = fresh
sources / degraded_sources reviewed, cursor advancing, no conflicting reservation.
- Tier 2 — reversible control (directed send, interrupt, smart-restart, assign, pipeline cancel/resume). Guard = explicit pane/type scoping, tail/liveness evidence that intervention is warranted, run id and state confirmed.
- Tier 3 — durable orchestration (pipelines, Agent Mail locks, checkpoint/handoff, serve API, safety/policy/approvals). Guard = dry-run first, lease/thread/run ids captured, auth and exposure understood, exit/recovery path named.
Anti-Patterns (Never Do)
| Bad move |
Why it fails |
Use instead |
Call ntm view from automation |
Retiles the human layout and returns nothing useful |
--robot-tail, --robot-snapshot, or --robot-dashboard |
Trust old notes over --robot-capabilities |
NTM surface changes quickly |
Discover first |
Send to --all without naming the user-pane intent |
Can hit the operator pane |
use type/panes or -s/--skip-first |
| Treat cursor values as portable |
Cursors are per-server monotonic |
checkpoint/handoff for portability |
| Kill/restart before a liveness proof |
Destroys partial work |
diagnose -> smart restart -> explicit restart |
| Conflate pipeline status and run |
--robot-pipeline=<id> is status |
--robot-pipeline-run=<file> |
| Retry degraded mail/CASS forever |
Burns the session |
record degraded source, use fallback, continue |
| Infer abandoned beads from silence |
NTM deliberately does not implement bead_orphaned |
explicit status/mail/reservation evidence |
Trust a fresh spawn --cod pane blind (bare shell) |
Some builds leave a bare zsh; prompts execute as shell text |
verify with --robot-tail; relaunch the CLI, or fall back to codex exec -C <worktree> per lane |
Fire a separate send right after a bare spawn (boot race) |
spawn returns before the agent boots to its input box; the first send is silently dropped → pane is never-engaged (CLI alive, 0.0% CPU) |
wait for input-ready first: --assign / --init-prompt / --robot-wait=ready; if already dropped, re-dispatch, don't restart (vibing OC-047) |
Pre-Flight Checklist
Output
NTM actions produce no skill-owned files. The deliverable is verified state plus evidence:
- Structured robot output (JSON or TOON) on stdout from
--robot-* commands, cited in your report.
- The post-action proof named in the action card: snapshot/attention movement, bead/git/mail change, pipeline status.
- When the surrounding arc requires durable evidence, write it to the repo's evidence path (e.g. an
Evidence: file under .agents/ or the path the bead names) — not into this skill.
Operating Notes (doctrine-critical facts)
- Project resolution is the #1 cross-tool breakage: session name MUST equal the directory basename under
projects_base (NTM_PROJECTS_BASE), or agent-mail/beads/reservations register under a different key than NTM sees. If tools "see different projects," fix this first.
- Coordination default: Agent Mail reservations are the primary primitive;
--worktrees isolation is allowed when repo policy permits. If mail/reservations are degraded, record it and use bead assignee/status as the soft lock — no retry loops.
- Cross-machine continuity is checkpoint export/import or handoff bundles — never shipped cursors.
- Safety surfaces are first-class: use
ntm safety / ntm policy / ntm approve (approve takes a token, not a bead id) instead of ad hoc shell habits; obey repo rules that route builds through rch or similar.
- The full distilled trip-wire list (CASS dedup blocking sends,
-- label separator, send-vs-spawn flag parsers, attention flag namespacing, PATH precedence for safety wrappers, and more) lives in TROUBLESHOOTING.md.
Reference Index
Keep depth out of this file. The binary's own docs (ntm --robot-docs=...) are the first stop for syntax; load these for operator-handbook detail:
| Topic |
Reference |
ntm send deep reference (selectors, templates, CASS dedup, error modes) |
SEND.md |
ntm spawn deep reference (counts/variants, labels, worktrees, recipes, stagger) |
SPAWN.md |
Work intelligence & assignment (ntm work *, ntm assign, bv integration) |
WORK-AND-ASSIGN.md |
Ensemble mode (reasoning modes, presets, --robot-ensemble-*) |
ENSEMBLE.md |
| Pipelines (YAML schema, run IDs, resume/cancel, robot flags) |
PIPELINES.md |
| Serve API (auth modes, REST route map, OpenAPI, SSE) |
SERVE.md |
Safety, policy, approvals (policy.yaml, tokens, what safety install drops) |
SAFETY.md |
| Durability stack (checkpoint vs timeline vs handoff vs resume) |
DURABILITY.md |
| Integration surfaces (DCG, SLB, CAAM, RCH, mail, cass, quota) |
INTEGRATIONS.md |
Environment variables (NTM_*, TOON_*) |
ENV-VARS.md |
| Troubleshooting (symptom / root cause / fix, full gotcha entries) |
TROUBLESHOOTING.md |
| Self-test / trigger phrases |
SELF-TEST.md |
| High-leverage command patterns, output capture, reusable assets |
COMMANDS.md |
Attention feed, robot formats, wait conditions, full --robot-* index |
ROBOT-MODE.md |
| Human dashboard, palette, keybindings, TUI notes |
DASHBOARD.md |
Project resolution, projects_base, config paths, project-local assets |
CONFIG.md |
Assets
Drop-in examples live under assets/:
Related Skills
vibing-with-ntm — the companion operator / orchestration skill: tending loops, marching-orders prompts, autonomous unstick recipes, steady-state cadence. Use it whenever the question is "how do I run the swarm well?" rather than "what does NTM do?"
agent-mail for inboxes, contact handshakes, and file reservations
br for bead state changes and syncing
bv for graph-aware task prioritization
cass for prior-session retrieval
caam for account rotation across providers (paired with --robot-switch-account)
dcg, slb for destructive-command and two-person approval policy
1---2name: ntm3description: Orchestrates NTM tmux agent swarms and robot APIs. Use when spawning/sending panes, reading robot state, triaging work, locks/mail, safety, pipelines, serve, or NTM errors. Triggers: "ntm", "orchestrates ntm tmux agent swarms", "ntm skill".4---5<!-- TOC: One Rule | Outcome | Cold Start | Mandatory Loop | NTM Action Card | Surface Selection | Pattern Tiers | Anti-Patterns | Pre-Flight Checklist | Output | Operating Notes | Reference Index | Related Skills -->67> **Scope:** this skill is AgentOps **operating doctrine** for NTM. The binary is self-describing — for command syntax, flags, schemas, and examples use `ntm --robot-docs=quickstart|commands|examples|exit-codes`, `ntm --robot-capabilities`, `ntm --robot-schema=all`, or `ntm --help`. Never trust this file (or any notes) over the live contract. For tending loops, marching orders, unstick ladders, and swarm cadence, use the companion `vibing-with-ntm` skill.89> **`atm` is the same binary.** `atm` (Bo's fork/alias, `~/.local/bin/atm`) is byte-identical to `ntm` — same `--help`, same `--robot-*` surface, same flags, same exit codes. Every `ntm …` form documented here and in the references applies verbatim to `atm …`, and vice-versa. Use them interchangeably; the companion out-of-session substrate skill is literally named `using-atm`. When `--robot-capabilities` matters, query whichever binary you invoked — they resolve to the same contract.1011# NTM — Named Tmux Manager1213> **The One Rule:** Discover the live NTM contract first, then use the least interactive surface that can prove and execute the action. No `--robot-capabilities` / `--robot-snapshot` evidence -> no automation assumption.1415The most common NTM mistake is treating it like a tmux macro runner. NTM is a control plane: robot API, attention feed, work graph, locks/mail, pipelines, safety, approvals, serve API, and durability all have explicit contracts. Use the contract.1617## Outcome — When an NTM Action Has Delivered1819A state-changing NTM action is complete only when **all** of the following hold:2021- The intended state transition is **visible in `ntm --robot-snapshot`** — not just acknowledged by the command's exit code. (NTM commands can succeed at the API layer while panes/work/locks remain unchanged; trust the snapshot, not the return value.)22- The **attention feed** (`--robot-attention` / `--robot-tail`) shows the expected event(s) — pane output, work-graph movement, lock acquire/release, mail delivery. Absence is evidence of failure.23- Adjacent state (git, br/beads, mail, pipelines) reflects the action's downstream effects within one observation window — otherwise the action fired in isolation and likely didn't accomplish its real purpose.24- Locks and pipelines you opened are either **released / completed** by you, or explicitly handed off via mail with a thread the next operator can claim. Orphaned locks block the swarm.25- For dispatched marching orders: the targeted pane has acknowledged (printed the order, started the work, or replied via mail). A sent-but-not-acknowledged order is not "done."2627If the snapshot or attention feed disagrees with what the command said happened, **trust the snapshot** and re-discover the contract — the local model of NTM is stale.2829## Cold Start: Which NTM Skill?3031| Situation | Start here |32|---|---|33| You need NTM doctrine, then exact syntax via `--robot-docs` / references | This skill |34| You are tending an already-running swarm and deciding whether to nudge, restart, stand down, or dispatch marching orders | `$vibing-with-ntm` |35| You are running a Brenner-style hypothesis investigation or incident RCA through NTM panes | `brennerbot-with-ntm` |36| You only need Beads or BV mechanics | `$beads-br` or `$beads-bv` |3738For any state-changing action, verify the live contract with `ntm --robot-capabilities` before executing.3940### Folded triggers (ag-s43tg wave 1): `ntm-browser-test-coordination` + `ntm-review-worker-orchestration` route here4142- **Browser/UI test coordination.** Use when coordinating browser or UI tests through NTM panes43 with screenshots and handoffs: dispatch the test run as marching orders to a dedicated pane,44 reserve the surfaces under test via `agent-mail`, keep screenshot/artifact paths in the pane45 output, and confirm completion in `--robot-snapshot` + the attention feed before handing off.46- **Review/analysis workers.** Use when operating an NTM review or47 analysis worker with bounded inputs and evidence-backed output: scope the worker48 to an explicit input set (files, diff, bead),49 require artifact-backed findings (paths + line refs, not impressions), and treat a worker that50 emits conclusions without evidence as not-done — re-dispatch with the bounded-input contract51 restated.5253## The Loop (Mandatory)5455```561. DISCOVER -> ntm --robot-capabilities; ntm --robot-tools; repo AGENTS.md/README.md572. SNAPSHOT -> ntm --robot-snapshot; inspect sources/degraded_sources, cursor, sessions, panes583. SELECT -> choose the smallest surface: work/assign/send/wait/pipeline/locks/mail594. PROVE -> fill the NTM action card: target, contract, safety, ownership, rollback605. EXECUTE -> prefer --robot-* for automation; avoid human-only TUIs616. VERIFY -> attention/events/causality/tail plus git/br/mail evidence changed as expected627. CLEANUP -> release/renew locks, checkpoint/handoff, prune old pipeline state when appropriate638. REPEAT -> re-snapshot on cursor expiry or after any state-changing action64```6566## NTM Action Card6768For every state-changing NTM action, be able to answer this before running it:6970```markdown71## NTM action: <command>72- Target session/project: <name/path>; resolved by: `ntm config get projects_base` / `ntm quick` / snapshot73- Live contract checked: `ntm --robot-capabilities` contains <flag>; schema/docs checked if unfamiliar74- Evidence before: cursor=<N>; sources=<fresh/degraded>; panes=<count>; locks=<summary>75- Ownership/safety: Agent Mail reservation or worktree policy is clear; user pane inclusion is intentional76- Blast radius: panes/files/sessions affected; destructive/safety/policy approvals required? <yes/no>77- Verification after: <robot event / tail movement / bead state / git change / pipeline status>78- Recovery: <smart restart / interrupt / checkpoint restore / cancel pipeline / handoff>79```8081If you cannot fill the card, do a read-only discovery pass first.8283## Surface Selection8485Score candidate surfaces when several could work:8687```88Score = (ContractFit x Observability x Reversibility) / BlastRadius8990ContractFit 1-5: exact robot/schema match beats human help text91Observability 1-5: action emits cursor/event/status/causality evidence92Reversibility 1-5: easy cancel/retry/restore/checkpoint93BlastRadius 1-5: one pane/file is low; whole session/process tree is high94```9596Pick the highest score. In ties, prefer the surface that produces structured output. Enumerate candidates from `ntm --robot-docs=commands`, not from memory. Standing preferences:9798- `--robot-*` for anything machine-driven; `ntm dashboard` / `ntm palette` / `ntm view` are human-only TUIs.99- `--robot-format=toon` (or `NTM_ROBOT_FORMAT=toon`) and `--robot-verbosity=terse` when context is tight.100- Recovery order: diagnose -> probe / is-working -> smart-restart -> explicit restart. Never kill before a liveness proof.101- Event-driven tending (`--robot-wait` / `--robot-attention`) over fixed sleep/poll loops.102103## Pattern Tiers104105Escalate only with the action card filled; each tier raises the proof bar:1061071. **Tier 1 — safe read-only** (capabilities/schema, snapshot, events/digest/attention, work triage/queue-dry, locks list/check). Always permitted; proof = fresh `sources` / `degraded_sources` reviewed, cursor advancing, no conflicting reservation.1082. **Tier 2 — reversible control** (directed send, interrupt, smart-restart, assign, pipeline cancel/resume). Guard = explicit pane/type scoping, tail/liveness evidence that intervention is warranted, run id and state confirmed.1093. **Tier 3 — durable orchestration** (pipelines, Agent Mail locks, checkpoint/handoff, serve API, safety/policy/approvals). Guard = dry-run first, lease/thread/run ids captured, auth and exposure understood, exit/recovery path named.110111## Anti-Patterns (Never Do)112113| Bad move | Why it fails | Use instead |114|---|---|---|115| Call `ntm view` from automation | Retiles the human layout and returns nothing useful | `--robot-tail`, `--robot-snapshot`, or `--robot-dashboard` |116| Trust old notes over `--robot-capabilities` | NTM surface changes quickly | Discover first |117| Send to `--all` without naming the user-pane intent | Can hit the operator pane | use type/panes or `-s/--skip-first` |118| Treat cursor values as portable | Cursors are per-server monotonic | checkpoint/handoff for portability |119| Kill/restart before a liveness proof | Destroys partial work | diagnose -> smart restart -> explicit restart |120| Conflate pipeline status and run | `--robot-pipeline=<id>` is status | `--robot-pipeline-run=<file>` |121| Retry degraded mail/CASS forever | Burns the session | record degraded source, use fallback, continue |122| Infer abandoned beads from silence | NTM deliberately does not implement `bead_orphaned` | explicit status/mail/reservation evidence |123| Trust a fresh `spawn --cod` pane blind (bare shell) | Some builds leave a **bare zsh**; prompts execute as shell text | verify with `--robot-tail`; relaunch the CLI, or fall back to `codex exec -C <worktree>` per lane |124| Fire a separate `send` right after a bare `spawn` (boot race) | `spawn` returns **before** the agent boots to its input box; the first send is silently dropped → pane is never-engaged (CLI alive, 0.0% CPU) | wait for input-ready first: `--assign` / `--init-prompt` / `--robot-wait=ready`; if already dropped, **re-dispatch, don't restart** (vibing OC-047) |125126## Pre-Flight Checklist127128- [ ] Repo `AGENTS.md` / README read when operating inside a codebase (repo-local rules override this skill).129- [ ] `ntm --robot-capabilities` checked for any unfamiliar flag.130- [ ] `ntm --robot-snapshot` captured and `sources` / `degraded_sources` reviewed.131- [ ] Session/project resolution verified; labels and `projects_base` make sense.132- [ ] User pane inclusion/exclusion is explicit.133- [ ] File ownership is clear: Agent Mail reservation, bead assignee, or approved worktree policy.134- [ ] For pipelines: dry-run passed; run id/state file plan known.135- [ ] For recovery: liveness truth stack supports intervention.136- [ ] For destructive/risky actions: safety/policy/approval surfaces checked.137- [ ] Post-action verifier named before execution.138139## Output140141NTM actions produce no skill-owned files. The deliverable is verified state plus evidence:142143- Structured robot output (JSON or TOON) on stdout from `--robot-*` commands, cited in your report.144- The post-action proof named in the action card: snapshot/attention movement, bead/git/mail change, pipeline status.145- When the surrounding arc requires durable evidence, write it to the repo's evidence path (e.g. an `Evidence:` file under `.agents/` or the path the bead names) — not into this skill.146147## Operating Notes (doctrine-critical facts)148149- **Project resolution is the #1 cross-tool breakage:** session name MUST equal the directory basename under `projects_base` (`NTM_PROJECTS_BASE`), or agent-mail/beads/reservations register under a different key than NTM sees. If tools "see different projects," fix this first.150- **Coordination default:** Agent Mail reservations are the primary primitive; `--worktrees` isolation is allowed when repo policy permits. If mail/reservations are degraded, record it and use bead assignee/status as the soft lock — no retry loops.151- **Cross-machine continuity** is checkpoint export/import or handoff bundles — never shipped cursors.152- **Safety surfaces are first-class:** use `ntm safety` / `ntm policy` / `ntm approve` (approve takes a *token*, not a bead id) instead of ad hoc shell habits; obey repo rules that route builds through `rch` or similar.153- The full distilled trip-wire list (CASS dedup blocking sends, `--` label separator, send-vs-spawn flag parsers, attention flag namespacing, PATH precedence for safety wrappers, and more) lives in [TROUBLESHOOTING.md](references/TROUBLESHOOTING.md).154155## Reference Index156157Keep depth out of this file. The binary's own docs (`ntm --robot-docs=...`) are the first stop for syntax; load these for operator-handbook detail:158159| Topic | Reference |160| --- | --- |161| `ntm send` deep reference (selectors, templates, CASS dedup, error modes) | [SEND.md](references/SEND.md) |162| `ntm spawn` deep reference (counts/variants, labels, worktrees, recipes, stagger) | [SPAWN.md](references/SPAWN.md) |163| Work intelligence & assignment (`ntm work *`, `ntm assign`, bv integration) | [WORK-AND-ASSIGN.md](references/WORK-AND-ASSIGN.md) |164| Ensemble mode (reasoning modes, presets, `--robot-ensemble-*`) | [ENSEMBLE.md](references/ENSEMBLE.md) |165| Pipelines (YAML schema, run IDs, resume/cancel, robot flags) | [PIPELINES.md](references/PIPELINES.md) |166| Serve API (auth modes, REST route map, OpenAPI, SSE) | [SERVE.md](references/SERVE.md) |167| Safety, policy, approvals (policy.yaml, tokens, what `safety install` drops) | [SAFETY.md](references/SAFETY.md) |168| Durability stack (checkpoint vs timeline vs handoff vs resume) | [DURABILITY.md](references/DURABILITY.md) |169| Integration surfaces (DCG, SLB, CAAM, RCH, mail, cass, quota) | [INTEGRATIONS.md](references/INTEGRATIONS.md) |170| Environment variables (`NTM_*`, `TOON_*`) | [ENV-VARS.md](references/ENV-VARS.md) |171| Troubleshooting (symptom / root cause / fix, full gotcha entries) | [TROUBLESHOOTING.md](references/TROUBLESHOOTING.md) |172| Self-test / trigger phrases | [SELF-TEST.md](references/SELF-TEST.md) |173| High-leverage command patterns, output capture, reusable assets | [COMMANDS.md](references/COMMANDS.md) |174| Attention feed, robot formats, wait conditions, full `--robot-*` index | [ROBOT-MODE.md](references/ROBOT-MODE.md) |175| Human dashboard, palette, keybindings, TUI notes | [DASHBOARD.md](references/DASHBOARD.md) |176| Project resolution, `projects_base`, config paths, project-local assets | [CONFIG.md](references/CONFIG.md) |177178### Assets179180Drop-in examples live under `assets/`:181182- [`pipeline-example.yaml`](https://github.com/boshu2/agentops/blob/main/skills/ntm/assets/pipeline-example.yaml) — a review pipeline with parallel step + retry183- [`policy-example.yaml`](https://github.com/boshu2/agentops/blob/main/skills/ntm/assets/policy-example.yaml) — opinionated `~/.ntm/policy.yaml` starter184- [`envrc.example`](https://github.com/boshu2/agentops/blob/main/skills/ntm/assets/envrc.example) — recommended `direnv`/shell env vars185186## Related Skills187188- **`vibing-with-ntm`** — the companion **operator / orchestration** skill: tending loops, marching-orders prompts, autonomous unstick recipes, steady-state cadence. Use it whenever the question is "how do I run the swarm well?" rather than "what does NTM do?"189- `agent-mail` for inboxes, contact handshakes, and file reservations190- `br` for bead state changes and syncing191- `bv` for graph-aware task prioritization192- `cass` for prior-session retrieval193- `caam` for account rotation across providers (paired with `--robot-switch-account`)194- `dcg`, `slb` for destructive-command and two-person approval policy