Workflow разработки с Claude Code
Обзор
flowchart TD BIZ["Коллега (бизнес)"] -->|"описывает фичу"| BR["07-Tasks/Business Requirements/"] BR --> SPEC["08-Specs/{Продукт}/"] SPEC --> BACKEND["03-Services/ — бэкенд-контракты"] SPEC --> FRONTEND["09-Frontend Specs/ — экраны + user flow"] BACKEND --> DECOMP["07-Tasks/Decomposition/"] FRONTEND --> DECOMP DECOMP --> VERIFY["/verify — проверка консистентности"] VERIFY --> IMPL["Реализация в репозиториях"] style BIZ fill:#1a1a2e,stroke:#e94560,color:#fff style BR fill:#16213e,stroke:#e94560,color:#fff style SPEC fill:#0f3460,stroke:#e94560,color:#fff style BACKEND fill:#1a1a2e,stroke:#533483,color:#fff style FRONTEND fill:#1a1a2e,stroke:#533483,color:#fff style DECOMP fill:#16213e,stroke:#e94560,color:#fff style IMPL fill:#2d6a4f,stroke:#40916c,color:#fff style VERIFY fill:#b5179e,stroke:#f72585,color:#fff
Участники
| Кто | Роль | Где работает |
|---|---|---|
| Коллега | Бизнес-требования | 07-Tasks/Business Requirements/ |
| Алексей + Claude | Системный анализ + разработка | 08-Specs/, 03-Services/, 09-Frontend Specs/, 07-Tasks/Decomposition/, репозитории |
Цикл разработки
Шаг 1: Входящее требование (коллега)
Коллега кладёт файл в 07-Tasks/Business Requirements/ с описанием фичи своими словами. Формат свободный.
Шаг 2: Бизнес-спека (Алексей + Claude)
Читаем требование → создаём бизнес-спеку в 08-Specs/{Продукт}/.
Продукты (верхний уровень 08-Specs):
Админка Франшизы/— бэк-офис владельца брендаАдминка Франчайзи/— бэк-офис партнёраPOS/— POS-терминал
Что входит:
- Сущности и их поля (таблицы с типами, обязательностью)
- Бизнес-правила (валидации, ограничения, side-эффекты)
- Ролевая матрица (кто что может делать)
- Связи с другими модулями
Что НЕ входит:
- REST-эндпоинты, JSON-структуры
- ER-диаграммы, SQL-таблицы
- Kafka-события и payload
- Описания экранов и UI
Шаг 3: Технические контракты + фронтенд-спеки (параллельно)
Из бизнес-спеки создаются одновременно:
3a. Бэкенд-контракты в 03-Services/{ServiceName}/:
API.md— REST-эндпоинты с полной спецификациейData Model.md— ER-диаграмма (Mermaid), таблицы БДEvents.md— Kafka-события с payloadOverview.md— зависимости, конфигурация
3b. Фронтенд-спеки в 09-Frontend Specs/{Продукт}/:
- По файлу на экран или flow
- Что видит пользователь, какие данные, действия, переходы, состояния
Шаг 4: Декомпозиция задач (Алексей + Claude)
Создаём папку в 07-Tasks/Decomposition/{номер BR}/:
07-Tasks/Decomposition/1.1 Юридические лица/
Overview.md ← статус, прогресс, ссылки на BR и спеки
User Service.md ← что делать в бэкенде
Store Service.md ← что делать (если затронут)
Admin Franchise.md ← что делать во фронте
Каждый файл — конкретные задачи для реализации со ссылками на контракты.
Шаг 5: Проверка консистентности (перед реализацией)
Запускаем /verify — скилл проверяет всю цепочку до начала написания кода:
- BR существует и взят в работу
- Бизнес-спека покрывает все пункты BR
- Бэкенд-контракты существуют для затронутых сервисов
- Фронтенд-спеки существуют для затронутых продуктов
- Декомпозиция создана и задачи размечены
- Нет противоречий между слоями (поля, роли, эндпоинты)
Реализация не начинается пока /verify не пройдёт без замечаний.
Шаг 6: Реализация (в репозиториях)
Разработчик переходит в репозиторий сервиса/фронта:
cd ../erp-user-service && claudeClaude в репозитории:
- Читает свой файл из
07-Tasks/Decomposition/ - Читает контракты из
03-Services/или09-Frontend Specs/ - Реализует
- Коммитит
Блокеры (02-ADR)
Если на любом шаге цикла обнаруживается блокер (зависимость, которая не решена, открытый вопрос от бизнеса), создаётся папка в 02-ADR/:
02-ADR/ADR-NNN Название блокера/
Проблема.md ← контекст: что блокирует, почему, что ждём
Решение.md ← что решили (заполняется когда блокер снят)
Обычные архитектурные решения (не блокеры) остаются одним файлом: 02-ADR/ADR-NNN Название.md.
Блокер vs решение
- Блокер = BR не может двигаться дальше (нет данных, нет ответа от бизнеса, циклическая зависимость) → папка
- Решение = выбрали технологию/подход (Resend, локальный JWT) → файл
Баги (07-Tasks/Bugs)
Если найден баг:
- Создать папку
07-Tasks/Bugs/BUG-NNN Название/(через/add-bug) Баг.md— описание, шаги воспроизведения, affected BRДекомпозиция.md— задачи по сервисам + правки спек если нужно- Исправить код
- Если баг выявил ошибку в спеке — обновить спеку с пометкой
*(Исправлено в BUG-NNN)* - Отметить status:
fixed
Разделение ответственности
07-Tasks/BR/ 08-Specs/ 03-Services/ 09-Frontend Specs/
(бизнес, raw) (бизнес, structured) (бэкенд, техника) (фронт, экраны)
──────────── ────────────────── ───────────────── ──────────────────
"нужно ЮЛ" → Поля, правила, → POST /api/v1/... Список ЮЛ: колонки,
роли, flow { JSON } фильтры, действия
erDiagram Карточка ЮЛ: поля
Kafka events Импорт: шаги
Правила для Claude в репозитории сервиса
Инструкции для
.claude/CLAUDE.mdкаждого сервиса
- Перед работой — читай свой файл из
07-Tasks/Decomposition/и контракты из03-Services/ - Изоляция — работай только в своём репозитории
- Два коммита — один в репозитории (код), один в
obsidian_erp(контракты если менялись) - Документация — если менялся API, модель, события — обнови
03-Services/
Формат коммитов
В репозитории сервиса
feat(user): add CRUD for legal entities
BR-1.1: legal entity management with soft delete and role-based access
Co-Authored-By: Claude <noreply@anthropic.com>
В obsidian_erp
docs: update contracts after BR-1.1 implementation
Co-Authored-By: Claude <noreply@anthropic.com>