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

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. Последствия

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

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

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

  • Дополнительная дисциплина на входе для изменений, затрагивающих основание проекта.
  • Часть экспериментов идёт медленнее до явного прояснения границ.