Iterative Planner — скилл

Скилл Claude Code ведет сложную задачу по циклу исследования, плана, исполнения и разбора, записывая каждое решение на диск.

  • 72 ★ репозитория
  • Последний коммит
  • Apache-2.0
Скилл

Расширенный доступ

Почему такой уровень

  • Скилл создает файлы плана и заставляет агента фиксировать каждый шаг коммитом.
  • Скрипты запуска на Node.js выполняются локально в проекте.
Все причины и проверки

nikolasmarkou/iterative-planner

Установка

Работает в

В терминале, через 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: сильная модель проверяет репозиторий и пишет самодостаточные планы правок, а исполнение отдаете более дешевой модели

СкиллРасширенный доступ11,4 тыс.Звезды репозитория

14 скиллов, которые находят пробелы в задаче до кода: интервью, план, проверка допущений и доказательство исправления бага

СкиллМинимальный доступ372Звезды репозитория

Скилл автономной итерации для агента: правка, проверка, откат неудачных изменений и повтор цикла к заданной метрике

СкиллШирокий доступ6,8 тыс.Звезды репозитория

Набор из 29 скиллов, которые заставляют агента думать как старший инженер до написания кода: планы, причины сбоев и ревью

СкиллРасширенный доступ89Звезды репозитория

Рабочая конфигурация Claude Code: планировщик с ревью по этапам, субагенты и скиллы анализа, рефакторинга и синхронизации документации

СкиллРасширенный доступ916Звезды репозитория

Больше двадцати скиллов для кодовых агентов: MCP и хуки, режим плана, протокол багфикса, промпты и защитный хук для bash

СкиллШирокий доступ178Звезды репозитория

Коротко о 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

Сообщить о проблеме