Iterative Planner — скилл
Скилл Claude Code ведет сложную задачу по циклу исследования, плана, исполнения и разбора, записывая каждое решение на диск.
- 72 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Скилл создает файлы плана и заставляет агента фиксировать каждый шаг коммитом.
- Скрипты запуска на Node.js выполняются локально в проекте.
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/iterative-plannerОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Скилл создает файлы плана и заставляет агента фиксировать каждый шаг коммитом.
- Скрипты запуска на Node.js выполняются локально в проекте.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Iterative Planner борется с тем, что агент теряет нить на большой задаче: окно контекста работает как оперативная память и забывает ранние решения. Скилл заставляет писать каждую находку, решение, разворот и тупик в папку `plans/` в момент их появления, а работу ведет конечный автомат из шести состояний: исследование, план, исполнение, разбор, смена курса и закрытие. Агент сначала читает код, затем приносит письменный план на утверждение и только потом правит файлы. Шаги идут по одному, каждый фиксируется коммитом, поэтому неудачный ход откатывается через `git revert`. На пятой итерации включается принудительная декомпозиция, а с шестой выполнение останавливается, остается частичное закрытие и новые планы. Накопленные записи следующая задача читает как карту системы.
Для кого. Разработчикам, которые отдают агенту рефакторинг, миграцию или отладку и хотят видеть, что уже пробовали и в каком состоянии работа.
Подходит, если
- Миграция затрагивает больше трех файлов или двух систем, и нужен письменный план.
- Задача уже один раз провалилась, и агент повторяет прежние попытки.
- Контекст оборвался посреди работы, а состояние нужно восстановить командой `resume`.
- Решения и уроки нужно сохранить как справку для следующей задачи.
Не подходит, если
- Правка в одном файле одним шагом: цикл планирования добавит лишнего.
- Решение очевидно, а задача известна и проста.
- Репозиторий нельзя засорять папкой `plans/`, а ее нельзя вынести из проекта.
Пример запроса к агенту
Спланируй миграцию с REST на GraphQL по протоколу iterative-planner: сначала исследуй код, потом принеси план на утверждение.Ограничения
Скрипты запуска и проверки написаны на Node.js, нужна версия 18 или новее, зависимости ставить не требуется. Активный план всегда один, он лежит в `plans/`, а новый нельзя начать до закрытия текущего, кроме команды `new --force`. Папка `plans/` исключается из git через `.gitignore`, в историю попадает только `plans/ANCHORS.md`, и коммитить его нужно самому, потому что скилл никогда не выполняет `git add`. Подагенты и команда `/ip-dashboard` копируются отдельно и необязательны. Версия из одного файла работает без скриптов запуска.
Как отключить. Удалите `~/.claude/skills/iterative-planner`, а также скопированные файлы из `~/.claude/agents` и `~/.claude/commands`. Папку `plans/` в проектах удалите вручную.
Частые вопросы
Что происходит на пятой итерации?
Протокол требует разбора на два-три независимых подцели, каждая из которых может стать отдельным планом. С шестой итерации или после 18 раундов исполнение прекращается.
Можно ли вести несколько планов сразу?
Нет, активен один план, который отслеживает файл `plans/.current_plan`. Новый начинают после закрытия текущего или командой `new --force`.
Что делать, если контекст потерян?
Выполните `bootstrap.mjs resume`. Скрипт восстановит состояние с диска из `state.md` и выведет сводку, агент продолжит с прежнего места.
Нужны ли определения подагентов?
Нет. Они ускоряют работу: разведчики идут параллельно, есть проверяющий и критик. Без них тот же автомат работает в одном потоке.
Как установить без архива?
Склонируйте репозиторий, выполните `make build` и скопируйте `build/iterative-planner` в `~/.claude/skills/`. Версия одним файлом добавляется в пользовательские инструкции.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыСкилл /improve: сильная модель проверяет репозиторий и пишет самодостаточные планы правок, а исполнение отдаете более дешевой модели
14 скиллов, которые находят пробелы в задаче до кода: интервью, план, проверка допущений и доказательство исправления бага
Скилл автономной итерации для агента: правка, проверка, откат неудачных изменений и повтор цикла к заданной метрике
Набор из 29 скиллов, которые заставляют агента думать как старший инженер до написания кода: планы, причины сбоев и ревью
Рабочая конфигурация Claude Code: планировщик с ревью по этапам, субагенты и скиллы анализа, рефакторинга и синхронизации документации
Больше двадцати скиллов для кодовых агентов: MCP и хуки, режим плана, протокол багфикса, промпты и защитный хук для bash
Коротко о README
В репозитории скилл, скрипты запуска и проверки, определения подагентов, панель `/ip-dashboard` и набор тестов на `node:test`. Автор описывает результат как накопление знаний: каждый план оставляет находки и уроки, и следующая задача начинается не с нуля.
Бейдж для README
Исходный SKILL.md
---
name: iterative-planner
description: >
State-machine driven iterative planning and execution for complex coding tasks.
Cycle: Explore → Plan → Execute → Reflect → Pivot. Filesystem as persistent memory.
Use for multi-file tasks, migrations, refactoring, failed tasks, or anything non-trivial.
version: __SKILL_VERSION__
released: __SKILL_DATE__
commit: __SKILL_COMMIT__
---
# Iterative Planner
**Core Principle**: Context Window = RAM. Filesystem = Disk.
Write to disk immediately. The context window will rot. The files won't.
**`{plan-dir}`** = `plans/plan-YYYY-MM-DDTHHMMSS-XXXXXXXX/` (active plan directory under project root; UTC timestamp, colon-free, 8-hex tail). Directories created before v2.36.0 use the legacy shape `plans/plan_YYYY-MM-DD_XXXXXXXX/` — never generated again, but **always still read**: every id-recognizing path (pointer, `retire`, anchor scan, `## <plan-id>` sections, `*Plan:*` preamble, sliding-window trim, INDEX date) accepts the union of both grammars.
**Discovery**: `plans/.current_plan` contains the plan directory name. One active plan at a time.
**Cross-plan context**: `plans/FINDINGS.md`, `plans/DECISIONS.md` (merged on close), `plans/LESSONS.md` (rewritten on close), `plans/SYSTEM.md` (system atlas — domain-neutral map of the target system, rewritten on close), `plans/INDEX.md` (topic→directory map, survives sliding-window trim). Caps + R/W rules: File Lifecycle Matrix.
## Orchestrator Role Assumption (READ FIRST)
This skill is driven by a state-machine orchestrator. The authoritative runtime dispatch logic — sub-agent spawning, the six Presentation Contracts, the PLAN compression gate, and the EXECUTE pre-step gate — lives in `agents/ip-orchestrator.md`, NOT in this file. This file is the protocol and state-machine **specification**; `agents/ip-orchestrator.md` is the **procedure** you execute.
On activation, determine your mode:
1. **Already the orchestrator** — if you were launched as `iterative-planner-orchestrator` (via `claude --agent iterative-planner-orchestrator`) OR you have already read `agents/ip-orchestrator.md` and assumed that role earlier in this conversation: do NOT re-read it and do NOT spawn another orchestrator. You ARE the orchestrator — continue with the dispatch logic you already hold. This guard is evaluated FIRST and short-circuits the reload loop that would otherwise arise because `agents/ip-orchestrator.md` declares `skills: [iterative-planner]` (loading it re-loads this skill).
2. **Agent definitions installed** — if `agents/ip-orchestrator.md` is readable and you are NOT already operating as the orchestrator: immediately Read `agents/ip-orchestrator.md` and assume that role for the remainder of this conversation. Resolve `agents/ip-orchestrator.md` against the skill base directory the harness announces on activation (the "Base directory for this skill: ..." line). Treat its Sub-Agent Dispatch Rules, Presentation Contracts, compression gate, and pre-step gate as your operating procedure. Adopt the role **in-thread** — do NOT spawn or launch a separate `iterative-planner-orchestrator` agent. On first activation, FIRST emit the version + credit banner as the load-up line — run `node <skill-path>/scripts/bootstrap.mjs banner` and surface its stdout verbatim — then announce the live mode with one user-visible line — e.g. `[iterative-planner] orchestrator engaged — dispatching specialized sub-agents.` — so the user sees the version and credit and knows sub-agent dispatch is active. Then begin bootstrapping.
3. **Monolithic fallback** — if `agents/ip-orchestrator.md` (and the `agents/ip-*.md` definitions) are NOT installed: run the full protocol yourself in this single thread, driving the state machine from this file's spec — the per-state operative rules come from the `emit-state` router (see below), NOT from inline bodies (the Per-State Rules section is summaries + pointers only) — and FIRST emit the version + credit banner as the load-up line — run `node <skill-path>/scripts/bootstrap.mjs banner` and surface its stdout verbatim — then announce the degraded mode with one user-visible line on activation — e.g. `[iterative-planner] sub-agent definitions not found — running monolithic (single-thread) mode.` — so the user sees the version and credit and silent degradation becomes a visible signal. Use `Task` subagents where this file calls for parallel work (EXPLORE, REFLECT review). The state machine, gates, leash, and Presentation Contracts (`references/file-formats.md`) are identical — you are simply both coordinator and worker. In this mode you also run `node <skill-path>/scripts/emit-state.mjs --state <state>` on entering each of EXPLORE/PLAN/EXECUTE/REFLECT/PIVOT and follow its output as the operative per-state rules (the Per-State Rules section here is now a summary + pointer; the scripts ship with the skill bundle, so the router resolves even without agent definitions installed).
**Idempotency rule**: the trigger for reading `agents/ip-orchestrator.md` is "not yet operating as the orchestrator." Once you have read it once in this conversation, condition 1 holds for every subsequent skill re-trigger — you never read it twice, and there is no spawn, so no reload loop.
### Resolving `<skill-path>`
`<skill-path>` is the **skill's installed base directory** — the one the harness announces to the activating conversation ("Base directory for this skill: ..."). It is the single definition; everything below is a pointer to it.
- **The orchestrator** sees that announcement and holds the absolute path.
- **Sub-agents do not.** So the orchestrator MUST pass it down: every spawn prompt opens with a `SKILL PATH: <absolute-path>` line. A sub-agent resolves `<skill-path>` from that line — nowhere else.
- **Fallback** (line absent, e.g. an out-of-band dispatch): use the installed skill bundle, `~/.claude/skills/iterative-planner/`.
- **It is NEVER a path relative to the target project's root.** A shipped prompt that says `src/scripts/<x>.mjs` is always wrong: a consuming project has no `src/scripts/` and the invocation silently resolves to nothing, disabling whatever check it was supposed to run. This failure is mechanically gated — `scripts/check-agent-wiring.mjs` rules (a) and (d).
## State Machine
```mermaid
stateDiagram-v2
[*] --> EXPLORE
EXPLORE --> PLAN : enough context
PLAN --> EXPLORE : need more context
PLAN --> PLAN : user rejects / revise
PLAN --> EXECUTE : user approves