Перейти к содержанию

Статусы ADR: жизненный цикл (для людей)

Назначение: единая договорённость, как читать и как обновлять поле «Статус» в ADR — без перечисления конкретных номеров записей (полный индекс — в README.md).

На сайте документации: сгруппированный навигатор по статусам (автогенерация из шапок ADR) — ../site/adr-nav/index.md · публично: ai-guiders.github.io/cascade-ide/site/adr-nav/.


Зачем два уровня

  • Первый тег отвечает на вопрос: решение принято или отменено в пользу другого?
  • Второй тег (опционально) отвечает на вопрос: обязательства по коду/поставке для этого ADR уже выполнены в продукте?

Так отделяется архитектурное решение от факта внедрения.


Первый тег (обязательный)

Значение Смысл
Proposed Черновик на обсуждение: ещё не принято как направление; может меняться или быть отклонено.
Accepted Решение принято: это норма для кода и ревью, пока не появится Superseded / Deprecated.
Superseded Заменено другим ADR; в тексте должна быть явная ссылка «вместо этого — …».
Deprecated Устарело; не использовать для новых изменений (историческая справка).

Уточнения в скобках допустимы: Accepted (направление), Accepted (strangler) — если важно не смешивать с «всё уже в коде».


Второй тег: Implemented

Пишется через · (пробел, средняя точка, пробел) после Accepted:

Accepted · Implemented

Когда ставить: основная поставка по ADR влита в код (и при необходимости тесты/доки контракта), поведение можно считать текущим каноном. В шапке ADR кратко уточняют что именно (одна строка), без дублирования всего diff.

Когда не ставить: решение принято, но реализация намеренно растянута / strangler / только часть scope — остаётся Accepted с пояснением в скобках (частично, по плану, MCP implemented и т.д.), пока не договоритесь о критерии «готово».

Частичная реализация без второго тега Implemented: например Accepted (частично) или в тексте отдельный подраздел «Состояние реализации».


Что обновлять при смене статуса

  1. Шапка файла ADR (**Статус:**).
  2. Строка в таблице README.md.
  3. При необходимости — соответствующая строка в architecture-policy.md (навигатор по темам).
  4. Краткая строка в разделе «Версионирование этого навигатора» в architecture-policy.md, если меняется политика или крупный индекс.

Один смысл изменения — логичный коммит (как принято в репозитории).


Связь с агентами и CI

Статусы ADR — не замена задач в трекере; они фиксируют норму. Проверки в CI и контракты MCP/CLI описываются в самих ADR или в ссылочных документах (например MCP-PROTOCOL.md).


Кратко для ассистентов (IDE / Cursor)

  • Первый тег: Proposed / Accepted / Superseded / Deprecated — см. таблицу выше.
  • Внедрение в код отмечать Accepted · Implemented (через ·); в шапке ADR — коротко что сделано.
  • Не ставить Implemented, если scope намеренно частичный — оставить Accepted с пояснением («частично», strangler, отдельный подпункт реализации).
  • При смене статуса синхронизировать: шапку ADR, строку в README.md, при необходимости architecture-policy.md.

Репозиторий игнорирует каталог .cursor/; при желании те же пункты можно продублировать в локальном правиле Cursor у себя на машине.