[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71GSTDQXM3BJMPDFJR8H9CA":3,"skill-same:01M71GSTDQXM3BJMPDFJR8H9CA":103},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":83,"commitSha":84,"skillDirectory":85,"forksCount":14,"repositoryHtmlUrl":86,"repositoryHomepageUrl":6,"ownerHtmlUrl":87,"ownerBlogUrl":6,"ownerDescription":88,"updatedAt":89,"install":90,"resources":102},"01M71GSTDQXM3BJMPDFJR8H9CA","minion-orchestrator",null,"Unified Minions skill for both deterministic shell jobs and LLM subagent\norchestration. Replaces the older `gbrain-jobs` routing intent. Use when:\nsubmitting gbrain jobs, shell\u002Fbackground tasks, spawning subagents,\nchecking progress, steering running work, pausing\u002Fresuming, parallel\nfan-out. One durable, observable, steerable queue interface.","weareturnone\u002Fgbrain","weareturnone","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F106660686?v=4","01M71GRFW4YZ9DFYK6J17YXQNB","Roelof Stoelwinder ","01M71GRFWVQF5ASVB08TP5VKWG",0,"MIT","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fminion-orchestrator\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"orchestrator","minion orchestrator","run","command","intent","message","progress","change","work","spawn agent","shell command","subagent","tasks","when","orchestration","interface","send","submit","direction","get","2026-11-10 10:12:30",false,"---\nname: minion-orchestrator\nversion: 1.0.0\ndescription: |\n  Unified Minions skill for both deterministic shell jobs and LLM subagent\n  orchestration. Replaces the older `gbrain-jobs` routing intent. Use when:\n  submitting gbrain jobs, shell\u002Fbackground tasks, spawning subagents,\n  checking progress, steering running work, pausing\u002Fresuming, parallel\n  fan-out. One durable, observable, steerable queue interface.\ntriggers:\n  - \"gbrain jobs submit\"\n  - \"submit a gbrain job\"\n  - \"submit a shell job\"\n  - \"shell job\"\n  - \"run shell command in background\"\n  - \"deterministic background task\"\n  - \"spawn agent\"\n  - \"background task\"\n  - \"run in background\"\n  - \"check on agent\"\n  - \"agent progress\"\n  - \"what's running\"\n  - \"steer agent\"\n  - \"change direction\"\n  - \"tell the agent\"\n  - \"pause agent\"\n  - \"stop agent\"\n  - \"resume agent\"\n  - \"parallel tasks\"\n  - \"fan out\"\n  - \"do these in parallel\"\ntools:\n  - submit_job\n  - get_job\n  - list_jobs\n  - cancel_job\n  - pause_job\n  - resume_job\n  - replay_job\n  - send_job_message\n  - get_job_progress\nmutating: true\n---\n\n# Minion Orchestrator\n\n## Contract\n\nMinions is a Postgres-native job queue for durable, observable background work.\nThis single skill handles two lanes:\n- Deterministic shell jobs (`gbrain jobs submit shell ...`)\n- LLM subagent jobs (`gbrain agent run ...`)\n\nWhen to route to Minions: durable, observable work that must survive restarts,\nfan out across many parallel tasks, or persist across sessions. Routing policy\nis defined in `skills\u002Fconventions\u002Fsubagent-routing.md` — the project default is\n`pain_triggered` (native subagents first, Minions after specific pain signals\nfire); Mode A (all-through-Minions) is opt-in.\n\nGuarantees:\n- Jobs survive gateway restart (Postgres-backed)\n- Every job has structured progress, token accounting, and session transcripts\n- Running agents can be steered mid-flight via inbox messages\n- Jobs can be paused, resumed, or cancelled at any time\n- Parent-child DAGs with configurable failure policies\n\n## Route the Request: Shell Job vs Subagent\n\n| Condition | Action |\n|---|---|\n| User asks for deterministic command\u002Fscript run | Shell job (CLI: `gbrain jobs submit shell ...`) |\n| User asks to \"run in minions\" + explicit command\u002Fargv | Shell job (CLI, `--params` with `cmd` or `argv`) |\n| User asks for research\u002Freasoning\u002Fiterative agent | Subagent job (CLI: `gbrain agent run`) |\n| User asks to steer\u002Fpause\u002Fresume an agent | Subagent job lifecycle tools (MCP-callable) |\n| Single simple operation under ~30s | Consider inline execution first |\n| Needs restart durability\u002Fobservability | Submit as Minion job |\n| Parallel work (2+ streams) | `gbrain agent run --fanout-manifest` or parent + child subagents |\n\nIf intent is ambiguous, ask one clarification:\n\"Do you want a deterministic shell command job, or an LLM agent job?\"\n\n## Shell Jobs (Deterministic Scripts)\n\nUse for reproducible command execution, ETL steps, cron work, and scriptable\ntasks where no LLM reasoning loop is needed.\n\n### Preconditions (read before submitting your first shell job)\n\n- **`GBRAIN_ALLOW_SHELL_JOBS=1` must be set on the worker environment.**\n  Without it, the shell handler refuses to register and submissions sit in\n  `waiting` silently. Gate lives in `src\u002Fcore\u002Fminions\u002Fhandlers\u002Fshell.ts`.\n- **Security:** flipping `GBRAIN_ALLOW_SHELL_JOBS=1` authorizes arbitrary\n  command execution on the worker. On a shared queue, this is a remote code\n  execution surface. Treat as privileged infrastructure authorization.\n- **Execution mode — pick one:**\n  - **Postgres + daemon:** `gbrain jobs work` runs a persistent worker that\n    claims and executes jobs from the queue.\n  - **PGLite + --follow:** `gbrain jobs submit ... --follow` runs inline.\n    The daemon mode is not available on PGLite (exclusive file lock). See\n    `docs\u002Fguides\u002Fminions-shell-jobs.md`.\n- **MCP boundary:** shell-job submission is CLI-only. `submit_job name=\"shell\"`\n  over MCP throws an `OperationError` with code `permission_denied` (\"'shell'\n  jobs cannot be submitted over MCP\") because `shell` is in `PROTECTED_JOB_NAMES`.\n  Agents CAN observe shell jobs via `get_job` \u002F `list_jobs` \u002F `get_job_progress`\n  (not protected), but cannot submit them. Operator or autopilot submits;\n  agent observes.\n- **Verify setup:** after configuration, run `gbrain jobs stats` (CLI) to\n  confirm the worker is registered and consuming the queue.\n\n### Submit (CLI, operator or autopilot)\n\nShell jobs take their command via `--params` as a JSON object with `cmd` (string)\nor `argv` (array), plus `cwd` and optional `env`.\n\nCommand string form:\n```\ngbrain jobs submit shell --params '{\"cmd\":\"echo hello\",\"cwd\":\"\u002Fabs\u002Fpath\"}'\n```\n\nArgv form (no shell expansion):\n```\ngbrain jobs submit shell --params '{\"argv\":[\"bash\",\"-lc\",\"echo hello\"],\"cwd\":\"\u002Fabs\u002Fpath\"}'\n```\n\nInline execution on PGLite or any one-shot deployment:\n```\ngbrain jobs submit shell --params '{\"cmd\":\"echo hello\",\"cwd\":\"\u002Ftmp\"}' --follow\n```\n\nQueue\u002Flifecycle flags exposed by `gbrain jobs submit --help`: `--queue`,\n`--priority`, `--delay`, `--max-attempts`, `--max-stalled`, `--backoff-type`,\n`--backoff-delay`, `--backoff-jitter`, `--timeout-ms`, `--idempotency-key`,\n`--dry-run`.\n\n### Monitor (agents or operator)\n\nThese operations are MCP-callable and safe for agent use:\n\n```\nlist_jobs --name shell --status active\nget_job ID\nget_job_progress ID\n```\n\nCheck structured result fields (exit code, stdout\u002Fstderr tails, attempts,\ntimings) from `get_job`. Use `gbrain jobs stats` (CLI) for worker\u002Fqueue\nhealth dashboard.\n\n### Control (MCP-callable)\n\n```\ncancel_job id=ID\nreplay_job id=ID\n```\n\n`replay_job` is not protected — only shell *submission* is. Agents can\ncancel or replay a shell job without CLI access.\n\nUse idempotency keys for recurring shell workloads to avoid duplicate runs.\n\n## Subagent Jobs (LLM Orchestration)\n\nUse for open-ended reasoning, tool-using research, and fan-out synthesis.\n\n**User-facing entrypoint:** `gbrain agent run \u003Cprompt>` is the canonical way\nto submit subagent work. It handles the elevated-trust plumbing — `subagent`\nand `subagent_aggregator` are both in `PROTECTED_JOB_NAMES`, so direct MCP\nsubmission requires `{allowProtectedSubmit: true}`, which `gbrain agent run`\nsupplies.\n\n## Phase 1: Submit\n\n```\ngbrain agent run \"Research Acme Corp revenue\" --tools \"search,query\"\n```\n\n`--tools` accepts a comma-separated subset of `BRAIN_TOOL_ALLOWLIST` (see\n`src\u002Fcore\u002Fminions\u002Ftools\u002Fbrain-allowlist.ts`): `query`, `search`, `get_page`,\n`list_pages`, `file_list`, `file_url`, `get_backlinks`, `traverse_graph`,\n`resolve_slugs`, `get_ingest_log`, `put_page`. Anything outside the allow-list\nis rejected at submit time with `allowed_tools references unknown tool`.\n\nFor parallel work with a fan-out manifest:\n```\ngbrain agent run --fanout-manifest companies.json\n```\n\nThe manifest describes N children + 1 aggregator. Each child runs\n`name=\"subagent\"` under the hood; the aggregator runs `name=\"subagent_aggregator\"`\nand claims AFTER every child terminates. See\n`src\u002Fcore\u002Fminions\u002Fhandlers\u002Fsubagent.ts` and\n`src\u002Fcore\u002Fminions\u002Fhandlers\u002Fsubagent-aggregator.ts`.\n\nFlags (from `src\u002Fcommands\u002Fagent.ts`):\n- `--subagent-def \u003Cname>` — named subagent definition\n- `--model \u003Cid>` — override model\n- `--max-turns \u003CN>` — cap the LLM loop\n- `--tools \u003Ccsv>` — allow-listed brain tools (see above)\n- `--timeout-ms \u003CN>` — hard timeout per job\n- `--fanout-manifest \u003Cfile>` — N children + 1 aggregator\n- `--follow` \u002F `--no-follow` — stream logs + wait (default on TTY)\n- `--detach` — submit and return immediately\n\nQueue\u002Fpriority\u002Fretry tuning is not exposed by `gbrain agent run`; submit the\nraw `subagent` handler via `gbrain jobs submit` (requires CLI trust) if you\nneed those knobs.\n\n## Phase 2: Monitor\n\n```\nlist_jobs --status active          # MCP — what's running?\nget_job ID                         # MCP — full details + logs + tokens\nget_job_progress ID                # MCP — structured progress snapshot\ngbrain jobs stats                  # CLI — queue health dashboard\ngbrain agent logs ID --follow      # CLI — streaming transcript + heartbeat\n```\n\nProgress includes: step count, total steps, message, token usage, last tool called.\n\n## Phase 3: Steer\n\nSend a message to redirect a running agent:\n```\nsend_job_message id=ID payload={\"directive\":\"focus on revenue, skip headcount\"}\n```\n\nThe agent handler reads inbox messages on each iteration and injects them as\ncontext. Messages are acknowledged (read receipts tracked).\n\nOnly the parent job or admin can send messages (sender validation).\n\n## Phase 4: Lifecycle\n\n```\npause_job id=ID                    # freeze without losing state\nresume_job id=ID                   # pick up where it left off\ncancel_job id=ID                   # hard stop\nreplay_job id=ID                   # re-run with same or modified params\nreplay_job id=ID data_overrides={\"depth\":\"deep\"}  # replay with changes\n```\n\nAll lifecycle ops are MCP-callable.\n\n## Phase 5: Review Results\n\n```\nget_job ID                         # result, token counts, transcript\n```\n\nToken accounting: every job tracks `tokens_input`, `tokens_output`, `tokens_cache_read`.\nChild tokens roll up to parent automatically on completion.\n\n## Output Format\n\nWhen reporting job status to the user:\n\n```\nJob #ID (name) — status\nProgress: step\u002Ftotal — last action\nTokens: input_count in \u002F output_count out (+ cache_read cached)\nRuntime: Xs\nChildren: N pending, M completed\n```\n\nWhen reporting completion:\n\n```\nJob #ID completed in Xs\nTokens used: input \u002F output \u002F cache_read\nResult: \u003Csummary>\n```\n\nWhen reporting batch status (parent with children):\n\n```\nParent #ID — waiting-children\n  #A subagent(Acme) — active, 3\u002F5 steps, 2.5k tokens\n  #B subagent(Beta) — completed, 1.8k tokens\n  #C subagent(Gamma) — paused\nTotal tokens so far: 4.3k\n```\n\n## Anti-Patterns\n\n- Don't spawn a Minion for a single search query (use search tool directly)\n- Don't fire-and-forget without checking results\n- Don't spawn > 5 concurrent agents without checking `gbrain jobs stats` first\n- For subagent work, don't use `sessions_spawn` with `runtime: \"subagent\"` when Minions is available (use `gbrain agent run` instead)\n- Don't poll `get_job` in a tight loop (use `get_job_progress` for lightweight checks)\n\n## Tools Used\n\n- Submit a background job — `submit_job` (MCP, non-protected names only; shell jobs are CLI-only, subagent jobs via `gbrain agent run`)\n- Get job details — `get_job` (MCP)\n- List jobs with filters — `list_jobs` (MCP)\n- Cancel a job — `cancel_job` (MCP)\n- Pause a job — `pause_job` (MCP)\n- Resume a paused job — `resume_job` (MCP)\n- Replay a completed\u002Ffailed job — `replay_job` (MCP)\n- Send sidechannel message — `send_job_message` (MCP)\n- Get structured progress — `get_job_progress` (MCP)\n- Queue stats — `gbrain jobs stats` (CLI; no MCP equivalent)\n","# Minion Orchestrator\n\n## Contract\n\nMinions is a Postgres-native job queue for durable, observable background work.\nThis single skill handles two lanes:\n- Deterministic shell jobs (`gbrain jobs submit shell ...`)\n- LLM subagent jobs (`gbrain agent run ...`)\n\nWhen to route to Minions: durable, observable work that must survive restarts,\nfan out across many parallel tasks, or persist across sessions. Routing policy\nis defined in `skills\u002Fconventions\u002Fsubagent-routing.md` — the project default is\n`pain_triggered` (native subagents first, Minions after specific pain signals\nfire); Mode A (all-through-Minions) is opt-in.\n\nGuarantees:\n- Jobs survive gateway restart (Postgres-backed)\n- Every job has structured progress, token accounting, and session transcripts\n- Running agents can be steered mid-flight via inbox messages\n- Jobs can be paused, resumed, or cancelled at any time\n- Parent-child DAGs with configurable failure policies\n\n## Route the Request: Shell Job vs Subagent\n\n| Condition | Action |\n|---|---|\n| User asks for deterministic command\u002Fscript run | Shell job (CLI: `gbrain jobs submit shell ...`) |\n| User asks to \"run in minions\" + explicit command\u002Fargv | Shell job (CLI, `--params` with `cmd` or `argv`) |\n| User asks for research\u002Freasoning\u002Fiterative agent | Subagent job (CLI: `gbrain agent run`) |\n| User asks to steer\u002Fpause\u002Fresume an agent | Subagent job lifecycle tools (MCP-callable) |\n| Single simple operation under ~30s | Consider inline execution first |\n| Needs restart durability\u002Fobservability | Submit as Minion job |\n| Parallel work (2+ streams) | `gbrain agent run --fanout-manifest` or parent + child subagents |\n\nIf intent is ambiguous, ask one clarification:\n\"Do you want a deterministic shell command job, or an LLM agent job?\"\n\n## Shell Jobs (Deterministic Scripts)\n\nUse for reproducible command execution, ETL steps, cron work, and scriptable\ntasks where no LLM reasoning loop is needed.\n\n### Preconditions (read before submitting your first shell job)\n\n- **`GBRAIN_ALLOW_SHELL_JOBS=1` must be set on the worker environment.**\n  Without it, the shell handler refuses to register and submissions sit in\n  `waiting` silently. Gate lives in `src\u002Fcore\u002Fminions\u002Fhandlers\u002Fshell.ts`.\n- **Security:** flipping `GBRAIN_ALLOW_SHELL_JOBS=1` authorizes arbitrary\n  command execution on the worker. On a shared queue, this is a remote code\n  execution surface. Treat as privileged infrastructure authorization.\n- **Execution mode — pick one:**\n  - **Postgres + daemon:** `gbrain jobs work` runs a persistent worker that\n    claims and executes jobs from the queue.\n  - **PGLite + --follow:** `gbrain jobs submit ... --follow` runs inline.\n    The daemon mode is not available on PGLite (exclusive file lock). See\n    `docs\u002Fguides\u002Fminions-shell-jobs.md`.\n- **MCP boundary:** shell-job submission is CLI-only. `submit_job name=\"shell\"`\n  over MCP throws an `OperationError` with code `permission_denied` (\"'shell'\n  jobs cannot be submitted over MCP\") because `shell` is in `PROTECTED_JOB_NAMES`.\n  Agents CAN observe shell jobs via `get_job` \u002F `list_jobs` \u002F `get_job_progress`\n  (not protected), but cannot submit them. Operator or autopilot submits;\n  agent observes.\n- **Verify setup:** after configuration, run `gbrain jobs stats` (CLI) to\n  confirm the worker is registered and consuming the queue.\n\n### Submit (CLI, operator or autopilot)\n\nShell jobs take their command via `--params` as a JSON object with `cmd` (string)\nor `argv` (array), plus `cwd` and optional `env`.\n\nCommand string form:\n```\ngbrain jobs submit shell --params '{\"cmd\":\"echo hello\",\"cwd\":\"\u002Fabs\u002Fpath\"}'\n```\n\nArgv form (no shell expansion):\n```\ngbrain jobs submit shell --params '{\"argv\":[\"bash\",\"-lc\",\"echo hello\"],\"cwd\":\"\u002Fabs\u002Fpath\"}'\n```\n\nInline execution on PGLite or any one-shot deployment:\n```\ngbrain jobs submit shell --params '{\"cmd\":\"echo hello\",\"cwd\":\"\u002Ftmp\"}' --follow\n```\n\nQueue\u002Flifecycle flags exposed by `gbrain jobs submit --help`: `--queue`,\n`--priority`, `--delay`, `--max-attempts`, `--max-stalled`, `--backoff-type`,\n`--backoff-delay`, `--backoff-jitter`, `--timeout-ms`, `--idempotency-key`,\n`--dry-run`.\n\n### Monitor (agents or operator)\n\nThese operations are MCP-callable and safe for agent use:\n\n```\nlist_jobs --name shell --status active\nget_job ID\nget_job_progress ID\n```\n\nCheck structured result fields (exit code, stdout\u002Fstderr tails, attempts,\ntimings) from `get_job`. Use `gbrain jobs stats` (CLI) for worker\u002Fqueue\nhealth dashboard.\n\n### Control (MCP-callable)\n\n```\ncancel_job id=ID\nreplay_job id=ID\n```\n\n`replay_job` is not protected — only shell *submission* is. Agents can\ncancel or replay a shell job without CLI access.\n\nUse idempotency keys for recurring shell workloads to avoid duplicate runs.\n\n## Subagent Jobs (LLM Orchestration)\n\nUse for open-ended reasoning, tool-using research, and fan-out synthesis.\n\n**User-facing entrypoint:** `gbrain agent run \u003Cprompt>` is the canonical way\nto submit subagent work. It handles the elevated-trust plumbing — `subagent`\nand `subagent_aggregator` are both in `PROTECTED_JOB_NAMES`, so direct MCP\nsubmission requires `{allowProtectedSubmit: true}`, which `gbrain agent run`\nsupplies.\n\n## Phase 1: Submit\n\n```\ngbrain agent run \"Research Acme Corp revenue\" --tools \"search,query\"\n```\n\n`--tools` accepts a comma-separated subset of `BRAIN_TOOL_ALLOWLIST` (see\n`src\u002Fcore\u002Fminions\u002Ftools\u002Fbrain-allowlist.ts`): `query`, `search`, `get_page`,\n`list_pages`, `file_list`, `file_url`, `get_backlinks`, `traverse_graph`,\n`resolve_slugs`, `get_ingest_log`, `put_page`. Anything outside the allow-list\nis rejected at submit time with `allowed_tools references unknown tool`.\n\nFor parallel work with a fan-out manifest:\n```\ngbrain agent run --fanout-manifest companies.json\n```\n\nThe manifest describes N children + 1 aggregator. Each child runs\n`name=\"subagent\"` under the hood; the aggregator runs `name=\"subagent_aggregator\"`\nand claims AFTER every child terminates. See\n`src\u002Fcore\u002Fminions\u002Fhandlers\u002Fsubagent.ts` and\n`src\u002Fcore\u002Fminions\u002Fhandlers\u002Fsubagent-aggregator.ts`.\n\nFlags (from `src\u002Fcommands\u002Fagent.ts`):\n- `--subagent-def \u003Cname>` — named subagent definition\n- `--model \u003Cid>` — override model\n- `--max-turns \u003CN>` — cap the LLM loop\n- `--tools \u003Ccsv>` — allow-listed brain tools (see above)\n- `--timeout-ms \u003CN>` — hard timeout per job\n- `--fanout-manifest \u003Cfile>` — N children + 1 aggregator\n- `--follow` \u002F `--no-follow` — stream logs + wait (default on TTY)\n- `--detach` — submit and return immediately\n\nQueue\u002Fpriority\u002Fretry tuning is not exposed by `gbrain agent run`; submit the\nraw `subagent` handler via `gbrain jobs submit` (requires CLI trust) if you\nneed those knobs.\n\n## Phase 2: Monitor\n\n```\nlist_jobs --status active          # MCP — what's running?\nget_job ID                         # MCP — full details + logs + tokens\nget_job_progress ID                # MCP — structured progress snapshot\ngbrain jobs stats                  # CLI — queue health dashboard\ngbrain agent logs ID --follow      # CLI — streaming transcript + heartbeat\n```\n\nProgress includes: step count, total steps, message, token usage, last tool called.\n\n## Phase 3: Steer\n\nSend a message to redirect a running agent:\n```\nsend_job_message id=ID payload={\"directive\":\"focus on revenue, skip headcount\"}\n```\n\nThe agent handler reads inbox messages on each iteration and injects them as\ncontext. Messages are acknowledged (read receipts tracked).\n\nOnly the parent job or admin can send messages (sender validation).\n\n## Phase 4: Lifecycle\n\n```\npause_job id=ID                    # freeze without losing state\nresume_job id=ID                   # pick up where it left off\ncancel_job id=ID                   # hard stop\nreplay_job id=ID                   # re-run with same or modified params\nreplay_job id=ID data_overrides={\"depth\":\"deep\"}  # replay with changes\n```\n\nAll lifecycle ops are MCP-callable.\n\n## Phase 5: Review Results\n\n```\nget_job ID                         # result, token counts, transcript\n```\n\nToken accounting: every job tracks `tokens_input`, `tokens_output`, `tokens_cache_read`.\nChild tokens roll up to parent automatically on completion.\n\n## Output Format\n\nWhen reporting job status to the user:\n\n```\nJob #ID (name) — status\nProgress: step\u002Ftotal — last action\nTokens: input_count in \u002F output_count out (+ cache_read cached)\nRuntime: Xs\nChildren: N pending, M completed\n```\n\nWhen reporting completion:\n\n```\nJob #ID completed in Xs\nTokens used: input \u002F output \u002F cache_read\nResult: \u003Csummary>\n```\n\nWhen reporting batch status (parent with children):\n\n```\nParent #ID — waiting-children\n  #A subagent(Acme) — active, 3\u002F5 steps, 2.5k tokens\n  #B subagent(Beta) — completed, 1.8k tokens\n  #C subagent(Gamma) — paused\nTotal tokens so far: 4.3k\n```\n\n## Anti-Patterns\n\n- Don't spawn a Minion for a single search query (use search tool directly)\n- Don't fire-and-forget without checking results\n- Don't spawn > 5 concurrent agents without checking `gbrain jobs stats` first\n- For subagent work, don't use `sessions_spawn` with `runtime: \"subagent\"` when Minions is available (use `gbrain agent run` instead)\n- Don't poll `get_job` in a tight loop (use `get_job_progress` for lightweight checks)\n\n## Tools Used\n\n- Submit a background job — `submit_job` (MCP, non-protected names only; shell jobs are CLI-only, subagent jobs via `gbrain agent run`)\n- Get job details — `get_job` (MCP)\n- List jobs with filters — `list_jobs` (MCP)\n- Cancel a job — `cancel_job` (MCP)\n- Pause a job — `pause_job` (MCP)\n- Resume a paused job — `resume_job` (MCP)\n- Replay a completed\u002Ffailed job — `replay_job` (MCP)\n- Send sidechannel message — `send_job_message` (MCP)\n- Get structured progress — `get_job_progress` (MCP)\n- Queue stats — `gbrain jobs stats` (CLI; no MCP equivalent)\n",{"name":5,"tools":49,"version":59,"mutating":60,"triggers":61,"description":82},[50,51,52,53,54,55,56,57,58],"submit_job","get_job","list_jobs","cancel_job","pause_job","resume_job","replay_job","send_job_message","get_job_progress","1.0.0",true,[62,63,64,65,66,67,33,68,69,70,71,72,73,74,75,76,77,78,79,80,81],"gbrain jobs submit","submit a gbrain job","submit a shell job","shell job","run shell command in background","deterministic background task","background task","run in background","check on agent","agent progress","what's running","steer agent","change direction","tell the agent","pause agent","stop agent","resume agent","parallel tasks","fan out","do these in parallel","Unified Minions skill for both deterministic shell jobs and LLM subagent\norchestration. Replaces the older `gbrain-jobs` routing intent. Use when:\nsubmitting gbrain jobs, shell\u002Fbackground tasks, spawning subagents,\nchecking progress, steering running work, pausing\u002Fresuming, parallel\nfan-out. One durable, observable, steerable queue interface.\n","master","1fd9e273fe234ffb8d2a7705955f087f861a5c3d","skills\u002Fminion-orchestrator","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain","https:\u002F\u002Fgithub.com\u002Fweareturnone","I have a passion for operations, systems and doing good for the world.","2026-07-08 23:38:19",{"source":8,"skillName":5,"commands":91,"prompt":101,"zipAvailable":60},[92,95,98],{"tool":93,"command":94},"npx","npx skills add weareturnone\u002Fgbrain --skill minion-orchestrator",{"tool":96,"command":97},"bunx","bunx skills add weareturnone\u002Fgbrain --skill minion-orchestrator",{"tool":99,"command":100},"pnpm","pnpm dlx skills add weareturnone\u002Fgbrain --skill minion-orchestrator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fminion-orchestrator\u002FSKILL.md",[],[104,120,135,150,166,188],{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":44},"01M71GTZ2PH49PD2R6RR7MHJZP","signal-detector","Always-on ambient signal capture for the OpenClaw reference fixture.","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fopenclaw-reference-minimal\u002Fskills\u002Fsignal-detector\u002FSKILL.md",[],[111,112,113,114,115,116,117,29,118,119],"signal","signal detector","detector","for","openclaw","capture","reference","fixture","ambient",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":44},"01M71GTY1250DC73PGRWDE82KW","query","Look up brain pages in the OpenClaw reference fixture.","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fopenclaw-reference-minimal\u002Fskills\u002Fquery\u002FSKILL.md",[],[122,127,117,128,115,129,130,131,132,133,134,114,118],"do","lookup","look","pages","up","brain","search","about",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":44},"01M71GTX0T1T9224P29SD7CSG7","context-now","ALWAYS-ON time-sensitivity discipline for the OpenClaw reference fixture.","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fopenclaw-reference-minimal\u002Fskills\u002Fcontext-now\u002FSKILL.md",[],[142,143,144,145,146,115,114,147,117,118,148,149],"context","context now","now","time","how","discipline","sensitivity","long",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":44},"01M71GTVZJTSWXBM4ZRF4A7QVA","brain-ops","Core read\u002Fwrite cycle for the OpenClaw reference fixture.","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fopenclaw-reference-minimal\u002Fskills\u002Fbrain-ops\u002FSKILL.md",[],[157,132,158,159,128,115,160,117,161,114,162,163,164,118,165],"brain ops","ops","Citation","people","true","read","cycle","core","write",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":44},"01M71GTT4F64V9RMNZ0WRTKWNG","webhook-transforms","Generic framework for converting external events (SMS, meetings, social mentions)\ninto brain-ingestible signals. Define a transform function, register a webhook URL,\nand incoming events get processed through the brain pipeline.","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fwebhook-transforms\u002FSKILL.md",[],[173,174,175,176,177,131,178,179,180,181,161,182,133,183,184,185,114,186,187,43],"webhook","transforms","webhook transforms","SET","register","meetings","signals","URL","define","social","event","pipeline","page","sms","generic",{"skillNo":189,"name":190,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":203,"publishedAt":44},"01M71GTRDKSM500PRZEXFNQHF9","testing","Skill validation framework. Validates every skill has SKILL.md with frontmatter,\nevery reference exists, every env var is declared. The testing contract for the\nskill system itself.","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Ftesting\u002FSKILL.md",[194,197,198],{"categoryNo":195,"categoryName":196,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":199,"categoryName":200,"taxonomyType":201,"taxonomyTypeDesc":202},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[190,204,205,26,206,207,208,209,210,211,212,213,214,215,130,216,133,217,218,114],"test skills","validation","health check","test","with","health","check","env","skill validation","false","contract","tests","skill health","system","validate skills"]