Forge
markdowndeeb25a2
1# Architecture Decision Records (ADR) — CascadeIDE
2
3Здесь фиксируются **принятые архитектурные решения**: контекст, выбор, последствия и отклонённые альтернативы. **[architecture-policy.md](../architecture-policy.md)** — краткий навигатор и таблица ссылок сюда; пошаговая миграция и контракты MCP — в [architecture-migration.md](../architecture-migration.md), [MCP-PROTOCOL.md](../MCP-PROTOCOL.md).
4
5**Связь с политикой:** крупные смены направления — отдельным коммитом с обновлением навигатора и новой записью здесь.
6
7**Статусы и жизненный цикл** (без списка ADR): [status-lifecycle.md](status-lifecycle.md).
8
9## Индекс
10
11
12**Статус в индексе:** только `Accepted` / `Proposed` / `Superseded`. Детали (`Implemented`, «направление», strangler) — в шапке ADR и [status-lifecycle.md](status-lifecycle.md).
13
14## Тематические кластеры
15
16Краткая навигация; **полный список** — [ниже](#adr-index-full). У крупных ADR в начале файла есть блок **## Резюме**.
17
18### Отладка и IDE Health
19
20| ID | ADR |
21|----|-----|
22| 0001–0004 | [гипотезы](0001-debug-hypotheses-json-storage.md) · [паритет агент/человек](0002-debug-human-agent-parity.md) · [режим Debug](0003-debug-ui-mode-separate-from-power.md) · [UI thread](0004-ui-thread-marshaling.md) |
23| 0011 | [ситуационная осведомлённость](0011-debug-situational-awareness.md) |
24| 0089, 0090–0091, 0095 | [IDE Health naming](0089-ide-omnibus-naming-and-ide-health-channel-rename.md) · [launch profiles](0090-launch-profiles-and-debug-startup-configurations.md) · [PFD debug deck](0091-pfd-debug-situational-deck-hypothesis.md) · [стратификация Health](0095-workspace-solution-ide-health-stratification.md) |
25
26### Конфигурация и TOML
27
28| ID | ADR |
29|----|-----|
30| 0010, 0028–0029 | [UI modes](0010-ui-modes-toml-configuration.md) · [settings.toml](0028-user-settings-toml-localappdata-and-secrets.md) · [TOML-first UI](0029-configuration-toml-canonical-ui-facade.md) |
31| 0030, 0040, 0050–0051, 0083, 0086, 0149, 0151, **0169** | [команды/хоткеи](0030-command-ids-hotkeys-and-ui-registry-layers.md) · [LSP presets](0040-lsp-launch-line-settings-toml-presets-and-environment.md) · [`*_env`](0149-settings-toml-pointwise-environment-bindings.md) · [CF subgraph grain](0151-control-flow-subgraph-intent-vs-detailed-grain.md) · [инструменты в TOML](0050-declarative-instrument-zone-placement-toml.md) · [intent routing](0051-intent-based-attention-routing-toml.md) · [`[ai]`](0083-ai-mode-and-nested-settings-toml.md) · [тема UI](0086-ui-theme-toml-canonical-json-mcp-wire.md) · [**keymap packs**](0169-keymap-contributions-and-pluggable-input-schemes.md) |
32
33### Кокпит, CDS и вычислительный контур
34
35| ID | ADR |
36|----|-----|
37| 0021 | [**PFD/MFD — модель внимания**](0021-pfd-mfd-cockpit-attention-model.md) |
38| 0036, 0046–0047, 0066, **0171**, **0172** | [канал→CDS→surface](0036-cds-channel-compositor-surface-pipeline.md) · [layout authority](0046-presentation-layout-authority-and-cockpit-invariants.md) · [instrument descriptor](0047-cockpit-instrument-descriptor-and-slot-composition.md) · [cockpit vs presentation](0066-cockpit-ui-vs-ide-presentation-layer.md) · [**compact vs cockpit**](0171-presentation-tiers-compact-vs-cockpit.md) · [**conversation habitat**](0172-conversation-first-habitat.md) |
39| 0063–0065, 0068, 0097 | [instrument deck](0063-instrument-deck-named-composition-one-anchor.md) · [примитивы deck](0064-deck-primitives-visual-language-render-layer-and-palette.md) · [таксономия](0065-instrument-categories-domain-taxonomy.md) · [payload vs projection](0068-deck-row-payload-and-presentation-projection.md) · [**CCU**](0097-cockpit-compute-units-transport-to-channel-dto.md) |
40| 0094, 0099 | [ingestion bus](0094-ingestion-bus-afdx-analogy-and-threading-channels.md) · [IDE DataBus](0099-ide-databus-typed-events-and-projections.md) |
41
42### Агент, MCP и индексация
43
44| ID | ADR |
45|----|-----|
46| 0008, 0016, 0038 | [контракты MCP](0008-mcp-contracts-and-testable-infrastructure.md) · [ACP](0016-agent-client-protocol-external-agent.md) · [фасад агента](0038-agent-facade-ai-provider-and-tool-orchestration.md) |
47| 0031, 0045, 0048, 0082, 0087, 0165, 0166, **0175**, **0176** | [чат](0031-agent-chat-clarification-batches-and-threading.md) · [persistence](0045-agent-chat-persistence-event-log-and-projections.md) · [Cursor parity](0048-cursor-acp-chat-ide-parity-and-mcp-tool-surface.md) · [loopback MCP](0082-acp-ide-mcp-loopback-single-process.md) · [MAF](0087-microsoft-agent-framework-builtin-agent-orchestration.md) · [**MCP transport stratification**](0165-mcp-transport-stratification-stdio-http-and-host-matrix.md) · [**agent-centric harness**](0166-agent-centric-harness-model-comfort-and-pay-per-token-economics.md) · [**ADCM Partition continuity**](0175-adcm-partition-continuity-pair-and-message-anchors.md) · [**FS relocate / affordances**](0176-agent-fs-relocate-and-harness-affordances.md) |
48| 0105–0106, 0118, 0148 | [hybrid index](0105-hybrid-codebase-index-for-csharp-web.md) · [интеграция в CIDE](0106-hybrid-codebase-index-cascadeide-integration-and-semantic-map.md) · [agent-notes 2.0](0118-agent-notes-core-2-toml-and-knowledge-path.md) · [AEE / verify ladder](0148-agent-execution-environment-verification-ladder-and-native-tooling.md) |
49
50### Граф, semantic map и навигация
51
52| ID | ADR |
53|----|-----|
54| 0039, 0053, 0151, 0062, **0167**, **0168**, **0171** | [workspace navigation](0039-workspace-navigation-affordances.md) · [control flow PFD](0053-semantic-map-control-flow-pfd.md) · [CF subgraph grain](0151-control-flow-subgraph-intent-vs-detailed-grain.md) · [GitMap](0062-git-submodules-semantic-map-subgraph.md) · [**Solution Explorer MLP**](0167-solution-explorer-ux-go-to-file-and-compact-tree.md) · [**2-screen layout**](0168-presentation-two-screen-pf-m-layout-policy.md) · [**presentation tiers**](0171-presentation-tiers-compact-vs-cockpit.md) |
55| 0067, 0113–0115 | [graph-backed contract](0067-graph-backed-surfaces-contract.md) · [HCI orientation](0113-hci-semantic-map-orientation-layer.md) · [`relation_kind`](0114-graph-edge-relation-kind-taxonomy.md) · [CDS graph layer](0115-cds-graph-backed-shared-layer.md) |
56
57### Превью и документация (Markdown)
58
59| ID | ADR |
60|----|-----|
61| 0023, 0026→0069 | [язык/diagrams](0023-markdown-diagrams-language-tooling.md) · [**0026 Superseded →**](0026-markdown-preview-surfaces-and-placement.md) [**0069**](0069-markdown-preview-tool-surface-and-renderer-decoupling.md) |
62
63### Intercom: attach, fenced body, reveal/select в редакторе
64
65| ID | ADR |
66|----|-----|
67| 0128 | [якоря attach / `[M:…]` / re-resolve](0128-intercom-attachment-anchors-and-code-references.md) — **Implemented** (v1: slash `/attach`, bracket autocomplete; chips UI — v2+) |
68| 0129 | [fenced code и MD в теле](0129-intercom-message-body-markdown-and-fenced-code.md) — **In progress** (v1 `SplitSegments`) |
69| 0130 | [reveal без selection (MCP)](0130-editor-agent-range-reveal-without-selection.md) — **Implemented** |
70| 0131 | [`/editor select|reveal code […]`](0131-editor-slash-select-code-by-bracket-reference.md) — **In progress** |
71| 0132 | [federated transport](0132-intercom-federated-transport-and-multi-client-boundary.md) — **Proposed** (Web/MCC/паритет; transport → [0144](0144-intercom-team-transport-cide-sync-and-reference-service.md)) |
72| 0144 | [team transport + CIDE sync](0144-intercom-team-transport-cide-sync-and-reference-service.md) — **Accepted** (reference service, SSE, human v1) |
73| 0145 | [Intercom Web PWA](0145-intercom-web-pwa-team-client.md) — **Accepted** (отдельный org-репо) |
74| 0146 | [intercom-wire package](0146-intercom-wire-canonical-protocol-package.md) — **Accepted** (канон схем отдельно от server) |
75| 0134 | [prepare-pipeline](0134-intercom-message-prepare-pipeline-v1.md) — **In progress** (MCP fast path @ send) |
76| 0135 | [symbol cache + HCI sidecar](0135-intercom-attach-symbol-cache-and-hci-sidecar.md) — **In progress** (L1 parse cache, L2 SQLite @ HCI reindex) |
77| 0136 | [gutter + `/intercom` namespace](0136-intercom-feed-gutter-and-slash-namespace.md) — **In progress** (select ПКМ/slash, без старых `/topic`) |
78| 0150, 0153–0161 | [slash резолв](0150-slash-line-canonical-resolution.md) · [catalog-only](0153-slash-catalog-only-resolution.md) · [domain/object/intent](0154-slash-catalog-domain-object-intent.md) · [**док ↔ код / drift**](0155-documentation-code-correspondence-and-architectural-drift.md) · [CRS / reverse anchors](0156-correspondence-mfd-surface-and-reverse-code-anchors.md) · [`cide://`](0157-cide-magic-link-protocol.md) · [**Forge Lens CRS**](0158-forge-lens-crs-overlay.md) · [bracket FRG](0159-bracket-forge-artifact-reference.md) · [**forge slash overlay**](0160-forge-slash-catalog-runtime-overlay.md) · [**spine + Forge vertical**](0161-cide-spine-and-forge-vertical-feature-module.md) |
79| 0138 | [Cockpit Command Line](0138-cockpit-command-line-and-parametric-ranges.md) — **Accepted** (парсер + slash multi-select; CCL UI — фаза A) |
80| 0141 | [прогрев при open solution](0141-solution-scoped-warmup-orchestration.md) — **Implemented** (v1 оркестратор; AEE L0 warmup — [0148](0148-agent-execution-environment-verification-ladder-and-native-tooling.md)) |
81| 0148 | [Agent Execution Environment](0148-agent-execution-environment-verification-ladder-and-native-tooling.md) — **In progress** (W1–W2 в коде; supervised build worker; MLP на target hardware) |
82
83<a id="adr-index-full"></a>
84
85## Полный индекс
86
87| ID | Название | Статус |
88|----|----------|--------|
89| [0001](0001-debug-hypotheses-json-storage.md) | Хранение гипотез отладки в одном JSON-файле | Accepted |
90| [0002](0002-debug-human-agent-parity.md) | Единый слой состояния отладки для человека и агента | Accepted |
91| [0003](0003-debug-ui-mode-separate-from-power.md) | Отдельный UI-режим Debug (не кокпит Power) | Accepted |
92| [0004](0004-ui-thread-marshaling.md) | Маршалинг обновлений UI через `IUiScheduler` | Accepted |
93| [0005](0005-defer-dynamic-plugins-mef.md) | Отложить динамические плагины (MEF и аналоги) | Accepted |
94| [0006](0006-presentation-layers-and-feature-slices.md) | Слои, срезы фич, роль `MainWindowViewModel` | Accepted |
95| [0007](0007-signals-coupling-and-ui-backpressure.md) | Сигналы, связность, нагрузка на UI | Accepted |
96| [0008](0008-mcp-contracts-and-testable-infrastructure.md) | Контракты MCP и тестируемая инфраструктура | Accepted |
97| [0009](0009-strangler-migration-and-exceptions.md) | Strangler-миграция и исключения для spike | Accepted |
98| [0010](0010-ui-modes-toml-configuration.md) | Данные UI-режимов в TOML | Accepted |
99| [0011](0011-debug-situational-awareness.md) | Ситуационная осведомлённость в отладке (полоска, hover; детали в панели) | Accepted |
100| [0012](0012-floating-workspace-chrome.md) | Плавающий и отцепляемый хром workspace (телеметрия, полоски; не доки в v1) | Accepted |
101| [0013](0013-command-surface-and-discoverability.md) | Поверхность команд и discoverability (палитра, минимальный toolbar) | Accepted |
102| [0014](0014-situational-checklists.md) | Ситуационные чеклисты (модель, триггеры, UI; родитель — 0013) | Accepted |
103| [0015](0015-editor-toml-syntax-highlighting.md) | Подсветка TOML в редакторе (шипнутый TextMate-пакет taplo; не LSP в v1) | Accepted |
104| [0016](0016-agent-client-protocol-external-agent.md) | Внешний агент по ACP (stdio, Cursor CLI); вендор SDK; UTF-8; ортогонально MCP | Accepted |
105| [0017](0017-multi-window-workspace-and-agent-surfaces.md) | Несколько окон приложения, зоны экрана, поверхности агента; MCP multi-root в scope | Accepted |
106| [0018](0018-ide-commands-canonical-xml-documentation.md) | Каноничные XML-доки для `IdeCommands` и ProtocolDocGen (вместо мини-языка только в summary) | Accepted |
107| [0019](0019-shared-git-core-ide-and-git-mcp.md) | Общий Git Core для Cascade IDE и git-mcp (паритет логики, прецедент agent-notes-core) | Accepted |
108| [0020](0020-agent-reasoning-visibility-and-provider-limits.md) | Видимость рассуждения агента: слои (ответ, трасс, опциональный лог), честные ограничения провайдеров LLM | Proposed |
109| [0021](0021-pfd-mfd-cockpit-attention-model.md) | PFD / MFD — модель внимания кокпита Cascade IDE | Accepted |
110| [0022](0022-mfd-visual-design-surface-axaml-blazor.md) | Визуальная поверхность разработки UI (AXAML / Blazor), ориентир WinForms, размещение на MFD | Proposed |
111| [0023](0023-markdown-diagrams-language-tooling.md) | Markdown + диаграммы (Mermaid/PlantUML) — first-class опыт через LSP и workflow | Proposed |
112| [0024](0024-ide-sdk-and-stable-contracts.md) | SDK для CascadeIDE — стабильные контракты для внутреннего расширения и будущих плагинов | Proposed |
113| [0025](0025-sdk-attention-zones-and-capabilities.md) | SDK: привязка capabilities к зонам внимания (PFD/MFD/Forward/EICAS/HUD) | Proposed |
114| [0026](0026-markdown-preview-surfaces-and-placement.md) | Превью Markdown: поверхности и размещение (`workspace.toml`); внутренние отсылки (peek по «п. N»/якорям); не смешивать с языковым ADR 0023 | Superseded |
115| [0027](0027-small-team-focus-vs-public-maturity.md) | Узкая команда (человек + ассистент) vs зрелость «для открытия»: две оси (границы vs очередь) | Accepted |
116| [0028](0028-user-settings-toml-localappdata-and-secrets.md) | Пользовательские настройки: `settings.toml`, `%LocalAppData%\CascadeIDE\`, секреты в `ai-keys.toml` | Accepted |
117| [0029](0029-configuration-toml-canonical-ui-facade.md) | Конфигурация: TOML-first; целостный UI настроек deferred; точечный UI — фасад канона | Accepted |
118| [0030](0030-command-ids-hotkeys-and-ui-registry-layers.md) | Слои `command_id`, хоткеев и UI: IdeCommands, палитра, TOML, мост VM; чертёж единого каталога | Accepted |
119| [0031](0031-agent-chat-clarification-batches-and-threading.md) | Чат агента: пакеты уточнений, ответы сложнее да/нет, треды; не смешивать с PFD-подтверждениями | Proposed |
120| [0032](0032-hud-banner-configuration-and-grammar.md) | HUD над редактором: настраиваемое содержимое, грамматика как у `presentation`; EBNF в ADR, парсер — по сложности DSL | Proposed |
121| [0033](0033-internationalization-resx-avalonia.md) | i18n: ResX / культура .NET, Avalonia; строки UI не в TOML как основной слой; плюрализация — ключи или библиотека | Proposed |
122| [0034](0034-pilot-incapacitation-emergency-mode-and-presence-sensing.md) | Incapacitation, Emergency Mode; EICAS + сигналы КВС; liveness, контекстный HUD, safety interlock; webcam/analysis MCP opt-in | Proposed |
123| [0035](0035-mfd-embedded-webview-external-llm-and-mcp-boundary.md) | Встроенный браузер в MFD (WebView2), внешние веб-LLM; граница доверия с MCP; гибрид через оператора; мост веб↔MCP — вне baseline | Proposed |
124| [0036](0036-cds-channel-compositor-surface-pipeline.md) | Канал → CDS → композитор поверхности → поверхность; CDS как маршрутизация в модели внимания (Agent-first) | Accepted |
125| [0037](0037-pfd-surface-invariants-and-roslyn-enforcement.md) | PFD: инварианты поверхности; Roslyn; канон `[PfdStrict]` / `PfdStrictControl` | Proposed |
126| [0038](0038-agent-facade-ai-provider-and-tool-orchestration.md) | Фасад агента: `AiProviderManager`, чат vs ACP vs автономный JSON-цикл; внешние MCP; идеи оркестрации и tool-calling | Accepted |
127| [0039](0039-workspace-navigation-affordances.md) | Навигация по workspace; C# / .NET north-star (не polyglot v1); граф/semantic map; PFD/MFD; MCP: пресеты, `kind_filter`, subgraph | Accepted |
128| [0040](0040-lsp-launch-line-settings-toml-presets-and-environment.md) | LSP C#/Markdown: командная строка в `settings.toml`, пресеты, опциональные ключи; env — открыто в ADR | Accepted |
129| [0041](0041-protobuf-for-agent-and-ide-messages.md) | Protobuf vs JSON для сообщений агента/IDE: границы, критерии, гибрид; точка входа (Proposed) | Proposed |
130| [0042](0042-pre-flight-planned-changes-and-review-before-apply.md) | Pre-flight briefing: Planned Changes (намерение + SA) и Review Before Apply (превью, семантический слой, отказ без мусора); машина состояний; ортогонально «построчному доверию» | Proposed |
131| [0043](0043-mcp-transport-recovery-human-agent-parity.md) | Паритет восстановления MCP-транспорта (человек ↔ агент), граница хоста (Cursor) vs IDE; ортогонально ADR 0002 | Proposed |
132| [0044](0044-avalonia-host-skia-agent-chat-surface.md) | Avalonia как хост (фюзеляж), кастомная отрисовка чата (Skia — гипотеза); **модель первична**, спайк следом; см. ADR 0031 | Accepted |
133| [0045](0045-agent-chat-persistence-event-log-and-projections.md) | Persistence истории чата: append-only NDJSON события + метаданные и проекции; UI/рендер не источник правды | Accepted |
134| [0046](0046-presentation-layout-authority-and-cockpit-invariants.md) | CDS: `CockpitPresentationLayoutPolicy` и инварианты P/F/M; `presentation` как источник истины для меню/MCP/режимов/реактивного слоя | Accepted |
135| [0047](0047-cockpit-instrument-descriptor-and-slot-composition.md) | Инструмент кабины (`Instrument`): дескриптор слота (`CockpitInstrumentDescriptor`), не `Control`; SE vs карта намерений как примеры | Accepted |
136| [0048](0048-cursor-acp-chat-ide-parity-and-mcp-tool-surface.md) | Чат через Cursor ACP в IDE: `mcpServers`, авто IDE MCP; приложения — пробелы тулов, разбор `mcp.json` ↔ CIDE | Accepted |
137| [0049](0049-skia-surface-rollout-over-avalonia-host.md) | Поэтапный rollout Skia-поверхностей по CIDE при Avalonia-host; миграция волнами и dual-path | Accepted |
138| [0050](0050-declarative-instrument-zone-placement-toml.md) | Декларативная карта «инструмент → зона/слот» в TOML | Accepted |
139| [0051](0051-intent-based-attention-routing-toml.md) | Intent-based attention routing (TOML) | Accepted |
140| [0052](0052-agent-contract-cli-and-snapshot-tests.md) | CLI для контракта агента (паритет с MCP) и снапшот-тесты | Accepted |
141| [0053](0053-semantic-map-control-flow-pfd.md) | Карта намерений и поток управления на PFD (control flow, KISS, subgraph) | Accepted |
142| [0054](0054-benchmarking-methodology-and-baselines.md) | Бенчмарки производительности и baseline-метрики для CIDE | Proposed |
143| [0055](0055-skia-instrument-composition-pipeline.md) | Общий pipeline композиции Skia-инструментов (Intent -> Declutter -> Layout -> Render) | Accepted |
144| [0056](0056-semantic-map-pipeline-adoption.md) | Карта намерений: внедрение общего Skia pipeline (композитор, controlFlow layout, cursor semantics) | Accepted |
145| [0057](0057-chat-surface-pipeline-adoption.md) | Chat surface: adoption общего Skia pipeline (threads, confirmations, dual-path rollout) | Accepted |
146| [0058](0058-agent-roslyn-mcp-coupling-settings-toml.md) | Сопряжение агента и Roslyn MCP в `settings.toml` (лимиты, виды узлов, таймауты, пресеты) | Proposed |
147| [0059](0059-roslyn-mcp-profiles-manager-tactical-strategic-efb.md) | Профили Roslyn MCP, Manager, тактика (PFD) / EFB на MFD, Auto-Focus / Combat / Echelon | Proposed |
148| [0060](0060-keyboard-chord-stack-fms-tactical-strategic.md) | Аккордный слой (Ctrl+K), FMS-style, S/T, overlay; расширение ADR 0013 | Accepted |
149| [0061](0061-context-aware-adr-map-pfd-knowledge-indicator.md) | Контекстная карта ADR ↔ пути в `workspace.toml`, индикатор на PFD, intent/tooltip, advisory для агента (GPWS для доков); **L1** в [0155](0155-documentation-code-correspondence-and-architectural-drift.md) | Proposed |
150| [0062](0062-git-submodules-semantic-map-subgraph.md) | **GitMap:** submodules и git-границы **отдельно** от WSNC/карты намерений; общий Skia pipeline; собственный контракт/MCP; [git-and-submodules-v1](../git-and-submodules-v1.md) | Proposed |
151| [0063](0063-instrument-deck-named-composition-one-anchor.md) | **Instrument deck** + **`ContentRepresentation`**; таксономия примитивов (в т.ч. Readout, Trend, Gauge, Presence); **Presence/Activity vs Dark Cockpit**; `DedicatedPage` — режим Page для WH, не deck | Accepted |
152| [0064](0064-deck-primitives-visual-language-render-layer-and-palette.md) | **Виды индикаторов** deck: единое графическое воплощение; **библиотека отрисовки** + **семантическая палитра**; без лишнего архитектурного слоя; `DeckPrimitiveKind` = каталог видов | Accepted |
153| [0065](0065-instrument-categories-domain-taxonomy.md) | **Категории инструментов** и **типы графов** (`graph_kind`): домен ортогонально слоту/`instrument_id`; «Карта намерений» = карта **намерений кода**; см. таблицу `graph_kind` | Accepted |
154| [0066](0066-cockpit-ui-vs-ide-presentation-layer.md) | **Cockpit UI** vs **presentation IDE** (хром, оверлеи, тема): две опоры; не смешивать приборы/deck с оболочкой; `PrimitivesKit` vs `UiChrome` | Accepted |
155| [0067](0067-graph-backed-surfaces-contract.md) | **Graph-backed surfaces:** общий контракт для семейства графовых экранов (данные, взаимодействие, навигация, layout, выделение, sync); карта намерений, GitMap, будущие графы | Accepted |
156| [0068](0068-deck-row-payload-and-presentation-projection.md) | **Полезная нагрузка строки канала** vs **проекция представления** vs **слот**: таблица/полоса ≠ тип ячейки; v1 — один DTO; гетерогенность — дискриминатор и шаблоны | Accepted |
157| [0069](0069-markdown-preview-tool-surface-and-renderer-decoupling.md) | **Markdown Preview:** MFD tool как primary surface, native Markdig renderer first, WebView как optional adaptor; authoring-расширение ортогонально preview | Accepted |
158| [0070](0070-command-palette-direct-overlay-surface.md) | **Command Palette:** прямой overlay surface в host, маршрутизация в активный `TopLevel`; `ModalOverlay` не канон для palette baseline | Accepted |
159| [0071](0071-ai-assistance-sovereignty-locality-invisibility.md) | **AI / ассистент в IDE:** суверенитет, локальность, невидимость; анти-паттерн «облачный inline по умолчанию без контроля»; нарратив — [cascadeide-philosophy-v1](../design/cascadeide-philosophy-v1.md) | Proposed |
160| [0072](0072-chat-topic-cards-intent-melody-keyboard-contract.md) | **Чат:** topic cards, drill-in/back, adaptive default; intent-based Melody/Chords v1 для навигации по темам; уточняет [0060](0060-keyboard-chord-stack-fms-tactical-strategic.md) в chat-domain | Accepted |
161| [0073](0073-pfd-instrument-deck.md) | **PFD instrument deck:** каталог вариантов состава (SA, code metrics, карта намерений, ADR indicator…); критерии «PFD vs по запросу»; живой черновик до выбора пресета | Proposed |
162| [0074](0074-settings-ui-mfd-compact-layout-overflow.md) | **Настройки:** компактнее, якорь на **MFD**; нехватка места в **P+F+M** — таблица стратегий (scroll, min width, fallback-окно, …) | Proposed |
163| [0075](0075-ui-topic-index-and-mfd-page-conventions.md) | **UI:** тематический указатель [`UI/README.md`](UI/README.md); соглашения по страницам MFD (payload vs проекция, keyboard-first); не заменяет плоский индекс | Proposed |
164| [0076](0076-ui-ux-principles-hub.md) | **UI/UX:** центр принципов — связный текст из [`snippets/ui/`](snippets/ui/README.md) (внимание/кокпит, философия продукта); не заменяет исходные ADR | Proposed |
165| [0077](0077-tech-principles-hub.md) | **TECH:** центр принципов — связный текст из [`snippets/tech/`](snippets/tech/README.md) (границы/контракты, агент/отладка/наблюдаемость); не заменяет исходные ADR | Proposed |
166| [0078](0078-git-preflight-and-noise-control-for-cide.md) | **Git preflight:** шум-контроль (EOL/BOM/whitespace), safe fixes, подсказки логических коммитов и post-push отчёт | Accepted |
167| [0079](0079-ide-display-system-ids-overlay-pipeline.md) | **IDS (Ide Display System):** пайплайн IDE-оверлеев (intent → композитор → снимок → поверхность), ортогонально CDS; единый input host и слоты — по плану; Roslyn **CASCOPE013–016** | Accepted |
168| [0080](0080-intercom-naming-and-multi-party-channel-model.md) | **Intercom:** продуктовое имя канала связи вместо узкого «чат»; агент + команда + системные реплики; **внешний** командный контур vs своя «гора»; discoverability/i18n; strangler для кода | Accepted |
169| [0081](0081-parametric-intent-melodies-editor-line-ranges.md) | **Параметрические Intent Melody:** суффикс `:startLine:endLine` для операций над текстом редактора; валидация; рефакторинги по диапазону; UX (индикатор, chord vs палитра) | Accepted |
170| [0082](0082-acp-ide-mcp-loopback-single-process.md) | **ACP + IDE MCP:** одна копия процесса — loopback HTTP/SSE вместо второго `CascadeIDE --mcp-stdio`; безопасность localhost; stdio для внешнего хоста сохранить | Proposed |
171| [0083](0083-ai-mode-and-nested-settings-toml.md) | **`[ai]` в settings.toml:** `mode` = local \| acp \| mcp_only \| cloud; вложенные секции; без обратной совместимости со старым `provider` | Accepted |
172| [0084](0084-agent-edits-editor-source-of-truth-presence-channel.md) | **Правки агента:** единственный текст в редакторе; чат — намерение/статус; слой присутствия (курсор, «пишет»); дифф в чате не основной; без обязательного CRDT | Proposed |
173| [0085](0085-editor-hud-inline-layer-and-hud-banner.md) | **Editor HUD:** inline-слой в редакторе (каретка, текст, gutter) vs **HUD banner** (полоса над текстом); IDS оверлеи отдельно; конфиг баннера — [0032](0032-hud-banner-configuration-and-grammar.md) | Proposed |
174| [0086](0086-ui-theme-toml-canonical-json-mcp-wire.md) | **Тема UI:** канон кистей в `settings.toml`; JSON для `ide_get/set_ui_theme` как транспорт; strangler `Themes/*.json` | Proposed |
175| [0087](0087-microsoft-agent-framework-builtin-agent-orchestration.md) | **Microsoft Agent Framework (MAF):** ориентир на оркестрацию встроенного агентного контура; след. шаг — PoC | Accepted |
176| [0088](0088-host-slot-region-deck-cell-taxonomy.md) | **Host slot / регион / ячейка deck** — таксономия уровней; не смешивать | Proposed |
177| [0089](0089-ide-omnibus-naming-and-ide-health-channel-rename.md) | **`get_ide_state`** вместо `get_workspace_state`; канал **IDE Health** вместо Workspace Health; ортогонально ADR 0002 | Accepted |
178| [0090](0090-launch-profiles-and-debug-startup-configurations.md) | Профили запуска / несколько стартовых конфигураций отладки (как launch profiles в VS), хранение, MCP, миграция с `startup-project.json` | Accepted |
179| [0091](0091-pfd-debug-situational-deck-hypothesis.md) | Гипотеза: PFD **instrument deck** в режиме отладки — одной страницы Mfd (DebugStack) может не хватить; PFD = краткая сводка, Mfd = детали | Proposed |
180| [0092](0092-visual-ui-designer-major-track.md) | Трек **Visual UI** (дизайнер разметки): отдельная крупная программная линия; норматив по UX — [0022](0022-mfd-visual-design-surface-axaml-blazor.md); приоритет Avalonia → Blazor → (опц.) Razor | Accepted |
181| [0093](0093-mfd-embedded-browser-for-launch-url.md) | Расширение [0090](0090-launch-profiles-and-debug-startup-configurations.md): **опциональный** встроенный просмотр URL Kestrel на MFD рядом с отладкой; внешний браузер остаётся default; WebView2 / кроссплатформа — в roadmap | Accepted |
182| [0094](0094-ingestion-bus-afdx-analogy-and-threading-channels.md) | **Шина доставки в UI** (аналогия **AFDX**): `Channel<T>`, батчинг, backpressure; ортогонально CDS-«каналу»; strangler с журнала сборки | Proposed |
183| [0095](0095-workspace-solution-ide-health-stratification.md) | Три уровня Health: **Workspace** (папки, Git) · **Solution** (сборка, тесты) · **IDE** (LSP, MCP, окружение); таксономия для каналов/CDS/MCP; strangler от текущего IDE Health | Accepted |
184| [0096](0096-intercom-topic-card-summary-and-product-spine.md) | **Intercom:** карточка темы = заголовок + **сводка** (картотека); **spine** продуктовой линии ортогональна main thread (CIDE — пример); дополняет [0072](0072-chat-topic-cards-intent-melody-keyboard-contract.md) | Accepted |
185| [0097](0097-cockpit-compute-units-transport-to-channel-dto.md) | **Вычислительные блоки кабины (CCU)**, аналог LRU *Unit*: свёртка сырья → DTO/снимок канала; ортогонально [0094](0094-ingestion-bus-afdx-analogy-and-threading-channels.md) (транспорт) и CDS; IDE Health в коде — эталон цепочки | Accepted |
186| [0098](0098-semantic-first-document-as-projection.md) | **Semantic-first:** первична семантическая карта; код/доки/git — проекции; согласование с [0084](0084-agent-edits-editor-source-of-truth-presence-channel.md) по сессии правок; strangler | Proposed |
187| [0099](0099-ide-databus-typed-events-and-projections.md) | **IDE DataBus:** типизированные события в процессе IDE; развязка источников и проекций, без подмены 0094 (transport) и 0097 (CCU) | Accepted |
188| [0100](0100-project-constitution.md) | **Конституция проекта:** долговременные принципы, архитектурные инварианты, governance и порядок изменений основания проекта | Proposed |
189| [0101](0101-licensing-and-commercialization-strategy.md) | Лицензирование и коммерциализация: матрица лицензий, правила зависимостей, guardrails для copyleft и план внедрения | Proposed |
190| [0102](0102-data-acquisition-layer-boundary-and-contract.md) | **Data Acquisition Layer (DAL):** явная граница добычи внешних данных и контракт DAL ↔ CCU ↔ UI | Proposed |
191| [0103](0103-editor-hud-substrate-semantic-projection-and-surface-adapter.md) | **Субстрат Editor HUD:** `SemanticProjectionPipeline` / `EditorHudEngine` / `IEditorSurfaceAdapter`; DAL / CCU / DataBus; отдельный hi-freq bounded-контур; baseline AvaloniaEdit; сравнение хостов в `design/`, roadmap UI в `ui-ux/` | Accepted |
192| [0105](0105-hybrid-codebase-index-for-csharp-web.md) | Hybrid codebase index: переносимое ядро + MCP для C#/Razor/AXAML (Roslyn истина для C#); гибрид FTS+vec | Accepted |
193| [0106](0106-hybrid-codebase-index-cascadeide-integration-and-semantic-map.md) | Встраивание hybrid index в CascadeIDE (DAL/CCU/DataBus/freshness) и граница Semantic Map | Proposed |
194| [0107](0107-blank-solution-creation-via-dotnet-new-sln.md) | Пустое решение: `dotnet new sln`, меню/MCP, `BlankSolutionCreator` + `IDotnetCommandRunner` | Accepted |
195| [0108](0108-web-ai-portal-host-object-tools-bridge.md) | Веб-портал для внешних веб-ИИ: WebView, Host Object → `IdeCommands`/MCP; allowlist, согласие; PoC (Atlas / Search AI) | Accepted |
196| [0109](0109-declarative-parametric-melody-catalog-toml-and-code-binders.md) | Intent Melody: целевой каталог `[[melody_root]]` (`shape` + `tail_signature`); миграция с `[aliases]`+`[[parametric]]`; args в коде; плагины — обработка у плагина | Accepted |
197| [0110](0110-roslyn-refactor-intent-melody-bridge.md) | Рефакторинги Roslyn по диапазону: мост Intent Melody / IDE ↔ Roslyn MCP; без дублей Features в ядре; `rmx`/`rix` не в бандле до моста | Proposed |
198| [0111](0111-editor-linenumber-linerange-value-objects.md) | Редактор: `LineNumber` / `LineRange` (1-based, Start ≤ End); `ParsedLineRange`; граница к JSON — `int` в args команд | Accepted |
199| [0112](0112-command-palette-query-modes-strategy.md) | Палитра (Ctrl+Q): режимы строки, стратегии и контракт бэкенда workspace-поиска (`t:`/`m:`/`x:`) с переключением в settings | Accepted |
200| [0113](0113-hci-semantic-map-orientation-layer.md) | HCI × Semantic Map: ориентация; оси **`graph_kind`** / **provenance** / **`relation_kind`**; быстрый текстовый referenced-by → Roslyn; `SemanticMapInputSnapshot` / CCU | Proposed |
201| [0114](0114-graph-edge-relation-kind-taxonomy.md) | Тип отношения на ребре (`relation_kind`): «наследует», «ссылается на», partial peer, текстовое совпадение; ортогонально `graph_kind` и provenance; связь с `hit_kind` | Proposed |
202| [0115](0115-cds-graph-backed-shared-layer.md) | CDS: общий слой реализации graph-backed **приборов** в кабине (не IDS); `IGraphDataSource` (v0); стык с [0036](0036-cds-channel-compositor-surface-pipeline.md) и [0067](0067-graph-backed-surfaces-contract.md) | Accepted |
203| [0116](0116-intercom-session-tree-and-agent-message-steering.md) | Intercom: дерево сессии (ветвление, rewind, bookmark) и **steer** / **follow-up** при работе агента; [0045](0045-agent-chat-persistence-event-log-and-projections.md), [0080](0080-intercom-naming-and-multi-party-channel-model.md), [0096](0096-intercom-topic-card-summary-and-product-spine.md) | Proposed |
204| [0117 (SkiaKit)](0117-ide-skia-kit.md) | **SkiaKit:** переиспользуемые Skia-примитивы IDE (sectioned cards, tile grid) | Accepted |
205| [0117](0117-remote-operator-surface-multidevice.md) | Remote operator surface: **PWA**-пульт с телефона/другого ПК, Operator Gateway; не mobile IDE; [0017](0017-multi-window-workspace-and-agent-surfaces.md), [0108](0108-web-ai-portal-host-object-tools-bridge.md) | Proposed |
206| [0118](0118-agent-notes-core-2-toml-and-knowledge-path.md) | Agent Notes Core **2.0**: TOML in-proc, `config_path` SSOT с MCP, `knowledge_path` в `IdeCommands` | Accepted |
207| [0119](0119-chat-slash-commands-intercom-surface.md) | Чат как command line: Intercom (`/card`) + IDE (`/build run`, `/test run`, `/debug launch`); autocomplete, `command_id` | Accepted · Implemented |
208| [0120](0120-primary-work-surface-intercom-or-editor.md) | `primary_work_surface`: Intercom или Editor в якоре Forward (аналог Agent/Editor в Cursor) | Accepted · Implemented |
209| [0121](0121-intent-oriented-programming-paradigm.md) | Парадигма IOP (Intent-Oriented Programming) — концептуальный фундамент; [манифест](../iop-manifest-v1.md) | Accepted |
210| [0123](0123-intercom-full-skia-surface-evolution.md) | Intercom → full-Skia surface (Slack/MM-like); strangler фазы 0–4; Avalonia = фюзеляж | Accepted |
211| [0124](0124-slash-parametric-editor-line-commands.md) | Фича: параметрический slash = полный паритет `melody_shape=parametric` в TOML (`wire_class`, binders, TOML, SubAction) | Accepted · Implemented |
212| [0125](0125-slash-workspace-file-commands-and-dynamic-completion.md) | Slash workspace/file: `/file open`, `/solution new`, динамические подсказки по файлам; `create_project_in_solution` (console/classlib/webapi) | Accepted · Implemented |
213| [0126](0126-intercom-inspect-slash-and-compact-chrome-status.md) | Intercom inspect: `/topic`/`/spine` list\|tree (`kind=report`); статус в compact toolbar; UX открытия файла из slash | Accepted · Implemented |
214| [0128](0128-intercom-attachment-anchors-and-code-references.md) | Intercom: якоря вложений (attach), `[M:…]` / bracket autocomplete, reveal, re-resolve; chips UI — v2+ | Accepted · Implemented |
215| [0129](0129-intercom-message-body-markdown-and-fenced-code.md) | Intercom: тело сообщения — fenced code, inline MD в ленте, полный preview через [0069](0069-markdown-preview-tool-surface-and-renderer-decoupling.md) | Accepted · In progress |
216| [0130](0130-editor-agent-range-reveal-without-selection.md) | Подсветка диапазона кода для агента без изменения selection (`reveal_editor_range`, `EditorAgentRangeReveal`) | Accepted · Implemented |
217| [0131](0131-editor-slash-select-code-by-bracket-reference.md) | `/editor select|reveal code [M:…]` — bracket → select/reveal в буфере, не attach | Accepted · In progress |
218| [0132](0132-intercom-federated-transport-and-multi-client-boundary.md) | Intercom: federated transport, multi-client (Web/MCC); transport 2+ CIDE → [0144](0144-intercom-team-transport-cide-sync-and-reference-service.md) | Proposed |
219| [0142](0142-intercom-open-wire-pluggable-transports.md) | Intercom: **открытый wire** (схема событий), **pluggable** transport, мосты Matrix/MM/webhook опциональны | Accepted |
220| [0143](0143-intercom-feed-participant-lens.md) | Intercom: **participant lens** ленты (All / Humans / Agents / System) — UI-фильтр в chrome, не transport channel | Accepted |
221| [0144](0144-intercom-team-transport-cide-sync-and-reference-service.md) | Intercom: **team transport**, reference `intercom-service`, CIDE FederatedSync, SSE; human-only sync v1 | Accepted |
222| [0145](0145-intercom-web-pwa-team-client.md) | Intercom Web: PWA team client — **отдельный org-репо** `intercom-web` | Accepted |
223| [0146](0146-intercom-wire-canonical-protocol-package.md) | Intercom Wire: канонический пакет `intercom-wire/` (схемы, extensions, HTTP profiles) | Accepted |
224| [0147](0147-intercom-team-identity-roles-and-cide-server-admin.md) | Intercom: per-team roles, agent accounts (display name), CIDE server/team admin | Accepted |
225| [0148](0148-agent-execution-environment-verification-ladder-and-native-tooling.md) | AEE: verification ladder, environment task runner, supervised build hosts, L0+warmup, sandbox (W1–W2 в коде; W3–W6 частично) | Accepted · In progress |
226| [0149](0149-settings-toml-pointwise-environment-bindings.md) | Точечные `*_env` в `settings.toml` (`SettingsEnvResolver`); LSP, intercom transport, ACP, agent_notes | Accepted · Implemented |
227| [0134](0134-intercom-message-prepare-pipeline-v1.md) | Intercom: единый prepare-pipeline (wire, Skia, MCP fail-closed) | Accepted · In progress |
228| [0135](0135-intercom-attach-symbol-cache-and-hci-sidecar.md) | Intercom attach: L1 Roslyn file cache, L2 symbol sidecar colocated с HCI | Accepted · In progress |
229| [0136](0136-intercom-feed-gutter-and-slash-namespace.md) | Intercom: gutter номеров, явный select, единый `/intercom` slash | Accepted · In progress |
230| [0137](0137-intercom-message-code-correspondence.md) | Intercom: соответствие gutter ↔ code; авто-infer + relate в event log; find; editor HUD | Accepted · In progress |
231| [0138](0138-cockpit-command-line-and-parametric-ranges.md) | Cockpit Command Line (Commander+Pilot); chord Ctrl+K `/`; multi-range `[3;5] [8;15]`; preview | Accepted · In progress |
232| [0140](0140-tci-slash-status-glyphs-and-args-counter.md) | TCI: глифы ✓/✕/P(n) в slash pill; clip/icon placement | Accepted · Proposed |
233| [0141](0141-solution-scoped-warmup-orchestration.md) | Solution warm-up: фоновый прогрев HCI/symbol sidecar/bracket/feed anchors при open | Accepted · Proposed |
234| [0150](0150-slash-line-canonical-resolution.md) | Slash: `SlashLineResolver`, `arg_tail` в каталоге; единый резолв autocomplete · Enter · execute | Accepted · Implemented |
235| [0151](0151-control-flow-subgraph-intent-vs-detailed-grain.md) | Мини-карта CF: `[code_navigation_map].control_flow_grain` intent (деф.) vs detailed; MCP следует тем же settings | Accepted · Implemented |
236| [0152](0152-editor-control-flow-virtual-spacing.md) | Virtual Spacing в редакторе: полоса слева от текста под глифы CF (не поверх кода) | Accepted · Implemented |
237| [0153](0153-slash-catalog-only-resolution.md) | Slash: только `intent-catalog` + codegen trie; удалены `SlashParse`, parser shape, legacy `[[slash_route]]` | Accepted · Implemented |
238| [0154](0154-slash-catalog-domain-object-intent.md) | Slash: `domain` · `object` · `intent`; TOML, loader, semantic autocomplete index | Accepted · Implemented |
239| [0155](0155-documentation-code-correspondence-and-architectural-drift.md) | **Сквозной каркас:** соответствие документации и кода (correspondence), архитектурный drift; слои L0–L4; связывает [0061](0061-context-aware-adr-map-pfd-knowledge-indicator.md), [0098](0098-semantic-first-document-as-projection.md), [0039](0039-workspace-navigation-affordances.md), [0042](0042-pre-flight-planned-changes-and-review-before-apply.md), [0137](0137-intercom-message-code-correspondence.md) | Proposed |
240| [0156](0156-correspondence-mfd-surface-and-reverse-code-anchors.md) | **CRS:** страница Correspondence на MFD; reverse anchors через CodeAnchor | Accepted |
241| [0157](0157-cide-magic-link-protocol.md) | Magic Link **`cide://`** из браузера/доков в IDE | Accepted |
242| [0158](0158-forge-lens-crs-overlay.md) | **Forge Lens:** issues/MR по файлу в CRS; `[workspace.forge]`; без глобального env-fallback | Accepted · Implemented |
243| [0159](0159-bracket-forge-artifact-reference.md) | Bracket `[FRG:…]` + code-bracket display для forge artifacts | Accepted |
244| [0160](0160-forge-slash-catalog-runtime-overlay.md) | **Forge slash overlay:** `capabilities.commands[]` после connect; execute API; no bundled `/forge *` | Accepted · Implemented |
245| [0161](0161-cide-spine-and-forge-vertical-feature-module.md) | **Spine + vertical `Features/Forge`:** ownership map; 0024 module; migration F2–F5 | Accepted |
246| [0162](0162-monaco-forward-editor-webview2-host.md) | **Monaco Forward host:** опциональный `IEditorSurfaceAdapter` на WebView2; Avalonia = фюзеляж; strangler dual-path; anti-hype IPC/память vs Photino/Electron | Proposed |
247| [0163](0163-monaco-native-capability-bus-full-forward-migration.md) | **Monaco-native bus:** полный перевод Forward; `ICideEditorCapabilityRouter` / CECB; Monarch+LSP; deprecation `avalonia_edit`; фазы M7–M11 | Proposed |
248| [0164](0164-monaco-editor-presentation-projection-and-dock-chrome.md) | **Monaco presentation projection:** line-first CECB push, `MonacoEditorPresentationProjector`, `DecorationLayerManager`, version guard, dock chrome `*` | Accepted · Implemented |
249| [0165](0165-mcp-transport-stratification-stdio-http-and-host-matrix.md) | **MCP transport stratification:** Tier A/B/C (stdio vs HTTP-first), матрица хостов, фазы forge/notes/CIDE loopback; не переписывать тулы | Proposed |
250| [0166](0166-agent-centric-harness-model-comfort-and-pay-per-token-economics.md) | **Agent-centric harness:** «ничего о нас без нас», L0/colleague criterion, overlay vs Cursor, CIDE in-proc KB [0118], P0–P2 | Proposed |
251| [0167](0167-solution-explorer-ux-go-to-file-and-compact-tree.md) | **Solution Explorer MLP:** VS-grade mechanics, Go to File (Ctrl+P), icon set v2, `WorkspaceFileIndex`; дополняет [0039](0039-workspace-navigation-affordances.md) | Proposed |
252| [0168](0168-presentation-two-screen-pf-m-layout-policy.md) | **2-screen `(P+F)(M)`:** PFD collapsed by default; SE/map на MFD; Ctrl+P; narrow Forward chrome | Proposed |
253| [0169](0169-keymap-contributions-and-pluggable-input-schemes.md) | **Keymap contributions:** плагинные схемы ввода (flat / VS-style chord tree / CascadeChord); `command_id` + `when`; packs P0–P3 | Proposed |
254| [0170](0170-intercom-feed-readability-mlp.md) | **Intercom feed readability MLP:** comfortable default, 14pt prose, метка «Локально», отступы ленты | Proposed · In progress |
255| [0171](0171-presentation-tiers-compact-vs-cockpit.md) | **Presentation tiers:** Compact (standard IDE) vs Cockpit (3 mon / UltraWide); не впихивать P/F/M на 1–2 экрана | Accepted · Implemented |
256| [0172](0172-conversation-first-habitat.md) | **Session graph habitat:** Intercom = рабочая память сессии; worklines + tree/timeline; moat = нелинейность; concept ladder + API boundary | Proposed |
257| [0173](0173-intercom-intent-card-session-decision-capture.md) | **Intent card:** структурированная фиксация решений в workline (outcome/trigger/considered/chosen); event log [0045]; сборка ADR; IOP + SDM | Proposed |
258| [0174](0174-sedm-software-engineering-decision-making-ux-spine.md) | **SEDM:** Perceive/Process/Perform/Evaluate; context card + scope strip; SM/CRS как Process engines; UX spine под IOP | Proposed |
259| [0175](0175-adcm-partition-continuity-pair-and-message-anchors.md) | **ADCM Partition:** TopicDecisions + Handover ops + export/message anchors; continuity между окнами | Proposed |
260| [0176](0176-agent-fs-relocate-and-harness-affordances.md) | **Agent affordances:** `fs_relocate` (+ карта A2–A10: KB place, schema cache, MCP deploy, …) | Proposed |
261
262## Сборка в один документ (HTML, TXT, PDF)
263
264Склейка нумерованных ADR и те же директивы **INCLUDE** / **INCLUDE_MANIFEST** / **INCLUDE_GLOB**, что в `resume/` (без DOCX). Запуск из этого каталога: `dotnet script build-adr.csx`. Зависимости и выходные пути — в [build/README.md](build/README.md).
265
266## Соглашения
267
268- **Связанные ADR:** не сплошной абзац в шапке — секция [## Связанные ADR](snippets/adr-related-links-convention.md) с таблицей `| ADR | Роль |` (шаблон и правила в snippets).
269- **Имя файла:** `NNNN-краткий-kebab-title.md`, четыре цифры с ведущими нулями.
270- **Язык:** канонический текст ADR — **русский** (сборки `adr-book-*.md`: `lang: ru`). Имена в коде, `command_id`, slash-пути, цитаты API — как в репозитории (обычно EN). Полный перевод — опциональный sibling `NNNN-title.en.md` или отдельный PR, когда нужен внешний читатель (GitHub / партнёры); **не** обязателен для каждого номера и не генерируется автоматически из коробки.
271- **Статусы:** в шапке ADR и в колонке «Статус» — см. [status-lifecycle.md](status-lifecycle.md). Кратко: первый тег (**Proposed** / **Accepted** / **Superseded** / **Deprecated**); для **внедрённого в код** решения — **`Accepted · Implemented`** (второй тег через **` · `**). Без подпапок по статусу — один `docs/adr/`.
272- **Тематические подпапки** (не по статусу): опционально указатель по теме — [0075](0075-ui-topic-index-and-mfd-page-conventions.md) и [`UI/README.md`](UI/README.md); **TECH** — [`TECH/README.md`](TECH/README.md) и [0077](0077-tech-principles-hub.md).
273- Новый ADR добавляет строку в таблицу выше и при необходимости строку в таблицу в [architecture-policy.md](../architecture-policy.md).
274
275<a id="adr-anchors-policy"></a>
276
277### Внутренние якоря и отсылки (чтобы «см. п. N» работали как ссылки)
278
279Канон текста — [snippets/adr-anchors-policy.md](snippets/adr-anchors-policy.md) (в сборке `build-adr.csx` можно подключать через `{{ INCLUDE: snippets/adr-anchors-policy.md }}` из `adr-book.md`).
280
View only · write via MCP/CIDE