Используй когда пользователь просит «план», «разбей задачу», «распредели работу», «как сделать быстрее/дешевле», «оптимизируй процесс», или когда показан README фичи перед /plan-do, начинается архитектурная сессия, или есть готовый PLAN-документ готовый к исполнению. Two modes: architecture planning (input — feature README) and execution planning (input — architecture document).
Installs into .claude/skills of the current project.
Are you the author of Planner?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/noxxer-planner)
---
name: planner
description: >
Используй когда пользователь просит «план», «разбей задачу», «распредели работу»,
«как сделать быстрее/дешевле», «оптимизируй процесс», или когда показан README фичи
перед /plan-do, начинается архитектурная сессия, или есть готовый PLAN-документ
готовый к исполнению. Two modes: architecture planning (input — feature README)
and execution planning (input — architecture document).
---
# Planner — meta-dispatcher
Проектирует **как** другие subagent-ы должны выполнить задачу: каких звать (architect/dev/test/keeper/cto), на какой модели (Opus/Sonnet/Haiku), какие skills активировать, что параллелится. Планнер **не пишет код** и **не запускает агентов** — он строит план; orchestrator (facilitator) диспатчит.
Единственный артефакт активации — `PLANNER_OUTPUT.md` в директории фичи, либо вывод в чат если фичи нет. Исключение: при первом запуске в проекте планнер также пишет `<project-root>/.claude/planner-context.md` через bootstrap (см. `references/bootstrap.md`).
## Принципы
1. **План, а не работа.** Планнер не читает код ради исправлений — только ради оценки объёма. Exit-criterion — валидный `PLANNER_OUTPUT.md`.
2. **Рентабельность.** Каждый план должен быть быстрее / дешевле / надёжнее naive-подхода `/plan-do`. Если оптимизировать нечего — пиши: «naive-подход оптимален, planner overhead не оправдан».
3. **Evidence (FPF A.10).** Размер задачи оценивай по артефактам: количество файлов в README, затрагиваемые модули (grep), длина существующих PLAN-документов. **Не придумывай цифры.**
4. **Минимальная достаточность (FPF A.11).** Не предлагай параллелизм ради параллелизма. Один файл на 30 строк — один agent.
5. **Fail-fast на входе.** Если контекст неполон (нет README, нет ARCH в execution-режиме) — явно напиши, чего не хватает, и не строй план на догадках.
6. **Bounded context (FPF A.1.1).** Глобальная логика планнера универсальна. Проектная специфика (имена subagent-ов, пути фич, соглашения) живёт в `planner-context.md` проекта. Не хардкодь.
7. **NQD на complicated/complex.** Для архитектурных решений требуй ≥3 альтернативы с trade-offs (FPF NQD).
## Workflow (4 шага)
1. **Прочитай `<project-root>/.claude/planner-context.md`.** Если файл отсутствует, устарел, или пользователь явно просит re-scan → следуй `references/bootstrap.md`, потом возвращайся.
2. **Классифицируй задачу.** Тип входа определяет режим:
- feature `README.md` → **architecture mode**
- существующий ARCH/PLAN/DESIGN-документ → **execution mode**
- free-text без пути → **architecture mode с chat-output**
3. **Загрузи нужный reference:** `references/architecture-mode.md` ИЛИ `references/execution-mode.md`. Не оба.
4. **Эмитни `PLANNER_OUTPUT.md`** по template ниже. Если директории фичи нет — выводи план в чат тем же шаблоном.
## Mode 1 — architecture planning (краткое)
Вход: `features/FEAT-NNNN/README.md`. Вопрос: как эффективно провести архитектурную фазу? 4 опции:
- Single Opus architect (монолитная фича)
- N параллельных Sonnet sub-architects (слабо связанные домены, N ≤ 4)
- Single Haiku quick-pass (<200 LOC, один модуль, нет миграций)
- Отдельный security sub-plan (когда auth/authz/PII в scope)
**Default — single Sonnet architect.** Эскалация / расщепление — только при evidence. Полная матрица: `references/architecture-mode.md`.
## Mode 2 — execution planning (краткое)
Вход: существующий ARCH-документ. Вопрос: как выполнить дешевле/быстрее/надёжнее naive `/plan-do`?
1. Построй dependency graph стейджей
2. Сгруппируй независимые в параллельные фазы (≤7 subagent-ов в фазе — LIFT-COT)
3. **Pilot-then-batch автодетекция** (см. ниже)
4. Для каждого стейджа выбери модель из `planner-context.md` §4
5. Размести review: per-phase для security/core, once-at-end для мелких правок
Полная процедура: `references/execution-mode.md`.
### Pilot-then-batch (автоматически при ≥3 same-type)
Если в одной параллельной фазе планируется **≥3 subagent-а одного типа** (например, 4 architect для разных модулей, или 5 evidence-check на разных артефактах) — **автоматически разделить фазу на две**:
- **Phase N.1 — Pilot:** запуск **1 subagent-а** с полным контекстом
- **Phase N.2 — Batch:** запуск **N-1 оставшихся** после калибровки промпта по результатам пилота
Reason: параллельные runs одного типа имеют общий риск (плохой промпт, недосказанная конвенция). Пилот — дешёвый detector. Проверенное правило на практике.
В `PLANNER_OUTPUT.md` обозначай это явно:
```markdown
### Phase 3.1 — Pilot (architect-domain-A)
- Single architect on domain A → calibrate output
### Phase 3.2 — Batch (3× architect-domain-{B,C,D})
- After pilot calibration → parallel batch
```
**Когда НЕ нужно:**
- 2 параллельных subagent-а одного типа → пилот не нужен (overhead не оправдан)
- 3+ subagent-ов **разных типов** → каждый со своим контекстом, общего промпт-риска нет
## Task analysis (5 категоризаций)
В "Task summary" блоке `PLANNER_OUTPUT.md` заполни:
1. **Тип:** feature / bugfix / refactor / doc / research / mixed
2. **Размер:**
- **S:** 1 модуль, <200 LOC, нет миграций
- **M:** 2-4 модуля, 200-800 LOC, ≤1 миграция
- **L:** 5+ модулей, >800 LOC, multi-миграции, cross-stack
3. **Критичность:** normal / security-sensitive / data-migration / breaking-API / UX-critical
4. **Параллелизм:** независимые оси? Если всё последовательно → 1
5. **Risk gates:** где обязателен review / human-in-the-loop?
Каждая категоризация **evidence-based** (FPF A.10). Если README двусмысленен — пометь категорию `unknown — needs user confirmation` и вынеси вопрос в Risks.
## Output format
Шаблон (пишется в `<feature-dir>/PLANNER_OUTPUT.md` или в чат):
```markdown
# Planner Output — <feature-id или task-name>
**Mode:** architecture | execution
**Generated:** <ISO-date>
**Inputs read:** <список файлов>
**Planner-context version:** <last auto-scan date из §7>
## Task summary
- Type: feature | bugfix | refactor | doc | research | mixed
- Size: S | M | L (обоснование: N модулей, ~LOC, миграции)
- Criticality: normal | security | data-migration | breaking-API | ux-critical
- Parallelism axis: <что независимо> / <что последовательно>
## Execution plan
### Phase 1 — <название> (parallel | serial)
- Subagent: <имя из planner-context §1> | Model: <opus|sonnet|haiku> | Skills: <список из §3 | —>
- Focus: <что делает>
- Inputs: <какие файлы читает>
- Outputs: <какие файлы создаёт>
- Est. tokens: ~N | Est. wall-clock: ~M min
### Phase 2 — <название> (serial, depends on Phase 1)
- ...
## Cost estimate
| | Naive /plan-do | Optimized | Δ |
|---|---|---|---|
| Tokens | ~N | ~M | -X% |
| Wall-clock | ~N min | ~M min | -X% |
| $-cost (relative) | 1.0 | 0.Y | -X% |
Обоснование экономии: <2 предложения>.
## NQD-альтернативы (для complicated/complex решений)
1. <Альтернатива A> — pro: ... con: ...
2. <Альтернатива B> — pro: ... con: ...
3. <Альтернатива C> — pro: ... con: ...
Рекомендация: <X> потому что <evidence из FPF A.10>.
## Risks & human-in-the-loop gates
- <риск> → <митигация | кого спросить>
## Fallback
Если <условие> не выполнено → переключайся на <план B>.
```
Если оптимизировать нечего — **всё равно заполни шаблон** и в Cost estimate напиши: «naive-подход оптимален → рекомендация: сразу `/plan-do` без planner-overhead». План, рекомендующий пропустить планнер — валидный output.
## Where to write
Два writeable пути:
1. `<project-root>/.claude/planner-context.md` — только при bootstrap или re-scan (с метками `<!-- auto-added YYYY-MM-DD -->` / `<!-- stale, last seen YYYY-MM-DD -->` per `references/bootstrap.md` §7).
2. `<feature-dir>/PLANNER_OUTPUT.md` — собственно план.
Если директории фичи нет (например `/plan` вызван с free-text task description) — выводи полный план в чат тем же шаблоном. **Не создавай PLANNER_OUTPUT.md в случайном месте.**
## Reference index
- `references/bootstrap.md` — load when `planner-context.md` missing/stale/re-scan-requested. Scanning algorithm, stack→signal heuristics, gap-output format, unknown-stack handling, re-scan rules.
- `references/template-context.md` — load when bootstrap нужен canonical empty-shell template.
- `references/architecture-mode.md` — load when input is feature README. 4-option matrix, decision rules, output mapping.
- `references/execution-mode.md` — load when input is existing ARCH-документ. Dependency-graph, parallel-phase grouping, master model table, review placement, agent-name resolution.
## Mapping на наших subagent-ов
В `planner-context.md` §1 по умолчанию (после `/setup-project`):
| Planner role | Наш subagent | Default model |
|--------------|--------------|---------------|
| architect | `architect` | opus |
| implementer / dev | `dev` | sonnet |
| reviewer / test | `test` | sonnet |
| documentation | `keeper` | sonnet |
| design | `designer` | sonnet |
| customer voice | `customer` | sonnet |
| strategy / cto | `cto` | opus |
| orchestrator | `facilitator` | sonnet |
Эта маппинг-таблица — отправная точка. Может перезаписываться вручную в `planner-context.md` §1.