| 1 | # CascadeIDE — философский слой продукта (v1) |
| 2 | |
| 3 | **Статус:** справочник для людей (не нормативный ADR). |
| 4 | **Назначение:** вводный текст для новых участников и для внешнего User Guide — **смысл** продукта и метафор до чтения конкретных ADR. |
| 5 | **Дата:** 2026-04-19 |
| 6 | **Связь:** [ADR 0071](../adr/0071-ai-assistance-sovereignty-locality-invisibility.md) (принципы и анти-паттерны интеграции AI), [ADR 0060 §10](../adr/0060-keyboard-chord-stack-fms-tactical-strategic.md#adr0060-p10) (невидимый инструмент, overlay; **три входа** команд — §7 ниже, [0119](../adr/0119-chat-slash-commands-intercom-surface.md)), [ADR 0021](../adr/0021-pfd-mfd-cockpit-attention-model.md) (PFD/MFD, модель внимания), [north-star](north-star-cursor-mcp-cascade-workbench-v1.md), [ADR 0020](../adr/0020-agent-reasoning-visibility-and-provider-limits.md), [ADR 0008](../adr/0008-mcp-contracts-and-testable-infrastructure.md), [ADR 0028](../adr/0028-user-settings-toml-localappdata-and-secrets.md). |
| 7 | |
| 8 | **Источник нарратива:** линия обсуждений **Comet** (внешний диалог), зафиксированная в каноне personal-слоя KB; здесь — продуктовая выжимка без привязки к датам релизов сторонних IDE. |
| 9 | |
| 10 | **Эпистемика:** политики лицензирования и состава пакетов у вендоров **меняются**; примеры ниже иллюстрируют **класс риска UX**, а не вечные факты о конкретной версии продукта. |
| 11 | |
| 12 | --- |
| 13 | |
| 14 | ## 1. «Хороший актёр» и IDE |
| 15 | |
| 16 | > Хороший актёр — тот, которого не видно: на сцене остаётся персонаж, а не исполнитель. |
| 17 | |
| 18 | **IDE как невидимый инструмент** не «играет сама себя»: не требует постоянного внимания к своим панелям, меню и «фишкам». В фокусе — **код, задача, мысль разработчика**. Кокпит CascadeIDE ([0021](../adr/0021-pfd-mfd-cockpit-attention-model.md)) — метафора того же: приборы — продолжение мышления пилота, а не отдельный спектакль про «интерфейс IDE». |
| 19 | |
| 20 | --- |
| 21 | |
| 22 | ## 2. Зачем авиационная метафора (и что она здесь не значит) |
| 23 | |
| 24 | Это **не** декоративная «тема» ради визуала и не ролевой косплей. Авиация выбрана как **носитель готового языка** про **дисциплину внимания** в среде, где ошибка стоит дорого: там десятилетиями отрабатывают, *куда* смотреть в первую очередь, *что* держать в периферии, и *когда* интерфейс обязан **молчать**, чтобы не отвлекать. |
| 25 | |
| 26 | **Зачем это переносить в IDE:** |
| 27 | |
| 28 | | Идея | Зачем для CascadeIDE | |
| 29 | |------|----------------------| |
| 30 | | **Иерархия внимания** | Один и тот же экран может показать **всё**; без явной иерархии пользователь тонет в панелях. PFD / лобовое / **Forward** задают роль «сейчас главное» vs «вторичный контекст» — см. [0021](../adr/0021-pfd-mfd-cockpit-attention-model.md). | |
| 31 | | **MFD и «земля»** | Диагностика, логи, карта, инструменты — не конкурируют с редактированием за фокус по умолчанию; их место и плотность политикой, а не случайным нагромождением окон. | |
| 32 | | **Dark Cockpit** | В норме приборы **не кричат**: тревога — когда есть что сказать. Аналог для IDE: меньше визуального шума и «маркетинговых» пульсаций, больше спокойного фона для кода ([0021](../adr/0021-pfd-mfd-cockpit-attention-model.md) § про кокпит и осведомлённость). | |
| 33 | | **Скан и предсказуемость** | У пилота есть **порядок обхода** приборов; у разработчика — порядок команд и зон. **Три входа** в одну модель `command_id` ([§7](#7-три-входа-команд-палитра-аккорд-слэш), [0060](../adr/0060-keyboard-chord-stack-fms-tactical-strategic.md), [0013](../adr/0013-command-surface-and-discoverability.md), [0119](../adr/0119-chat-slash-commands-intercom-surface.md)) поддерживают привычку, а не хаотичный поиск кнопки. | |
| 34 | | **Общий словарь** | PFD/MFD/EFB, режимы, «тактика vs стратегия» ([0059](../adr/0059-roslyn-mcp-profiles-manager-tactical-strategic-efb.md)) дают **одинаковые имена** в ADR, коде и разговоре команды — меньше «я про верхнюю панель, ты про правую». | |
| 35 | | **Агент в том же контуре** | Самолёт сравнивают с экипажем: кто сейчас несёт ответственность за траекторию. Agent-first north-star ([north-star](north-star-cursor-mcp-cascade-workbench-v1.md), [0002](../adr/0002-debug-human-agent-parity.md)) — про **наблюдаемость** чужого действия, а не про «магию сбоку». | |
| 36 | |
| 37 | **Чего метафора не обещает:** мы **не** симулируем кабину 1:1 и **не** переносим авиационную сертификацию на текстовый редактор. Речь о **переносе принципов**: внимание, роли зон, тишина в норме, явная тревога при отклонении — как **вводный язык** для дизайна и документации. Детали размещения и канон — в ADR по ссылкам выше. |
| 38 | |
| 39 | --- |
| 40 | |
| 41 | ## 3. Почему в истории полезен ориентир «классический» Visual Studio |
| 42 | |
| 43 | Долгое время экосистема **Visual Studio** служила ориентиром **DX** для .NET: |
| 44 | |
| 45 | | Качество | Смысл | |
| 46 | |----------|--------| |
| 47 | | **Единая экосистема** | Отладчик, рефакторинг, IntelliSense, обозреватель решения — согласованный контур | |
| 48 | | **Прозрачность** | Предсказуемые действия: отладка, комментирование, сборка — ожидаемый эффект без «магии» | |
| 49 | | **Инструменты по делу** | Элементы UI с понятным назначением; меньше декоративного шума | |
| 50 | |
| 51 | Это близко к принципу **«инструмент исчезает»**: пользователь держит в голове **задачу**, а не рекламу возможностей среды. |
| 52 | |
| 53 | --- |
| 54 | |
| 55 | ## 4. Класс риска: облачный ассистент как «плохой актёр» |
| 56 | |
| 57 | Когда в тот же контур встроен **встроенный облачный ассистент** (условный «Copilot-style»), возможен другой UX-профиль: |
| 58 | |
| 59 | | Эффект | Почему бьёт по DX | |
| 60 | |--------|-------------------| |
| 61 | | **Заметность** | Подсказки появляются там и тогда, где пользователь **не просил** — инструмент требует внимания | |
| 62 | | **Непредсказуемость** | Сложно держать ментальную модель «что сейчас изменится в файле» | |
| 63 | | **Суверенитет** | Если помощь **нельзя** полностью отключить или вынести из критичного пути — страдает ощущение контроля | |
| 64 | | **Локальность** | Привязка к подписке/аккаунту/облаку ослабляет обещание «IDE работает как локальный инструмент» | |
| 65 | | **Когнитивная налог** | Вместо кода в фокусе — вопросы «что предложит модель», «не перезапишет ли она моё» | |
| 66 | |
| 67 | В терминологии §1 это **плохой актёр**: выходит на передний план, перебивает сцену, зритель перестаёт понимать, что происходит. |
| 68 | |
| 69 | **Для CascadeIDE** это полезно как **анти-паттерн**: интеграция AI и агентности должна оставаться **прозрачной, отключаемой по слоям, согласованной с MCP и ADR**, а не непрозрачным фоном в каждом символе. |
| 70 | |
| 71 | --- |
| 72 | |
| 73 | ## 5. Что закрепляет CascadeIDE (согласование с архитектурой) |
| 74 | |
| 75 | | Принцип | Где в продукте | |
| 76 | |---------|----------------| |
| 77 | | **Локальность и контролируемые границы** | MCP как наблюдаемый протокол; хост агента снаружи — не чёрный ящик внутри редактора ([0008](../adr/0008-mcp-contracts-and-testable-infrastructure.md)) | |
| 78 | | **Суверенитет пользователя** | `settings.toml`, `hotkeys.toml`, секреты отдельно ([0028](../adr/0028-user-settings-toml-localappdata-and-secrets.md)) | |
| 79 | | **Прозрачность решений** | ADR и репозиторий как канон, не смысл «в голове модели» | |
| 80 | | **Невидимость и клавиатурный контур** | Кокпит, аккорды, overlay как **суфлёр** ([0060](../adr/0060-keyboard-chord-stack-fms-tactical-strategic.md)); intent-first грамматика и surface routing — отдельные оси (обсуждение Comet / intent-first) | |
| 81 | | **Честность про провайдеров** | Слои видимости рассуждения агента, лимиты API ([0020](../adr/0020-agent-reasoning-visibility-and-provider-limits.md)) | |
| 82 | |
| 83 | --- |
| 84 | |
| 85 | ## 6. Метафоры в одном направлении |
| 86 | |
| 87 | (См. также [ADR 0060 §10](../adr/0060-keyboard-chord-stack-fms-tactical-strategic.md#adr0060-p10) — Пярт, Сати, «хороший актёр».) |
| 88 | |
| 89 | | Метафора | Здесь | |
| 90 | |----------|--------| |
| 91 | | **Тинтиннабули** | Минимальный каркас + «мелодия» намерений — строгая структура ввода | |
| 92 | | **Мебельная музыка** | Среда как **фон** работы, не постоянный объект внимания | |
| 93 | | **Хороший актёр** | IDE исчезает — остаются код и задача | |
| 94 | |
| 95 | --- |
| 96 | |
| 97 | ## 7. Три входа команд: палитра, аккорд, слэш |
| 98 | |
| 99 | Один каталог **`command_id`** ([0013](../adr/0013-command-surface-and-discoverability.md), [0030](../adr/0030-command-ids-hotkeys-and-ui-registry-layers.md)) — три **поверхности discoverability**, не три исполнителя: |
| 100 | |
| 101 | | Режим | Вход | Зачем | |
| 102 | |-------|------|--------| |
| 103 | | **Репетиция** | Палитра (**Ctrl+Q**) | Полный каталог, fuzzy-поиск, онбординг, редкие команды | |
| 104 | | **Выступление** | **CascadeChord** (**Ctrl+K**) + Melody `c:` | Быстрый вход для освоенных действий без отрыва от клавиатуры; короткие мнемоники — здесь, не в `/` | |
| 105 | | **Канал сессии** | Слэш в composer Intercom (`/` + autocomplete) | Те же команды, когда руки уже в поле сообщения: иерархия `/build run`, `/topic open`, `/help` — без зубрёжки и без смены фокуса на палитру ([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)) | |
| 106 | |
| 107 | Слэш **дополняет** палитру и аккорд ([0013](../adr/0013-command-surface-and-discoverability.md)); обычный текст в composer — **агенту**, неизвестный `/` — отклонять локально. |
| 108 | |
| 109 | --- |
| 110 | |
| 111 | ## 8. Агент как партнёр для проектирования (до кода) |
| 112 | |
| 113 | Ключевой сдвиг эпохи AI в разработке — не только «быстрее писать код», а **дешёвый внутренний диалог** до реализации. |
| 114 | |
| 115 | | Роль агента | Что даёт человеку | |
| 116 | |-------------|-------------------| |
| 117 | | **Собеседник** | Обсудить, поспорить, пройти ветвления («а если attach не selection?») **без** стыда отвлечь и **без** типичного социального трения (расписание, усталость, «мы же решили») | |
| 118 | | **Не замена людей** | Вкус, ответственность, приёмка ADR и scope — остаются у оператора; агент не арбитр продукта | |
| 119 | | **Тот же контур** | После договорённости — исполнение теми же `command_id`, MCP, Intercom; не «сначала наговорили в чате, потом заново объясняем IDE» | |
| 120 | |
| 121 | **Экономика работы:** длинный разговор + ADR/playbook (**дешево вниманием**) → короткий спринт реализации (**быстро в коде**), когда ветвления уже сняты. Риск — не «слишком много думали», а **быстро накодить лишнее** без явного MVP; стоп-кран — фазы в ADR и решение капитана. |
| 122 | |
| 123 | Согласование: [IOP manifest](../iop-manifest-v1.md) (коммуникация и Intercom), [0071](../adr/0071-ai-assistance-sovereignty-locality-invisibility.md) (границы интеграции), §5–§7 выше (как помощь **не** становится «плохим актёром»). |
| 124 | |
| 125 | ### 8.1. Память команды, не «лычка» в промпте |
| 126 | |
| 127 | **Senior architect** в живой команде — не тон ответа в чате, а накопленное: **память** (что уже ломалось), **договорённости** (ADR, MLP vs идеал), **опыт** (узнаваемые запахи гонок и lock), **ошибки** (отклонённые альтернативы и history в ADR). Промпт «веди себя как senior» без этого — костюм на один сеанс. |
| 128 | |
| 129 | **Культура работы с агентом в контуре CascadeIDE** (человек и модель): |
| 130 | |
| 131 | | Делать | Не делать | |
| 132 | |--------|-----------| |
| 133 | | Читать ADR и playbook **до** спора и кода | Ждать «класса» от роли в system prompt | |
| 134 | | Спорить с **нормой** (что в MLP, что отложено) | Соглашаться ради вежливости | |
| 135 | | Дописывать **историю** (ADR history, open questions, rejected) | Оставлять инсайт только в чате сессии | |
| 136 | |
| 137 | **Операционная формула (для людей и агентов):** *читай ADR → спорь с нормой → дописывай историю.* Не замена оркестратору и не «магия имени» — **внешняя память**, которая переживает сессию. Пример: [0148](../adr/0148-agent-execution-environment-verification-ladder-and-native-tooling.md) (verify epoch, substrate bundle — опыт ошибок, вшитый в среду). |
| 138 | |
| 139 | Инструментальный режим («сделай дифф», «найди баг») остаётся нормальным; партнёрский — когда есть **зачем** и **куда** фиксировать решение. См. [playbook-agent-environment-v1.md](playbook-agent-environment-v1.md) §«Культура сессии». |
| 140 | |
| 141 | --- |
| 142 | |
| 143 | ## 9. Два порога входа (канон в IOP-манифесте) |
| 144 | |
| 145 | **IOP** — [манифест](../iop-manifest-v1.md) (дисциплина); **экосистема Cascade** — [use case в том же файле](../iop-manifest-v1.md#пример-экосистема-cascade). Здесь — продуктовый слой CIDE: [handbook §1.1](cide-design-handbook-v1.md#11-два-порога-входа-cide). |
| 146 | |
| 147 | --- |
| 148 | |
| 149 | ## 10. Обновления документа |
| 150 | |
| 151 | Правки v1: по мере того как продуктовые решения по AI/агентам крепнут в ADR, **короткие** дополнения сюда; дублировать полную нормативку ADR не требуется — держать ссылку на [0071](../adr/0071-ai-assistance-sovereignty-locality-invisibility.md). |
| 152 | |
| 153 | | Дата | Изменение | |
| 154 | |------|-----------| |
| 155 | | 2026-05-25 | §8.1: память команды vs «лычка» senior; формула читай ADR → спорь → дописывай историю; ссылка на 0148/playbook. | |
| 156 | | 2026-05-19 | §8: агент как партнёр для проектирования до кода; IOP/Intercom — ссылка. | |
| 157 | | 2026-05-19 | §9: два порога — ссылка на IOP-манифест (канон); handbook §1.1 — CIDE. | |
| 158 | |