| 1 | # ADR map: как читать архитектуру CascadeIDE (v1) |
| 2 | |
| 3 | Этот документ отвечает на вопрос: **“какие ADR читать, чтобы понять систему”** — по темам и по роли. |
| 4 | Он не заменяет индекс ADR: [`docs/adr/README.md`](../adr/README.md). |
| 5 | Текущее состояние архитектуры “как есть” — [`current-architecture-v1.md`](current-architecture-v1.md). |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## 1. С чего начать (быстрый маршрут) |
| 10 | |
| 11 | - **Слои и границы**: [`0006`](../adr/0006-presentation-layers-and-feature-slices.md) |
| 12 | - **Поток данных и “кабина” (CDS)**: [`0036`](../adr/0036-cds-channel-compositor-surface-pipeline.md) |
| 13 | - **Overlay-домен IDE (IDS), отдельно от CDS**: [`0079`](../adr/0079-ide-display-system-ids-overlay-pipeline.md) |
| 14 | - **MCP контракты и тестируемая инфраструктура**: [`0008`](../adr/0008-mcp-contracts-and-testable-infrastructure.md) |
| 15 | - **Навигация по коду / MCP навигации**: [`0039`](../adr/0039-workspace-navigation-affordances.md) |
| 16 | |
| 17 | Если ты читаешь это ради “как сейчас устроен UI Flight”, начни не с ADR, а с layout doc: |
| 18 | - [`docs/ui-ux/cascade-ide-ui-layout-v1.md`](../ui-ux/cascade-ide-ui-layout-v1.md) |
| 19 | |
| 20 | --- |
| 21 | |
| 22 | ## 2. UI и модель внимания (PFD / Forward / MFD) |
| 23 | |
| 24 | - **Модель внимания и терминология PFD/MFD**: [`0021`](../adr/0021-pfd-mfd-cockpit-attention-model.md) *(Proposed, но задаёт язык)* |
| 25 | - **Инварианты раскладки и authority `presentation`**: [`0046`](../adr/0046-presentation-layout-authority-and-cockpit-invariants.md) *(Accepted · Implemented)* |
| 26 | - **Мультиоконность и поверхности**: [`0017`](../adr/0017-multi-window-workspace-and-agent-surfaces.md) *(Accepted · Implemented)* |
| 27 | - **Пульт оператора с другого устройства** (не mobile IDE): [`0117`](../adr/0117-remote-operator-surface-multidevice.md) *(Proposed)* |
| 28 | - **Agent Notes Core 2.0** (TOML, `knowledge_path`, паритет с MCP): [`0118`](../adr/0118-agent-notes-core-2-toml-and-knowledge-path.md) *(Accepted)* |
| 29 | |
| 30 | --- |
| 31 | |
| 32 | ## 3. MVVM, срезы фич и “что где живёт” |
| 33 | |
| 34 | - **Срезы и слои**: [`0006`](../adr/0006-presentation-layers-and-feature-slices.md) |
| 35 | - **Strangler-миграция и исключения**: [`0009`](../adr/0009-strangler-migration-and-exceptions.md) |
| 36 | |
| 37 | --- |
| 38 | |
| 39 | ## 4. Transport / backpressure / доставка в UI |
| 40 | |
| 41 | - **Сигналы, связность, backpressure**: [`0007`](../adr/0007-signals-coupling-and-ui-backpressure.md) |
| 42 | - **Маршалинг на UI**: [`0004`](../adr/0004-ui-thread-marshaling.md) |
| 43 | - **Шина доставки (AFDX-аналоги)**: [`0094`](../adr/0094-ingestion-bus-afdx-analogy-and-threading-channels.md) |
| 44 | |
| 45 | --- |
| 46 | |
| 47 | ## 5. DAL / CCU / DataBus (pipeline “сырьё → DTO → UI”) |
| 48 | |
| 49 | - **DAL boundary**: [`0102`](../adr/0102-data-acquisition-layer-boundary-and-contract.md) |
| 50 | - **CCU как слой свёртки**: [`0097`](../adr/0097-cockpit-compute-units-transport-to-channel-dto.md) |
| 51 | - **CDS (канал → композитор → поверхность)**: [`0036`](../adr/0036-cds-channel-compositor-surface-pipeline.md) |
| 52 | - **Graph-backed приборы — общий слой внутри CDS**: [`0115`](../adr/0115-cds-graph-backed-shared-layer.md) *(Accepted)* |
| 53 | - **IDE DataBus**: [`0099`](../adr/0099-ide-databus-typed-events-and-projections.md) |
| 54 | - **Health stratification**: [`0095`](../adr/0095-workspace-solution-ide-health-stratification.md) *(если интересует “что такое IDE/Solution/Workspace health”)* |
| 55 | |
| 56 | --- |
| 57 | |
| 58 | ## 6. MCP, агент и тестируемость контрактов |
| 59 | |
| 60 | - **MCP contracts + testable infrastructure**: [`0008`](../adr/0008-mcp-contracts-and-testable-infrastructure.md) |
| 61 | - **Agent contract CLI + snapshot tests**: [`0052`](../adr/0052-agent-contract-cli-and-snapshot-tests.md) |
| 62 | - **Visibility of reasoning / provider limits**: [`0020`](../adr/0020-agent-reasoning-visibility-and-provider-limits.md) |
| 63 | - **Intercom (канал, не «чат-бот»)**: [`0080`](../adr/0080-intercom-naming-and-multi-party-channel-model.md) |
| 64 | - **Topic cards + spine (картотека тем)**: [`0072`](../adr/0072-chat-topic-cards-intent-melody-keyboard-contract.md), [`0096`](../adr/0096-intercom-topic-card-summary-and-product-spine.md) |
| 65 | - **Дерево сессии, steer / follow-up**: [`0116`](../adr/0116-intercom-session-tree-and-agent-message-steering.md) *(Proposed)* |
| 66 | - **Persistence чата (event log)**: [`0045`](../adr/0045-agent-chat-persistence-event-log-and-projections.md) |
| 67 | - **Пакеты уточнений и треды**: [`0031`](../adr/0031-agent-chat-clarification-batches-and-threading.md) |
| 68 | |
| 69 | --- |
| 70 | |
| 71 | ## 7. Навигация по коду и индексация |
| 72 | |
| 73 | - **Workspace navigation affordances**: [`0039`](../adr/0039-workspace-navigation-affordances.md) |
| 74 | - **Hybrid codebase index core**: [`0105`](../adr/0105-hybrid-codebase-index-for-csharp-web.md) *(Accepted · Implemented)* |
| 75 | - **Integration Hybrid index ↔ CascadeIDE**: [`0106`](../adr/0106-hybrid-codebase-index-cascadeide-integration-and-semantic-map.md) |
| 76 | - **HCI и Semantic Map (ориентация, три оси)**: [`0113`](../adr/0113-hci-semantic-map-orientation-layer.md) |
| 77 | - **Тип отношения на ребре (`relation_kind`)**: [`0114`](../adr/0114-graph-edge-relation-kind-taxonomy.md) |
| 78 | - **Типы графов (`graph_kind`) и категории инструментов**: [`0065`](../adr/0065-instrument-categories-domain-taxonomy.md) |
| 79 | - **Graph-backed surfaces (контракт семейства графов)**: [`0067`](../adr/0067-graph-backed-surfaces-contract.md) |
| 80 | - **Semantic map control flow (PFD)**: [`0053`](../adr/0053-semantic-map-control-flow-pfd.md) *(Accepted · Implemented)* |
| 81 | |
| 82 | --- |
| 83 | |
| 84 | ## 8. Команды и keyboard-first |
| 85 | |
| 86 | - **Command surface & discoverability**: [`0013`](../adr/0013-command-surface-and-discoverability.md) |
| 87 | - **Command palette direct overlay**: [`0070`](../adr/0070-command-palette-direct-overlay-surface.md) |
| 88 | - **Chord stack (Ctrl+K) / FMS-style**: [`0060`](../adr/0060-keyboard-chord-stack-fms-tactical-strategic.md) |
| 89 | |
| 90 | --- |
| 91 | |
| 92 | ## 9. Где держать “описание текущей архитектуры” |
| 93 | |
| 94 | ADR фиксируют решения и мотивацию. Для “как сейчас” держим: |
| 95 | - `docs/architecture/current-architecture-v1.md` (эталонная точка входа) |
| 96 | - `docs/ui-ux/cascade-ide-ui-layout-v1.md` (эталон layout/имена регионов) |
| 97 | - `docs/MCP-PROTOCOL.md` (эталон контракта MCP) |
| 98 | |
| 99 | Версия: **v1**. |
| 100 | |