sdlc-milestones
Вехи разработки по плейбуку Anthropic «AI-native SDLC» поверх оркестрации агентов — шесть стадий (Plan, Design, Build, Test, Deploy, Maintain), на каждой коммит артефакта (intent.md, spec.md, plan.md,
SKILL.mdskills/sdlc-milestones/SKILL.md
GitHubВехи AI-native SDLC
Источник: The AI-Native SDLC Playbook, Louis Claxton, Anthropic. Ниже пересказ, приложенный к работе с агентами; за формулировками и примерами идите в оригинал.
Скилл не говорит, как нанимать агентов: это делает ваш режим оркестрации (например, harness или fable-ruki-agenty). Он говорит, какой артефакт должен лечь в git до перехода к следующей стадии.
Главная мысль плейбука: каждая стадия кончается коммитом артефакта, который читает следующая стадия; цепочка коммитов и есть журнал аудита — кто попросил, что сделал агент, кто одобрил. Внимание человека стоит на воротах: он принимает артефакт, подготовленный агентом, и не начинает стадию с нуля.
Роли
- Владелец задачи — человек, который ставит задачу и принимает ворота 1, 2 и 5 (вливание и прод).
- Планировщик-лид (вехи 1–3) — агент, который пишет intent.md, spec.md и plan.md, носит их владельцу на принятие, нанимает исполнителя только после закоммиченного plan.md и сверяет вехи скриптом. Отдельного агента нет — эту роль берёт оркестратор сессии или встроенный агент планирования харнеса (в Claude Code —
Plan). - Исполнитель — агент в своём worktree, работает по plan.md.
- Ревьюер (вехи 4–5) — агент, который не писал этот код: сверяет дифф с plan.md, требует вывод проверки в PR и порядок «падающий тест, потом починка», ставит одобрение, после которого PR видит владелец.
- Веха 6 и веха 1 следующего круга снова у планировщика-лида: диагноз инцидента он оформляет новым intent.md.
Где лежат артефакты
В репо, где живёт код задачи, папка intent/<YYYY-MM-DD>-<slug>/:
intent/2026-11-03-claims-status/
intent.md # веха 1 — что и зачем, словами автора
spec.md # веха 2 — требования и дизайн, спорные места
plan.md # веха 3 — файлы, порядок, риски, чем доказано
lessons.md # веха 6 — только если был инцидент
Шаблоны — templates/. Дифф, тесты и ревью живут в PR. Issue задачи ссылается на папку; в issue после каждой вехи строка Веха N · <артефакт> · <sha> (как вести issue — скилл manager).
Масштаб. Правка в один-два файла без решений по дизайну проходит короткой цепочкой: замысел — в теле issue, план — в описании PR, вехи 4–5 обязательны. Полная папка — для фичи, нового модуля, изменения данных, денег, доступа или всего, что трогает несколько репо.
Шесть вех
| # | Стадия | Артефакт в git | Кто пишет | Ворота: кто принимает | Запускает |
|---|---|---|---|---|---|
| 1 | Plan | intent.md |
планировщик-лид со слов владельца | владелец правит и принимает | веху 2 |
| 2 | Design | spec.md рядом с intent |
планировщик-лид по скиллам-политикам | владелец решает спорные места | plan mode |
| 3 | Build | plan.md, затем дифф |
планировщик-лид в plan mode, исполнитель в worktree | планировщик-лид сверяет план; высокий риск — владелец | исполнителя |
| 4 | Test | вывод проверки в PR | исполнитель, свежий verifier | ревьюер: проверка зелёная, вывод вставлен | PR |
| 5 | Deploy | PR с находками ревью | ревьюер, редакторы | одобрение ревьюера, вливает владелец; прод — по слову владельца | выкладку |
| 6 | Maintain | новый intent.md из инцидента + eval |
агент мониторинга или дежурный | владелец: чинить сейчас, позже или отклонить | веху 1 |
1. Plan — замысел
- Владелец говорит проблему своими словами; формальный язык не нужен.
- Агент задаёт вопросы аналитика: рамки, кто затронут, ограничения, как выглядит успех, что не входит (по одному вопросу за раз — см. grill-me).
- Агент пишет
intent.mdпо шаблону: Problem, Proposed outcome, Affected users and systems, Constraints, Open questions; автор и статус в шапке. - Владелец правит то, что агент понял неверно. Его решение с датой — в intent.md.
- Коммит в репо задачи. Веха закрыта, когда intent.md в
origin/mainили в принятом PR.
2. Design — спека
- Агент читает принятый intent.md и пишет
spec.md: требования и дизайн одним проходом, в рамках скиллов-политик проекта (бренд и вёрстка, правила текста, безопасность, данные людей). - Спорные места — отдельный раздел: где политики противоречат друг другу или intent.md молчит. Каждое — вопрос владельцу нумерованным пунктом.
- Открытые вопросы intent.md закрыты или явно перенесены.
- Коммит spec.md рядом с intent.md. Пара фиксирует, что просили и что решили.
- Принятие spec.md владельцем запускает веху 3; без него сборка не начинается.
3. Build — план и сборка
- Планировщик-лид в plan mode читает intent.md, spec.md и код, ничего не меняя, и пишет
plan.md: Files that change, Order of work, Risks, Proof. - Допрос плана: что сломается, какой шаг самый рискованный, какие варианты отброшены и почему.
- План готов, когда исполнитель, не видевший разговора, реализует его по одному файлу. Коммит plan.md до первой строки кода.
- Исполнитель работает в своём worktree по плану. Разошёлся с планом — правит plan.md в том же коммите.
- Знание проекта — в
AGENTS.md/CLAUDE.mdрепо: команды сборки, тестов, линтера, соглашения, «что агент делает не так». Агент дважды ошибся одинаково — правка идёт в AGENTS.md, не в бриф. - Повторяющееся единообразное знание оформляется скиллом; то, что должно выполняться без исключений, подпирается хуком (защищённые пути, секреты в диффе, форматтер).
4. Test — цикл обратной связи
- В брифе исполнителя измеримая цель проверки: «тесты в test_x.py зелёные», «скриншот 1440×900 совпадает с макетом», «эндпоинт отдаёт 200 с новым полем».
- Проверка запускается одной командой (
make test,npm test); она перечислена в AGENTS.md с примером нормального вывода. - Баг: сначала падающий тест, коммит теста, потом починка без правки теста. Тестовые файлы во время починки агент не трогает.
- Интерфейс: реализовать, снять скриншот, сравнить, поправить — два-три круга.
- «Готово» = дословный вывод проверки вставлен в отчёт и в PR. Финальная проверка — свежий verifier-субагент, который только запускает и докладывает, ничего не чиня.
- Изменения AGENTS.md, скиллов и хуков, которые направляют агентов, проверяются набором evals так же, как код: инцидент даёт новый eval.
5. Deploy — ревью и ворота
- PR ссылается на intent/spec/plan. Ревью проходами: баги, безопасность, соответствие spec.md и plan.md. Important — ломает поведение, данные или политику; остальное nit, не больше пяти.
- Автор кода не одобряет свой код. Ревьюер сверяет объём с plan.md и проверяет, что вехи 1–4 закрыты; для текстов — ещё редактор; владелец видит PR только после одобрения ревьюера.
- Находку, которая повторилась во втором ревью, чинят в AGENTS.md репо.
- Агент доходит до ворот прода и не проходит их: выкладка в прод, миграции, деньги, наружные сообщения — только по слову владельца на это действие. Откат — отрепетированная команда, известная до выкладки.
- Веха закрыта мержем; задача закрывается после мержа, не по ветке.
6. Maintain — замыкание цикла
- Триггер — алерт, сообщение пользователя, падение CI, ошибка в проде.
- Обнаружение детерминированное (скрипт по метрике и порогу), модель диагностирует. Уровни: 1σ — лог, 2σ — диагноз только на чтение, 3σ — PR в ворота ревью или заранее одобренный ранбук.
- Диагноз записывается как новый
intent.md(аномалия и доказательства, желаемый результат, затронутые системы, открытые вопросы) и идёт по циклу с вехи 1. - После починки — eval или регрессионный тест на этот инцидент и строка в
lessons.md.
Фиксация вехи
Веха считается пройденной, когда выполнены оба условия:
- Артефакт закоммичен и запушен (sha есть в
origin). - В issue задачи строка
Веха N · <артефакт> · <sha> · принял <кто>; на вехе 5 issue закрывается после мержа.
Если вы ведёте задачи ещё и в трекере агентов, обновите там запись тем же sha.
Статус папки по git-истории (путь к скрипту — от папки скилла):
python3 <папка скилла>/scripts/milestones.py <repo>/intent/<дата>-<slug> [--pr owner/repo#N]
Скрипт печатает по каждой вехе: есть ли артефакт, первый и последний коммит, автор, и следующие ворота. Он же считает показатели плейбука: время intent → spec → plan → мерж и правки spec.md после первого коммита plan.md (переделка требований во время сборки). Флаг --pr читает состояние PR через gh.
В оркестрации
- В чек-листе этапов пункты — это вехи:
✓ 1 intent,✓ 2 spec,← сейчас 3 plan, … - Бриф исполнителю ссылается на plan.md и называет проверку вехи 4; без закоммиченного plan.md исполнителя на код не нанимать.
- На доске задач карточка показывает номер текущей вехи.
- Ворота людей: вехи 1, 2 и 5 (вливание и прод) — владелец; веха 3 — планировщик-лид, высокий риск — владелец; вехи 4–5 до владельца — ревьюер.
Как понять, что работает
| Веха | Опережающий | Запаздывающий |
|---|---|---|
| 1 | часы от разговора до intent.md | доля intent.md, принятых в веху 2 |
| 2 | время intent.md → spec.md | правки spec.md после первого plan.md |
| 3 | доля PR, влитых с первого прохода | совпадение влитого диффа с plan.md |
| 4 | доля зелёного CI с первого раза | время ревью одного PR |
| 5 | время до первого ревью | дефекты до мержа против дефектов в проде |
| 6 | время от алерта до intent.md | повторные инциденты того же класса |