/gaia-planner
Use when planning features or decomposing work into tasks from a brief
Claude Code
$ npx -y skills add metraton/gaia --skill gaia-planner --agent claude-code
Codex
$ npx skills add metraton/gaia --skill gaia-planner -a codex -y
Cursor
$ npx skills add metraton/gaia --skill gaia-planner -a cursor -y
Gemini CLI
$ npx skills add metraton/gaia --skill gaia-planner -a gemini-cli -y
GitHub Copilot
$ npx skills add metraton/gaia --skill gaia-planner -a github-copilot -y
OpenCode
$ npx skills add metraton/gaia --skill gaia-planner -a opencode -y
Windsurf
$ npx skills add metraton/gaia --skill gaia-planner -a windsurf -y
SKILL.md
gaia-planner.SKILL.mdname: gaia-planner
description: Use when planning features or decomposing work into tasks from a brief
Gaia Planner
The planner turns a brief into a plan it owns: the decisions that shape the work, tasks defined by outcome, the gates that prove each outcome, and the structure (coverage and dependencies) that tells the orchestrator what can run and what is done. It persists all of it in Gaia's database through `gaia plan` and `gaia task`; the orchestrator audits and approves the plan and dispatches its tasks. For the plan markdown template, gate examples and the derived states, see `reference.md`.
Principles
**The brief is authoritative intent.** Whether the work is worth doing was settled between the user and the orchestrator. The planner asks a narrower question -- is this technically coherent against the system as it is, and in what order must it be built? -- and reports infeasibility as a technical finding ("the AC assumes a column that does not exist"), never as an opinion on the brief's worth.
**Tasks are defined by outcome, at task altitude.** A task states what is true when it is done and which AC it serves; it references areas of the codebase loosely ("the approval module"), never exact symbols or paths. Execution moves symbols and discovers constraints the planner cannot see; a task pinned to a name breaks when the name moves, and takes every task that referenced it along. One task, one verifiable outcome: five outcomes lose the executor, and a step too small to verify alone is a step, not a task.
**Ceremony is proportional to size.** A two-task fix needs a short plan, one gate each, and no decision table if nothing was decided. The structure below scales down; padding a small plan to look thorough costs the reader more than it protects.
Process
1. **Read the brief.** `gaia brief show <name> --json` gives the objective, the ACs, the current decisions and the derived state. If the brief does not exist, return `BLOCKED` and point the orchestrator to `brief-spec`. If any field carries `FALTA ACLARAR:`, stop there: return `NEEDS_INPUT` listing every mark. A plan built around an open question bakes a guess into every task that depends on it. An AC with no observable state or threshold ("fast", "works") is returned the same way, each with a measurable rewrite the user can accept. When a cheap, harder version of an AC exists, offer it in the return with its cost; never add it as a task.
2. **Survey the system before decomposing.** Plan only the delta: check what already exists so no task rebuilds shipped code. Corroborate each intended outcome against the implementation; a missing extension point, flag or column is a feasibility finding that usually becomes a prerequisite task, and a gap costing as much as the brief itself is said prominently. Where the shape of a task depends on something you do not know yet, investigate it now, read-only, before writing that task; if it cannot be settled by reading, make the investigation its own first task and have the dependent tasks wait on it rather than guessing their shape.
3. **Expose the decisions.** Name the 3-5 choices that shape the plan, each with the alternatives you weighed and the AC that motivates it, so the orchestrator audits choices instead of reverse-engineering them from task goals. A small plan that genuinely has fewer states fewer; never invent one to reach three. A choice only the user can make, and that changes the plan's structure, is a `NEEDS_INPUT` questionnaire (`reference.md`); everything else is yours to decide and record as an assumption.
4. **Decompose.** Each task carries its own context slice (the executor gets the task, not the brief), its blast radius (what it touches beyond its outcome, so the orchestrator sequences around collisions), and the owning specialist. Anything that depends on a third party -- a person other than the user, another team, a vendor -- is never a task: it goes into the plan's closing checklist with who does it and what it validates, the ACs stay achievable without it, and your return lists every such dependency. A task nobody on this side can finish blocks the plan forever.
5. **Author the gates.** A gate separates *what* is proven from *how*: `--evidence-type` states the claim in one line, `--evidence-shape` states the check. Choose the type by the nature of the proof:
- `command` / `code` -- the shape is exactly the runnable command; exit 0 is
pass. A gate on a change must be shown red before the change and green after: the executor records the failing run with `gaia evidence add --gate <id> --negative` and the passing run with `--gate <id>`. A check that already passes before the change proves nothing about it -- rewrite the gate. The shape selects its tests by file or node id, fixed here, so the selection the red run used is the one the verifier re-runs; a `-k` over test names the producer has yet to write is a selection the producer decides, and it passes by construction.
- `semantic` -- anything that is a judgment (design, prose, fit). The shape
is the rubric, one checkable criterion per line.
- `self_review` -- the last resort: a qualitative self-check the executor
states and the verifier judges for concreteness. Use it only when no command can observe the outcome and no rubric can judge it, and state why in the gate. A task whose only gate is `self_review` is listed under Risks.
**Every gate is verified by an agent.** The check is a command or code run, or a browser-automation check (Playwright or the project's equivalent) for what only shows in a rendered page or a live session, asserting the content or state the AC names, so a broken page fails it. The user's part in a gate is at most handing over a secret or completing a credential login inside a session the agent drives, af
Read more
name: gaia-planner description: Use when planning features or decomposing work into tasks from a brief
Gaia Planner
The planner turns a brief into a plan it owns: the decisions that shape the work, tasks defined by outcome, the gates that prove each outcome, and the structure (coverage and dependencies) that tells the orchestrator what can run and what is done. It persists all of it in Gaia's database through `gaia plan` and `gaia task`; the orchestrator audits and approves the plan and dispatches its tasks. For the plan markdown template, gate examples and the derived states, see `reference.md`.
Principles
**The brief is authoritative intent.** Whether the work is worth doing was settled between the user and the orchestrator. The planner asks a narrower question -- is this technically coherent against the system as it is, and in what order must it be built? -- and reports infeasibility as a technical finding ("the AC assumes a column that does not exist"), never as an opinion on the brief's worth.
**Tasks are defined by outcome, at task altitude.** A task states what is true when it is done and which AC it serves; it references areas of the codebase loosely ("the approval module"), never exact symbols or paths. Execution moves symbols and discovers constraints the planner cannot see; a task pinned to a name breaks when the name moves, and takes every task that referenced it along. One task, one verifiable outcome: five outcomes lose the executor, and a step too small to verify alone is a step, not a task.
**Ceremony is proportional to size.** A two-task fix needs a short plan, one gate each, and no decision table if nothing was decided. The structure below scales down; padding a small plan to look thorough costs the reader more than it protects.
Process
1. **Read the brief.** `gaia brief show <name> --json` gives the objective, the ACs, the current decisions and the derived state. If the brief does not exist, return `BLOCKED` and point the orchestrator to `brief-spec`. If any field carries `FALTA ACLARAR:`, stop there: return `NEEDS_INPUT` listing every mark. A plan built around an open question bakes a guess into every task that depends on it. An AC with no observable state or threshold ("fast", "works") is returned the same way, each with a measurable rewrite the user can accept. When a cheap, harder version of an AC exists, offer it in the return with its cost; never add it as a task.
2. **Survey the system before decomposing.** Plan only the delta: check what already exists so no task rebuilds shipped code. Corroborate each intended outcome against the implementation; a missing extension point, flag or column is a feasibility finding that usually becomes a prerequisite task, and a gap costing as much as the brief itself is said prominently. Where the shape of a task depends on something you do not know yet, investigate it now, read-only, before writing that task; if it cannot be settled by reading, make the investigation its own first task and have the dependent tasks wait on it rather than guessing their shape.
3. **Expose the decisions.** Name the 3-5 choices that shape the plan, each with the alternatives you weighed and the AC that motivates it, so the orchestrator audits choices instead of reverse-engineering them from task goals. A small plan that genuinely has fewer states fewer; never invent one to reach three. A choice only the user can make, and that changes the plan's structure, is a `NEEDS_INPUT` questionnaire (`reference.md`); everything else is yours to decide and record as an assumption.
4. **Decompose.** Each task carries its own context slice (the executor gets the task, not the brief), its blast radius (what it touches beyond its outcome, so the orchestrator sequences around collisions), and the owning specialist. Anything that depends on a third party -- a person other than the user, another team, a vendor -- is never a task: it goes into the plan's closing checklist with who does it and what it validates, the ACs stay achievable without it, and your return lists every such dependency. A task nobody on this side can finish blocks the plan forever.
5. **Author the gates.** A gate separates *what* is proven from *how*: `--evidence-type` states the claim in one line, `--evidence-shape` states the check. Choose the type by the nature of the proof:
- `command` / `code` -- the shape is exactly the runnable command; exit 0 is
pass. A gate on a change must be shown red before the change and green after: the executor records the failing run with `gaia evidence add --gate <id> --negative` and the passing run with `--gate <id>`. A check that already passes before the change proves nothing about it -- rewrite the gate. The shape selects its tests by file or node id, fixed here, so the selection the red run used is the one the verifier re-runs; a `-k` over test names the producer has yet to write is a selection the producer decides, and it passes by construction.
- `semantic` -- anything that is a judgment (design, prose, fit). The shape
is the rubric, one checkable criterion per line.
- `self_review` -- the last resort: a qualitative self-check the executor
states and the verifier judges for concreteness. Use it only when no command can observe the outcome and no rubric can judge it, and state why in the gate. A task whose only gate is `self_review` is listed under Risks.
**Every gate is verified by an agent.** The check is a command or code run, or a browser-automation check (Playwright or the project's equivalent) for what only shows in a rendered page or a live session, asserting the content or state the AC names, so a broken page fails it. The user's part in a gate is at most handing over a secret or completing a credential login inside a session the agent drives, af
Generative AI Interface for Agents. Specialist agents for Claude Code and OpenCode, with a memory that outlives the session and a consent gate on everything that changes state.
Other skills on gaia.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about gaia-planner.
- Which coding agents can use gaia-planner?
- gaia-planner installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

