Forge
markdowndeeb25a2
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
View only · write via MCP/CIDE