Skip to main content

OpenSpec в 2026: операционная система spec-driven development

Шесть недель назад я поставил @fission-ai/openspec. Вчера отгрузил изменение в четырнадцать файлов за девяносто минут из двухсотстрочной спеки, в brownfield-кодовой базе, которую три инженера правят два года — без мерж-конфликтов, без эскалаций ревью. Это сеньорный архитектурный разбор того, почему OpenSpec — первый SDD-инструмент, который не разваливается под продакшен-реальностью.

OpenSpec в 2026: операционная система spec-driven development

Шесть недель назад я поставил @fission-ai/openspec на brownfield TypeScript-кодовую базу, которую три инженера правили два года. Вчера отгрузил изменение в четырнадцать файлов за девяносто минут из двухсотстрочной спеки. Без мерж-конфликтов. Без эскалаций ревью. PR-описание состояло из proposal и шестидесятистрочной spec-дельты; код-дифф был её следствием. Сеньор, который ревьюил, не читал код — он прочитал spec-дельту и одобрил.

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

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

Тезис жёстче, чем людям удобно. OpenSpec — первый spec-driven фреймворк, относящийся к спекам так, как Git относится к коду: filesystem-state-machine с ветками, изоляцией и атомарными мержами. Это не фича. Это вся причина, по которой он работает.

Что такое OpenSpec, если по существу

OpenSpec — это open-source CLI от Fission-AI, основанный Tabish Bidiwale, запущенный через Y Combinator в начале этого года, сидящий на пятидесяти тысячах GitHub-звёзд примерно за шесть месяцев после релиза. NPM-пакет — @fission-ai/openspec. TypeScript, требует Node 20.19+, последняя стабильная — v1.3.1 (21 апреля 2026 — около месяца назад на момент написания).

Фрейминг основателя стоит цитировать, потому что он прорезает три года LLM-хайпа одним предложением:

Генерация кода теперь дешёвая. Корректность — всё ещё дорогая.

Это весь диагноз. Бутылочное горлышко отгрузки AI-фич в 2026 — не возможности модели. Opus 4.7 и Codex 5.5 могут произвести рабочую реализацию из почти любой хорошо сформированной спеки. Бутылочное горлышко — добраться до хорошо сформированной спеки, держать её стабильной между сессиями, изолировать параллельные изменения и мержить их обратно в источник истины без загрязнения. Это системная задача, не задача про промптинг.

OpenSpec решает её так, как решал бы backend-инженер — файловой системой, без БД, markdown’ом везде, и воркфлоу, мапящимся почти один-в-один на Git Flow. Канонический layout:

project_root/
└── openspec/
    ├── AGENTS.md            # поведенческие правила для любого AI-инструмента
    ├── project.md           # глобальный контекст — стек, конвенции, ограничения
    ├── specs/               # Источник истины — текущее поведение системы
    │   ├── auth-login/spec.md
    │   ├── payment-checkout/spec.md
    │   └── ...
    └── changes/             # изолированная рабочая зона для in-flight предложений
        ├── add-oauth-login/
        │   ├── proposal.md  # "почему" и "что"
        │   ├── design.md    # технический подход
        │   ├── tasks.md     # чек-лист реализации
        │   └── specs/       # spec-дельты: ADDED / MODIFIED / REMOVED
        └── archive/
            └── 2026-04-12-add-rate-limiting/
                └── ...

Две директории несут всю модель. specs/ — текущее состояние мира, источник истины системы, организованный по capability. changes/ — in-flight рабочая зона; каждое предложение — своя папка, полностью изолированная, со своей дельтой против текущих спек. Когда изменение одобрено и применено, его дельты мержатся обратно в specs/, а папка proposal’а переезжает в changes/archive/[date]-[name]/. Архив неизменяем. Всё. Это весь контракт файловой системы.

Всё остальное — CLI, slash-команды, интеграции с AI-инструментами — это интерфейс над этим контрактом. Можно удалить каждый JavaScript-файл в node_modules и у тебя всё ещё будет когерентная SDD-кодовая база, потому что методология живёт в структуре директорий, не в инструменте.

Машина состояний из четырёх фаз

CLI экспонирует небольшой набор slash-команд, перемещающих изменение через четыре фазы. Внутри AI-инструмента вроде Claude Code или Cursor ты набираешь команду, AI делает работу; ты ревьюишь.

ФазаКомандаФайлы созданные / изменённыеЧто происходит downstream
1. Propose/opsx:propose <feature>openspec/changes/<feature>/ с proposal.md, design.md, tasks.md, дельтами specs/Существует новая изолированная рабочая зона; в источнике истины ничего не изменилось
2. Defineopenspec validateНовых файлов нет; репортит ошибки синтаксиса спек / сценариевСтатический анализ spec-дельты до того, как написан хоть какой-то код
3. Implement/opsx:applyИзменения исходного кода, чекбоксы задач отщёлкнутыAI исполняет tasks.md строго против согласованной спеки; ты ревьюишь код-диффы и spec-дельты вместе
4. Archive/opsx:archivespecs/ обновлён мержем дельт; proposal переехал в changes/archive/[date]-<feature>/Источник истины отражает новое состояние системы; архивированный proposal — постоянная история

Конкретный end-to-end:

Ты:   /opsx:propose add-dark-mode
AI:   Создано openspec/changes/add-dark-mode/
      ✓ proposal.md       (обоснование, критерии успеха)
      ✓ design.md         (theme-контекст, CSS-переменные, персистенс)
      ✓ tasks.md          (8 задач по 3 компонентам)
      ✓ specs/theme/spec.md  (ADDED: 4 сценария)

Ты:   openspec validate
✓ Все сценарии корректно сформированы
✓ Конфликтов с существующими спеками нет

Ты:   /opsx:apply
AI:   ✓ 1.1 Добавить theme context provider
      ✓ 1.2 Создать toggle-компонент
      ✓ 2.1 Добавить CSS-переменные для тёмной палитры
      ...

Ты:   /opsx:archive add-dark-mode
✓ Спеки смержены в openspec/specs/theme/
✓ Proposal заархивирован в openspec/changes/archive/2026-05-21-add-dark-mode/

Весь цикл, от «я хочу тёмную тему» до «тёмная тема в main со спекой» — одна терминальная сессия. Спека — долговечный артефакт; код — её следствие. Архив — история.

Почему filesystem-as-state-machine — правильный выбор

Хитрость здесь не в CLI. Хитрость в том, что кто-то наконец сел и спросил: как выглядел бы Git, если бы Git версионировал поведение, а не код? И потом реализовал это без БД, без сервиса, без централизованного сервера — просто файлами в директории и машиной состояний из четырёх команд.

Маппинг один-в-один с интуициями, которые у каждого backend-инженера уже есть.

Понятие GitЭквивалент OpenSpecЗаметки
Ветка mainopenspec/specs/Источник истины; текущее состояние мира
Feature-веткаopenspec/changes/<feature>/Изолированная рабочая зона; не загрязняет main, пока не смержена
ДиффSpec-дельта (ADDED / MODIFIED / REMOVED сценарии)Ревьюается как текст, история по строкам
Мерж/opsx:archiveАтомарный; дельты применены, proposal переехал в историю
git logopenspec/changes/archive/Append-only история каждого изменения с сохранённым обоснованием
Pre-commit hookopenspec validate в CIЛовит криво сформированные спеки до того, как они попадут в ревью

Как только видишь маппинг, любой другой SDD-инструмент выглядит недо-спроектированным. GitHub Spec Kit тяжеловесен и жёсток; он навязывает фазовые гейты и инлайн-правит source-of-truth спеки по ходу, что означает: конкурентные предложения от двух инженеров столкнутся на одном файле. AWS Kiro привязывает к Kiro IDE и в частности к моделям Claude — норм, если ты уже AWS-shop, фатально иначе. Tessl — пуристская позиция («код реконструируется из спеки»), философски чистая и операционно болезненная — у большинства реальных кодовых баз есть код, написанный руками, который должен сосуществовать с генерируемым. BMAD, Antigravity от Google, и горстка других SDD-фреймворков, отгружающихся в 2026, делают разные ставки, но почти все предполагают greenfield — новый проект, пустой репо, чистый лист.

Brownfield — это где работа на самом деле. Каждая команда, которую я уважаю, отгружает в кодовую базу, которую правили годами, люди, ушедшие из компании, с конвенциями, которые не совпадают с README, в директориях, названных по продуктам, которые переименовали дважды. Вся архитектура OpenSpec построена под эту реальность. Директорию specs/ можно ретрофитнуть на существующий проект — есть даже документированный режим retrofitting, где ты просишь AI обратно-инженерить спеки из существующего кода, производя базовую документацию для систем, которые её никогда не имели. Это настоящее раскрытие. Не «spec-driven с первого дня» — spec-driven с третьего года.

Backend-архитектор, читающий это, должен заметить, что OpenSpec на самом деле отгружает workflow-engine поверх content-addressed store, и адресует файловая система. Всё это умещается на USB-флешке. Нет сервиса, который надо эксплуатировать, нет consensus-протокола для дебага, нет API для версионирования. Это самая лёгкая возможная реализация настоящей идеи, и поэтому он уже выигрывает SDD-экосистему.

Форма PR меняется downstream от этого. В старом мире ревьюер открывает PR, видит 600-строчный дифф, скроллит, надеется, что в середине ничего важного не прячется, и аппрувит. В OpenSpec-форме PR тело состоит из proposal.md + design.md + spec-дельта. Ревьюер читает шестьдесят строк спеки, задаёт один вопрос по неоднозначному сценарию и аппрувит. 600-строчный код-дифф проглядывается как sanity-check — это следствие согласованного изменения, не само изменение. Это и есть изменение воркфлоу, на которое Spec-Driven Development указывал; OpenSpec — первый инструмент, который реально доставляет это на brownfield-команде.

Как это бьёт по дизайну компонентов

OpenSpec описывают и демонстрируют преимущественно backend-leaning инженеры, что заслонило кое-что, что стоит сказать: это негромко-отличный frontend-инструмент.

Причина в layout’е файлов. Каждая поведенческая capability получает свою папку под openspec/specs/. Для component-heavy frontend это мапится в:

openspec/specs/
├── ui-button/spec.md
├── ui-form-field/spec.md
├── auth-login-form/spec.md
├── checkout-cart/spec.md
├── nav-language-switcher/spec.md
└── ...

Каждый spec.md содержит сценарии в формате GIVEN / WHEN / THEN — например, для формы логина:

СЦЕНАРИЙ: Пользователь с включённым 2FA отправляет валидные креды
  GIVEN у пользователя включён 2FA
    AND пользователь отправил валидный email и пароль
  WHEN форма отправлена
  THEN сервер возвращает OTP-вызов
    AND форма переходит в состояние ввода OTP
    AND поля email/пароль задизейблены

СЦЕНАРИЙ: Отправка формы с невалидным форматом email
  GIVEN поле email содержит "not-an-email"
  WHEN пользователь блюрит поле
  THEN поле показывает inline-валидационную ошибку
    AND кнопка submit остаётся задизейбленной

Это не новый формат. Это та же форма данных, которую твои Playwright-тесты уже используют. Та же форма данных, которую play-функции Storybook уже используют. Та же форма данных, в которой твоя QA-команда уже пишет user stories. Причина, по которой большинство frontend-команд не пишут спеки, — не в том, что формат незнаком — в том, что у формата не было канонического дома. OpenSpec даёт ему дом.

Что это раскрывает для frontend:

  • A11y, i18n, design tokens и responsive-ограничения становятся first-class spec-контентом вместо разбросанных комментариев. «Кнопка должна достигать минимум touch-target 44×44 на мобиле» перестаёт быть сообщением в Slack и становится сценарием, ревьюируемым, когда ревьюится спека.
  • Дизайнер может отгрузить UX-предложение как spec-дельту, пока инженер отгружает data-layer-предложение как отдельную spec-дельту. Эти два никогда не трогают один файл. Они мержатся независимо в specs/. Мерж-конфликта нет, потому что нет shared mutable state — каждое предложение изолировано by design.
  • Рефакторы компонентов перестают быть «я переписал форму» и становятся «я MODIFIED два сценария и ADDED один». Ревьюеры видят, какое поведение изменилось. Если сценарий не изменился — поведение не изменилось, и ревьюер может доверять реализации.

Где это напрягается — и я продавал бы тебе что-то, если бы не сказал — это на сильно визуальной работе. Тайминг анимации, layout-as-art, микро-интеракции, зависящие от движения и цветовых решений: эти не вписываются чисто в GIVEN / WHEN / THEN. По-прежнему нужны visual-regression evals, screenshot-диффы, design-system stories. OpenSpec не заменяет это. Но он означает, что поведенческий слой — что этот компонент делает, когда, кому, с каким исходом — имеет канонический дом, и значит, перестаёт драться за пространство с визуальным слоем.

Tell frontend-архитектора здесь — что GIVEN / WHEN / THEN байт-в-байт та же форма данных, которую твой Playwright-спек уже использует. Ты не учишь новый формат. Ты учишь куда положить тот, что у тебя есть, чтобы он перестал быть осиротевшим в папке, которую никто не читает.

Это также то место, где дисциплина evals встречается с OpenSpec естественно. Каждый сценарий в спеке — механически — это eval-вход. Пайплайн, читающий openspec/specs/**/spec.md, извлекающий сценарии и гоняющий их как Playwright-тесты против развёрнутого превью — проект на выходные. Как только он существует, спека перестаёт быть aspirational — она верифицируется на каждом PR, и любое расхождение между спекой и реализацией — это CI-падение, не эскалация ревью.

Контекст-инжиниринг под другим именем

В первый раз, когда я читал доки OpenSpec, у меня было конкретное ощущение узнавания старой идеи в новой одежде.

Доки прямо говорят: «Когда использование контекста превышает 40%, перформанс AI значительно деградирует, и прошлые требования забываются». Это не открытие OpenSpec; это известное свойство long-context LLM в 2026, и это вся причина, по которой контекст-инжиниринг — дисциплина, которая важна. Интересно, что OpenSpec с этим делает.

Воркфлоу OpenSpec, в рантайме, — это load-on-demand стратегия контекста. Когда AI начинает сессию, он читает три файла: openspec/project.md (глобальный стек, конвенции, ~200 строк), openspec/changes/<active>/tasks.md (текущий фокус, ~50 строк) и конкретные openspec/specs/<capability>/spec.md файлы, на которые ссылается задача (~100 строк каждый). Это примерно 500–1,000 токенов курируемого, плотного контекста — не 50,000 токенов «вот весь репо, разбирайся».

Каждая проблема, которую идентифицирует контекст-инжиниринг — разжижение контекстного окна, hot/warm/cold тиринг, экономика токенов, стратегия эвикции, planning context vs execution context — здесь решается layout’ом директорий. Hot-тир — это tasks.md. Warm-тир — это упомянутые spec.md-файлы. Cold-тир — это остальной specs/ и весь archive/, доступный для загрузки по требованию, но не оплачиваемый по дефолту. Ты не конфигурируешь контекстный пайплайн. Ты используешь инструмент, у которого правильный пайплайн вшит в его файловую структуру.

Есть также история про память. Plan mode исчезает, когда модель перезапущена; история разговора испаряется между сессиями; даже лучшая long-context модель не помнит, что ты решил во вторник на прошлой неделе. Спеки решают это без церемоний: это файлы, версионируемые, долговечные, тривиально загружаемые. «Память» OpenSpec-проекта — это директория specs/. «Мышление» OpenSpec-проекта — это директория changes/. Каждая ограничена, инспектируема, переживает рестарты. Это то, что любой agent-фреймворк, который я использовал, пытался построить из векторных хранилищ и KV-кэшей, а OpenSpec отгружает это как .md-файлы в папке.

Здесь есть более тонкое свойство, которое я пару недель учился ценить. Поскольку OpenSpec-спеки написаны в GIVEN / WHEN / THEN, каждый сценарий естественно eval-shaped. Можно сделать scrape всего дерева specs/, считать каждый сценарий тест-кейсом, и кормить их eval-харнес как канонические критерии корректности. Ты не пишешь evals отдельно — они и есть спека, в достаточно структурированной форме, чтобы быть машинно извлекаемыми. Это унификация, за которую я топил в конце eval-поста, и OpenSpec — первый инструмент, который добирается туда побочно, а не через церемонию.

AI-архитектор уже знает, что здесь происходит: это load-on-demand context engineering, надевший CLI-шапку. Интересная вещь в том, что это учит дисциплине инженеров, не знающих, что она им нужна. Через полгода инженер, ежедневно использующий OpenSpec и никогда не читавший статью про контекст-инжиниринг, будет контекст-инженером, по привычке, никогда не услышав термина.

Практическая заметка про модели. OpenSpec работает с двадцатью пятью+ AI-инструментами, но не работает одинаково хорошо со всеми. Спеки — это markdown, требующий рассуждения для качественного производства — называние capability, декомпозиция задач, написание сценариев, покрывающих краевые случаи — и дешёвые модели производят поверхностные спеки. Консенсус сообщества, совпадающий с тем, что я видел в двух продакшен-кодовых базах: Opus 4.7 или Codex 5.5 для propose и apply. Меньшие модели справляются с archive и validate. Если подключишь Haiku-tier модель к /opsx:propose, получишь спеки, которые выглядят правдоподобно и пропускают третий краевой случай, каждый раз. Плати за рассуждение там, где рассуждение важно.

Пять правил, которые я заработал, отгружая с OpenSpec

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

1. openspec validate блокирует CI с первого дня, не «потом». Валидация — это spec-эквивалент type-check. Без неё криво сформированные сценарии проскальзывают в specs/, и через неделю у тебя «спека», которая на самом деле непарсимая проза, а твой spec-to-eval пайплайн молча пропускает половину. Добавь openspec validate как обязательный шаг в pre-commit hook и как блокирующую CI-проверку в первый день, когда внедряешь инструмент. Не во второй. В первый.

2. project.md короткий и конкретный, не длинный и aspirational. Это глобальный контекст, который каждый агент читает первым, на каждой сессии. Кэп — 200 строк. Назови стек («Next.js 16, Tailwind 5, Postgres, Drizzle ORM»). Назови конвенции («мы используем Result-типы, не throw»). Назови отрицания («не использовать any в TypeScript; не eval; не прямой DB-доступ из хендлеров»). Пропусти маркетинг. Пропусти team mission statement. Агент — не твой инвестор.

3. Архив неизменяем. Никогда не редактируй openspec/changes/archive/*. Относись к нему как к Git-истории. Если прошлое решение надо пересмотреть — пишешь новый proposal, который его перекрывает; новый proposal ссылается на старый, и архив растёт. День, когда кто-то отредактирует архивированный proposal «просто опечатку поправить» — это день, когда история становится ненадёжной, а через несколько месяцев ты дебажишь регрессию и архив тебе врёт. Не надо.

4. Ревьюй spec-дельту, не код-дифф. Это изменение воркфлоу с наивысшим рычагом, которое я сделал в 2026, и мне потребовалось три недели его интернализировать. Тело PR должно быть proposal’ом, design-summary и spec-дельтой — это то, что читают люди. Код-дифф — это в лучшем случае sanity-check. Если spec-дельта правильная и код проходит validator и evals, код правильный; если spec-дельта неправильная, код тоже неправильный, но код был неправильным, потому что спека была неправильной, и починка кода без починки спеки лишь откладывает баг. Ревьюеры, которые читают spec-дельту первой, отгружают код лучше, чем ревьюеры, читающие код первым.

5. Не используй OpenSpec для исследовательской работы. Это та же оговорка, что в Spec-Driven Development, с двойной силой. Нельзя заспецировать то, чего ещё не понимаешь. Если ты в research-фазе — выясняешь, сработает ли подход, набрасываешь формы API, учишься модам отказа — пиши код руками, читай вывод, потом извлекай спеку из того, что сработало. Spec-after, не spec-first. Ошибка, которую делают новые adopter’ы, — хвататься за OpenSpec на первом дне research-spike. Так и получаются пятидесятистрочные спеки на штуку, которая через два дня окажется тремя разными штуками. Используй его для известной работы, не для неизвестной.

Где это всё-таки ломается

Честный учёт. Я продавал бы тебе инструмент, не методологию, если бы остановился на правилах.

  • Сильно визуальная / animation-heavy работа не вписывается в GIVEN / WHEN / THEN чисто. Сохраняй visual-regression-сьют. OpenSpec — для поведенческого слоя, не эстетического.
  • Research-фаза кода по-прежнему лучше пишется руками с spec-after-extraction. Не борись с этим.
  • Дешёвые setup’ы моделей дают поверхностные спеки. Если твой AI-бюджет — haiku-tier по всему фронту, тебе самому придётся писать сценарии, ловящие краевые случаи, и инструмент превращается в тормоз вместо мультипликатора. Плати за high-reasoning модель там, где это важно — propose, apply, validate. Экономь на archive, если надо.
  • Фрагментация экосистемы реальна. SpecKit, Kiro, BMAD, Antigravity, Tessl и OpenSpec все хотят быть SDD-фреймворком, который ты внедришь, и они не интероперируют чисто. Выбери один. Закоммить команду на него. Switching costs выше, чем доки признают; ты не просто учишь CLI, ты кодируешь всю change-дисциплину команды в форму инструмента.
  • Телеметрия — opt-out, не off-by-default. OpenSpec собирает анонимизированные имена команд и версии, если не выставить OPENSPEC_TELEMETRY=0 или DO_NOT_TRACK=1. Большинству команд это норм. Командам в регулируемых средах или с жёсткими data-handling политиками — это однострочный конфиг в shell-профиль и CI, но об этом надо знать.
  • Brownfield retrofitting работает, но не бесплатно. Рекламируемый воркфлоу «попроси AI обратно-инженерить спеки из твоего кода» работает — я использовал его на кодовой базе в шесть тысяч файлов — но первый проход даёт descriptive-спеки, не prescriptive. Они говорят, что код делает, не что должен делать. Потом нужен второй проход с человеком в петле, чтобы конвертировать descriptive-спеки в кодирующие реальное намерение. Планируй это. Не отгружай спеки первого прохода как источник истины.

Честная рамка: OpenSpec — правильный инструмент для девяноста процентов работы в зрелой 2026-кодовой базе, и оставшиеся десять процентов важны. Сеньорный инженер — тот, кто умеет различать.

Карьерный угол

«Покажи свой eval-сьют» — это вопрос, который я начал задавать на AI-инженерных собеседованиях в этом году. «Покажи свой OpenSpec-воркфлоу» — или SpecKit, или Kiro, но какую-то SDD-операционную модель с реальной формой — это вопрос, который к нему присоединился в последние два месяца. Качество ответа говорит о кандидате больше, чем любой другой одиночный сигнал.

Рынок ещё не запрайсил это. Инженеры, способные артикулировать когерентную spec-driven операционную модель — что живёт в project.md, а что нет, где границы изменений, как сдвигается PR-ревью, как интегрируются evals — всё ещё single-digit процент кандидатского пула, который я вижу. Премия будет компрессироваться по мере становления дисциплины стандартной практикой, тем же путём, что юнит-тестирование стандартизировалось между 2005 и 2015. Моя оценка — восемнадцать месяцев до того, как fluency в какой-то flavor SDD станет table stakes для сеньорных AI-инженерных ролей.

80/20, если не читать больше ничего: возьми продакшен AI-фичу, которой владеешь. Внедри OpenSpec на ней на этой неделе. Ретрофитни спеки для существующего поведения в два прохода — сначала descriptive, потом human-edited prescriptive. Прогони один полный proposal-to-archive цикл на реальном изменении. За неделю обнаружишь, что в твоём старом воркфлоу было три места, где ты гадал — про намерение, про скоуп, про то, кто должен что верифицировать — и OpenSpec превратил все три в файлы, на которые можно ткнуть пальцем. Это обнаружение — весь навык.

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

Урок не в том, чтобы «использовать OpenSpec». Урок в том, что когда у методологии появляется такой хороший инструмент, люди, уже понимавшие методологию, компаундят свой рычаг в десять раз, а те, кто не понимал, получают возможность выучить методологию, используя инструмент. Эта асимметрия — карьерная история инженерии 2026.

Spec-driven development был философией три года назад. Стал практикой в 2025. В 2026 становится операционной системой, и OpenSpec — самая лёгкая отгруженная на сегодня реализация этой системы. Интересный вопрос больше не «стоит ли заниматься spec-driven development?». Это «какую SDD-операционную модель я коммичу своей команде, и насколько быстро могу ретрофитнуть кодовую базу, которая у меня уже есть?»

Если хочешь глубже, курсы ниже покрывают части дисциплины, которые я преподаю чаще всего: Claude Code Mastery: Agentic Coding for Engineers — ежедневный slash-command воркфлоу внутри инструмента, лучше всего парящегося с OpenSpec, Building Agents with the Claude Agent SDK — построение агентов, потребляющих спеки как first-class входы и производящих как выходы, Building MCP Servers & AI Tool Integrations — расширение OpenSpec-воркфлоу через MCP-обслуживаемые capability, и Building LLM-Powered Apps: RAG & Agents — проводка GIVEN / WHEN / THEN сценариев из твоих спек в рабочий evals-харнес на продакшен-трафике.

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

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

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

Продвинутый 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-ритуалы, которые приживаются.

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

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

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

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

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

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

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

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

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

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

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

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

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

Создание приложений на LLM: RAG и агенты

Создавайте production AI-приложения на базе больших языковых моделей. Векторные базы данных, RAG, автономные агенты, вызов инструментов, оценка и паттерны деплоя.

Узнать больше →
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 к инструментам — это лучший первоисточник.

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