| 1 | # Cascade IDE — Design Handbook v1 |
| 2 | |
| 3 | **Статус:** v1 (живой hub, не ADR) |
| 4 | **Аудитория:** дизайнеры, UX-авторы, продукт; разработка — для согласования терминов и границ. |
| 5 | **Дата:** 2026-05-19 |
| 6 | |
| 7 | Этот документ **сводит** принципы, мотивацию и навигацию в **одно чтение для дизайнера**. **ADR читать не обязательно** — они фиксируют решения для разработки; здесь — *зачем так* и *как это выглядит в UI*. Ссылки на ADR — только если нужны детали, статус или спор с инженерами. |
| 8 | |
| 9 | !!! tip "Маршрут для дизайнера (без ADR)" |
| 10 | 0. **[IOP-манифест](../iop-manifest-v1.md)** — дисциплина; **[§ Cascade use case](../iop-manifest-v1.md#пример-экосистема-cascade)** — экосистема; **§1.1** — дизайн CIDE. KB — SHOWCASE, отдельно. |
| 11 | 1. **§2 целиком** — принципы и мотивация (главное). |
| 12 | 2. **§3** — зоны PFD / Forward / MFD; **§3.1** — 1/2/3 монитора (не путать с тремя зонами). |
| 13 | 3. [Раскладка UI](../ui-ux/cascade-ide-ui-layout-v1.md) + wireframe в `docs/ui-ux/`. |
| 14 | 4. **§8** — приоритеты работы дизайнера. |
| 15 | 5. По задаче — **§6** (тематические ссылки), не весь каталог ADR. |
| 16 | 6. **Intercom** — [intercom-design-hub-v1.md](intercom-design-hub-v1.md) (домены D1–D9, макеты). |
| 17 | 7. Макеты — **§9**. |
| 18 | |
| 19 | **English (краткий обзор продукта):** [Concept overview](../en/concept-overview.md) · [UI layout EN](../en/ui-ux/cascade-ide-ui-layout-v1.md). |
| 20 | |
| 21 | --- |
| 22 | |
| 23 | ## 1. Что такое Cascade IDE (CIDE) |
| 24 | |
| 25 | **Agent-first IDE для .NET** на Avalonia: человек и AI-агент делят **один кокпит** — те же команды, та же раскладка, тот же канал **Intercom** (не «чат сбоку»). |
| 26 | |
| 27 | | Идея | Где подробнее | |
| 28 | |------|----------------| |
| 29 | | IOP — дисциплина намерения и верификации | [IOP-манифест](../iop-manifest-v1.md), [ADR 0121](../adr/0121-intent-oriented-programming-paradigm.md) | |
| 30 | | Intercom = канал сессии | [ADR 0080](../adr/0080-intercom-naming-and-multi-party-channel-model.md) | |
| 31 | | In-proc MCP — паритет агента и IDE | [MCP-протокол](../MCP-PROTOCOL.md), [ADR 0008](../adr/0008-mcp-contracts-and-testable-infrastructure.md) | |
| 32 | | North star «workbench» | [north-star-cursor-mcp-cascade-workbench-v1.md](north-star-cursor-mcp-cascade-workbench-v1.md) | |
| 33 | |
| 34 | ### 1.1 Два порога входа (CIDE) |
| 35 | |
| 36 | IOP — **[манифест](../iop-manifest-v1.md)**; экосистема — **[use case](../iop-manifest-v1.md#пример-экосистема-cascade)**. Ниже — только **дизайн Cascade IDE**: |
| 37 | |
| 38 | | В IOP-манифесте | В CIDE (этот handbook) | |
| 39 | |-----------------|-------------------------| |
| 40 | | Папка + разговор | Workspace + Intercom/composer или Cursor в том же репо — **без** обязательного §2 и D1–D9 | |
| 41 | | Интегрированный контур | §2, [intercom-design-hub](intercom-design-hub-v1.md), ADR при споре с инженерами | |
| 42 | |
| 43 | **Для дизайна:** первый экран скептику — **одна поверхность + один честный вопрос**, не стена терминов. **Анти-паттерн:** «сначала выучи handbook» при демо коллеге. |
| 44 | |
| 45 | --- |
| 46 | |
| 47 | ## 2. Принципы и мотивация (читать здесь, не в ADR) |
| 48 | |
| 49 | Ниже — **самодостаточный** слой для дизайна. Таблица в §2.6 — шпаргалка; ADR в конце §2.7 — по желанию. |
| 50 | |
| 51 | ### 2.0 Восприятие важнее авторинга (design thesis) |
| 52 | |
| 53 | Классические IDE заточены под **написание кода**: редактор — центр, а всё сопутствующее — решения, intent, история рассуждения — размазано по панелям и файлам и **читается плохо**. В agentic-цикле **писать код в основном берёт агент**; работа человека — **понимать, направлять, фиксировать решения**. Редактор остаётся для проверки и точечных правок по запросу (reveal), не как дефолтная «станция набора». |
| 54 | |
| 55 | **Для дизайна:** полировка и measure cap — на **Intercom / Surface** (читать, ориентироваться, ветвить). Chrome и редактор — тихие, пока оператор не открыл attach. Session graph — не «красивый чат», а **удобное восприятие сессии**. Канон: [0172](../adr/0172-conversation-first-habitat.md), [VDS v1](cide-vds-v1.md), KB `kb-cide-brand-positioning-v1.md`. |
| 56 | |
| 57 | --- |
| 58 | |
| 59 | ### 2.1 «Хороший актёр»: инструмент не спорит с задачей |
| 60 | |
| 61 | > Хороший актёр — тот, кого не видно: на сцене остаётся персонаж, а не исполнитель. |
| 62 | |
| 63 | **Мотивация.** Разработчик держит в голове **задачу и код**. IDE, ассистент и панели — **суфлёры**, не второй спектакль про «возможности продукта». Каждый пиксель, который требует внимания без причины, — налог на поток. |
| 64 | |
| 65 | **Для дизайна:** |
| 66 | |
| 67 | - В норме интерфейс **спокойный**; акцент — на Forward (код или Intercom). |
| 68 | - Промо-эффекты, пульсации и «умные» всплытия без запроса — **анти-паттерн**. |
| 69 | - Новый элемент обосновываем: *какую роль внимания он несёт?* Если «просто удобно иметь» — скорее MFD или палитра, не лобовое. |
| 70 | |
| 71 | --- |
| 72 | |
| 73 | ### 2.2 Иерархия внимания (кокпит) — не декор |
| 74 | |
| 75 | **Мотивация.** В IDE одновременно приходят сигналы: код, сборка, git, агент, ошибки. Без **явной иерархии** UI уезжает в крайности: всё спрятано (нет обратной связи) или всё на экране (нет фокуса). Авиация десятилетиями отрабатывала **куда смотреть сначала** — мы переносим **дисциплину внимания**, а не косплей кабины. |
| 76 | |
| 77 | Главный враг — **переключение контекста**: «где я был», «какая панель главная», «почему всплыло сейчас». «Всё в одном окне» у нас значит **согласованный контур** (код + минимум нужного рядом), а не бесконечное раздувание панелей и встроенных чатов. |
| 78 | |
| 79 | **Для дизайна:** |
| 80 | |
| 81 | | Зона | Вопрос, на который отвечает | Плотность | |
| 82 | |------|-----------------------------|-----------| |
| 83 | | **Forward** | «Что я делаю **сейчас**?» (редактор или Intercom) | Максимальный фокус, минимум отвлечений | |
| 84 | | **PFD** | «**Где** я в проекте / решении?» | Навигация, карта, контекст полёта | |
| 85 | | **MFD** | «Что нужно **вторично**?» (лог, терминал, git, health) | Осознанное переключение **страницы**, не конкурент Forward | |
| 86 | |
| 87 | **EICAS / health / оповещения** (когда есть в макете) — **сводный канал тревог**, а не ещё десять toast’ов поверх редактора. |
| 88 | |
| 89 | !!! note "Нейроотличие и когнитивная нагрузка" |
| 90 | Явные якоря и меньше конкурирующих сигналов особенно важны тем, кому **дорого** возвращаться в поток после прерывания (в т.ч. СДВГ). Это не «лечение интерфейсом», а **эргономика**: пресеты, отключаемый шум, предсказуемые места элементов. |
| 91 | |
| 92 | --- |
| 93 | |
| 94 | ### 2.3 Не «вторая VS Code / Rider» и не «Copilot в каждой строке» |
| 95 | |
| 96 | **Мотивация.** Классический **Visual Studio** для .NET долго задавал планку: предсказуемое действие, инструменты **по делу**, единый контур. Это наш **позитивный** ориентир по DX. |
| 97 | |
| 98 | Другой **класс риска** — когда облачный inline-ассистент **по умолчанию везде**: подсказки без запроса, неясно, что попадёт в буфер, помощь **не отключается** по-настоящему, всё завязано на аккаунт вендора. Тогда IDE становится **«плохим актёром»** — выходит на передний план вместо задачи. |
| 99 | |
| 100 | **CascadeIDE** сознательно **не** копирует: |
| 101 | |
| 102 | - бесконечное размножение боковых панелей и вкладок «как в VS Code»; |
| 103 | - облачный ghost text в каждой строке как единственный путь помощи; |
| 104 | - второй «кокпит» для агента (отдельный чат с другой моделью команд). |
| 105 | |
| 106 | **Для дизайна:** |
| 107 | |
| 108 | - Новая панель — **исключение с ролью**, не «ещё одна колонка по умолчанию». |
| 109 | - AI-помощь — **в контуре Intercom / команд / diff**, с явным вкл/выкл и видимым следом, а не фоновая магия в редакторе. |
| 110 | - Внешние чаты и сервисы — **мосты** (второй монитор, интеграция), не десятый встроенный мессенджер в PFD. |
| 111 | |
| 112 | --- |
| 113 | |
| 114 | ### 2.4 AI и агент: суверенитет, локальность, прозрачность |
| 115 | |
| 116 | **Мотивация.** Продукт **agent-first**, но оператор остаётся **капитаном**. Агент силён, когда его действия **наблюдаемы** и **согласованы** с тем, что может сделать человек теми же командами. |
| 117 | |
| 118 | | Принцип | Что это значит для человека | Следствие для UI | |
| 119 | |---------|----------------------------|------------------| |
| 120 | | **Суверенитет** | Можно **отключить или ограничить** класс помощи (не «спрятали, но облако всё равно шлёт») | Настройки с понятными режимами; нет «вечно включённого» inline | |
| 121 | | **Локальность** | Критичный путь — **репозиторий и IDE**; облако — **явная** граница | Не смешивать «файл на диске» и «ответ модели» без различимых состояний | |
| 122 | | **Прозрачность** | Поведение, влияющее на код, **объяснимо** (что сделал агент, какой diff) | Лента Intercom, статусы, отклонение/принятие изменений в Forward | |
| 123 | | **Невидимость по умолчанию** | Помощь **не конкурирует** с кодом за внимание, пока не запрошена | Нет навязчивых подсказок в строке; запрос — через Intercom, команду, палитру | |
| 124 | | **Паритет команд** | То, что видишь в UI, агент может вызвать тем же **`command_id`** | Один каталог команд: палитра, слэш, MCP — не три разных мира | |
| 125 | | **Честность рассуждения** | Не притворяемся «полным мышлением» без границ провайдера | Слои «thinking», лимиты, явные ошибки API — без театра | |
| 126 | |
| 127 | **Intercom** — не «чат с ботом», а **канал сессии** (как рация в работе): темы, spine, composer внизу, слэши с подсказками — см. §5.2, [intercom-design-hub](intercom-design-hub-v1.md), [intercom-ux-reference](intercom-ux-reference-slack-mattermost-v1.md). |
| 128 | |
| 129 | **Партнёр для проектирования:** агент в том же контуре — для **обсуждения и спора до кода** (снять ветвления → ADR → быстрая реализация), без замены вкуса и ответственности человека — [philosophy §8](cascadeide-philosophy-v1.md#8-агент-как-партнёр-для-проектирования-до-кода), [§8.1 «память, не лычка»](cascadeide-philosophy-v1.md#81-память-команды-не-лычка-в-промпте), [IOP manifest](../iop-manifest-v1.md). |
| 130 | |
| 131 | --- |
| 132 | |
| 133 | ### 2.5 Dark cockpit и тревога по делу |
| 134 | |
| 135 | **Мотивация.** В штатном полёте приборы **не кричат**. Тревога — когда параметр вышел за норму. Аналог в IDE: в спокойной работе — **тихий фон**, chip и баннеры — когда есть **смысл прервать**. |
| 136 | |
| 137 | **Для дизайна:** |
| 138 | |
| 139 | - Статус «идёт сборка / агент думает» — **компактный** (toolbar, chip), не полоска на всю ленту без нужды. |
| 140 | - Ошибки и блокеры — **заметны**, но **сводятся** (health, EICAS), а не дублируются в трёх углах экрана. |
| 141 | - Цвет акцента — для **фокуса и действия**, не для декора каждой секции. |
| 142 | |
| 143 | --- |
| 144 | |
| 145 | ### 2.6 Команды: три входа (репетиция, выступление, канал) |
| 146 | |
| 147 | **Мотивация.** Разные режимы работы мозга: **учиться** действию, **делать** на автомате, **оставаться в канале сессии** и всё равно вызвать IDE-действие. Три поверхности — одна модель `command_id` (палитра, аккорд, MCP не расходятся). |
| 148 | |
| 149 | | Режим | Вход | Зачем | |
| 150 | |-------|------|--------| |
| 151 | | **Репетиция** | Палитра (Ctrl+Q) | Поиск, полный каталог, онбординг, редкие команды | |
| 152 | | **Выступление** | CascadeChord (Ctrl+K) + Melody `c:` | Освоенные действия с клавиатуры; короткие alias — здесь, не в слэше | |
| 153 | | **Канал сессии** | Слэш в composer (`/` + autocomplete) | Те же `command_id`, когда фокус уже в Intercom: `/build run`, `/topic …`, `/help` — иерархия вместо мнемоник ([0119](../adr/0119-chat-slash-commands-intercom-surface.md)) | |
| 154 | |
| 155 | ```mermaid |
| 156 | flowchart LR |
| 157 | subgraph surfaces["Один command_id"] |
| 158 | P["Палитра Ctrl+Q\nрепетиция"] |
| 159 | K["Chord Ctrl+K + c:\nвыступление"] |
| 160 | S["/ в composer\nканал сессии"] |
| 161 | end |
| 162 | R["IdeCommands / MCP"] |
| 163 | P --> R |
| 164 | K --> R |
| 165 | S --> R |
| 166 | ``` |
| 167 | |
| 168 | **Для дизайна:** |
| 169 | |
| 170 | - Слэш — **иерархические подсказки** (`/` → namespace → действие), autocomplete обязателен; не дублировать «сжатые» формы палитры/аккорда (`/br` и т.п.). |
| 171 | - Обычный текст в composer — **агенту**; неизвестный `/` — **отклонять локально**, не «отправить модели наугад». |
| 172 | - Визуально различать **три affordance** в онбординге и help, не смешивать «палитра = всё». |
| 173 | |
| 174 | --- |
| 175 | |
| 176 | ### 2.7 Анти-паттерны (сводка «чего не рисуем») |
| 177 | |
| 178 | | Не делаем | Почему | |
| 179 | |-----------|--------| |
| 180 | | Ещё одна колонка «на всякий случай» | Размывает Forward; ломает кокпит | |
| 181 | | Inline AI в каждой строке по умолчанию | «Плохой актёр», суверенитет, непредсказуемый буфер | |
| 182 | | Дублировать навигацию (вкладки + overview + слэш + хвост в ленте) | Один **быстрый** путь + один **масштабный** (Navigator) — [0127](../adr/0127-intercom-spine-and-topic-tabs-chrome-navigation.md) | |
| 183 | | Toast на каждое событие сборки | Сводим в MFD / health | |
| 184 | | Сырые hex-цвета в макете без семантики | Только имена токенов — [ide-chrome-tokens-v1.md](ide-chrome-tokens-v1.md) | |
| 185 | | Отдельный UX только для агента | Паритет команд и Intercom | |
| 186 | | Пузыри / рамка на каждом сообщении Intercom | Отвлекают; flat feed Slack/MM; **большинство строк без акцента**, рамка редко — [intercom-ux-reference](intercom-ux-reference-slack-mattermost-v1.md) | |
| 187 | |
| 188 | --- |
| 189 | |
| 190 | ### 2.8 Шпаргалка принципов |
| 191 | |
| 192 | | # | Принцип | Одна фраза | |
| 193 | |---|---------|------------| |
| 194 | | P1 | Инструмент исчезает | В фокусе задача, не IDE | |
| 195 | | P2 | Кокпит / зоны | Forward — сейчас; PFD — где; MFD — вторично | |
| 196 | | P3 | Не клон VS Code + inline AI | Согласованный контур, не панельный зоопарк | |
| 197 | | P4 | Суверенитет AI | Вкл/выкл, прозрачность, паритет с агентом | |
| 198 | | P5 | Dark cockpit | Тишина в норме; тревога — по делу | |
| 199 | | P6 | Три входа команд | Палитра учит, аккорд ускоряет, слэш — discoverability в Intercom | |
| 200 | | P7 | Intercom = канал сессии | Не generic chat sidebar | |
| 201 | |
| 202 | **Ценности проекта (кратко):** открытость, наблюдаемость, паритет человека и агента — [ADR 0100](../adr/0100-project-constitution.md) (инженерам). |
| 203 | |
| 204 | --- |
| 205 | |
| 206 | ### 2.9 Когда всё же открывать ADR |
| 207 | |
| 208 | | Ситуация | Документ | |
| 209 | |----------|----------| |
| 210 | | Спор «можно ли так в продукте» | Соответствующий ADR из §6 + статус в [adr-nav](../site/adr-nav/index.md) | |
| 211 | | Нужны точные термины PFD/MFD/EICAS | [0021](../adr/0021-pfd-mfd-cockpit-attention-model.md) | |
| 212 | | Фиксация AI-политики для compliance | [0071](../adr/0071-ai-assistance-sovereignty-locality-invisibility.md) | |
| 213 | | Разработчик просит «как в коде» | [concept-to-implementation-map](../ui-ux/concept-to-implementation-map-v1.md) | |
| 214 | | Длинный нарратив про метафоры | [cascadeide-philosophy-v1.md](cascadeide-philosophy-v1.md) | |
| 215 | |
| 216 | **Инженерный индекс ADR по темам:** [adr-map-v1.md](../en/architecture/adr-map-v1.md) — не обязателен для дизайн-ревью макета. |
| 217 | |
| 218 | --- |
| 219 | |
| 220 | ## 3. Раскладка: три зоны внимания (Flight) |
| 221 | |
| 222 | Сейчас в поставке один UI-режим — **Flight**. Главное окно — **три колонки** (без полосы вкладок на всю ширину снизу). |
| 223 | |
| 224 | ```mermaid |
| 225 | flowchart LR |
| 226 | subgraph cockpit["Главное окно (Flight)"] |
| 227 | PFD["PFD\nнавигация\nsolution / map"] |
| 228 | FWD["Forward\nprimary work\nредактор ИЛИ Intercom"] |
| 229 | MFD["MFD\nстраницы\nbuild · terminal · git · …"] |
| 230 | end |
| 231 | PFD --- FWD --- MFD |
| 232 | ``` |
| 233 | |
| 234 | | Зона | Имя | Роль для дизайна | |
| 235 | |------|-----|------------------| |
| 236 | | **PFD** | Primary Flight Display | «Где я в проекте?» — дерево, карта, инструменты навигации | |
| 237 | | **Forward** | Лобовое / primary work | **Главный фокус:** редактор *или* полноэкранный Intercom ([0120](../adr/0120-primary-work-surface-intercom-or-editor.md)) | |
| 238 | | **MFD** | Multi-Function Display | Вторичные «приборы»: терминал, сборка, Git, health — **страницы**, не конкурент Forward | |
| 239 | |
| 240 | ### 3.1 Один, два или три **монитора** (не путать с «тремя зонами») |
| 241 | |
| 242 | **Канон для дизайна — всегда три *роли* зон (PFD · Forward · MFD).** Сколько **физических дисплеев** — настройка пользователя; для команды **не** требуем «у всех три монитора» ([ADR 0017](../adr/0017-multi-window-workspace-and-agent-surfaces.md)). |
| 243 | |
| 244 | | Дисплеев | Типичная презентация (`presentation`) | Что рисуем | |
| 245 | |----------|----------------------------------------|------------| |
| 246 | | **1** | `(PFD+Forward+MFD)` или три колонки в одном `MainGrid` | Все зоны в **одном** главном окне — как в layout v1 | |
| 247 | | **2** | `(PFD+Forward) (MFD)` | Главное окно: PFD + Forward; второе окно / экран — **MFD** (чат, терминал, build…) | |
| 248 | | **3** | `(PFD) (Forward) (MFD)` | **Идеал** при достаточном железе: **по одной зоне на экран** (три `TopLevel`), слева направо в порядке скобок в строке пресета | |
| 249 | |
| 250 | ```mermaid |
| 251 | flowchart TB |
| 252 | subgraph one["1 монитор"] |
| 253 | O1["( PFD | Forward | MFD ) — одно окно"] |
| 254 | end |
| 255 | subgraph two["2 монитора — компромисс"] |
| 256 | T1["Экран 1: PFD + Forward"] |
| 257 | T2["Экран 2: MFD"] |
| 258 | T1 --- T2 |
| 259 | end |
| 260 | subgraph three["3 монитора — целевой сценарий"] |
| 261 | H1["PFD"] |
| 262 | H2["Forward"] |
| 263 | H3["MFD"] |
| 264 | H1 --- H2 --- H3 |
| 265 | end |
| 266 | ``` |
| 267 | |
| 268 | **Важно для макетов:** |
| 269 | |
| 270 | - **Не** смешивать «три колонки в макете окна» и «обязательно три монитора у каждого пользователя». |
| 271 | - **Три отдельных окна на одном ультрашироком мониторе** — не цель по умолчанию; обычно хватает одного окна + вынесения MFD на 2-й экран ([0017](../adr/0017-multi-window-workspace-and-agent-surfaces.md)). |
| 272 | - Пресет по дисплеям — **личный** (`settings.toml`, ключ `presentation`), не обязательный team-wide в `.cascade/workspace.toml`. |
| 273 | |
| 274 | **Где «три монитора» звучит как норма для *команды*:** совместная работа и общий экран в комнате — [IOP-манифест](../iop-manifest-v1.md), [ADR 0122](../adr/0122-collaborative-iop-environment-and-shared-situational-display.md). Это **видение экипажа**, не минимальные требования к одиночному рабочему месту. |
| 275 | |
| 276 | **Эталон имён и MCP:** [cascade-ide-ui-layout-v1.md](../ui-ux/cascade-ide-ui-layout-v1.md) · wireframe: `docs/ui-ux/cascade-ide-main-window-wireframe.png`. |
| 277 | |
| 278 | **Норматив мультиоконности:** [ADR 0017](../adr/0017-multi-window-workspace-and-agent-surfaces.md) · [0021 §13](../adr/0021-pfd-mfd-cockpit-attention-model.md). |
| 279 | |
| 280 | **Куда класть новую панель:** [attention-zone-panel-playbook-v1.md](attention-zone-panel-playbook-v1.md). |
| 281 | |
| 282 | --- |
| 283 | |
| 284 | ## 4. Типы UI-слоёв (чтобы не путать визуальные системы) |
| 285 | |
| 286 | | Слой | Где в коде | Когда использовать | |
| 287 | |------|------------|-------------------| |
| 288 | | **IDE chrome** | `CascadeTheme`, `Views/UiKit/`, MFD-страницы AXAML | Меню, настройки, оболочка страниц MFD | |
| 289 | | **Skia surfaces** | `Views/SkiaKit/`, `Views/Chat/Skia/` | Плотные ленты, Intercom, карты — пиксельный контроль | |
| 290 | | **Cockpit / приборы** | `Cockpit/PrimitivesKit/`, CDS | «Приборная» семантика, не обычные панели настроек | |
| 291 | |
| 292 | Разделение IDE vs cockpit: [ADR 0066](../adr/0066-cockpit-ui-vs-ide-presentation-layer.md) · playbook: [skia-surfaces-vs-overlays-v1.md](skia-surfaces-vs-overlays-v1.md). |
| 293 | |
| 294 | **Токены chrome (v1):** [ide-chrome-tokens-v1.md](ide-chrome-tokens-v1.md) · темы: [ADR 0086](../adr/0086-ui-theme-toml-canonical-json-mcp-wire.md). |
| 295 | |
| 296 | **Skia kit (примитивы UI):** [ADR 0117](../adr/0117-ide-skia-kit.md). |
| 297 | |
| 298 | --- |
| 299 | |
| 300 | ## 5. Навигация по темам (детали) |
| 301 | |
| 302 | Используй таблицу как **оглавление**. Статусы ADR — в [навигаторе](../site/adr-nav/index.md); здесь помечено только направление для дизайна. |
| 303 | |
| 304 | ### 5.1 Раскладка, chrome, мультиокно |
| 305 | |
| 306 | | Тема | Документ | ADR (норматив) | |
| 307 | |------|----------|----------------| |
| 308 | | Макет Flight, контролы | [ui-ux/cascade-ide-ui-layout-v1.md](../ui-ux/cascade-ide-ui-layout-v1.md) | [0021](../adr/0021-pfd-mfd-cockpit-attention-model.md), [0046](../adr/0046-presentation-layout-authority-and-cockpit-invariants.md) | |
| 309 | | Концепт → код, архив Focus/Power | [concept-to-implementation-map-v1.md](../ui-ux/concept-to-implementation-map-v1.md) | — | |
| 310 | | Референс-скрины | [ui-ux/concept-screens/](../ui-ux/concept-screens/README.md) | — | |
| 311 | | Forward = редактор или Intercom | — | [0120](../adr/0120-primary-work-surface-intercom-or-editor.md) Proposed | |
| 312 | | Плавающий chrome | — | [0012](../adr/0012-floating-workspace-chrome.md) | |
| 313 | | Remote operator (не мобильная IDE) | — | [0117-remote](../adr/0117-remote-operator-surface-multidevice.md) Proposed | |
| 314 | |
| 315 | ### 5.2 Intercom (канал, темы, composer) |
| 316 | |
| 317 | Intercom — **не один экран**, а **несколько доменов** (лента, composer, attach, мост в редактор, навигация тем, три входа команд). Для дизайна — отдельный хаб с иерархией документов и чеклистом референс-PNG. |
| 318 | |
| 319 | | С чего начать | Содержание | |
| 320 | |---------------|------------| |
| 321 | | **[intercom-design-hub-v1.md](intercom-design-hub-v1.md)** | Домены **D1–D9**, карта доков, порядок итераций, [чеклист макетов](../ui-ux/concept-screens/intercom/README.md) | |
| 322 | | [intercom-ux-reference-slack-mattermost-v1.md](intercom-ux-reference-slack-mattermost-v1.md) | Границы Slack/MM, flat feed, `/attach`, клик → рамка | |
| 323 | | [ide-chrome-tokens-v1.md](ide-chrome-tokens-v1.md) | Токены оболочки вокруг Skia-ленты | |
| 324 | |
| 325 | **Сквозные UX-развилки** (фиксировать в макете, не смешивать): |
| 326 | |
| 327 | | Развилка | Дизайн по умолчанию | |
| 328 | |----------|---------------------| |
| 329 | | Attach vs `/editor line` vs `/file open` | Разные slash и chip; см. hub **D4–D6** | |
| 330 | | Клик по chip в ленте | Open + scroll + **рамка**; Shift → selection | |
| 331 | | `@` vs `[path]` vs `/attach` | Люди vs inline-якорь vs slash с autocomplete | |
| 332 | | Палитра / Chord / slash | Один `command_id`, три affordance — §2.6 | |
| 333 | |
| 334 | | Тема (ADR-указатель) | ADR | |
| 335 | |----------------------|-----| |
| 336 | | Канал, multi-party | [0080](../adr/0080-intercom-naming-and-multi-party-channel-model.md) | |
| 337 | | Topic cards | [0072](../adr/0072-chat-topic-cards-intent-melody-keyboard-contract.md) | |
| 338 | | Spine, tabs, Navigator | [0127](../adr/0127-intercom-spine-and-topic-tabs-chrome-navigation.md) Proposed | |
| 339 | | Slash, **attach / якоря** | [0128](../adr/0128-intercom-attachment-anchors-and-code-references.md) · [0130](../adr/0130-editor-agent-range-reveal-without-selection.md) · [0131](../adr/0131-editor-slash-select-code-by-bracket-reference.md) · [0119](../adr/0119-chat-slash-commands-intercom-surface.md), [0124](../adr/0124-slash-parametric-editor-line-commands.md)–[0125](../adr/0125-slash-workspace-file-commands-and-dynamic-completion.md) | |
| 340 | | **Fenced / MD в ленте** | [0129](../adr/0129-intercom-message-body-markdown-and-fenced-code.md) · [0069](../adr/0069-markdown-preview-tool-surface-and-renderer-decoupling.md) | |
| 341 | | Skia лента | [0123](../adr/0123-intercom-full-skia-surface-evolution.md), [0057](../adr/0057-chat-surface-pipeline-adoption.md) | |
| 342 | | Forward fullscreen | [0120](../adr/0120-primary-work-surface-intercom-or-editor.md) Proposed | |
| 343 | |
| 344 | ### 5.3 Команды, палитра, клавиатура |
| 345 | |
| 346 | | Тема | ADR / design | |
| 347 | |------|----------------| |
| 348 | | **Три входа** (репетиция / выступление / канал) | §2.6 handbook · [philosophy §7](cascadeide-philosophy-v1.md) | |
| 349 | | Поверхность команд | [0013](../adr/0013-command-surface-and-discoverability.md) | |
| 350 | | Палитра overlay | [0070](../adr/0070-command-palette-direct-overlay-surface.md) | |
| 351 | | Chord stack (Ctrl+K) | [0060](../adr/0060-keyboard-chord-stack-fms-tactical-strategic.md) (§1a — слэш) | |
| 352 | | Slash в composer | [0119](../adr/0119-chat-slash-commands-intercom-surface.md), [0124](../adr/0124-slash-parametric-editor-line-commands.md)–[0126](../adr/0126-intercom-inspect-slash-and-compact-chrome-status.md) | |
| 353 | | Реестр команд (справочник) | [ide-command-registry-v1.md](ide-command-registry-v1.md) | |
| 354 | | Intent / Melody | [intent-melody-language-v1.md](../intent-melody-language-v1.md), [ADR 0109](../adr/0109-declarative-parametric-melody-catalog-toml-and-code-binders.md) | |
| 355 | |
| 356 | ### 5.4 Карты, графы, semantic map (PFD) |
| 357 | |
| 358 | | Тема | ADR | |
| 359 | |------|-----| |
| 360 | | Semantic map / control flow | [0053](../adr/0053-semantic-map-control-flow-pfd.md), [0113](../adr/0113-hci-semantic-map-orientation-layer.md) | |
| 361 | | Рёбра графа | [0114](../adr/0114-graph-edge-relation-kind-taxonomy.md) | |
| 362 | | Graph-backed surfaces | [0067](../adr/0067-graph-backed-surfaces-contract.md), [0115](../adr/0115-cds-graph-backed-shared-layer.md) | |
| 363 | |
| 364 | ### 5.5 Агент, знания, health |
| 365 | |
| 366 | | Тема | ADR / design | |
| 367 | |------|----------------| |
| 368 | | Видимость рассуждения | [0020](../adr/0020-agent-reasoning-visibility-and-provider-limits.md) | |
| 369 | | Knowledge / agent-notes | [0118](../adr/0118-agent-notes-core-2-toml-and-knowledge-path.md), [0119 multi-root](../adr/0119-agent-notes-core-2-1-multi-root-knowledge.md) | |
| 370 | | IDE Health / readiness | [environment-readiness-glance-v1.md](environment-readiness-glance-v1.md), [0095](../adr/0095-workspace-solution-ide-health-stratification.md) | |
| 371 | |
| 372 | ### 5.6 IOP и совместная работа (перспектива) |
| 373 | |
| 374 | | Тема | ADR | |
| 375 | |------|-----| |
| 376 | | IOP парадигма | [0121](../adr/0121-intent-oriented-programming-paradigm.md) | |
| 377 | | Collaborative IOP / shared display | [0122](../adr/0122-collaborative-iop-environment-and-shared-situational-display.md) | |
| 378 | |
| 379 | --- |
| 380 | |
| 381 | ## 6. Что реализовано vs в работе vs архив |
| 382 | |
| 383 | | Метка | Значение для дизайна | |
| 384 | |-------|----------------------| |
| 385 | | **Implemented** в ADR | Можно опираться на код и [layout v1](../ui-ux/cascade-ide-ui-layout-v1.md) | |
| 386 | | **Accepted / Proposed** | Направление согласовано; макет может опережать код — помечай «target state» | |
| 387 | | **`docs/ui-ux/concept-*`, Power/Focus PNG** | **Архив вдохновения** — не сверять с билдом без [concept-to-implementation-map](../ui-ux/concept-to-implementation-map-v1.md) | |
| 388 | | **`docs/design/*` без ADR** | Черновик или playbook; норматив — только после ADR или явной отсылки из ADR | |
| 389 | |
| 390 | Актуальный срез кода: [architecture/current-architecture-v1.md](../architecture/current-architecture-v1.md) (RU) / [EN](../en/architecture/current-architecture-v1.md). |
| 391 | |
| 392 | --- |
| 393 | |
| 394 | ## 7. Глоссарий (для общего языка с командой) |
| 395 | |
| 396 | **Полный словарь:** [cide-glossary-v1.md](cide-glossary-v1.md) — Intercom, SEDM, steer/follow-up, intent/context card, workline, cockpit. |
| 397 | |
| 398 | Краткая выжимка (legacy); новые термины — только в полном глоссарии: |
| 399 | |
| 400 | | Термин | Кратко | |
| 401 | |--------|--------| |
| 402 | | **PFD / Forward / MFD** | Три зоны внимания главного окна ([0021](../adr/0021-pfd-mfd-cockpit-attention-model.md)) | |
| 403 | | **Intercom** | Канал диалога и команд в сессии, не generic chat | |
| 404 | | **Habitat** | Session graph canvas в Forward — рабочая память сессии ([0172](../adr/0172-conversation-first-habitat.md)) | |
| 405 | | **Workline** | Параллельная линия работы в сессии; не New Chat | |
| 406 | | **Steer** | Перехват intent агента mid-run; **не** передача контроля ([0116](../adr/0116-intercom-session-tree-and-agent-message-steering.md)) | |
| 407 | | **SEDM** | Цикл Perceive→Process→Perform→Evaluate; UX spine ([0174](../adr/0174-sedm-software-engineering-decision-making-ux-spine.md)) | |
| 408 | | **Intent card / Context card** | T1 решение в workline / T2 Perceive для файла ([0173](../adr/0173-intercom-intent-card-session-decision-capture.md), 0174) | |
| 409 | | **IOP** | Intent-Oriented Programming — дисциплина намерения и верификации | |
| 410 | | **Topic / topic card** | Тема работы в сессии; карточка с summary | |
| 411 | | **Spine** | Продуктовая линия «над чем работаем в целом» ([0096](../adr/0096-intercom-topic-card-summary-and-product-spine.md), [0127](../adr/0127-intercom-spine-and-topic-tabs-chrome-navigation.md)) | |
| 412 | | **Forward (primary work surface)** | Редактор или Intercom на всю центральную колонку | |
| 413 | | **MFD page** | Страница в правой колонке (терминал, build, …) | |
| 414 | | **IDS** | IDE Display System — overlay поверх workspace (палитра, модалки) ([0079](../adr/0079-ide-display-system-ids-overlay-pipeline.md)) | |
| 415 | | **CDS** | Pipeline «канал → compositor → surface» для приборов кабины ([0036](../adr/0036-cds-channel-compositor-surface-pipeline.md)) | |
| 416 | | **MCP** | Протокол инструментов агента внутри IDE | |
| 417 | | **Melody / Chord** | Клавиатурная «мелодия» команд после Ctrl+K ([0060](../adr/0060-keyboard-chord-stack-fms-tactical-strategic.md)) | |
| 418 | | **Slash / unified command line** | `/…` в composer Intercom → тот же `command_id`, что палитра/MCP ([0119](../adr/0119-chat-slash-commands-intercom-surface.md)) | |
| 419 | |
| 420 | --- |
| 421 | |
| 422 | ## 8. Фокус работы дизайнера (сейчас) |
| 423 | |
| 424 | Приоритеты согласованы с продуктом; детали — в linked ADR/playbook, не дублируем норматив здесь. |
| 425 | |
| 426 | ### 8.1 Визуальный язык (две системы — не смешивать) |
| 427 | |
| 428 | **VDS (visual DoD):** [cide-vds-v1.md](cide-vds-v1.md) — проекция ADR на проверку глазами (quiet normal, surface-first); не заменяет ADR. |
| 429 | |
| 430 | | Система | Для чего | С чего начать | |
| 431 | |---------|----------|----------------| |
| 432 | | **IDE chrome** | Меню, MFD-страницы, оболочка, Intercom AXAML-рамка | [ide-chrome-tokens-v1.md](ide-chrome-tokens-v1.md), `CascadeTheme.*`, [Views/UiKit/](../../Views/UiKit/) | |
| 433 | | **Cockpit / deck** | Лампы, полосы, readout, annunciator, semantic map | [ADR 0064](../adr/0064-deck-primitives-visual-language-render-layer-and-palette.md), [0065](../adr/0065-instrument-categories-domain-taxonomy.md), код `Cockpit/PrimitivesKit/` | |
| 434 | |
| 435 | **Задача дизайнера:** единая **семантика состояний** (норма / внимание / тревога / отключено), палитра **Dark Cockpit**, типографика и плотность — отдельно для chrome и для приборов. Не «один Figma на всё подряд». |
| 436 | |
| 437 | ### 8.2 Набор компонентов (переиспользуемые примитивы) |
| 438 | |
| 439 | Цель — **библиотека**, которую потом подключаем в Skia/CDS, а не разовые макеты экранов. |
| 440 | |
| 441 | | Кластер | Примеры | Норматив / код | |
| 442 | |---------|---------|----------------| |
| 443 | | **Deck-индикаторы** | Lamp, Bar, Sign, Readout, annunciator | [0063](../adr/0063-instrument-deck-named-composition-one-anchor.md), [0064](../adr/0064-deck-primitives-visual-language-render-layer-and-palette.md) | |
| 444 | | **SkiaKit (IDE-плотные UI)** | Composer strip, popup list, sectioned card, mono code strip | [ADR 0117](../adr/0117-ide-skia-kit.md), `Views/SkiaKit/` | |
| 445 | | **Intercom (Skia chrome + лента)** | Spine, tab bar, topic card, **message row** (flat, без balloon), status chip | [0123](../adr/0123-intercom-full-skia-surface-evolution.md), [0127](../adr/0127-intercom-spine-and-topic-tabs-chrome-navigation.md) Proposed; лента — [intercom-ux-reference](intercom-ux-reference-slack-mattermost-v1.md) | |
| 446 | | **Chrome-контролы** | Section, status chip, inset surface | [ide-chrome-tokens-v1.md](ide-chrome-tokens-v1.md), `Views/UiKit/` | |
| 447 | |
| 448 | **Deliverable:** Figma (или аналог) + **именованные спецификации** (как `CascadeTheme.X` / `DeckPrimitiveKind`), экспорт референсов в `docs/ui-ux/concept-screens/`. |
| 449 | |
| 450 | ### 8.3 Ещё важно (рядом с твоими двумя пунктами) |
| 451 | |
| 452 | | # | Задача | Зачем | |
| 453 | |---|--------|--------| |
| 454 | | 3 | **Intercom navigation v1** — spine + вкладки + navigator (target по [0127](../adr/0127-intercom-spine-and-topic-tabs-chrome-navigation.md)) | Ежедневное переключение тем без «второго мира» overview | |
| 455 | | 4 | **Раскладка Flight + пресеты 1/2/3 монитора** | Wireframe и плотность зон; см. §3.1 | |
| 456 | | 5 | **Состояния и оповещения** (health, EICAS, compact status) | Dark cockpit: тишина в норме, тревога по делу — [environment-readiness-glance-v1.md](environment-readiness-glance-v1.md) | |
| 457 | | 6 | **Command / discoverability** | Три входа (палитра / аккорд / слэш), единый autocomplete слэша, иконки intent — [0013](../adr/0013-command-surface-and-discoverability.md), [0119](../adr/0119-chat-slash-commands-intercom-surface.md) | |
| 458 | | 7 | **Темы** (светлая / тёмная / Power-циан) | Пресеты поверх одних токенов — [0086](../adr/0086-ui-theme-toml-canonical-json-mcp-wire.md) | |
| 459 | |
| 460 | **Не в фокусе дизайнера v1:** внутренние implementation-map, DAL/CCU, editor HUD migration — см. исключённые чертежи в `docs/design/` (не на публичном сайте). |
| 461 | |
| 462 | ### 8.4 Порядок (предложение) |
| 463 | |
| 464 | 1. Прочитать §2–3 handbook → согласовать словарь с командой. |
| 465 | 2. **IDE chrome tokens** + 1–2 эталонных экрана (MFD page + Intercom compact). |
| 466 | 3. **Deck primitives** (лампы/readout) для health / semantic map. |
| 467 | 4. **Intercom** по [intercom-design-hub](intercom-design-hub-v1.md): P0 макеты (feed, chips, reveal frame) → chrome 0127. |
| 468 | 5. Мультимониторные **storyboard**-ы (1/2/3 экрана) — без смены семантики зон. |
| 469 | |
| 470 | --- |
| 471 | |
| 472 | ## 9. Как участвовать дизайнеру |
| 473 | |
| 474 | 1. **Согласовать scope** — какая зона (§3) и тема из §5; для новой панели — [attention-zone-panel-playbook-v1.md](attention-zone-panel-playbook-v1.md). |
| 475 | 2. **Макеты** — PNG/Figma-экспорт в `docs/ui-ux/concept-screens/` + строка в `concept-screens/README.md` (что это, дата, связанный ADR или issue). |
| 476 | 3. **Не дублировать ADR** — в handbook/макете достаточно ссылки; нормативные формулировки — в ADR после ревью с командой. |
| 477 | 4. **Токены** — новые цвета/отступы для chrome через [ide-chrome-tokens-v1.md](ide-chrome-tokens-v1.md), не сырые `#RRGGBB` в макете без семантического имени. |
| 478 | 5. **Инженерная карта** — если нужны все ADR по слоям: [adr-map-v1.md](../en/architecture/adr-map-v1.md). |
| 479 | |
| 480 | **Вопросы по статусу решения:** [adr-nav](../site/adr-nav/index.md) или issue в [GitHub](https://github.com/AI-Guiders/cascade-ide). |
| 481 | |
| 482 | --- |
| 483 | |
| 484 | ## 10. Связанные входы (не дублировать) |
| 485 | |
| 486 | | Документ | Роль | |
| 487 | |----------|------| |
| 488 | | [README design/](README.md) | Каталог `docs/design/` | |
| 489 | | [ui-ux/README.md](../ui-ux/README.md) | Макеты, wireframe, локализация | |
| 490 | | [ADR 0076](../adr/0076-ui-ux-principles-hub.md) | Нормативный UX-центр (сниппеты) | |
| 491 | | [feature-archetype-v1.md](feature-archetype-v1.md) | Чеклист «новая фича» для дизайн+dev | |
| 492 | | [adr-map-v1.md](../en/architecture/adr-map-v1.md) | ADR по темам для архитекторов | |
| 493 | | [concept-overview EN](../en/concept-overview.md) | 5-минутный обзор на английском | |
| 494 | |
| 495 | --- |
| 496 | |
| 497 | *Версия handbook: **v1**. Предложения по структуре — PR в `docs/design/cide-design-handbook-v1.md`.* |
| 498 | |