Constitution

Change Protocol

Как вносить изменения в конституцию и код.

🔄 Change Protocol (10-step)

Версия: v1.0
Статус: Утверждён
Источник: ADR-003 (Core-first change protocol)


Обзор

Любое изменение конституции, доменной модели, архитектуры или продукта проходит строгий 10-шаговый протокол. Изменения, затрагивающие только код (баги, рефакторинг без изменения модели), могут пропускать шаги 1-4.


Шаг 1: Change Request

Что делать: Оформить запрос на изменение. Описать: что меняем, почему, какие документы и модули будут затронуты.

Кто отвечает: Инициатор (любой участник команды)

Артефакты: Заполненный CHANGE_REQUEST_TEMPLATE.md в pull request

Вход: Потребность в изменении (из opportunity, бага, запроса клиента)
Выход: Change Request документ

Пример: "Добавить поле warranty_months в Offer. EcoYar нужно указывать гарантию на станки."


Шаг 2: Classification

Что делать: Классифицировать изменение по типу и impact.

Типы изменений:

  • core_change — затрагивает доменную модель, конституцию, ADR
  • feature_add — новая функциональность в рамках существующей модели
  • bug_fix — исправление ошибки
  • refactor — рефакторинг без изменения поведения
  • docs — только документация

Impact:

  • H — затрагивает несколько BC, меняет модель данных, требует миграции
  • M — затрагивает один BC, новые сущности
  • L — только код/конфигурация

Кто отвечает: Product Architect + Tech Lead

Артефакты: Классификация в Change Request


Шаг 3: Impact Analysis

Что делать: Проанализировать влияние на:

  • Документы конституции (какие и как менять)
  • Модули/BC (какие и как)
  • Модель данных (новые поля, таблицы)
  • API (новые эндпоинты, изменения)
  • Другие системы (коннекторы)

Кто отвечает: Tech Lead

Артефакты: Impact analysis (секция в Change Request)


Шаг 4: Core Docs Update

Что делать: Обновить core-документы конституции в правильном порядке:

  1. DOMAIN_GLOSSARY.md — новые термины или изменения определений
  2. CORE_DOMAIN_MODEL.md — новые/изменённые сущности и связи
  3. BOUNDED_CONTEXTS.md — если затрагиваются границы BC
  4. SCOPE_MVP_V0_1.md — если меняется scope
  5. ARCHITECTURE_PRINCIPLES.md — если нарушается/добавляется принцип

Кто отвечает: Product Architect

Артефакты: Изменения в core docs (в PR)


Шаг 5: ADR (если нужно)

Что делать: Если изменение затрагивает архитектуру, принципы или требует альтернатив — создать ADR.

Когда ADR обязателен:

  • Изменение доменной модели (добавление/удаление сущности)
  • Изменение связей между BC
  • Новый внешний интеграция
  • Изменение стека
  • Отклонение от принципов

Кто отвечает: Product Architect

Артефакты: ADR-NNN-name.md


Шаг 6: Task Card

Что делать: Создать детальную карточку задачи с:

  • Title и description
  • Goal (какую проблему решаем)
  • Acceptance criteria (проверяемые пункты)
  • Impacted modules (папки в apps/api)
  • Impacted entities (сущности из доменной модели)
  • Docs to update (список документов)
  • Estimated effort

Кто отвечает: Product Owner или инициатор

Артефакты: Task card (по TASK_TEMPLATE.md)


Шаг 7: Implementation (Code)

Что делать: Реализовать изменение в коде, следуя:

  • Domain-core separation (логика в domain слое)
  • Tenant isolation (все запросы с organization_id)
  • Принципы из ARCHITECTURE_PRINCIPLES.md
  • Commit convention (COMMIT_CONVENTION.md)

Кто отвечает: Разработчик

Артефакты: Код в feature branch


Шаг 8: Tests

Что делать: Написать тесты:

  • Unit tests для domain logic (обязательно)
  • Integration tests для repository (рекомендуется)
  • Edge cases: пустые данные, дубликаты, некорректные tenant_id

Кто отвечает: Разработчик

Артефакты: Тесты в feature branch

Покрытие: Core domain logic — минимум 80% покрытия.


Шаг 9: Changelog & Timeline

Что делать:

  1. Обновить CHANGELOG.md с описанием изменения
  2. Добавить запись в change-timeline.jsonl
  3. Обновить DECISION_LOG.md если применимо

Кто отвечает: Разработчик (или архитектор для core изменений)

Артефакты: Обновления в changelog, timeline, decision log


Шаг 10: Review

Что делать: Провести ревью по REVIEW_CHECKLIST.md:

  1. Architectural compliance — соответствует ли решение принципам?
  2. Core-first — обновлены ли документы до кода?
  3. Traceability — можно ли проследить от Vision до кода?
  4. No magic fields — все поля описаны в доменной модели?
  5. Tenant isolation — везде ли есть фильтр по организации?
  6. Tests — достаточное покрытие?

Кто отвечает: Product Architect + Tech Lead

Артефакты: Review notes, approved/change-required


Диаграмма потока

Request → Classification → Impact → Core Docs → ADR → Task → Code → Tests → Changelog → Review
   │                                                              ↑                              │
   └──────────────────────────────────────────────────────────────┘                              │
   (если только код)                                                                             │
                                                                                                 ↓
                                                                                            Done ✓

Исключения

  • Bug fix (critical): Hotfix без протокола, но с обязательным post-factum ADR в течение 24 часов
  • Docs-only: Шаги 1, 6-8 пропускаются
  • Refactor (no model change): Шаги 1-5 пропускаются, changelog — опционально