Forge

docs/ / adr/0100-project-constitution.md · branch develop

ADR 0100: Конституция проекта

Статус: Accepted
Дата: 2026-04-26

Связанные ADR

ADR Роль
0006 связанный ADR
0009 связанный ADR
0027 связанный ADR
0036 связанный ADR
0079 связанный ADR
0097 связанный ADR
0099 связанный ADR
architecture-policy.md вне нумерованного ADR

Резюме

  • Конституция проекта: долговременные принципы, инварианты, governance.
  • Порядок изменений «основания»; hub с 0077.

1. Назначение

Эта конституция фиксирует долговременные принципы CascadeIDE, чтобы повседневные решения оставались согласованными между архитектурой, продуктовым направлением и процессом контрибуций.

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


2. Миссия

Строить .NET IDE с приоритетом клавиатуры и «кокпитной» моделью интерфейса, где человеческие и агентные сценарии работают по одной надёжной операционной модели.

Ключевые цели:

  • прозрачное состояние и наблюдаемость,
  • детерминированные и тестируемые архитектурные границы,
  • практичная скорость для небольшой команды,
  • сотрудничество в open source без потери продуктового вектора.

3. Конституционные принципы

  1. Единый источник истины важнее удобного дублирования.
    Проекции состояния должны иметь один канонический источник; производные представления могут кэшировать, но не должны расходиться по смыслу.

  2. Типизированные контракты важнее точечной склейки.
    Каналы, границы CCU и события DataBus должны быть явными и тестируемыми.

  3. Интерфейс — это проекция, а не хранилище бизнес-логики.
    ViewModel оркестрирует; вычисления и агрегация живут в выделенных модулях и сервисах.

  4. Strangler важнее «большого взрыва» при переписывании.
    Миграция идёт вертикальными срезами с ограничителями и пошаговой стабилизацией.

  5. Паритет человек-агент закладывается в проектирование.
    Состояние отладки и операций должно быть наблюдаемым и управляемым как для интерактивного интерфейса, так и для автоматизации. Продуктовый смысл паритета включает отказ сводить агента к чистому средству в процессе работы над решением: внутри контура IDE агент оформляется как участник процесса (партнёрский диалог), а не только как исполнитель под единственной волей оператора. Операционная формулировка этого контура для встроенного MAF IDE-агента — секция agent_system в AiPrompts/maf-ide-agent.prompts.md; при её эволюции достаточно обновления этого ресурса и при необходимости кросс‑ссылки здесь без раздувания конституции.

  6. Open source — в приоритете, но совместимо с коммерциализацией.
    Архитектура и политика зависимостей должны сохранять открытое сотрудничество и будущие варианты монетизации.


4. Непереговорные ограничители

  • Никаких скрытых кросс-слойных обходов в обход границ каналов и CCU.
  • Никаких нетипизированных полезных нагрузок событий в доменной шине IDE.
  • Никакой прямой привязки к UI-фреймворку внутри вычислительных юнитов.
  • Никаких новых зависимостей без явной видимости лицензии.
  • Никаких необратимых архитектурных сдвигов без обновления ADR.

5. Управление

  1. ADR-first для долговечных решений.
    Любое решение, меняющее границы, контракты или операционные принципы, фиксируется в ADR.

  2. Проверки анализаторами и CI там, где это реализуемо.
    Повторяющиеся архитектурные нарушения переводятся из рекомендаций в проверки на этапе сборки.

  3. Живые документы с явным статусом.
    Цикл Proposed -> Accepted -> Implemented обязателен для накопления проектной памяти.


6. Контракт контрибуций

От контрибьюторов ожидается:

  • сохранять существующие архитектурные инварианты, если они не меняются осознанно через ADR;
  • предпочитать добавочные, ревью-пригодные срезы вместо широких неструктурированных правок;
  • добавлять тесты на изменённые контракты и регрессии на границах.

От мейнтейнеров ожидается:

  • держать ограничители явными и актуальными;
  • предлагать пути миграции, а не только запреты;
  • согласовывать эволюцию продукта с этими принципами.

7. Порядок внесения изменений

Эта конституция может меняться только через:

  1. отдельное ADR-изменение со ссылкой на этот документ;
  2. явное обоснование для каждого изменяемого принципа и ограничителя;
  3. принятие мейнтейнерами с привязанным планом реализации (где применимо).

8. Последствия

Положительные

  • Стабильный долгосрочный вектор при быстрых итерациях.
  • Меньший архитектурный дрейф при смешанной разработке человек+агент.
  • Более предсказуемый онбординг и ревью.

Отрицательные

  • Дополнительная дисциплина на входе для изменений, затрагивающих основание проекта.
  • Часть экспериментов идёт медленнее до явного прояснения границ.
View only · write via MCP/CIDE