koda-plan
Навык декомпозирования сложных задач. Помогает разложить задачу на подзадачи, составить план их выполнения и выполнить согласно плана. Использует доступные навыки
What it does
Планирование сложных задач
Цель: сформировать подробный пошаговый практичный план действий перед реализацией, чтобы согласовать ожидания и снизить риски.
Когда использовать
- Пользователь просит план, стратегию или этапы
- Задача крупная, абстрактная, неоднозначная или рискованная
- Задача затрагивает разные слои проекта, требует множества согласованных между собой изменений
- Требуются уточняющие вопросы
Что делать
1. Анализ входных данных
- Проанализируй исходный запрос и текущий контекст.
- Если необходимо: сформулируй несколько уточняющих вопросов, уточни ключевые нюансы, конечную цель и критерии оценки результата.
- Изучи текущий проект: файловую структуру, архитектуру, паттерны, бизнес-логику, зависимости, связность и др.
- При возможности изучи документацию к проекту: это могут быть комментарии в коде, дополнительные файлы и/или документация к фреймворкам и библиотекам.
- Определи список доступных навыков и инструментов.
- Выдели те участки проекта, которые соотносятся с требованиями пользователя.
2. Планирование
- Исходя из анализа, разбей исходную постановку на задачи в соответствии со структурой проекта. Необязательно детализировать до уровня атомарных операций, но каждый последующий шаг должен быть детерминирован и логично следовать из предыдущего.
- Для каждого шага определи хотя бы один подходящий навык из доступных. Необязательно, если подходящего навыка нет.
- Пересмотри план, проверь наличие необходимых данных, участков кода, навыков, инструментов; сделай заключение о выполнимости текущего плана, в противном случае скорректируй.
- Покажи план пользователю как есть и передай ему слово:
-
План работ должен иметь следующий формат:
1. [ ] **<Описание задачи 1>** - Навыки: ... - Файлы: - <путь1> - <путь2> - ... 2. [ ] **<Описание задачи 2>** - Навыки: ... - Файлы: - <путь1> - <путь2> - ... 3. [ ] **<Описание задачи 3>** - Навыки: ... - Файлы: - <путь1> - <путь2> - ... ... -
При отрицательном ответе вернись на этап анализа входных данных и задай уточняющие вопросы.
-
При положительном ответе запиши план в файл
.koda/plans/<имя-плана>.mdв корне проекта. Имя плана зависит от исходной задачи. Например:- если нужно исправить ошибку формирования заказа, файл плана следует назвать
fix-order-creation.md; - если нужно внедрить новый вид уведомлений, тогда
new-notification.md.
Если план подвергался нескольким итерациям переработок, то в имя файла следует добавлять суффикс
-vN, где N - номер итерации.Обогати необходимыми данными из контекста. Это поможет вернуться к плану после перерыва.
По мере выполнения запланированных действий, поддерживай файл в актуальном состоянии. Отмечай каждый выполненный шаг заменой
[ ]на[x]. - если нужно исправить ошибку формирования заказа, файл плана следует назвать
-
3. Реализация плана
- После подтверждения плана пользователем начинай работу с первого пункта до последнего, используя выбранные навыки и инструменты.
- Не переходи к следующему шагу плана, пока текущий шаг не завершён.
- Шаг считается завершённым если внесены и проверены все запланированные изменения.
- По мере выполнения шаги плана отмечаются выполненными.
- Если на каком-либо шаге оказывается, что план требует корректировки, возвращайся на этап анализа входных данных; корректировать уже выполненные шаги нельзя.
Ограничения, условия и дополнительные требования
- План должен быть наглядным и понятным.
- Если задача простая (до 2 шагов), план не нужен: переходи к выполнению.
- Не вноси изменения в проект и не запускай команды, пока план не подтверждён.
- Названия или состав навыков может измениться в любой момент, адаптируй план к изменениям.
- Не создавай пересекающиеся подзадачи.
- Не смешивай домены в подзадаче: фронтенд, бэкенд, инфраструктура, бизнес-логика должны изменяться в отдельных подзадачах.
- Не создавай подзадачи без изучения проекта.
- Не создавай подзадачи, которые не будут выполнены, но увеличивают план.
- Если проект содержит код, нужно следовать принципам KISS, YAGNI, DRY, SRP, но прежде всего простота и прозрачность имеют решающее значение.
- Не надо добиваться идеального результата любой ценой, это может привести к нарушению планов и ожиданий.
Типичные примеры
Веб-приложение:
- Backend API → Backend QA → Frontend UI → Frontend QA → Интеграция
Микросервисы:
- Разработка сервиса → Тестирование → Развёртывание (Docker, Podman, k8s)
Анализ данных:
- Обработка → Проверка → Визуализация → Документирование
Исправление бага:
- Поиск причин → Исправление → Тестирование → Проверка
Рефакторинг:
- Анализ → Изменения → Тестирование → Проверка
Хорошие практики
- Изучение прежде всего - сначала понимание, потом планирование
- Навыки и инструменты важны - всегда адаптируйся, ты ими не управляешь
- Определи критерии успеха - каждая подзадача должна валидироваться
- Установи зависимости - убедись в правильном порядке задач
- Будь конкретным - чётко формулируй шаги
- Используй контекст - в нём могут быть полезные сведения
- Думай о результате - фокусируйся на целях пользователя
- Не скрывай информацию - любая мелочь может повлиять на успех
Завершение работы
Когда план будет выполнен:
- нужно повторно проверить каждый шаг с начала: последующие шаги могли негативно отразиться на первых;
- пользователь должен подтвердить успешность реализации;
- если в корне проекта есть файлы KODA.md, AGENTS.md, CLAUDE.md, их следует актуализировать.
Capabilities
Install
Quality
deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (5,766 chars)