{
  "generatedFrom": 18,
  "cards": [
    {
      "id": "agent-sessions",
      "command": "agent-sessions [--all] [--json] | agent-sessions attach <session-id> | agent-sessions sweep | agent-sessions reap [--dry-run]",
      "summary": "Enrols and manages every running AI CLI session, whatever launched it (claude/codex/cursor).",
      "intent_phrases": [
        "what agent processes are running",
        "attach to a running agent",
        "clean up orphaned agent sessions"
      ],
      "replaces": [
        "ps aux | grep -E 'claude|codex|cursor'"
      ],
      "preconditions": "None for listing; `reap` stops detached idle sessions.",
      "effects": "sweep enrols untracked sessions; reap stops detached idle ones (orphan/zombie cleanup).",
      "risk": "reversible",
      "example": "agent-sessions --json",
      "help_probe": "agent-sessions --help",
      "cardPath": "modules/workstation/claude/bin/agent-sessions.card.json",
      "toolPath": "modules/workstation/claude/bin/agent-sessions",
      "toolExists": true
    },
    {
      "id": "bb-status",
      "command": "bb-status",
      "summary": "Reports reachability/health of every registered buildbox.",
      "intent_phrases": [
        "is the buildbox up",
        "check build host health",
        "which buildboxes are reachable"
      ],
      "replaces": [
        "ssh <host> uptime run by hand per host"
      ],
      "preconditions": "buildbox-hosts.json registry present.",
      "effects": "Read-only; queries each registered host.",
      "risk": "reversible",
      "example": "bb-status",
      "help_probe": null,
      "cardPath": "modules/workstation/claude/bin/bb-status.card.json",
      "toolPath": "modules/workstation/claude/bin/bb-status",
      "toolExists": true
    },
    {
      "id": "ccr-up-sh",
      "command": "bash ~/.claude/workflows/lib/ccr-up.sh <slug>",
      "summary": "Non-blocking, idempotent launch of the ccr daemon (detached + flock + readiness-poll).",
      "intent_phrases": [
        "start ccr",
        "bring up the router daemon"
      ],
      "replaces": [
        "ccr start",
        "ccr start | tail"
      ],
      "preconditions": "None — idempotent.",
      "effects": "Starts ccr detached if not already running; polls readiness before returning.",
      "risk": "reversible",
      "example": "bash ~/.claude/workflows/lib/ccr-up.sh my-task",
      "help_probe": null,
      "cardPath": "modules/workstation/claude/workflows/lib/ccr-up.sh.card.json",
      "toolPath": "modules/workstation/claude/workflows/lib/ccr-up.sh",
      "toolExists": true
    },
    {
      "id": "cdx",
      "command": "cdx exec -m <model> [--profile <account>] \"<prompt>\"",
      "summary": "Wrapper over codex exec that selects account per-invocation and applies the fleet's model-cost policy.",
      "intent_phrases": [
        "delegate this to codex",
        "have codex write this code",
        "review this diff with codex"
      ],
      "replaces": [
        "raw codex exec",
        "raw codex review",
        "editing ~/.codex/auth.json to switch accounts"
      ],
      "preconditions": "Never any codex xhigh model; reviewer sol-low, coder/fixer terra-medium, escalation sol-medium (per model-cost policy).",
      "effects": "Runs codex exec under the selected account without repointing the shared auth symlink.",
      "risk": "reversible",
      "example": "cdx exec -m gpt-5.6-sol -c model_reasoning_effort=low 'Implement the card schema validator'",
      "help_probe": "cdx --help",
      "cardPath": "modules/workstation/bin/cdx.card.json",
      "toolPath": "modules/workstation/bin/cdx",
      "toolExists": true
    },
    {
      "id": "deck-podman",
      "command": "deck-podman <podman-args...>",
      "summary": "Passthrough wrapper over podman that is always safe to use when the container runtime is unconfined.",
      "intent_phrases": [
        "run a container",
        "start a local podman container"
      ],
      "replaces": [
        "raw podman when the runtime needs confinement handling"
      ],
      "preconditions": "None.",
      "effects": "Forwards args to podman, transparent when unconfined.",
      "risk": "reversible",
      "example": "deck-podman run --rm -it debian:bookworm bash",
      "help_probe": "deck-podman --help",
      "cardPath": "modules/workstation/bin/deck-podman.card.json",
      "toolPath": "modules/workstation/bin/deck-podman",
      "toolExists": true
    },
    {
      "id": "deck-sudo",
      "command": "deck-sudo <command> [args...]",
      "summary": "Runs a command as root by respawning via systemd-run --user, escaping the agent sandbox's no_new_privs.",
      "intent_phrases": [
        "run this as root",
        "I need sudo",
        "install a system package",
        "restart a system service"
      ],
      "replaces": [
        "sudo <command>",
        "pkexec <command>",
        "run0 <command>"
      ],
      "preconditions": "Password file present (its absence is the owner's revocation, never work around it).",
      "effects": "Spawns a fresh process tree via systemd-run --user that authenticates and runs <command> as root.",
      "risk": "destructive",
      "example": "deck-sudo systemctl restart overdeck-collector",
      "help_probe": null,
      "cardPath": "modules/workstation/bin/deck-sudo.card.json",
      "toolPath": "modules/workstation/bin/deck-sudo",
      "toolExists": true
    },
    {
      "id": "deckctl",
      "command": "deckctl fleet <verb> [args]",
      "summary": "Fleet control CLI for overdeck-managed systemd units and hosts.",
      "intent_phrases": [
        "apply systemd units",
        "manage fleet hosts",
        "sync deploy units"
      ],
      "replaces": [
        "hand-editing systemd unit files, manual systemctl per host"
      ],
      "preconditions": "Run from inside the repo (resolves root by walking up from BASH_SOURCE).",
      "effects": "Fleet-wide unit/host operations depending on verb; see `deckctl fleet --help`.",
      "risk": "reversible",
      "example": "deckctl fleet units apply",
      "help_probe": "deckctl fleet --help",
      "cardPath": "bin/deckctl.card.json",
      "toolPath": "bin/deckctl",
      "toolExists": true
    },
    {
      "id": "e2e-remote",
      "command": "e2e-remote --server \"<dev-server-cmd>\" --wait-port <port> -- <browser-driver-cmd>",
      "summary": "Runs a dev server + browser-driving script as one coupled pair on a buildbox, rsyncs artifacts back.",
      "intent_phrases": [
        "run playwright tests",
        "take screenshots of the dev server",
        "run an e2e browser test",
        "visual diff the UI"
      ],
      "replaces": [
        "astro dev & node shoot.mjs",
        "pnpm exec playwright test run locally"
      ],
      "preconditions": "Server command must bind --host 127.0.0.1; artifacts written inside the repo tree.",
      "effects": "Starts the dev server and the browser driver together on a registry buildbox; pulls artifacts back over rsync.",
      "risk": "reversible",
      "example": "e2e-remote --server \"pnpm exec astro dev --host 127.0.0.1 --port 4331\" --wait-port 4331 -- node shoot-variants.mjs",
      "help_probe": "e2e-remote --help",
      "cardPath": "modules/workstation/claude/bin/e2e-remote.card.json",
      "toolPath": "modules/workstation/claude/bin/e2e-remote",
      "toolExists": true
    },
    {
      "id": "factory",
      "command": "factory <adw> <prompt-or-path>",
      "summary": "The software factory entrypoint: its own planner decomposes a request into phases, gates, and commits.",
      "intent_phrases": [
        "build this feature end to end",
        "run the factory on this request",
        "have the factory implement this"
      ],
      "replaces": [
        "hand-orchestrating a multi-step build+test+land sequence"
      ],
      "preconditions": "A request spec (authored doc or inline prompt) and a configured ADW workflow.",
      "effects": "Runs the configured phases (plan/implement/test/gate/commit) end to end, writing trace records to the harness trace db.",
      "risk": "reversible",
      "example": "factory adw_build.py \"add a retry to the deploy step\"",
      "help_probe": "factory --help",
      "cardPath": "modules/harness/factory/bin/factory.card.json",
      "toolPath": "modules/harness/factory/bin/factory",
      "toolExists": true
    },
    {
      "id": "ft",
      "external": true,
      "command": "ft sym <Name> | ft outline <file> | ft map [dir]",
      "summary": "Symbol/outline/file-map lookups over source trees — declaration sites only, far smaller than grep+read.",
      "intent_phrases": [
        "find where a function is defined",
        "see a file's declarations without reading the body",
        "map an unfamiliar directory"
      ],
      "replaces": [
        "grep -rn '<Symbol>' then Read the whole file"
      ],
      "preconditions": "Source extensions only (ts/tsx/js/jsx/mjs/cjs/astro/vue/svelte/rs/py); a miss is not proof of absence.",
      "effects": "Prints declaration sites/outlines only, no mutation.",
      "risk": "reversible",
      "example": "ft sym evaluate",
      "help_probe": "ft --help",
      "cardPath": "docs/tool-cards/external/ft.card.json",
      "toolPath": null,
      "toolExists": null
    },
    {
      "id": "install-headless-guard",
      "command": "install-headless-guard [--status|--uninstall]",
      "summary": "Wraps headless chromium/firefox/webkit so a launch on a non-registry host (the workstation) exits 97 instead of pinning CPU locally.",
      "intent_phrases": [
        "reinstall the headless guard after a browser update",
        "check if the headless guard is active"
      ],
      "replaces": [
        "manually gating playwright browser installs"
      ],
      "preconditions": "Run after any Playwright/browser version bump — idempotent, safe to rerun.",
      "effects": "Wraps the browser binaries in ~/.cache/ms-playwright.",
      "risk": "reversible",
      "example": "install-headless-guard --status",
      "help_probe": "install-headless-guard --status",
      "cardPath": "modules/workstation/claude/bin/install-headless-guard.card.json",
      "toolPath": "modules/workstation/claude/bin/install-headless-guard",
      "toolExists": true
    },
    {
      "id": "land",
      "command": "land",
      "summary": "Trunk-based direct-push landing: rebase onto default branch, secret-scan floor, push.",
      "intent_phrases": [
        "land this branch",
        "push my change to main",
        "merge and deploy",
        "ship this commit"
      ],
      "replaces": [
        "git push origin HEAD:main",
        "git merge && git push"
      ],
      "preconditions": "Working tree committed; run from the repo the change belongs to.",
      "effects": "Rebases HEAD onto the remote default branch, runs a secret-scan floor, pushes straight to default. Retries on concurrent push.",
      "risk": "reversible",
      "example": "land",
      "help_probe": "land --help",
      "cardPath": "modules/workstation/claude/bin/land.card.json",
      "toolPath": "modules/workstation/claude/bin/land",
      "toolExists": true
    },
    {
      "id": "list-sessions",
      "command": "list-sessions [-t STATE] [-s STATUS] [-c STRING] [--kill]",
      "summary": "Live breakdown of Claude Code sessions: title, id, pid, attached/active state, last activity.",
      "intent_phrases": [
        "what claude sessions are running",
        "find a stuck session",
        "kill zombie sessions",
        "list my agent sessions"
      ],
      "replaces": [
        "ps aux | grep claude"
      ],
      "preconditions": "None.",
      "effects": "Read-only by default. --kill stops detached, idle sessions only.",
      "risk": "reversible",
      "example": "list-sessions -s active",
      "help_probe": "list-sessions --help",
      "cardPath": "modules/workstation/claude/bin/list-sessions.card.json",
      "toolPath": "modules/workstation/claude/bin/list-sessions",
      "toolExists": true
    },
    {
      "id": "local-gate",
      "command": "local-gate --key <key> --mode full -- <command>",
      "summary": "Runs a build/test/lint command through the shared local gate (caching, shim tracking, exit contract).",
      "intent_phrases": [
        "run the gate",
        "run tests before landing",
        "check this passes before I ship"
      ],
      "replaces": [
        "pnpm test && pnpm build && pnpm typecheck run by hand"
      ],
      "preconditions": "A gate key that groups this command's cache/shim state.",
      "effects": "Executes <command>, tracks node/pnpm/tsc invocations under it, caches by content key.",
      "risk": "reversible",
      "example": "local-gate --key deck-ui-test --mode full -- pnpm --filter @overdeck/deck-ui test",
      "help_probe": "local-gate",
      "cardPath": "modules/workstation/claude/bin/local-gate.card.json",
      "toolPath": "modules/workstation/claude/bin/local-gate",
      "toolExists": true
    },
    {
      "id": "model-test-fixture",
      "command": "model-test-fixture --purpose verification --backend <opencode|codex|north> --workspace <dir> --trust \"<prompt>\" --task-slug <slug>",
      "summary": "The one allowed route for any model-backed test/probe/smoke/canary/integration verification.",
      "intent_phrases": [
        "write a probe that calls a model",
        "verify this behavior with a live model call",
        "run an integration smoke test against an LLM"
      ],
      "replaces": [
        "raw opencode run",
        "raw cdx exec",
        "raw codex exec",
        "raw claude -p"
      ],
      "preconditions": "One of the fixed free-route backends: opencode deepseek-v4-flash-free, codex gpt-5.3-codex-spark, north via na.sh cohere/north-mini-code:free.",
      "effects": "Dispatches to the fixed free-route model and returns its output; never falls back to another engine/model/account.",
      "risk": "reversible",
      "example": "model-test-fixture --purpose verification --backend opencode --workspace /tmp/probe --trust 'Reply with exactly OK' --task-slug smoke-check",
      "help_probe": "model-test-fixture --help",
      "cardPath": "modules/workstation/claude/bin/model-test-fixture.card.json",
      "toolPath": "modules/workstation/claude/bin/model-test-fixture",
      "toolExists": true
    },
    {
      "id": "na-sh",
      "command": "na.sh --workspace <SHORT dir> --trust \"<prompt>\" --task-slug <slug>",
      "summary": "Canonical route to the North model (cohere/north-mini-code:free) — sources env in its own subprocess, folds in ccr-up, bounds + stdin-closes the dispatch.",
      "intent_phrases": [
        "ask north",
        "use the north model",
        "run a north rig prompt"
      ],
      "replaces": [
        "hand-typed ANTHROPIC_BASE_URL=... claude ... against the north rig"
      ],
      "preconditions": "None — self-contained.",
      "effects": "Dispatches to the North model without leaking the OpenRouter env into the caller's shell.",
      "risk": "reversible",
      "example": "~/.claude/skills/north-orchestrator/na.sh --workspace /tmp/w --trust 'summarize this diff' --task-slug diff-summary",
      "help_probe": null,
      "cardPath": "modules/workstation/claude/skills/north-orchestrator/na.sh.card.json",
      "toolPath": "modules/workstation/claude/skills/north-orchestrator/na.sh",
      "toolExists": true
    },
    {
      "id": "od-wip",
      "command": "od-wip list | od-wip restore <ref>",
      "summary": "Lists and restores worktree-gc-salvaged WIP (origin wip/* refs, local archive refs, and the vault).",
      "intent_phrases": [
        "find my lost worktree changes",
        "recover deleted worktree work",
        "what happened to my WIP"
      ],
      "replaces": [
        "manually digging through reflog or origin/wip/* refs"
      ],
      "preconditions": "The worktree was salvaged (idle worktrees auto-salvage to origin wip/* + local vault).",
      "effects": "list is read-only; restore recreates the branch/worktree from the salvaged ref.",
      "risk": "reversible",
      "example": "od-wip list",
      "help_probe": "od-wip --help",
      "cardPath": "modules/workstation/claude/bin/od-wip.card.json",
      "toolPath": "modules/workstation/claude/bin/od-wip",
      "toolExists": true
    },
    {
      "id": "od-worktree",
      "command": "od-worktree add <name> [<base>]",
      "summary": "Creates a git worktree inside <repo-root>/.worktrees/ — the only sanctioned location.",
      "intent_phrases": [
        "make a worktree",
        "start a new branch to work on",
        "claim a workspace for this task"
      ],
      "replaces": [
        "git worktree add <path outside the repo>"
      ],
      "preconditions": "Run from inside the target repo.",
      "effects": "Creates <repo-root>/.worktrees/<name> on a new branch wt/<name>. `list` shows strays, `adopt <path>` moves one back in.",
      "risk": "reversible",
      "example": "od-worktree add tool-registry",
      "help_probe": "od-worktree",
      "cardPath": "modules/workstation/claude/bin/od-worktree.card.json",
      "toolPath": "modules/workstation/claude/bin/od-worktree",
      "toolExists": true
    }
  ],
  "errors": []
}
