Spec-driven development в микросервисах, часть 2: как archspec делает контекст сервисов явным

В первой части я разбирал, почему spec-driven development начинает ошибаться, когда фича проходит через несколько микросервисов. Проблема не в том, что LLM плохо читает код или не умеет писать спеку. На уровне отдельных сервисов всё может выглядеть аккуратно: есть описание, план, реализация и тесты. Но правила, которые связывают сервисы между собой, часто не записаны в одном месте. Часть таких правил спрятана в реализации, часть известна только команде, а часть всплывает уже на ревью. Обычный Markdown не решает эту проблему: его легко написать неполным, сложно проверить автоматически и почти невозможно ревьюить как структурный контракт. Отсюда родилась идея: нужен машиночитаемый контракт на каждый сервис, который фиксирует межсервисные правила, проверяется на коммите и даёт LLM структурный контекст вместо набора Markdown-файлов. Для этого я собрал open source плагин для Claude Code — archspec . В этой части я покажу, как работает /archspec:init на одном сервисе из демо-проекта freelance-marketplace , разберу сгенерированные артефакты и объясню, как archspec поддерживает их в актуальном состоянии. Напомню, это Go-проект с 12 микросервисами для поиска фрилансеров. Вот схема сервисов, которую я использую на протяжении всего цикла: Как работает archspec

https://habr.com/ru/articles/1037988/

#specdriven_development #aiassisted_development #claude_code #llm #aiагенты #микросервисы #архитектура_микросервисов #docs_as_code #service_contracts #outbox_pattern

Spec-driven development в микросервисах, часть 2: как archspec делает контекст сервисов явным

Вторая статья из цикла из трёх частей. Часть 1 — где LLM теряет межсервисный контекст и почему локальных спек недостаточно. Часть 2 — archspec как контракт вместо свободного Markdown. Часть 3 —...

Хабр

Почему spec-driven development плохо работает на микросервисах: часть 1. Где теряется контекст

Я работаю в большой продуктовой компании с тысячей микросервисов. В такой системе даже небольшая фича часто проходит через несколько сервисов, событий и внутренних контрактов. Spec-driven development с LLM уже применяется в некоторых командах для планирования и ревью фич, поэтому мне было важно понять, где этот подход помогает, а где начинает ошибаться. Пока задача живёт внутри одного сервиса, всё обычно идёт быстро: спека короткая, описание и реализация помещаются в контекст модели. Но как только фича проходит через несколько сервисов, начинаются проблемы. По отдельности каждый кусок выглядит нормально: разбиение на слои, именование по код стайлу, прохождение тестов и ревью. Но в целом система не работает должным образом. Типичные ошибки: нет идемпотентности, LLM упускает сценарии и edge case-ы, появляются циклические вызовы сервисов. Чем больше делаешь правок, тем больше ошибок она допускает. Для эксперимента я собрал отдельный стенд: Go-проект - платформа для поиска фрилансеров . Внутри 12 микросервисов, связанных через gRPC и брокер сообщений; в этом проекте брокером выступает NATS. Одни сервисы хранят задачи и профили исполнителей, другие подбирают кандидатов, считают расстояния, проверяют портфолио и отправляют уведомления. Проект специально спроектирован с шестью категориями архитектурных ловушек: они проявляются не внутри одного сервиса, а на границах между сервисами. Фича для эксперимента была такой: если выбранный фрилансер отказался от оффера, платформа должна автоматически найти следующего подходящего кандидата, отправить ему новый оффер и уведомить заказчика о переназначении. Claude написал спеку, реализацию и юнит-тесты, но полный сценарий отказа и переназначения не сошёлся. Два независимых ревью нашли одну и ту же группу ошибок: по отдельности сервисы выглядели нормально, а вместе работали не так, как нужно. На это можно ответить, что нужен end-to-end тест на весь сценарий, но это не закрывает проблему целиком. End-to-end тесты есть не везде, их дорого поддерживать, и они не покрывают все развилки: особенно редкие edge case-ы, дубликаты событий, гонки и редкие комбинации условий. Главное же в другом: на этапе spec-driven разработки модель должна помочь собрать требования, ограничения и контекст, а именно там она часто ошибается. Разработчик тоже не всегда заранее знает, где спрятана проблема. Он может помнить про Outbox, дедупликацию уведомлений или особые требования конкретного сервиса к входным данным, но не сформулировать это как ограничение для новой фичи. LLM читает документы по сервисам, задаёт уточняющие вопросы и всё равно может пропустить связь между ними. В итоге спека получается подробной, но неполной: в ней есть локальные изменения по сервисам, зато нет системных инвариантов, которые живут между сервисами. Реализация может быть нормально разложена по слоям, тесты отдельных компонентов проходят, а ошибка обнаруживается уже на уровне сценария или ревью. Где LLM теряет контекст

https://habr.com/ru/articles/1033510/

#claude_code #specdriven_development #microservices #system_design #llm #архитектура #code_review #go #clean_architecture

Почему spec-driven development плохо работает на микросервисах: часть 1. Где теряется контекст

Первая статья из цикла из трёх частей. Часть 1 — где LLM теряет межсервисный контекст и почему локальных спек недостаточно. Часть 2 — archspec: версионируемый архитектурный контракт для сервисов....

Хабр

[Перевод] 10 уроков агентного кодинга. Что делать в эпоху дешёвого кода?

Передовые модели сейчас действительно хорошо пишут код — лучше, чем справляются с большинством других задач. Работа с агентами ощущается как взгляд из будущего: полигон для проверки того, насколько далеко можно зайти с агентными возможностями. Это заряжает, даёт результат и при этом — откровенно странно ощущается. Я веду список советов по агентному кодингу: правила и ориентиры для тех, кто только начинает работать с Codex, Claude Code, Pi или любым другим агентом. Каждый пункт — обобщённая рекомендация, применимая к агентному программированию в целом. Хочется, чтобы уроки оставались актуальными по мере того, как улучшаются модели и инструменты. Ниже — текущий список: 10 уроков агентного кодинга . Десять — красивое круглое число, хороший повод опубликовать.

https://habr.com/ru/articles/1031816/

#агентный_кодинг #Claude_Code #AIагенты #specdriven_development #endtoend_тесты #вайбкодинг #автоматизация_разработки #документация_кода #промптинжиниринг #кибербезопасность

10 уроков агентного кодинга. Что делать в эпоху дешёвого кода?

Передовые модели сейчас действительно хорошо пишут код — лучше, чем справляются с большинством других задач. Работа с агентами ощущается как взгляд из будущего: полигон для проверки того,...

Хабр

Claude Code на автопилоте: субагенты, worktrees и CI/CD

Финал серии: Agent Teams, GitHub Actions, Agent SDK, TDD, Ralph-loop на ночь и осторожный прогноз на 2027 Серия на Хабре: часть 1 - что Claude Code умеет из коробки · часть 2 - настройки, хуки и Context Rot · часть 3 - автономная работа и параллелизм. Однажды вечером я дал Claude Code не задачу "сделай фичу", а уже написанную спеку и сложный план. Дальше работал не один чат, а цепочка: оркестратор разобрал план на независимые куски, поднял кодеров в отдельных worktree, дождался их diff'ов, потом вызвал ревьюеров на каждый кусок и собрал итоговый отчёт. Утром у меня был не "ответ ассистента", а несколько веток, замечания ревью и список решений, которые всё равно должен принять человек. Это третья и финальная часть серии. В первой я показал что такое Claude Code и почему я называю его командой из 15 . Во второй - десять настроек, которые эту команду делают управляемой: CLAUDE.md на 30 строк, permissions, хуки, совещание ботиков через Codex и Gemini, Context Rot. Сегодня про следующий уровень. Когда конфиги настроены и работаешь каждый день, упираешься в новый потолок. Даже команда из 15 человек внутри одной сессии Claude имеет предел. Субагенты конкурируют за контекст, ветки мешают друг другу, ты переключаешься между задачами и теряешь состояние. Дальше начинается параллелизм, автоматизация и автономия. Десять приёмов, которые превращают Claude Code из "умного помощника" в систему из отдельных агентов, scheduled tasks и CI-задач. И в конце - честный разговор про то, куда всё это идёт в 2027 и что останется разработчику.

https://habr.com/ru/articles/1030832/

#claude_code #anthropic #aiагенты #ai_coding #субагенты #git_worktrees #agent_sdk #specdriven_development #vibecoding #программирование

Claude Code на автопилоте: субагенты, worktrees и CI/CD

Финал серии: Agent Teams, GitHub Actions, Agent SDK, TDD, Ralph-loop на ночь и осторожный прогноз на 2027 Серия на Хабре:   часть 1 - что Claude Code умеет из коробки  ·  часть 2 -...

Хабр

SDD на масштабе FullStack-приложения: 17 спринтов, две конституции, три чата

В первой статье я писал про SDD на примере одного вечера. После чего прошёл 17 спринтов SDD на FullStack-приложении: B2C-трекер привычек и целей, два репозитория, 251 тест на бэке и 77 на фронте, релиз в продакшен. Здесь — что не дало мне потерять контроль на этом масштабе.

https://habr.com/ru/articles/1027886/

#specdriven_development #spec_kit #claude_code #aiassisted_development #fullstack #java #spring_boot #react #методология #architecture

SDD на масштабе FullStack-приложения: 17 спринтов, две конституции, три чата

В первой статье я писал про SDD за один вечер — Telegram-бот, шесть команд Spec Kit, восемь часов от первого  speckit.constitution  до рабочего MVP. Это была проверка методологии на...

Хабр

Telegram-бот за вечер через Spec Kit: что AI-ассистированная разработка сделала с моим инженерным процессом

Я Java-разработчик: пишу на Java 5 лет. Последний месяц собираю портфолио через Spec-Driven Development — связку Spec Kit и Claude Code. Первый проект — Telegram-бот для задач. С шести вечера до двух ночи одного вторника я прошёл полный SDD-цикл от конституции до MVP с шестью командами. Восемь часов. Один вечер. Рабочий продукт. Но главное — что-то сдвинулось в моём инженерном процессе.

https://habr.com/ru/articles/1027250/

#specdriven_development #spec_kit #claude_code #ai_coding #aiassisted_development #telegram_bot #spring_boot #java #разработка #методология

Telegram-бот за вечер через Spec Kit: что AI-ассистированная разработка сделала с моим инженерным процессом

Лид Я Java-разработчик: пишу на Java 5 лет, из них последние 3 — в коммерческих проектах. Последние 10 месяцев из которых был тимлидом небольшой команды. Сейчас месяц как собираю портфолио через...

Хабр

Полтора миллиона на команду, ноль релизов и один человек с Cursor: что я понял за десять месяцев

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

https://habr.com/ru/articles/1026782/

#вайбкодинг #фаундер #продуктивность_разработчика #llmагент #specdriven_development #телеграмбот #personal_productivity #solo_founder #рефлексия_в_разработке #индиразработчик

Полтора миллиона на команду, ноль релизов и один человек с Cursor: что я понял за десять месяцев

Это третья часть серии. В первой я разбирал механику прокрастинации умных людей — с исследованиями, формулами, мета-анализами. Вторая была личной историей про интроверта-продавца, у которого в...

Хабр

Вайбкодинг спасёт мир или похоронит меня

20+ лет в айтишке, четыре запущенных продукта для международных компаний — и ни одного своего. В 40 лет я уволился с позиции директора по инновациям и за три месяца вайбкодинга собрал MVP платформы. Банк уже звонит и спрашивает, почему на расчётном счёте ноль. Рассказываю, как оно на самом деле. Читать-кайфовать

https://habr.com/ru/articles/1019160/

#вайбкодинг #стартап #telegram_mini_apps #nextjs #aiкодогенерация #specdriven_development #предпринимательство #увольнение_из_найма #mvp #акселератор

Вайбкодинг спасёт мир или похоронит меня

Как я «дослужился» до Директора по Инновациям, чтобы уволиться и за 3 месяца собрать стартап 20 лет в айтишке. От фрилансера до джуна, от джуна до директора по инновациям (да еще и в компании, которая...

Хабр

Вайбкодинг для 1С: как получить production-ready код с ИИ

Когда разработчики 1С слышат о вайбкодинге, у многих возникает скептицизм. И не без оснований если просто скидывать задачу в Cursor и ждать чуда, результат действительно будет плачевным. ИИ генерирует что-то среднее, нарушает архитектуру, ломает существующий код. Но это не проблема ИИ. Это проблема подхода.

https://habr.com/ru/articles/992176/

#1С #искусственный_интеллект #вайбкодинг #Разработка #SpecDriven_Development #Генерация_кода_LLM #Cursor #Качество_кода #Программирование

Вайбкодинг для 1С: как получить production-ready код с ИИ

Развенчиваем миф о «случайном коде» Когда разработчики 1С слышат о вайбкодинге, у многих возникает скептицизм. И не без оснований если просто скидывать задачу в Cursor и ждать чуда, результат...

Хабр

Spec-Driven Development: контроль AI-кодогенерации

4000 строк в одном MR. Три часа на ревью, 12 замечаний, исправления - ещё 800 строк. На четвёртом заходе я закрыл вкладку и понял: проблема не в коде, а в том, что никто не знал, что именно нужно было написать. Если ты работаешь с большими кодовыми базами, ситуация знакомая. Большие MR - симптом. Когда непонятно, что именно нужно сделать, разработчик пишет больше кода, чем требуется. Добавляет на всякий случай. Покрывает сценарии, которые никто не просил. MR растёт не потому что задача большая, а потому что границы размыты. Другая причина - иллюзия, что проще сделать всё в одной задаче, чем декомпозировать. Кажется, что разбиение создаёт лишнюю работу. На практике монолитный MR на 4000 строк никто не может нормально проверить, и баги просачиваются в продакшн.

https://habr.com/ru/articles/985498/

#ai_agent #архитектура #adr #specdriven_development #specification

Spec-Driven Development: контроль AI-кодогенерации

Проблема Большие MR 4000 строк в одном MR. Три часа на ревью, 12 замечаний, исправления - ещё 800 строк. На четвёртом заходе я закрыл вкладку и понял: проблема не в коде, а в том, что никто не знал,...

Хабр