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. Конституционные принципы¶
-
Единый источник истины важнее удобного дублирования.
Проекции состояния должны иметь один канонический источник; производные представления могут кэшировать, но не должны расходиться по смыслу. -
Типизированные контракты важнее точечной склейки.
Каналы, границы CCU и события DataBus должны быть явными и тестируемыми. -
Интерфейс — это проекция, а не хранилище бизнес-логики.
ViewModel оркестрирует; вычисления и агрегация живут в выделенных модулях и сервисах. -
Strangler важнее «большого взрыва» при переписывании.
Миграция идёт вертикальными срезами с ограничителями и пошаговой стабилизацией. -
Паритет человек-агент закладывается в проектирование.
Состояние отладки и операций должно быть наблюдаемым и управляемым как для интерактивного интерфейса, так и для автоматизации. Продуктовый смысл паритета включает отказ сводить агента к чистому средству в процессе работы над решением: внутри контура IDE агент оформляется как участник процесса (партнёрский диалог), а не только как исполнитель под единственной волей оператора. Операционная формулировка этого контура для встроенного MAF IDE-агента — секцияagent_systemвAiPrompts/maf-ide-agent.prompts.md; при её эволюции достаточно обновления этого ресурса и при необходимости кросс‑ссылки здесь без раздувания конституции. -
Open source — в приоритете, но совместимо с коммерциализацией.
Архитектура и политика зависимостей должны сохранять открытое сотрудничество и будущие варианты монетизации.
4. Непереговорные ограничители¶
- Никаких скрытых кросс-слойных обходов в обход границ каналов и CCU.
- Никаких нетипизированных полезных нагрузок событий в доменной шине IDE.
- Никакой прямой привязки к UI-фреймворку внутри вычислительных юнитов.
- Никаких новых зависимостей без явной видимости лицензии.
- Никаких необратимых архитектурных сдвигов без обновления ADR.
5. Управление¶
-
ADR-first для долговечных решений.
Любое решение, меняющее границы, контракты или операционные принципы, фиксируется в ADR. -
Проверки анализаторами и CI там, где это реализуемо.
Повторяющиеся архитектурные нарушения переводятся из рекомендаций в проверки на этапе сборки. -
Живые документы с явным статусом.
Цикл Proposed -> Accepted -> Implemented обязателен для накопления проектной памяти.
6. Контракт контрибуций¶
От контрибьюторов ожидается: - сохранять существующие архитектурные инварианты, если они не меняются осознанно через ADR; - предпочитать добавочные, ревью-пригодные срезы вместо широких неструктурированных правок; - добавлять тесты на изменённые контракты и регрессии на границах.
От мейнтейнеров ожидается: - держать ограничители явными и актуальными; - предлагать пути миграции, а не только запреты; - согласовывать эволюцию продукта с этими принципами.
7. Порядок внесения изменений¶
Эта конституция может меняться только через: 1. отдельное ADR-изменение со ссылкой на этот документ; 2. явное обоснование для каждого изменяемого принципа и ограничителя; 3. принятие мейнтейнерами с привязанным планом реализации (где применимо).
8. Последствия¶
Положительные¶
- Стабильный долгосрочный вектор при быстрых итерациях.
- Меньший архитектурный дрейф при смешанной разработке человек+агент.
- Более предсказуемый онбординг и ревью.
Отрицательные¶
- Дополнительная дисциплина на входе для изменений, затрагивающих основание проекта.
- Часть экспериментов идёт медленнее до явного прояснения границ.