AI-Driven Development (AIDD)
Общее
Появление в 2022–2023 годах коммерческих больших языковых моделей (LLM), способных генерировать связный и зачастую работающий код, изменило базовую экономику написания ПО. Сначала AI использовался точечно — автодополнение строк, ответы на вопросы в чате, объяснение незнакомого фрагмента. Затем появились AI-редакторы (Cursor, Windsurf, Zed), автономные CLI-агенты (Claude Code, Gemini CLI, OpenAI Codex CLI, OpenCode) и языки управления промптами (SudoLang). Инструментальный слой быстро обогнал методологический: стало ясно, что «просто дать разработчику AI» даёт прирост скорости, но одновременно размывает ответственность, плодит дублирование кода и снижает стабильность.
Эту проблему и решает AI-Driven Development (AIDD) — методология разработки, в которой AI-модели берут на себя основную ответственность (primary responsibility) за производство исходного кода, тестов и документации, а человек перемещается на уровень спецификаций, архитектуры и валидации результата. Ключевой тезис AIDD: AI — это не надстройка над привычным процессом, а самостоятельный производитель кода, а значит вокруг него нужно выстроить ровно ту же инженерную дисциплину, что и вокруг любого другого источника кода — спецификации, тесты, контроль версий, ревью и валидацию.
AIDD — зонтичный термин. Под ним в индустрии понимают родственный, но не тождественный набор подходов:
- AIDD как методология (общее значение) — смена ответственности «человек пишет код → AI пишет код, человек валидирует».
- AI-DLC (AI-Driven Development Life Cycle) — операционная методология от AWS: три фазы (Inception → Construction → Operations), короткие циклы «bolts» вместо спринтов.
- AIDD Framework — конкретный open-source фреймворк от Parallel Drive (Эрик Эллиотт): CLI, agent runtime, навыки (skills), промпт-язык SudoLang.
- Spec-Driven Development (SDD) — подметодология, в которой Markdown-спецификации объявляются единым источником истины для AI-агентов.
Статья рассматривает AIDD в первом, методологическом смысле, опираясь на все перечисленные источники как на конкретные практики.
Историческая справка. Термин AIDD в современном значении начал активно использоваться с 2023 года — одна из ранних формулировок принадлежит Dawid Dahl (март 2023): AIDD как «футуристическое расширение TDD», цикл Red-Green-Refactor, где реализацию генерирует AI. С 2024–2025 годов методология была формализована: Эрик Эллиотт опубликовал AIDD Glossary и фреймворк; AWS представил AI-DLC; команда Panaversity сформулировала «девять столпов» AIDD. К 2026 году AIDD — устоявшийся термин с устоявшимся же набором артефактов и практик, которые и систематизированы ниже.
AIAD vs AIDD vs Vibe Coding
Три режима применения AI при разработке часто смешивают, хотя они различаются фундаментально — по тому, кто несёт основную ответственность за результат и какая инженерная дисциплина surrounds AI. Разведение этих режимов — отправная точка для понимания AIDD.
AIAD (AI-Assisted Development). Основную ответственность за код несёт человек. AI выполняет поддерживающую роль: автодополнение (Copilot), чат-вопросы (ChatGPT в браузере), объяснение фрагментов, генерация отдельных методов по запросу. Классическая IDE остаётся центром workflow, AI — надстройкой. Это привычный сегодня режим для большинства разработчиков.
AIDD (AI-Driven Development). Основную ответственность за генерацию кода, тестов и документации несёт AI. Человек пишет спецификации (что строить, какие стандарты качества соблюдать), организует контекст (правила, конвенции, история решений), валидирует вывод и принимает архитектурные решения. AI-редактор или CLI-агент становится центром workflow, а не надстройкой.
Vibe Coding. Термин, популяризованный Андреем Карпатым (февраль 2025): разработка, при которой человек ведёт с AI свободный диалог, принимает сгенерированное «на вайбе», не выстраивает ни спецификаций, ни тестового покрытия, ни систематической валидации. Код пишется быстро, но его сопровождаемость, безопасность и связность с остальной системой не контролируются.
| Ось сравнения | AIAD (AI-Assisted) | AIDD (AI-Driven) | Vibe Coding |
|---|---|---|---|
| Кто primary producer кода | Человек | AI | AI (без контроля) |
| Спецификации до кода | Опционально | Обязательны (vision, conventions, tasks) | Нет |
| Контроль качества | Ручное ревью | Автоматический quality-gate (тесты, линтеры, ADR) | Нет / «на глаз» |
| Роль человека | Автор строк | Архитектор спецификаций, валидатор, decision maker | Оператор чата |
| Тесты | После или параллельно | До реализации (TDD-стиль) | Обычно нет |
| Контроль версий артеактов | Код | Код + спеки + тесты + ADR + правила | Код (часто «как есть») |
| Production-ready | Да | Да, с первого дня | Нет (прототип/одноразовое) |
| Главный риск | Медленнее, чем могло бы быть | Затраты на контекст, зависимость от модели | Хрупкость, техдолг, дублирование |
Практический вывод: AIDD = AIAD по мощности генерации + дисциплина спецификаций/тестов/валидации. Vibe coding — это AI-генерация без этой дисциплины, и именно его AIDD противопоставляет себе как главный антипаттерн.
Отдельно отметим эмпирические данные о рисках бездисциплинарного AI-кодинга. GitClear, отследив 211 миллионов строк кода за 2020–2024 годы, зафиксировал восьмикратный рост дублирования кода по мере внедрения AI. Отчёт Google DORA связывает массовое внедрение AI с +9% к уровню дефектов и снижением стабильности (DORA — ежегодный отраслевой отчёт о производительности инженерных команд). Эти цифры — не аргумент против AI, а аргумент за методологию: генерация без quality-gate систематически деградирует в техдолг.
Принципы AIDD
AIDD опирается на набор принципов, которые в совокупности отличают методологию от «просто кодирования с AI». Ниже — формулировка каждого принципа с пояснением, какую конкретную проблему он решает.
Specification-first. Требования, архитектура и стандарты качества фиксируются до начала генерации кода — в виде структурированных документов (vision.md, conventions.md, tasklist.md). Проблема, которую решает: LLM по умолчанию склонна к «универсальным космолётам» — генерации избыточных абстракций на все случаи жизни. Спецификации ограничивают свободу генерации и задают критерии приёмки.
AI как primary producer. AI-модель рассматривается как основной источник кода, тестов и документации, а не как помощник, который «подсказывает». Проблема: при сохранении человека как автора строк выигрыш в скорости ограничен, а ответственность размывается. Перенос ответственности за генерацию на AI (с сохранением валидации за человеком) даёт кратный прирост velocity.
Человек как orchestrator и валидатор. Роль человека — постановка задачи в виде спецификации, выбор архитектурных альтернатив, валидация вывода AI, принятие решений в точках неопределённости. Человек остаётся decision maker’ом — это принцип Human-Verified.
Quality-Gated. На каждом шаге генерации действует автоматический gate: сгенерированный код должен проходить тесты, линтеры и проверки безопасности прежде, чем попасть в основную ветку. Проблема: проверить каждую AI-сгенерированную строку вручную невозможно — quality-gate делает проверку масштабируемой.
Iteratively-Refined. Работа ведётся короткими циклами «спланировал → сгенерировал → проверил → уточнил». Фидбек цикла улучшает и код, и сами спецификации (если выяснилось, что спека была неполной — она обновляется). Проблема: длинные «водопадные» проходы с AI дают непредсказуемый результат; итеративность возвращает управляемость.
Version-Controlled для всех артефактов. Под контролем версий находятся не только код и тесты, но и спецификации, ADR (Architecture Decision Records), правила для AI, onboarding-документация. Проблема: рассинхронизация «код ушёл вперёд, документация осталась» — главный источник хрупкости в AI-генерируемых проектах.
Documentation-Embedded. Документация живёт рядом с кодом и генерируется/обновляется в том же цикле, что и реализация. Onboarding для нового разработчика (или для самого AI при следующей сессии) — отдельный артефакт, который поддерживается явно.
Production-Ready с первого дня. Никаких throwaway-прототипов «для проверки идеи», которые потом превращаются в продакшен-код без переработки. Профессиональные стандарты (тесты, логирование, обработка ошибок, безопасность) применяются с первой итерации. Принцип прямо противоположен vibe coding, где production-ready откладывается «на потом».
Принципы не меню — это система. Каждый усиливает остальные: specification-first без quality-gate остаётся на бумаге; quality-gate без specification-first не знает, что проверять; iteratively-refined без version-control теряет накопленный контекст. Частичное внедрение создаёт дыры; полное — даёт преимущество.
Ментальная модель: цикл AIDD
AIDD не сводится к «написал спеку → получил код». Это повторяющийся цикл, который исполняется на каждом шаге разработки — от отдельной функции до архитектурного решения. Ментальная модель цикла — основа, на которую накладываются все остальные практики.
Цикл состоит из шести шагов:
- План (Plan). AI формирует детальный план предстоящей работы: какие файлы затронуты, какие изменения внесены, в каком порядке. План строится из текущего контекста — спецификаций, правил, истории решений.
- Уточни контекст (Seek clarification). AI выявляет пробелы в контексте и обращается к человеку с конкретными вопросами. В отличие от генерации «как понял», здесь человек явно доопределяет требования в точках неопределённости.
- Валидируй план (Human validation). Человек проверяет план и ответы на уточняющие вопросы, принимает или отвергает, корректирует архитектурные выборы. До генерации кода — а не после.
- Реализуй (Implement). AI генерирует код строго по утверждённому плану, в рамках зафиксированных конвенций.
- Проверь тестами (Verify). Запускается quality-gate: тесты, линтеры, статический анализ, проверки безопасности. Если gate не пройден — возврат к шагу 4.
- Итеративно доработай (Refine). Человек ревьюит результат, отмечает недочёты, при необходимости корректирует спецификацию (если причина дефекта — в неполной спеке). Цикл повторяется.
┌─────────────────────────────────────────────────┐
▼ │
┌─────────┐ ┌───────────┐ ┌──────────┐ ┌─────────┴┐
│ План │ → │ Уточни │ → │ Валидируй│ → │ Реализуй │
│ (Plan) │ │ контекст │ │ (Human) │ │(Implement)│
└─────────┘ └───────────┘ └──────────┘ └────┬─────┘
│
┌───────────────────────────────┘
▼
┌────────────┐ ┌────────────────┐
│ Проверь │───────▶│ Доработай │
│ тестами │ FAIL │ (Refine) ──────┼──▶ коммит
│ (Verify) │ └────────────────┘
└─────┬──────┘
│ PASS
▼
коммит + переход к следующей задаче
Цикл повторяется для каждой единицы работы, а не один раз на проект. Это критически важно: именно повторяемость превращает «иногда проверяем AI» в методологию. На уровне отдельной функции цикл занимает минуты; на уровне фазы проекта — часы или дни; но структура шагов неизменна.
Цикл AIDD структурно близок к OODA (Observe → Orient → Decide → Act) — модели принятия решений в условиях неопределённости, разработанной для военных и адаптированной для бизнеса. Plan ≈ Observe + Orient, Seek clarification + Validate ≈ Decide, Implement + Verify ≈ Act, Refine ≈ возврат к началу. Близость не случайна: разработка с AI — это именно работа в условиях неполной определённости (поведение модели вероятностно, контекст никогда не исчерпывающ), и AIDD заимствует у OODA главное — скорость и частота циклов важнее полноты каждого прохода. Лучше десять коротких циклов с быстрым фидбеком, чем один длинный «идеально спланированный».
Отсюда следствие для организации работы: болты вместо спринтов (терминология AWS AI-DLC). Sprint — недельный/двухнедельный цикл, привычный по Scrum, плохо ложится на AI-разработку, где единица работы измеряется часами. Bolt — короткий, интенсивный рабочий цикл (часы или дни), завершающийся проверяемым результатом. AIDD-проект — это последовательность десятков болтов, каждый из которых проходит полный цикл «план → валидация → реализация → проверка».
AIDD и классические практики SWE
Распространённое заблуждение: «AIDD отменяет классические практики разработки, потому что AI всё сделает сам». Наоборот — AIDD переиспользует и усиливает практики Software Engineering, переформулируя их под AI-first реальность. Без этих практик AIDD вырождается в vibe coding.
TDD (Test-Driven Development). В AIDD TDD — не один из вариантов, а обязательный quality-gate. Причина структурная: человек физически не может прочитать и осмыслить каждую AI-сгенерированную строку (объёмы генерации слишком велики), поэтому единственный масштабируемый способ верификации — автоматические тесты. Конкретно применяется классический цикл Red-Green-Refactor, но распределение ролей иное:
| Шаг TDD | Классический TDD | AIDD |
|---|---|---|
| Формулировка цели (Input → Output) | Человек | Человек (часто с помощью AI) |
| Тип/интерфейс функции | Человек | Человек (часто с AI) |
| Написание тестов | Человек | AI генерирует, человек ревьюит |
| Red: запуск тестов до реализации | Человек | AI или CI |
| Реализация | Человек | AI |
| Green: запуск тестов | Человек | AI или CI |
| Рефакторинг | Человек | AI предлагает, человек валидирует |
В AIDD тесты пишутся до реализации — это задаёт AI чёткий контракт: реализация считается готовой, когда тесты проходят. Без этого порядок обратный: код генерируется, потом под него «причёсываются» тесты, что снижает их ценность как спецификации поведения.
Spec-Driven Development (SDD). В AIDD спецификации объявляются единым источником истины (single source of truth) для всей работы. Это прямое усиление классической идеи requirements engineering, перенесённое на AI-контекст: спецификация читается и человеком, и AI-агентом, и CI. Если спецификация и код расходятся — считается правильной спецификация (а код либо исправляется, либо спека обновляется через явное решение). Конкретный артефакт SDD в AIDD — проектный «конституционный» файл (AGENTS.md, CLAUDE.md или аналог), в котором зафиксированы правила, контекст и история решений.
BDD (Behavior-Driven Development). Прямо в канон AIDD не входит, но концептуально укладывается как частный случай SDD: Gherkin-сценарии (Given / When / Then) — это исполнимые спецификации на естественном языке, которые AI читает напрямую, а тест-раннер исполняет. BDD-сценарии становятся особенно ценными в AIDD как bridges между бизнес-требованиями и тестовым покрытием.
Code Review. В AIDD ревью не исчезает, а автоматизируется и встраивается в цикл. Часть проверок выполняет сам AI (встроенные skill-ревьюеры: дублирование, нарушение конвенций, потенциальные дефекты — см. инструменты ниже), часть — человек. Принцип: человек ревьюит спецификации и архитектурные решения, AI-ревьюер — соответствие кода конвенциям и стандартам. Это разделение критично: если попытаться ревьюить человеком весь AI-сгенерированный код построчно, throughput методологии обнулится.
CI/CD. В AIDD CI становится носителем quality-gate: каждый коммит прогоняет тесты, линтеры, статический анализ, проверки безопасности. Деплой — по возможности автоматический (continuous deployment). Характерная особенность AIDD-проектов: частота коммитов и деплоев значительно выше, чем в классической разработке (десятки в день), что требует зрелого CI/CD.
ADR (Architecture Decision Records). В AIDD ADR — обязательный артефакт: каждое архитектурное решение фиксируется короткой запиской (контекст → рассматриваемые варианты → выбранное решение → последствия). Причина: AI-агент в следующей сессии должен знать почему выбрано именно это решение, иначе он начнёт «переизобретать» альтернативы. ADR хранится под контролем версий рядом с кодом и подгружается в контекст агента.
Резюме: AIDD — это не отмена, а переформулировка классического SWE под AI-first реальность. TDD становится автоматическим gate’ом; spec-driven — единым источником истины; code review — гибридным (AI + человек); CI/CD — высокочастотным; ADR — обязательным. Проект, который применяет AI без этих практик, не является AIDD — это vibe coding любой степени интенсивности.
Артефакты AIDD-проекта
Практическое ядро AIDD — набор артефактов, которые окружают AI-генерацию и делают её предсказуемой. Ниже разобран каждый артефакт: какую проблему решает, из каких разделов состоит, как используется агентом. Артефакты даны в порядке их появления в проекте.
idea.md — фиксация идеи
Самый ранний артефакт: краткая запись изначальной идеи продукта или фичи, сформулированная до какой-либо технической проработки. Цель — превратить хаотичную мысль в зафиксированную отправную точку, от которой можно вести проектирование. Часто idea.md — первый файл, который создаётся в проекте, и из него далее «вырастает» vision.md.
# Идея: <название>
## Суть
<2–3 предложения: что делаем, для кого, какую проблему решаем>
## Ключевые свойства
- <свойство 1>
- <свойство 2>
- <свойство 3>
## Что НЕ входит (out of scope)
- <явное ограничение 1>
- <явное ограничение 2>
idea.md не претендует на полноту — его задача зафиксировать направление. Подробная проработка переносится в vision.md.
vision.md — техническое видение проекта
Главный проектирующий артефакт: развёрнутое техническое видение, в котором зафиксированы все ключевые решения до начала кодогенерации. vision.md — это и техническое задание, и архитектурный документ, и источник контекста для AI-агента в каждой последующей сессии. Именно через vision.md методология противодействует склонности LLM к «универсальным космолётам»: явно фиксируется, что не нужно делать, какие принципы соблюдать (KISS, YAGNI, MVP, Fail Fast), какой стек принят.
Типовая структура vision.md:
# Vision: <название проекта>
## Обзор
Кратко: что это, для кого, primary user journey.
## Цели и не-цели (Goals / Non-Goals)
- Goals: <что проект должен достичь>
- Non-Goals: <что явно не делаем>
## Технологический стек
- Язык/ runtime: ...
- Фреймворк: ...
- Хранилище: ...
- Инфраструктура: ...
## Принципы разработки
- KISS, YAGNI, MVP, Fail Fast, итеративная разработка
- Явный запрет на оверинжиниринг
## Архитектура
- Слои приложения, диаграмма (текстовая / mermaid)
- Поток данных
## Модель данных
- Ключевые сущности, их поля и связи
## Работа с внешними зависимостями
- LLM-провайдер, интерфейс доступа (например, OpenAI client)
- Внешние API
## Мониторинг и логирование
- Что логируем, в каком формате, куда
- Метрики и алерты
## Сценарии работы
- Основные use cases (последовательно)
## Деплой
- Окружения (dev / prod)
- Способ развёртывания (Docker, serverless, ...)
## Конфигурирование
- Где хранятся настройки, формат, секреты
Критически важно: vision.md не пишется одним заходом. В AIDD он создаётся итеративно — совместно с AI раздел за разделом, с уточняющими вопросами и согласованием каждого блока. Параллельно с проектированием выбранные архитектурные решения фиксируются как ADR (см. ниже).
conventions.md — соглашения по разработке
Файл, в котором зафиксированы правила написания кода и организации проекта — «контракт» между командой и AI. conventions.md ссылается на vision.md и не дублирует его содержание: vision описывает что строим, conventions — как пишем код. Включает не только желаемое поведение, но и явные запреты («что категорически нельзя»).
# Conventions
## Ссылка на контекст
- Техническое видение: @vision.md
## Структура проекта
- <правила организации директорий>
## Стиль кода
- <языковые конвенции, linter-конфиг>
- Именование, форматирование
## Обязательные практики
- TDD: тесты до реализации
- Обработка ошибок: <паттерн>
- Логирование: <формат>
## Явные запреты
- Не добавлять зависимости без явного согласования
- Не писать «универсальные» абстракции без потребности
- Не нарушать KISS / YAGNI
- Не коммитить секреты
## Работа с AI
- Перед генерацией — план
- После генерации — тесты и ревью
- Обновлять прогресс в tasklist
tasklist.md — план работы
Декомпозированный пошаговый план: весь проект разбивается на итерации, каждая итерация — на задачи, каждая задача отмечается чекбоксом. Качественная декомпозиция — один из самых влиятельных факторов качества генерации: чем меньше задача, тем легче AI удержать контекст в рабочей памяти и тем выше вероятность, что результат попадёт в ожидания. На вершине файла — обновляемый статус-отчёт, по которому агент при старте сессии определяет, где находится проект.
# Tasklist
## Прогресс
| Итерация | Статус | Дата |
|---|---|---|
| 1. Эхо-бот | ✅ Done | 2026-07-28 |
| 2. Интеграция с LLM | 🔄 In progress | — |
| 3. Память диалога | ⬜ Todo | — |
| ... | ... | ... |
## Итерация 1: Эхо-бот
- [x] Скелет проекта, конфиг
- [x] Telegram-обработчик
- [x] Эхо-ответ
- [x] Тесты
- [x] Коммит
## Итерация 2: Интеграция с LLM
- [ ] OpenAI client-обёртка
- [ ] Обработчик сообщения → LLM → ответ
- [ ] Тесты с mock-провайдером
- [ ] Коммит
Каждая итерация задумана так, чтобы по результату её можно было протестировать — вручную или автотестами. Это превращает разработку в последовательность проверяемых шагов, а не один непрерывный поток кода.
workflow.md — соглашение о процессе работы
Если conventions.md фиксирует правила кодирования, то workflow.md фиксирует правила процесса: в каком порядке работать, когда AI должен спрашивать разрешения, когда действует самостоятельно, как переходить между итерациями. По сути — это та самая ментальная модель цикла AIDD (см. выше), переведённая в конкретный контракт.
# Workflow
## Принципы
- Сначала планируем, потом делаем
- Каждая итерация завершается тестами и ревью
- Обязательное подтверждение перед переходом к следующему этапу
## Порядок работы
1. Прочитать @vision.md и @tasklist.md
2. Выбрать следующую невыполненную задачу
3. Предложить план реализации (файлы, подход) — остановиться
4. После согласования — реализовать
5. Запустить тесты, обновить прогресс в tasklist
6. Сделать коммит
7. Запросить переход к следующей итерации
Rules — проектные правила для AI-среды
conventions.md и workflow.md — документы для человека. Чтобы AI-среда (Cursor, Claude Code, Copilot, OpenCode) автоматически учитывала их при каждом обращении, существуют механизмы проектных правил. Они различаются по названию у разных инструментов, но идея одна: текст инструкций, который подмешивается в контекст модели на каждом вызове.
- Cursor Rules (
.cursor/rules/*.mdc) — файлы правил Cursor с указанием режима применения:Always(всегда в контексте),Manual(по явному обращению),Specific files(при работе с определёнными путями),Intelligent(AI сам решает). AGENTS.mdв корне репозитория — де-факто стандарт для CLI-агентов (Claude Code, OpenCode, Codex и др.): инструкции по навигации по проекту, работе с контекстом, уважению к vision-документу.CLAUDE.md— специфичный для Claude Code «конституционный» файл: правила, контекст, история решений, на которые агент обязан опираться.- custom instructions / system prompt overrides — в большинстве AI-IDE есть возможность задать глобальные или проектные инструкции.
Принцип общий: правила всегда в контексте, поэтому их делают лаконичными (следуют KISS) и не дублируют vision.md — они ссылаются на него.
ADR — архитектурные решения
Architecture Decision Records — короткие записи (по одному файлу на решение), фиксирующие: контекст, рассмотренные альтернативы, выбранное решение и его последствия. В AIDD ADR играют двойную роль: и средство коммуникации в команде, и контекст для AI в будущих сессиях. Без ADR агент, столкнувшись с архитектурным выбором, будет заново «переизобретать» альтернативы, уже рассмотренные и отвергнутые.
# ADR-001: Выбор LLM-провайдера через OpenRouter
## Контекст
Нужен единый интерфейс доступа к нескольким LLM (OpenAI, Anthropic, open-source)
с возможностью переключения без переработки кода.
## Рассмотренные варианты
1. Прямая интеграция с каждым вендором — много кода, сложность поддержки.
2. OpenRouter с доступом через OpenAI client — единый интерфейс, переключение моделей.
## Решение
Вариант 2: OpenRouter + OpenAI client.
## Последствия
- + Единый интерфейс, лёгкое переключение моделей.
- − Дополнительный сетевой хоп, зависимость от OpenRouter.
Тесты — quality-gate
В AIDD тесты — не отдельный артефакт «после кода», а часть цикла: они пишутся до реализации (TDD-стиль) и являются единственным масштабируемым способом верификации AI-сгенерированного кода. Покрытие формируется по тестовой пирамиде: быстрые unit-тесты в основании, интеграционные в середине, E2E на вершине. Unit-тесты должны быть молниеносными — без обращения к внешнему состоянию, через dependency injection и моки.
intro.md — onboarding-документация
Артефакт, который создаётся после реализации (или итеративно в ходе неё): техническое описание проекта для быстрого ознакомления нового разработчика — или того же AI в новой сессии. Включает архитектурную диаграмму, описание потоков данных, инструкции по развёртыванию, ссылки на ключевые файлы. В AIDD onboarding-документация часто генерируется самим AI по уже готовому коду, что решает классическую проблему «доки устарели».
Все артефакты — под контролем версий, в одном репозитории с кодом. Это не пожелание, а требование: без version-controlled спецификаций и ADR AI теряет контекст между сессиями и методология перестаёт работать.
Жизненный цикл (AI-DLC)
Операционная конкретика AIDD формализована AWS как AI-Driven Development Life Cycle (AI-DLC) — методология, в которой AI встроен в ткань SDLC, а не добавлен как надстройка. AI-DLC опирается на два измерения:
- AI Powered Execution with Human Oversight. AI систематически создаёт детальные планы работ, активно ищет уточнения и руководство, а критические решения делегирует человеку. Только человек обладает контекстным пониманием бизнес-требований, нужным для информированных выборов.
- Dynamic Team Collaboration. Поскольку AI берёт на себя рутину, команда объединяется в пространстве совместного решения задач: реалтайм-проблемсолвинг, креативное мышление, быстрые решения. Сдвиг от изолированной работы к высокоэнергетичной командной работе ускоряет инновации.
Жизненный цикл состоит из трёх фаз, каждая из которых обогащает контекст для следующей:
Inception (Начало). AI преобразует бизнес-замысел в детальные требования, истории и единицы работы через «Mob Elaboration» — активную валидацию вопросов и предложений AI всей командой. Результат фазы — зафиксированные требования и декомпозиция на единицы работы.
Construction (Построение). На основе валидированного контекста из Inception AI предлагает логическую архитектуру, доменные модели, кодовое решение и тесты через «Mob Construction» — команда в реальном времени даёт уточнения по техническим решениям и архитектурным выборам. Результат фазы — реализованная и протестированная функциональность.
Operations (Эксплуатация). AI применяет накопленный в предыдущих фазах контекст для управления infrastructure-as-code и развёртываниями под контролем команды. Результат фазы — развёрнутое и поддерживаемое решение.
Inception Construction Operations
┌───────────┐ ┌──────────────┐ ┌──────────────┐
│ Замысел │ ──▶ │ Архитектура, │ ──▶ │ IaC, деплой, │
│ → требова-│ │ модель, код, │ │ мониторинг │
│ ния, │ │ тесты │ │ │
│ единицы │ │ (Mob │ │ (под контролем
│ работы │ │ Construction)│ │ команды) │
│ (Mob │ └──────────────┘ └──────────────┘
│ Elabor.) │ ▲ ▲
└───────────┘ │ │
│ контекст фазы контекст фаз
└───────────◀────────┴──────────────◀────────┘
persistent context в репозитории
Ключевые терминологические сдвиги AI-DLC по сравнению с классическим Agile:
- Спринты → bolts. Bolt — короткий, интенсивный рабочий цикл, измеряемый часами или днями, а не неделями. Подчёркивает скорость и непрерывность доставки.
- Эпики → units of work (единицы работы). Единица работы — самодостаточный, валидируемый фрагмент функциональности, проходящий полный цикл AIDD.
- Остальная Agile-лексика переосмысляется аналогично: Standup → синхронизация по AI-плану, Retrospective → корректировка правил и спецификаций.
Важное свойство AI-DLC — persistent context across sessions. AI сохраняет и поддерживает контекст между фазами, складывая планы, требования и артефакты дизайна в репозиторий проекта. Это обеспечивает бесшовное продолжение работы между многими сессиями — без необходимости каждый раз «с нуля» погружать агента в проект.
Роли: человек и AI
В AIDD распределение ответственности между человеком и AI перестраивается радикально — но не в пользу устранения человека, а в пользу его перехода на более высокий уровень абстракции. Модель «оркестратор + исполнитель».
Роль AI (primary producer):
- Генерация кода по спецификации и в рамках конвенций.
- Написание тестов (по утверждённому плану и типам).
- Генерация документации и onboarding-материалов.
- Ревью кода на соответствие конвенциям (встроенный ревьюер).
- Поиск и устранение дефектов по фидбеку.
- Управление инфраструктурой как кодом (IaC).
- Ответы на уточняющие вопросы и выявление пробелов в контексте.
Роль человека (orchestrator и decision maker):
- Постановка задачи в виде спецификаций (
vision.md,conventions.md, task-декомпозиция). - Принятие архитектурных решений и их фиксация как ADR.
- Валидация вывода AI: соответствие спецификации, качество, безопасность.
- Принятие решений в точках неопределённости (когда AI обращается с вопросом).
- Ревью спецификаций и архитектурных выборов (не построчное ревью кода — это делает AI-ревьюер).
- Поддержание «конституционного» файла правил (
AGENTS.md/CLAUDE.md). - Обучение и калибровка правил по мере развития проекта.
Принцип Human-Verified: человек остаётся decision maker’ом. AI может действовать автономно в рамках зафиксированных конвенций, но выход за эти рамки (новая архитектура, изменение принципов, рискованные решения) требует явного человеческого подтверждения. Это не «ручной контроль ради контроля», а разделение по типу решений: рутинные и механические — AI, принципиальные и контекстозависимые — человек.
Профиль разработчика: M-Shaped
Сдвиг ролей меняет оптимальный профиль разработчика. В традиционной разработке доминировали два идеала:
- I-shaped (специалист) — глубокая экспертиза в одном домене, остальное — на поверхностном уровне. Хорошо для крупных команд с узким разделением.
- T-shaped — глубоко в одном домене + широкая база по смежным. Классический full-stack-идеал 2010-х.
AIDD делает практически достижимым третий профиль — M-shaped: глубокая экспертиза в 2–4 комплементарных доменах одновременно (например, backend + DevOps + ML + продуктовая аналитика). До AI такой профиль был практически невозможен: времени жизни не хватало, чтобы набрать глубину в нескольких областях. В AIDD рутинная реализация делегируется AI, и человек фокусируется на архитектуре и валидации — что делает глубину в нескольких доменов реалистичной.
| Профиль | Форма | Глубина | Историческая достижимость |
|---|---|---|---|
| Specialist | I | 1 домен | Норма для больших команд |
| Generalist | плоско | мелко во многих | Хорош для прототипов |
| T-shaped | T | 1 глубокий + широкая база | Full-stack-идеал 2010-х |
| M-shaped | M | 2–4 глубоких комплементарных | Достижим в AIDD |
Важные оговорки по M-shaped-профилю:
- Глубина домена всё ещё имеет значение — M-shaped не означает «поверхностно везде».
- Домены должны быть комплементарны (frontend + backend + DevOps — синергичны; ML research + legal compliance — трудно совместить).
- AI не заменяет многолетнюю специализированную экспертизу в критичных областях — безопасность, regulatory compliance, safety-critical системы, продвинутый research по-прежнему требуют глубокой «заработанной» экспертизы.
- M-shaped — это capability multiplier, not a magic solution: организационный контекст (структура, культура, риск-аппетит крупного enterprise) может требовать формальных handoffs и specialist-verification.
Инструментарий AIDD
Инструментальный слой AIDD быстро развивается. Ниже — карта по категориям; конкретные инструменты упомянуты как ориентиры, а не как рекомендации (рынок меняется за месяцы).
AI-IDE (редакторы с AI в ядре)
Редакторы, в которых AI — основа workflow, а не надстройка: встроенный чат, inline-редактирование, агентский режим, управление правилами проекта.
- Cursor — AI-first форк VS Code с режимами Composer/Agent, системой Cursor Rules (
.mdc), таб-комплецией. - Windsurf (Codeium) — AI-IDE с агентским режимом Cascade.
- Zed — высокопроизводительный редактор с multiplayer-режимом и AI-интеграциями.
- VS Code + AI-расширения (Copilot, Cline, Continue) — переходный вариант: AI как расширение классического редактора.
- Kiro (Amazon) — IDE со встроенным spec-driven процессом: спецификации генерируются и валидируются внутри редактора.
- Qoder (Alibaba) — помимо spec-driven, включает автогенерацию Repo Wiki.
AI-CLI и автономные агенты
CLI-инструменты, работающие из терминала: читают кодовую базу целиком, выполняют многошаговые задачи, коммитят. Это «напарник в терминале», снимающий изоляцию соло-разработчика.
- Claude Code (Anthropic) — агент для терминала с поддержкой
CLAUDE.md, subagents, системы Tasks; один из наиболее цитируемых в AIDD-материалах инструментов. - Gemini CLI / Gemini Code Assist (Google) — CLI и IDE-интеграция.
- GitHub Copilot CLI — CLI-расширение экосистемы Copilot.
- OpenAI Codex CLI — агент от OpenAI.
- OpenCode, Aider, Cline — open-source и сторонние агенты с похожим функционалом.
MCP (Model Context Protocol)
MCP — открытый протокол (предложен Anthropic) для подключения AI-агентов к произвольным инструментам, базам данных и сервисам. Неофициальное название — «USB для AI»: единый интерфейс, через который агент получает доступ к файлам, репозиториям, БД, API, системам мониторинга. В архитектуре AIDD MCP снимает главную боль интеграций — раньше для каждого внешнего ресурса нужен был свой специализированный код; теперь любой MCP-совместимый сервер доступен любому MCP-совместимому агенту.
Фреймворки AIDD
Готовые наборы практики, объединяющие CLI, агентов, навыки и промпт-шаблоны:
- AIDD Framework (Parallel Drive, Эрик Эллиотт) — open-source: AIDD CLI для бутстрапа проекта, agent runtime (workflow от product discovery до коммита и релиза), библиотека skills, серверный фреймворк (лёгкая альтернатива Express), утилиты. Включает встроенные команды:
/discover,/task,/execute,/review,/log,/commit,/user-test. - Специализированные skill-системы — каталоги переиспользуемых модулей предметной экспертизы (custom instruction files, контекстные фреймворки), которые агенты подгружают по необходимости.
Промпт-языки
Для простых промптов естественный язык оптимален, но для сложной оркестрации (сохранение состояния, явный control flow, типизация) используются псевдокодовые языки:
- SudoLang (Эрик Эллиотт) — декларативный, constraint-based, interface-oriented псевдокод для промптинга LLM. По утверждению автора, экономит 20–30% токенов по сравнению с естественным языком за счёт структурных шаблонов и типизации.
Системы правил и навигации по проекту
.cursor/rules,AGENTS.md,CLAUDE.md— описаны в разделе артефактов.index.mdв поддиректориях — практика, при которой каждая папка AI-системы содержит индексный файл, позволяющий агенту понять содержимое без чтения всех файлов (progressive discovery).
Инструментарий — быстро меняющийся слой; методология — устойчивый. AIDD как методология не зависит от конкретного инструмента: практики спецификаций, тестов и валидации переносятся между Cursor, Claude Code, Windsurf и любым будущим инструментом.
Промпт-инжиниринг в AIDD
В AIDD промпт-инжиниринг — не разовое умение «как задать вопрос», а инженерная дисциплина: промпты становятся переиспользуемыми шаблонами, кодифицирующими практики проекта. Ниже — техники, применяемые систематически. Для фундаментального понимания работы самих моделей — см. Параметры LLM; для оценки качества генерации — Метрики LLM.
Preamble (преамбула). Секция промпта, задающая контекст, роли, задачу и ключевые термины перед основным запросом. В AIDD преамбула часто выносится в project rules и подмешивается автоматически — чтобы не повторять контекст в каждом обращении.
Role-Based Prompting. Явное задание AI роли или персоны («senior backend engineer», «security reviewer», «product manager»). Активирует семантические кластеры темы, углубляет связность и релевантность вывода. В multi-agent системах каждый агент имеет свою постоянную роль.
Constraint-Based Prompting. Формулировка требований в виде явных ограничений: положительных («включить X», «использовать Y») и отрицательных («избегать Z», «не добавлять зависимости без согласования»). Производная от constraint-based programming (Иван Сазерленд, 1960-е). Особенно полезна для направления генерации под стандарты проекта — по сути, это и есть программная форма conventions.md.
Few-Shot и Zero-Shot Prompting. Few-shot — 2–5 примеров желаемого вывода в промпте; zero-shot — без примеров, полагается на способность модели к генерализации. В AIDD few-shot применяется для задач со строгим форматом (JSON-вывод, код по шаблону). Предостережение: примеры могут «утечь» в вывод — иногда лучше template-строки или явные constraints.
Chain-of-Thought (CoT). Пошаговое рассуждение модели перед финальным ответом. Улучшает точность на сложных задачах (математика, логика, архитектурный выбор). В AIDD CoT часто неявно встроен в цикл: шаг «План» с требованием развернуть рассуждение перед генерацией.
Prompt Chaining. Связывание промптов, где вывод одного — вход следующего. Помогает управлять контекстом в длинных взаимодействиях и декомпозировать сложную задачу. На уровне проекта prompt chaining превращается в agent orchestration (см. ниже).
Iterative Refinement. Постепенное улучшение ответа серией follow-up-промптов. Главная связка с другими техниками: iterative refinement + constraint-based prompting через метапрограмму (см. ниже) — сохранённый workflow, который можно переиспользовать. Особенно полезно для сложных и творческих задач, где один проход не даёт приемлемого качества.
Metaprogramming. Программы (метапрограммы), порождающие или манипулирующие другими программами. В AIDD метапрограмма — это промпт-шаблон, кодифицирующий практики проекта (стек, инструменты, конвенции), превращающий разовое взаимодействие в переиспользуемый процесс. Типовые применения: автоматизация feature-planning, story mapping, генерация state-management слоя, UI-компонентов, документации, unit-тестов — с соблюдением практик конкретного стека. Метапрограмма становится «записью» всех итеративных уточнений, накопленных при решении задачи.
RAG (Retrieval Augmented Generation). Подключение внешнего знания к генерации: существующие кодовые базы, документация, best practices, корпоративные стандарты. В AIDD RAG критичен: без него AI опирается только на свои обучающие данные и текущий промпт; с RAG — на актуальное состояние проекта и признанные практики. Подробнее про RAG как технику построения AI-приложений — за рамками этой статьи.
Multi-Agent Systems и AI Orchestration. Система из нескольких специализированных агентов, ведущих разные фазы lifecycle’а: product discovery → project management → code generation → documentation → testing → review → deployment. AI Orchestration — координация нескольких моделей/инструментов/агентов в сложных workflow так, чтобы они работали согласованно. В зрелом AIDD-проекте orchestration — не ручное связывание промптов, а системная функция (через MCP, фреймворки, skill-системы).
Automatic Prompt Optimization. Автонастройка промптов методами ML (генетические алгоритмы, RL). Пока нишевая, но перспективная техника: промпты перестают быть ручным артефактом и становятся оптимизируемым параметром. Качество промптов измеряется через метрики LLM (см. Метрики LLM).
Главный сдвиг AIDD-промпт-инжиниринга относительно «обычного»: промпт — не одноразовый запрос, а производственный актив, который версонируется, ревьюится и улучшается итеративно, как код.
Границы применимости
AIDD — не универсальный ответ. Эффективность методологии сильно зависит от типа задачи, зрелости проекта и характера принимаемых решений. Ниже — карта по режимам применимости.
Где AIDD работает хорошо:
- Greenfield-проекты. Новые проекты без легаси — идеальная среда: спецификации пишутся с нуля, нет сопротивления существующего кода.
- MVP и прототипы production-качества. AIDD позволяет за дни, а не месяцы, получить работающий продукт с тестами и документацией — при условии соблюдения принципов (без этого вырождается в vibe coding).
- Рутинная функциональность (CRUD, интеграции, boilerplate). Задачи с предсказуемой структурой — самая сильная сторона AI-генерации.
- Рефакторинг и миграции. Переписывание модуля с сохранением поведения, миграции между версиями фреймворков — AI хорошо справляется при наличии тестового покрытия как oracle.
- Документация и onboarding. Генерация технической документации по готовому коду — практически «бесплатный» выигрыш AIDD.
- Покрытие тестами. Генерация unit-тестов по существующему коду или спецификациям.
Где применять с осторожностью:
- Legacy-код без тестов. AIDD требует тестов как quality-gate; в проекте без покрытия gate не работает, и генерация становится рискованной. Сначала вводится тестовое покрытие, потом — AIDD.
- Крупные enterprise-системы со сложными интеграциями. Здесь persistent context и orchestration критичны, но организационная структура (формальные handoffs, specialist-verification, риск-аппетит) может требовать классического разделения ответственности.
- Домены с регулируемым комплаенсом. Финтех, медицина, оборонка — там, где требуется формальная верификация и аудитируемость, человеческая экспертиза и формальные процедуры не заменяются AI.
Где AIDD не заменяет человека:
- Безопасность (security). AI-ревьюер находит типовые уязвимости (XSS, SQL injection, NPE), но тонкие архитектурные дыры безопасности требуют специализированной экспертизы. AIDD — это первый фильтр, не последний.
- Safety-critical системы. Авиация, медицина, автомобилестроение — там, где ошибка стоит жизней, формальная верификация и сертификация остаются прерогативой человека.
- Продвинутый research. novel-алгоритмы, фундаментальные ML-исследования — области, где AI генерирует по известным паттернам, а не создаёт принципиально новое.
- Стратегические архитектурные решения в крупных системах. Решения с долгосрочными последствиями (выбор базы данных на десятилетие, стратегия микросервисного разрезания) требуют человеческого контекста, которого у AI нет.
Практическое правило: чем выше цена ошибки и чем меньше формализуема задача — тем больше решений остаётся за человеком. AIDD не отменяет этого правила, а делает границу явной через ADR и принцип Human-Verified.
Преимущества и риски
Методология — всегда компромисс. Ниже сбалансированная карта преимуществ и рисков AIDD.
Преимущества:
- Velocity. Прирост скорости разработки — основной и самый заметный эффект. Задачи, ранее занимавшие недели, выполняются за дни или часы. Источник ускорения — не «быстрее печатает код», а делегирование рутины + итеративный цикл с быстрым фидбеком.
- Качество через дисциплину. Парадоксальный на первый взгляд эффект: при правильном применении AIDD повышает качество, а не снижает его. Причина — обязательный quality-gate (тесты, линтеры, ревью) применяется систематически, а не «когда есть время». Сгенерированный код, прошедший gate, часто более единообразен, чем написанный человеком в спешке.
- DX (Developer Experience). Сдвиг фокуса с рутинной реализации на архитектуру и решения повышает удовлетворённость разработчика и снижает когнитивную нагрузку.
- Рыночная адаптивность. Короткие циклы (bolts) и непрерывная валидация позволяют быстро реагировать на изменения требований и фидбек пользователей.
- Прослеживаемость. При version-controlled спецификациях и ADR каждое решение имеет объяснение — улучшается онбординг и аудируемость.
- Доступность M-shaped-профиля. Один разработчик с AI покрывает функционал, ранее требовавший нескольких силосных специалистов.
Риски:
- Зависимость от модели и вендора. Качество генерации напрямую зависит от используемой LLM; смена модели или версии может потребовать перенастройки промптов и правил. Подробнее — Бенчмарки LLM и Параметры LLM.
- Стоимость. Активная AI-генерация стоит денег (токены коммерческих моделей) и времени (latency reasoning-моделей). Экономика складывается из тарифа вендора и параметров инференса — не учитывать её значит получить неожиданный счёт.
- Галлюцинации. LLM уверенно генерирует правдоподобный, но неверный код (несуществующие API, выдуманные параметры библиотек). Quality-gate перехватывает часть, но не все — критично для production-кода.
- Дублирование кода. Эмпирический факт: GitClear зафиксировал 8× рост дублирования с внедрением AI. Без явных skill-ревьюеров и enforcement DRY дублирование накапливается.
- Рост дефектов при отсутствии дисциплины. DORA связывает AI-внедрение с +9% дефектов и снижением стабильности — именно в тех проектах, где AI добавлен без методологии (vibe coding).
- «AI theater». Формальное применение AIDD без понимания принципов: спецификации пишутся «для галочки», тесты не запускаются, ADR не ведётся. Внешне похоже на AIDD, по эффекту — vibe coding с дополнительными накладными расходами.
- Размывание экспертизы команды. При чрезмерной делегировании рутины команда может терять глубокое понимание кодовой базы — что становится критичным в точках, где AI ошибается и нужно ручное вмешательство.
- Безопасность и утечки. Загрузка проприетарного кода или контекста в коммерческие модели — риск утечки интеллектуальной собственности; требуется политика использования моделей и приватность данных.
Сбалансированный вывод: AIDD даёт значительный выигрыш в скорости и — при дисциплине — в качестве, но не бесплатен. Стоимость — методологические накладные расходы (спецификации, тесты, ADR, правила) + инструментальная зависимость. Проект, не готовый нести эти накладные, получит vibe coding под вывеской AIDD со всеми его рисками.
Источники и материалы
Первоисточники и ключевые публикации
- Dawid Dahl. AI Is Changing The Way We Code: AI-Driven Development (AIDD). dev.to, март 2023 — ранняя формулировка AIDD как расширения TDD, цикл Red-Green-Refactor с AI. https://dev.to/dawiddahl/ai-is-changing-the-way-we-code-ai-driven-development-aidd-2ngo
- Eric Elliott. The AI Driven Development Glossary. Medium — словарь терминов AIDD, концепция AIAD vs AIDD, набор промпт-техник. https://medium.com/effortless-programming/the-ai-driven-development-glossary-a487616801b6
- AIDD Framework (Parallel Drive, Eric Elliott) — open-source фреймворк: CLI, agent runtime, skills, SudoLang. https://github.com/paralleldrive/aidd
- AWS. AI-Driven Development Life Cycle: Reimagining Software Engineering. — операционная методология AI-DLC: три фазы, bolts, Mob Elaboration/Construction. https://aws.amazon.com/blogs/devops/ai-driven-development-life-cycle/
- Panaversity. Nine Pillars of AIDD (глава из The AI Agent Factory) — specification-first методология, девять характеристик и девять столпов, концепция M-Shaped Developer. https://agentfactory.panaversity.org/docs/General-Agents-Foundations/agent-factory-paradigm/nine-pillars-of-aidd
- Практика AIDD в Cursor (Habr) — пошаговый workflow от
idea.mdдо деплоя с конкретными артефактами и промптами. https://habr.com/ru/articles/941934/ - GitClear. AI’s Impact on Code Quality — исследование 211M строк, рост дублирования кода.
- Google DORA. Accelerate State of DevOps — ежегодный отчёт; данные о влиянии AI на стабильность и дефекты.
Связанные материалы базы знаний
- Метрики LLM — как системно оценивать качество моделей, контролировать деградацию и принимать решения о выборе. База для quality-gate и оценки AI-генерации.
- Параметры LLM — настройки инференса (
temperature,top_p,max_tokens,seedи др.), определяющие характер генерации. Влияют на поведение AI в каждой точке цикла AIDD. - Бенчмарки LLM — стандартизированные тесты моделей; основа для выбора модели под AIDD-проект и оценки зависимости от вендора.