Skip to main content

Spec-Driven Development: когда спецификация становится кодовой базой

Я уже два месяца не писал ни одной функции руками — и кодовая база никогда не была здоровее. Вот как spec-driven development изменил то, что в 2026 значит «инженерная работа», правила, которые держат дисциплину честной, и места, где она всё ещё ломается.

Spec-Driven Development: когда спецификация становится кодовой базой

Я уже два месяца не писал ни одной функции руками. Кодовая база никогда не была здоровее. Два года назад эта фраза звучала бы как маркетинг. В 2026 это просто новая база, и инженеры, которые этого не видят, вот-вот потеряют ступеньку, на которой они стояли, не замечая.

Это design-time-двойник поста про контекст-инжиниринг. Контекст-инжиниринг — это то, что рантайм собирает в момент исполнения. Spec-driven development — это то, что пишет команда и из чего рантайм потом собирает. Это две стороны одного сдвига, и нельзя всерьёз заниматься одной, не занявшись второй.

Тезис здесь жёстче, чем людям удобно. Ваша кодовая база больше не ваша кодовая база. Ваши спеки — да. Код — это просто кеш.

Сдвиг: код как кеш, спека как истина

Тридцать лет исходный код был долговечным артефактом, а всё остальное — тикеты, требования, архитектурные доки — украшениями вокруг него. Код был единственным местом, где жила истина. Всё остальное дрейфовало.

В 2026 эти отношения переворачиваются на многих командах, включая мою. Долговечный артефакт — это спека: файл, который читает агент, eval-набор, под который её проверяют, ограничения, которым обязана подчиняться система. Код — это то, что регенерируется из спеки по требованию. Если удалить код и оставить спеку, код можно произвести заново. Если удалить спеку и оставить код — вы потеряли истину, и удачи в реверс-инжиниринге из папки .ts-файлов, к которой последними прикасались три разных агента.

Это не гипотеза. Это практическая реальность кодовой базы, где большая часть написания кода делегирована. Код перестаёт быть источником истины, потому что больше нет одного автора, держащего его в голове. Эту роль обязана взять спека, иначе никто.

Это меняет всё, что идёт вниз по течению: ревью, тестирование, онбординг, найм. Дойдём до каждого.

Что такое «спека» в 2026

Спека — это не документ требований. Не user story. Не страница в wiki, которую кто-то написал шесть месяцев назад и никто с тех пор не трогал.

Спека в 2026 — это исполнимый артефакт, который агент читает напрямую, против которого его оценивают и из которого он производит код. У неё есть три конкретные формы, которые встречаются на зрелых командах.

Старый артефактЭквивалент-спека 2026Что изменилось
Тикет в JiraFeature-спекаИсполнима агентом, а не желаема; лежит в репо, а не в трекере
READMECLAUDE.md / AGENTS.md / правила репоЧитаемо машинами, а не только людьми; принудительно, а не декоративно
Архитектурный доcSystem-спека + eval-наборПроверяема, а не мемориальна; ревьюится при изменении
Комментарий в кодеInline-спекаУправляет поведением, а не просто описывает

Формат Anthropic Skills, GitHub Spec Kit, появление файлов AGENTS.md в корне репозиториев — это не разрозненные тренды. Это один и тот же тренд под разными шапками. Индустрия коллективно осознаёт, что долговечный вход для агентских систем должен жить в файле, а не в промпте, и этот файл должен ревьюиться и версионироваться так же, как код.

Иерархия спек

В зрелой spec-driven кодовой базе вы находите четыре уровня, вложенных друг в друга.

Системная спека. Инварианты. Архитектурные правила. Границы безопасности. Ограничения работы с данными. «Все ответы API — JSON; PII не покидает БД; авторизация на edge, а не в хендлерах». Эти редко меняются и редко принадлежат одной фиче. Они живут в корне репо — в AGENTS.md или эквиваленте.

Feature-спека. Что делает возможность. Примеры и контр-примеры. Критерии приёмки. Eval-набор, по которому фича удерживается. Эти переписываются, когда фичи эволюционируют. Они живут рядом с кодом, который описывают, часто как feature.md-сосед к директории реализации.

Task-спека. Единица, которую агент исполняет за один прогон. Уже фичи: «Добавь middleware-ограничитель частоты, использующий существующий Redis-клиент, и излучающий ту же телеметрию, что и auth middleware». Часто эфемерна, но версионирована в описании PR или task-файлах.

Inline-спека. Правила, встроенные в файлы репо — CLAUDE.md, AGENTS.md, комментарии к схемам, директорные README.md, которые агент читает как контекст всего, что делает в этой директории.

Что работает: маленькие спеки, скомпонованные вместе. Большие спеки протекают. Двухтысячесловная feature-спека, покрывающая пять задач, агентом (или человеком) обязуется хуже, чем пять трёхсотсловных, покрывающих по одной задаче.

Что меняется, когда спеки становятся first-class

Как только спека — долговечный артефакт, рабочий процесс ниже по течению меняет форму:

  • Code review становится spec review. Ревью PR с двумя сотнями строк сгенерированного агентом кода — неблагодарная работа: код обычно нормальный механически. Ревью спеки, которая его произвела, — высоковажная работа: там реально приняты решения. Команды, которые не перенесли внимание ревью на спеку, всё ещё тратят время сеньоров на код, который агент сгенерирует заново из исправленной спеки за двадцать секунд.
  • PR description становится spec diff. «Я поменял спеку политики rate-limit с X на Y; код регенерирован под неё» — гораздо лучшее описание PR, чем стена изменённых файлов. Diff, который интересен людям, — это spec diff. Code diff — его следствие.
  • Тестирование становится eval. Юнит-тесты по-прежнему существуют. Но высокоценное тестирование — выполняет ли фича спеку на разных входах, краевых случаях и враждебных условиях — выглядит больше как eval-набор, чем как файл юнит-тестов. Evals привязаны к спеке; меняется спека — меняются evals в том же коммите.
  • Дебаг становится spec-gap-анализом. «Почему агент сгенерировал неправильный код?» превращается в «Где в спеке этот случай не доспецифицирован?». Баг почти всегда в спеке, а не в коде, который она произвела. Относиться к спеке как к источнику багов — это самое высоковажное изменение workflow, которое я сделал за два года.
  • Онбординг становится чтением спек, а не чтением исходников. Новые инженеры не разгоняются, читая кодовую базу. Они разгоняются, читая системную спеку, потом feature-спеки тех областей, где будут работать. Код идёт вниз по течению — и они сами быстро его произведут, когда поймут ограничения.

Кредитное плечо сеньорного инженера в 2026 — в написании спек, которые агенты других людей исполнят правильно.

Это та часть сдвига, которая бьёт по сеньорам сильнее всего — и в обе стороны. Кредитное плечо огромное. Деятельность непривычная. Мышечная память «писать код руками» начинает атрофироваться, если активно не решать, какие задачи всё ещё этого заслуживают.

Пять правил написания спек, которым агенты действительно подчиняются

Пронумерованы, потому что выработаны в продакшене, а не выведены из блог-постов.

1. Исполнима, а не желаема. Каждой спеке нужна проверка приёмки. «Эта фича должна быть user-friendly» — это не спека, это пожелание. «Когда пользователь отправляет форму без email, верни 400 с телом {error: 'email_required'} и залогируй событие validation_failed с ID формы» — это спека. Правило: если из одной спеки нельзя написать тест — спека не готова.

2. Показывайте примеры и контр-примеры. Агенты быстрее учатся на контрасте, чем на правилах. Спека «имена должны быть в sentence case» слабее, чем спека, добавляющая «Пример: ‘Annual revenue’. Контр-пример: ‘annual_revenue’ или ‘AnnualRevenue’». Всегда показывайте, как выход не должен выглядеть. Вот где живёт настоящая управляемость.

3. Называйте режимы отказа. Позитивные спеки («Всегда делай X») слабее негативных («Никогда не делай Y»). Агент надёжнее подчиняется «не ходи в БД из хендлера», чем «используй слой репозитория». Оба места в спеке, но если можно написать только одно — пишите отрицание.

4. Версионируйте спеки как код. Спеки лежат в репо. У них есть история. Их ревьюят в PR. Их винят, когда что-то ломается. «Изменение спеки без изменения кода» — это реальная форма PR в 2026: иногда главное изменение — спека, а регенерация кода — следующий шаг. Относиться к спекам как к коду — не обсуждаемо; всё остальное разваливается, если спеки дрейфуют.

5. Одна спека — одна возможность. Большие спеки протекают. Спека, покрывающая аутентификацию и rate-limit и логирование, произведёт код, где одна из этих трёх задач стабильно слегка не так. Разделяйте. Композируйте возможности. Тот же инстинкт «маленькие функции, единая ответственность» применим к спекам с двойной силой.

Где это разваливается

Я продавал бы вам что-то, если бы остановился здесь. Есть реальные случаи, где spec-driven development — неверный фрейм, и притворяться обратным значит обжечься.

  • Разведка и исследовательская работа. Вы ещё не знаете, что специфицировать. Вы изучаете форму проблемы. Писать спеку до понимания проблемы — это карго-культ инженерии. В этих фазах пишите код руками, читайте выход, потом извлекайте спеку из того, что сработало. Спека после, а не сначала.
  • Перфоманс-критичный код. Горячие циклы, чувствительный к memory layout код, плотные внутренние ядра — агент произведёт нечто, что подходит под спеку, но в два раза медленнее, чем нужно, способами, которые спека предусмотреть не могла. Пишите такие куски руками. Спекуйте поверхность; ядро — руками.
  • Археология легаси-кода. «Поменяй эту четырнадцатилетнюю функцию» — редко spec-driven задача. Читайте код, понимайте, что он делает, потом решайте. Спеки — для движения вперёд; археология — отдельная дисциплина.
  • Случаи, когда спека длиннее, чем код. Если ваша спека сто строк, а код двадцать — вы переспецифицировали. Соотношение spec-to-code имеет sweet spot, и пересечение его значит, что вы используете спеки как замену тому, что не знаете, что строить. Сделайте шаг назад, напишите тридцатистрочную спеку, согласитесь итерировать.

Честная рамка: spec-driven development — это дефолт для девяноста процентов работы в зрелой кодовой базе 2026. Остальные десять процентов важны, и сеньорный инженер — это тот, кто отличает.

Карьерный угол: автор спек как ремесло

Что меняется лично для вас в зависимости от ступени лестницы, грубо разделяется на три группы.

Джуны. Ловушка очевидна и опасна: писать код, который мог бы написать агент, вместо того чтобы научиться писать спеку, в которой агент нуждался. Самый быстрый способ так и не стать сеньором — гордиться объёмом кода, который вы производите. Самый быстрый способ начать становиться сеньором — гордиться точностью спек, которые вы пишете, включая отрицательные случаи. Каждая написанная вами спека — мыслительный артефакт. Каждая строка агентского кода — нет.

Мидлы. Сдвиг сильнее всего здесь. Ваше старое кредитное плечо — писать код хорошо; ваше новое — писать спеки хорошо. Карьерный риск: если вы не сделаете переход, разрыв до сеньора станет сложнее закрыть, потому что то, за что сейчас нанимают сеньоров, лежит выше по течению, чем код. Карьерная возможность: spec authoring — недоразвитый навык по всей индустрии; быстро в нём прокачаться — одна из самых высокодоходных инвестиций, доступных прямо сейчас.

Сеньоры и стаффы. Описание вашей работы сдвинулось, успело догнать ваше звание или нет. Вы — автор спек, который иногда пишет код, а не автор кода, который иногда пишет спеки. Самые сеньорные инженеры, с которыми я работаю, теперь проводят день, формируя спеки, которые управляют пятью-десятью агентскими сессиями параллельно. Кредитное плечо складывается, потому что хорошо сформированные спеки композируются по нескольким агентам и фичам. Плохо сформированные — протекают во все одновременно.

Более глубокая мысль

Спеки — это то, что вы пишете; контекст — это то, что рантайм собирает из них. Оба должны быть правильными. Сломайте одно — и система отказывает способами, которые выглядят как AI-баги, но на самом деле — инженерные. Сделайте оба правильно — и кодовая база большую часть пишет сама. Звучит хлёстко, пока не увидите это в работе, после чего звучит как самый важный сдвиг в инженерной практике со времён системы контроля версий.

Если хотите глубже, в курсах ниже — те части дисциплины, которые я преподаю чаще всего: Claude Code Mastery: Agentic Coding for Engineers — ежедневный workflow spec-driven development с реальным агентом, Building Agents with the Claude Agent SDK — построение агентов, потребляющих спеки как first-class вход, Prompt Engineering & AI Workflow Automation — фундамент prompt-уровня, из которого эволюционируют спеки, и Building MCP Servers & AI Tool Integrations — как сделать спеки переносимыми между агентами и инструментами.

Поделиться
X LinkedIn
Следующий шаг

Закрепите эту тему на курсе

Структурированный путь от теории к production-коду — с проектами и код-ревью.

Средний 6 недель

Spec-Driven Development: от философии к рабочей модели

Научитесь писать спеки, которым агенты действительно следуют, выпускать код как кэш долговечной спеки и управлять триадой spec→context→evals на реальных кодовых базах. Vendor-agnostic, tool-agnostic, brownfield-ready — методологический курс, который сочетается с любым agentic-стеком.

Узнать больше →
Продвинутый 6 недель

OpenSpec на практике: production spec-driven workflows для AI coding agents

Операционализируйте SDD с OpenSpec — open-source spec framework, относящимся к спекам так, как Git относится к коду. Освойте /opsx:propose, /opsx:apply и /opsx:archive на реальной brownfield-кодовой базе. CI-гейты, мульти-инженерная коллаборация, ретрофиттинг legacy-спек и workflow-ритуалы, которые приживаются.

Узнать больше →
Средний 5 недель

Claude Code на практике: агентное программирование для инженеров

Используйте Claude Code — CLI Anthropic для агентной разработки — чтобы выпускать продукт быстрее. Освойте hooks, slash-команды, под-агенты, MCP-интеграции, headless-режим, plan mode и кастомные skills под рабочий процесс команды.

Узнать больше →
Продвинутый 7 недель

Создание агентов на Claude Agent SDK

Проектируйте и запускайте собственных AI-агентов на Claude Agent SDK. Стройте agent loops, определяйте инструменты, управляйте памятью и под-агентами, оценивайте поведение и деплойте мультиагентные системы для реальных инженерных задач.

Узнать больше →
Начальный 4 недель

Prompt Engineering и автоматизация с AI

Научитесь работать с AI-моделями: пишите качественные промпты, создавайте автоматизированные воркфлоу с Cursor, Copilot и API, повышая продуктивность в 10 раз.

Узнать больше →
Продвинутый 6 недель

Создание MCP-серверов и AI-инструментов

Освойте Model Context Protocol (MCP) — открытый стандарт Anthropic для подключения AI-моделей к внешним инструментам и данным. Создавайте MCP-серверы, подключайте API к Claude и проектируйте AI-интеграции нового поколения.

Узнать больше →
Oleksii Anzhiiak

Автор статьи

Oleksii Anzhiiak

Софтвер-архитектор, Senior .NET инженер и со-основатель

Алексей Анжияк — софтвер-архитектор, Senior .NET инженер и со-основатель ToyCRM.com и ProfectusLab. Имея более 15 лет опыта, он специализируется на распределённых системах, облачной инфраструктуре, высоконагруженной backend-разработке и платформах аутентификации. Занимается проектированием архитектуры, созданием безопасных систем авторизации и разработкой современных образовательных программ, которые помогают студентам получить реальные карьерные результаты.

LinkedIn →

Рекомендуем посмотреть

Подобранные сторонние видео по теме. Открываются на YouTube.

~2:00:00
Средний AI Engineer (Thariq Shihipar, Anthropic)

Claude Agent SDK — полный воркшоп (Thariq Shihipar, Anthropic)

Практический воркшоп Anthropic по построению продакшн-агентов на Claude Agent SDK — tool use, sub-agents, hooks, MCP-серверы и паттерны, которые работают за пределами демо.

~8:00:00
Средний AI Engineer (AI Engineer World's Fair)

AI Engineer World's Fair 2024 — кейноуты и трек CodeGen

Кейноут-стрим крупнейшей технической AI-конференции 2024. Снимок состояния AI-инженерии — что выкатили, что сработало, что нет — от команд, которые это строят.

~6:00:00
Средний AI Engineer (AI Engineer World's Fair)

AI Engineer World's Fair 2025 — кейноуты Дня 1 и трек MCP (с командой Anthropic MCP)

Кейноут MCP-трека с командой Anthropic. Если хотите понять, почему в 2025 MCP стал отраслевым стандартом подключения LLM к инструментам — это лучший первоисточник.

Связаться с нами