/minion-orchestrator
Unified Minions skill for both deterministic shell jobs and LLM subagent orchestration. Replaces the older `gbrain-jobs` routing intent. Use when: submitting gbrain jobs, shell/background tasks, spawning subagents, checking progress, steering running work, pausing/resuming,
$ npx -y skills add garrytan/gbrain --skill minion-orchestrator --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/minion-orchestrator
Context preview
The summary Claude sees to decide when to auto-load this skill.
Unified Minions skill for both deterministic shell jobs and LLM subagent orchestration. Replaces the older `gbrain-jobs` routing intent. Use when: submitting gbrain jobs, shell/background tasks, spawning subagents, checking progress, steering running work, pausing/resuming,
SKILL.md
minion-orchestrator.SKILL.mdname: minion-orchestrator
version: 1.0.0
description: |
Unified Minions skill for both deterministic shell jobs and LLM subagent
orchestration. Replaces the older `gbrain-jobs` routing intent. Use when:
submitting gbrain jobs, shell/background tasks, spawning subagents,
checking progress, steering running work, pausing/resuming, parallel
fan-out. One durable, observable, steerable queue interface.
triggers:
- "gbrain jobs submit"
- "submit a gbrain job"
- "submit a shell job"
- "shell job"
- "run shell command in background"
- "deterministic background task"
- "spawn agent"
- "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"
tools:
- submit_job
- get_job
- list_jobs
- cancel_job
- pause_job
- resume_job
- replay_job
- send_job_message
- get_job_progress
mutating: true
Minion Orchestrator
Contract
Minions is a Postgres-native job queue for durable, observable background work. This single skill handles two lanes:
- Deterministic shell jobs (`gbrain jobs submit shell ...`)
- LLM subagent jobs (`gbrain agent run ...`)
When to route to Minions: durable, observable work that must survive restarts, fan out across many parallel tasks, or persist across sessions. Routing policy is defined in `skills/conventions/subagent-routing.md` — the project default is `pain_triggered` (native subagents first, Minions after specific pain signals fire); Mode A (all-through-Minions) is opt-in.
Guarantees:
- Jobs survive gateway restart (Postgres-backed)
- Every job has structured progress, token accounting, and session transcripts
- Running agents can be steered mid-flight via inbox messages
- Jobs can be paused, resumed, or cancelled at any time
- Parent-child DAGs with configurable failure policies
Route the Request: Shell Job vs Subagent
| Condition | Action | |---|---| | User asks for deterministic command/script run | Shell job (CLI: `gbrain jobs submit shell ...`) | | User asks to "run in minions" + explicit command/argv | Shell job (CLI, `--params` with `cmd` or `argv`) | | User asks for research/reasoning/iterative agent | Subagent job (CLI: `gbrain agent run`) | | User asks to steer/pause/resume an agent | Subagent job lifecycle tools (MCP-callable) | | Single simple operation under ~30s | Consider inline execution first | | Needs restart durability/observability | Submit as Minion job | | Parallel work (2+ streams) | `gbrain agent run --fanout-manifest` or parent + child subagents |
If intent is ambiguous, ask one clarification: "Do you want a deterministic shell command job, or an LLM agent job?"
Shell Jobs (Deterministic Scripts)
Use for reproducible command execution, ETL steps, cron work, and scriptable tasks where no LLM reasoning loop is needed.
Preconditions (read before submitting your first shell job)
- **`GBRAIN_ALLOW_SHELL_JOBS=1` must be set on the worker environment.**
Without it, the shell handler refuses to register and submissions sit in `waiting` silently. Gate lives in `src/core/minions/handlers/shell.ts`.
- **Security:** flipping `GBRAIN_ALLOW_SHELL_JOBS=1` authorizes arbitrary
command execution on the worker. On a shared queue, this is a remote code execution surface. Treat as privileged infrastructure authorization.
- **Execution mode — pick one:**
- **Postgres + daemon:** `gbrain jobs work` runs a persistent worker that
claims and executes jobs from the queue.
- **PGLite + --follow:** `gbrain jobs submit ... --follow` runs inline.
The daemon mode is not available on PGLite (exclusive file lock). See `docs/guides/minions-shell-jobs.md`.
- **MCP boundary:** shell-job submission is CLI-only. `submit_job name="shell"`
over MCP throws an `OperationError` with code `permission_denied` ("'shell' jobs cannot be submitted over MCP") because `shell` is in `PROTECTED_JOB_NAMES`. Agents CAN observe shell jobs via `get_job` / `list_jobs` / `get_job_progress` (not protected), but cannot submit them. Operator or autopilot submits; agent observes.
- **Verify setup:** after configuration, run `gbrain jobs stats` (CLI) to
confirm the worker is registered and consuming the queue.
Submit (CLI, operator or autopilot)
Shell jobs take their command via `--params` as a JSON object with `cmd` (string) or `argv` (array), plus `cwd` and optional `env`.
Command string form:
gbrain jobs submit shell --params '{"cmd":"echo hello","cwd":"/abs/path"}'Argv form (no shell expansion):
gbrain jobs submit shell --params '{"argv":["bash","-lc","echo hello"],"cwd":"/abs/path"}'Inline execution on PGLite or any one-shot deployment:
gbrain jobs submit shell --params '{"cmd":"echo hello","cwd":"/tmp"}' --followQueue/lifecycle flags exposed by `gbrain jobs submit --help`: `--queue`, `--priority`, `--delay`, `--max-attempts`, `--max-stalled`, `--backoff-type`, `--backoff-delay`, `--backoff-jitter`, `--timeout-ms`, `--idempotency-key`, `--dry-run`.
Monitor (agents or operator)
These operations are MCP-callable and safe for agent use:
list_jobs --name shell --status active
get_job ID
get_job_progress ID
Check structured result fields (exit code, stdout/stderr tails, attempts, timings) from `get_job`. Use `gbrain jobs stats` (CLI) for worker/queue health dashboard.
Control (MCP-callable)
cancel_job id=ID
replay_job id=ID
`replay_job` is not protected — only shell *submission* is. Agents can cancel or replay a shell job without CLI access.
Use idempotency keys for recurring shell workloads to avoid duplicate runs.
Subagent Jobs (LLM Orchestration)
Use for open-ended reasoning, tool-using research, and fan-out synthesis.
**User-facing entrypoint:** `gbrain agent run <prompt>` is the canonical way to submit subage
Read more
name: minion-orchestrator version: 1.0.0 description: | Unified Minions skill for both deterministic shell jobs and LLM subagent orchestration. Replaces the older `gbrain-jobs` routing intent. Use when: submitting gbrain jobs, shell/background tasks, spawning subagents, checking progress, steering running work, pausing/resuming, parallel fan-out. One durable, observable, steerable queue interface. triggers: - "gbrain jobs submit" - "submit a gbrain job" - "submit a shell job" - "shell job" - "run shell command in background" - "deterministic background task" - "spawn agent" - "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" tools: - submit_job - get_job - list_jobs - cancel_job - pause_job - resume_job - replay_job - send_job_message - get_job_progress mutating: true
Minion Orchestrator
Contract
Minions is a Postgres-native job queue for durable, observable background work. This single skill handles two lanes:
- Deterministic shell jobs (`gbrain jobs submit shell ...`)
- LLM subagent jobs (`gbrain agent run ...`)
When to route to Minions: durable, observable work that must survive restarts, fan out across many parallel tasks, or persist across sessions. Routing policy is defined in `skills/conventions/subagent-routing.md` — the project default is `pain_triggered` (native subagents first, Minions after specific pain signals fire); Mode A (all-through-Minions) is opt-in.
Guarantees:
- Jobs survive gateway restart (Postgres-backed)
- Every job has structured progress, token accounting, and session transcripts
- Running agents can be steered mid-flight via inbox messages
- Jobs can be paused, resumed, or cancelled at any time
- Parent-child DAGs with configurable failure policies
Route the Request: Shell Job vs Subagent
| Condition | Action | |---|---| | User asks for deterministic command/script run | Shell job (CLI: `gbrain jobs submit shell ...`) | | User asks to "run in minions" + explicit command/argv | Shell job (CLI, `--params` with `cmd` or `argv`) | | User asks for research/reasoning/iterative agent | Subagent job (CLI: `gbrain agent run`) | | User asks to steer/pause/resume an agent | Subagent job lifecycle tools (MCP-callable) | | Single simple operation under ~30s | Consider inline execution first | | Needs restart durability/observability | Submit as Minion job | | Parallel work (2+ streams) | `gbrain agent run --fanout-manifest` or parent + child subagents |
If intent is ambiguous, ask one clarification: "Do you want a deterministic shell command job, or an LLM agent job?"
Shell Jobs (Deterministic Scripts)
Use for reproducible command execution, ETL steps, cron work, and scriptable tasks where no LLM reasoning loop is needed.
Preconditions (read before submitting your first shell job)
- **`GBRAIN_ALLOW_SHELL_JOBS=1` must be set on the worker environment.**
Without it, the shell handler refuses to register and submissions sit in `waiting` silently. Gate lives in `src/core/minions/handlers/shell.ts`.
- **Security:** flipping `GBRAIN_ALLOW_SHELL_JOBS=1` authorizes arbitrary
command execution on the worker. On a shared queue, this is a remote code execution surface. Treat as privileged infrastructure authorization.
- **Execution mode — pick one:**
- **Postgres + daemon:** `gbrain jobs work` runs a persistent worker that
claims and executes jobs from the queue.
- **PGLite + --follow:** `gbrain jobs submit ... --follow` runs inline.
The daemon mode is not available on PGLite (exclusive file lock). See `docs/guides/minions-shell-jobs.md`.
- **MCP boundary:** shell-job submission is CLI-only. `submit_job name="shell"`
over MCP throws an `OperationError` with code `permission_denied` ("'shell' jobs cannot be submitted over MCP") because `shell` is in `PROTECTED_JOB_NAMES`. Agents CAN observe shell jobs via `get_job` / `list_jobs` / `get_job_progress` (not protected), but cannot submit them. Operator or autopilot submits; agent observes.
- **Verify setup:** after configuration, run `gbrain jobs stats` (CLI) to
confirm the worker is registered and consuming the queue.
Submit (CLI, operator or autopilot)
Shell jobs take their command via `--params` as a JSON object with `cmd` (string) or `argv` (array), plus `cwd` and optional `env`.
Command string form:
gbrain jobs submit shell --params '{"cmd":"echo hello","cwd":"/abs/path"}'Argv form (no shell expansion):
gbrain jobs submit shell --params '{"argv":["bash","-lc","echo hello"],"cwd":"/abs/path"}'Inline execution on PGLite or any one-shot deployment:
gbrain jobs submit shell --params '{"cmd":"echo hello","cwd":"/tmp"}' --followQueue/lifecycle flags exposed by `gbrain jobs submit --help`: `--queue`, `--priority`, `--delay`, `--max-attempts`, `--max-stalled`, `--backoff-type`, `--backoff-delay`, `--backoff-jitter`, `--timeout-ms`, `--idempotency-key`, `--dry-run`.
Monitor (agents or operator)
These operations are MCP-callable and safe for agent use:
list_jobs --name shell --status active get_job ID get_job_progress ID
Check structured result fields (exit code, stdout/stderr tails, attempts, timings) from `get_job`. Use `gbrain jobs stats` (CLI) for worker/queue health dashboard.
Control (MCP-callable)
cancel_job id=ID replay_job id=ID
`replay_job` is not protected — only shell *submission* is. Agents can cancel or replay a shell job without CLI access.
Use idempotency keys for recurring shell workloads to avoid duplicate runs.
Subagent Jobs (LLM Orchestration)
Use for open-ended reasoning, tool-using research, and fan-out synthesis.
**User-facing entrypoint:** `gbrain agent run <prompt>` is the canonical way to submit subage
Search gives you raw pages. GBrain gives you the answer. It's the brain layer your AI agent has been missing — the only one that does synthesis, graph traversal, and gap analysis in one box.
Repo: garrytan/gbrain
Other skills on gbrain.
- /voice-persona-mars
Route to Mars (introspective thought partner / demo showman voice persona). Used when the operator wants depth, meaning, or impressive social demos rather than logistics. Mars handles SOLO mode (philosophy, presence, patterns) and DEMO mode (tool-driven showmanship)
Open skill - /voice-persona-venus
Route to Venus (sharp executive-assistant voice persona). Used for logistics — calendar, tasks, recent messages, brain lookups — at sub-second phone-call latency. The default voice persona unless DEFAULT_PERSONA=mars is set.
Open skill - /voice-post-call
Post-call handling for a voice session — turn the transcript into a brain page, post the summary to the operator's messaging surface, archive the audio. Belt-and-suspenders: fires both from a tool the voice persona can call mid-call AND from the automatic call-end handler in
Open skill - /retrieval-reflex
When/what to retrieve — open the brain page for a salient entity before answering from memory.
Open skill - /academic-verify
Verify a research claim or academic citation by tracing it through publication → methodology → raw data → independent replication. Routes through perplexity-research for the actual web lookup, then formats results as a citation-checked brain page. Use when a
Open skill - /archive-crawler
Universal archivist for personal file archives (Dropbox/B2/Gmail-takeout/local-mount/hard-drive-dump). Filters for high-value content (the user's own writing, ideas, relationships) and surfaces it interactively. REFUSES TO RUN without an explicit gbrain.yml
Open skill

