Forge
markdowndeeb25a2
1# North star: Cursor + MCP + CascadeIDE как рабочая скамья (границы v1)
2
3**Статус:** черновик границ продукта (не ADR).
4**Обновлено:** 2026-04-13 — **приоритет ближайших итераций:** комфортный переход **из Cursor** (MCP, наблюдаемость, привычный контур агента + IDE); **паритет с Visual Studio** и «уйти с VS полностью» — **долгий горизонт**, не критерий скорости первых выпусков.
5**Обновлено:** 2026-04-15 — продуктовый принцип **keyboard-first** (ниже и в [ADR 0013](../adr/0013-command-surface-and-discoverability.md)).
6**Обновлено:** 2026-04-16 — граница «не polyglot IDE»; ссылка на [ADR 0039](../adr/0039-workspace-navigation-affordances.md#adr0039-language-scope).
7**Связь:** [architecture-policy.md](../architecture-policy.md), [architecture-migration.md](../architecture-migration.md), [ADR 0002](../adr/0002-debug-human-agent-parity.md), [ADR 0013](../adr/0013-command-surface-and-discoverability.md) (палитра команд, discoverability — опора для keyboard-first), [ADR 0017](../adr/0017-multi-window-workspace-and-agent-surfaces.md), [ADR 0039](../adr/0039-workspace-navigation-affordances.md) (навигация; C# / .NET как north-star по языкам), [ADR 0043](../adr/0043-mcp-transport-recovery-human-agent-parity.md) (MCP-транспорт и граница хоста; ортогонально 0002), [MCP-PROTOCOL.md](../MCP-PROTOCOL.md). Философский слой (DX, «невидимый инструмент», принципы AI в IDE): [cascadeide-philosophy-v1.md](cascadeide-philosophy-v1.md), [ADR 0071](../adr/0071-ai-assistance-sovereignty-locality-invisibility.md).
8**Позиционирование:** **CascadeIDE** изначально и по смыслу — **agent-first IDE**: агент не «приложение сбоку» от редактора, а **опорная ось** продукта — общий наблюдаемый контур с человеком (MCP, паритет отладки — [ADR 0002](../adr/0002-debug-human-agent-parity.md)); модель кокпита и зон внимания задаёт рамку фокуса и **не противоречит** agent-first. Параллельно продукт **запланирован как keyboard-first**: основные сценарии — без обязательной мыши; клавиатура и **палитра команд** — опорные пути ([ADR 0013](../adr/0013-command-surface-and-discoverability.md), реестр хоткеев — [ADR 0030](../adr/0030-command-ids-hotkeys-and-ui-registry-layers.md)), а не «сначала тулбар и клики».
9**Память агента (KB):** устойчивое знание живёт **в каноне решения** и в MCP-командах, а не в «контексте весов» модели: knowledge (`read_knowledge_file`, `write_knowledge_file`, `list_knowledge_files`, секции, ревизии…), заметки сессии (`ide_read_agent_notes`, `ide_write_agent_notes`) — каноничные имена и аргументы в [MCP-PROTOCOL.md](../MCP-PROTOCOL.md).
10
11## Северная звезда (формулировка)
12
13Открыть **Cursor**, поднять **MCP**, вести работу **в CascadeIDE** и **видеть действия агента** в том же контуре, что и своё: где стоят точки останова, где выполнение остановилось, где затык (сборка, тесты, ожидание, ошибка), без сюрпризов между тем, что делает агент, и тем, что видно в IDE.
14
15**Зачем уточняем акцент:** для команды **сейчас** важнее **снять трение перехода с Cursor** (один сценарий: агент снаружи, правда репозитория и отладки внутри Cascade), чем спорить с **Visual Studio** по охвату функций. VS остаётся ориентиром там, где без «скучных километров» редактора и отладки не обойтись, но **не** как главный конкурент по скорости итераций продукта — см. [§ ниже](#north-star-vs-long-term).
16
17<a id="north-star-vs-long-term"></a>
18
19## Продуктовое видение: сильнее не «второй Visual Studio»
20
21Конкуренция с Visual Studio здесь задумана **не** как «ещё один шкаф инструментов с тем же количеством окон и панелей». Сила VS — в охвате сценариев; слабость для многих — в том, что в нём **легко утонуть**: фокус и «что сейчас главное» не являются центральным обещанием продукта.
22
23**CascadeIDE** при полной реализации принципов (модель зон внимания PFD / лобовое / MFD, **Dark Cockpit**, осознанная топология окон и агента) претендует на **другую ось ценности**: **иерархия внимания** и меньше хаотичного размножения окон — комфорт «кокпита» и прозрачность совместной работы с агентом, а не гонка за паритетом каждой панели VS.
24
25Это **не отменяет** необходимости «скучных километров» редактора, отладки и языковых сервисов. Но продуктовый смысл — **не клонировать VS**, а дать **иную повседневную работу** тем, кому важнее ясность и устойчивый фокус, чем максимум встроенных инструментов на экране.
26
27**Keyboard-first:** на уровне замысла CascadeIDE **не** задумывается как IDE, где обязателен постоянный «охват мышью» по плотным панелям. Ориентир — **клавиатура + три входа команд** (палитра Ctrl+Q, аккорд Ctrl+K, слэш в Intercom — [0119](../adr/0119-chat-slash-commands-intercom-surface.md)) и согласованность с автоматизацией через те же `IdeCommands`; широкие панели и тулбар — вторичны; детали — [ADR 0013](../adr/0013-command-surface-and-discoverability.md), [philosophy §7](cascadeide-philosophy-v1.md).
28
29**JetBrains:** для .NET честнее сравнивать Cascade не с IntelliJ IDEA, а с **JetBrains Rider** — тот же контур (решение, отладка, рефакторинги в экосистеме .NET). Ось дифференциации та же: не «ещё один насыщенный IDE-стол», а кокпит и иерархия внимания; по глубине и зрелости функций Rider остаётся сильным ориентиром в своей нише.
30
31**Связь:** [0021 — модель внимания кокпита](../adr/0021-pfd-mfd-cockpit-attention-model.md), режимы и пресеты UI [0010](../adr/0010-ui-modes-toml-configuration.md); паритет человек/агент по отладке — [0002](../adr/0002-debug-human-agent-parity.md).
32
33## Границы: что входит в эту цель
34
35| Входит | Пояснение |
36|--------|-----------|
37| **Один источник правды в Cascade** по отладке и видимому состоянию для человека и агента | См. [ADR 0002](../adr/0002-debug-human-agent-parity.md). |
38| **MCP как мост** между агентом (Cursor и др.) и IDE: команды, снимок UI, действия с редактором/сборкой/тестами | Реализация и контракт — [MCP-PROTOCOL.md](../MCP-PROTOCOL.md), исполнение через `IIdeMcpActions` / маршалинг UI ([architecture-migration.md](../architecture-migration.md) фаза 5). |
39| **Knowledge base (KB) и заметки агента** | Файлы knowledge в workspace решения; MCP API — [MCP-PROTOCOL.md](../MCP-PROTOCOL.md) (разделы knowledge и agent-notes); коды команд — `IdeCommands.Knowledge` / agent-notes в исполнителе MCP. |
40| **Наблюдаемость** | Хотя бы: позиция останова, список брейкпоинтов, панель отладки/инструментирования, вывод сборки и тестов — доступны и с клавиатуры IDE, и через MCP там, где это уже проведено. |
41| **Keyboard-first (принцип)** | Типовой рабочий контур — **без зависимости от мыши** для главных действий: навигация по командам через палитру и хоткеи ([0013](../adr/0013-command-surface-and-discoverability.md), [0030](../adr/0030-command-ids-hotkeys-and-ui-registry-layers.md)); мышь не запрещена, но не является главным обещанием UX. |
42| **Рабочий цикл без VS для типовых задач агента** | Редактирование, сборка, тесты, git по репозиторию, отладка подключённого сценария — в одном окне Cascade, пока хватает возможностей редактора и отладчика. |
43| **Мультиоконность / зоны экрана** по железу пользователя | Семантика `presentation`, второй TopLevel под MFD и т.д. — [ADR 0017](../adr/0017-multi-window-workspace-and-agent-surfaces.md). |
44
45## Границы: что сознательно не обещаем в этой постановке
46
47| Не обещаем | Почему |
48|------------|--------|
49| **Полная замена Visual Studio по всем сценариям** | Другой объём: профилирование, сложный мультипроцессный attach, полный набор рефакторингов Roslyn как в VS, дизайнеры и т.д. |
50| **Реализация Cursor внутри этого репозитория** | Cursor — внешний хост агента; граница — **контракт MCP и пользовательский сценарий**, а не форк Cursor. |
51| **Идеальная синхронизация без настройки** | Расстановка мониторов, primary vs семантический Forward, строка `presentation` — ответственность пользователя и ОС; см. [ADR 0017 п. 5 доп.](../adr/0017-multi-window-workspace-and-agent-surfaces.md#adr0017-p5-primary-vs-forward). |
52| **Polyglot IDE с паритетом по всем языкам** | North-star по языкам — **C# / .NET** (решение, Roslyn, типичный рабочий цикл); UI IDE на Avalonia; в контуре продукта — сценарии .NET (в т.ч. Blazor и др.) без обещания «как VS для любого стека». Другие языки после открытия возможны, но **не** определяют цель v1; см. [ADR 0039 § область языков](../adr/0039-workspace-navigation-affordances.md#adr0039-language-scope). |
53
54## Критерии «мы в зоне цели» (проверяемые)
55
56Ниже — не проценты, а **сигналы готовности** для самопроверки команды:
57
581. **Неделя реальной работы** над репозиторием: основной контур — Cascade + Cursor + MCP, VS не нужен для типовых задач (или открывается редко и осознанно).
592. **Паритет отладки:** действие агента через MCP по отладке отражается в UI так же, как ручное действие человека (в рамках [ADR 0002](../adr/0002-debug-human-agent-parity.md)).
603. **Наблюдаемость затыка:** при остановке, падении сборки, провале тестов пользователь **не обязан** угадывать состояние по логам Cursor — ключевое видно в Cascade (полосы, панели, редактор).
61
62## Матрица: сделано / осталось
63
64Оценки субъективные; ссылки — якоря для обсуждения, не жёсткий аудит.
65
66| Область | Уже есть (ориентир) | Осталось к north star |
67|---------|---------------------|------------------------|
68| **MCP → IDE, UI-поток** | Маршалинг `ExecuteCommandAsync`, фазы миграции 0–5 ([architecture-migration.md](../architecture-migration.md)). | Расширять команды по мере сценариев агента; держать контракт [MCP-PROTOCOL.md](../MCP-PROTOCOL.md) в актуальном виде; паритет восстановления канала и роли хоста — [ADR 0043](../adr/0043-mcp-transport-recovery-human-agent-parity.md). |
69| **KB / память агента** | Команды knowledge и agent-notes в [MCP-PROTOCOL.md](../MCP-PROTOCOL.md); исполнение через MCP к IDE. | Обзор и навигация по KB в UI по мере приоритета; сценарии целостности канона и «что агент записал» без путаницы с выводом модели. |
70| **Паритет отладки** | Решение [ADR 0002](../adr/0002-debug-human-agent-parity.md); DAP/netcoredbg в IDE. | Закрывать дыры «в поле»: расхождения edge-case, удобство панели, явная связка MCP-команд с визуалом редактора. |
71| **Брейкпоинты / позиция / стек** | `MainWindowViewModel.Breakpoints`, MCP отладки, инструментирование ([architecture-migration.md](../architecture-migration.md) фаза 4). | «Где агент поставил» — довести до привычного UX (список, подсветка, фильтр шума). |
72| **Сборка / тесты / Git** | Панели, MCP, Git runner ([architecture-migration.md](../architecture-migration.md) фазы 1–3). | Стабильность больших решений, сообщения об ошибках, сценарии агента «почини сборку». |
73| **Редактор и языковые сервисы** | LSP/диагностики по плану ([LANGUAGE-SERVICES-PLAN.md](../LANGUAGE-SERVICES-PLAN.md)). | Сокращать разрыв с VS там, где мешает «жить без VS». |
74| **Мультиоконность / MFD** | `MfdHostWindow`, `presentation`, сохранение геометрии ([ADR 0017](../adr/0017-multi-window-workspace-and-agent-surfaces.md)). | Политика закрытия главного окна, fallback при смене мониторов, подтверждения агента при нескольких TopLevel — открытые пункты ADR. |
75| **Агент ↔ человек: внимание** | Модель зон [0021](../adr/0021-pfd-mfd-cockpit-attention-model.md), UX чата [0031](../adr/0031-agent-chat-clarification-batches-and-threading.md) (частично). | Единая картина «затык / жду ввода / критично» без перегруза модалками ([ADR 0017 п. 6](../adr/0017-multi-window-workspace-and-agent-surfaces.md#adr0017-p6)). |
76| **Кокпит / Dark Cockpit** | Режимы UI, полосы health/EICAS в концепции [0021](../adr/0021-pfd-mfd-cockpit-attention-model.md), Power/Flight ([0010](../adr/0010-ui-modes-toml-configuration.md)). | Сплошной опыт «не утонуть» при росте функций; согласовать плотность UI с north star выше. |
77| **Палитра / chord / slash UX** | Реестр ([0030](../adr/0030-command-ids-hotkeys-and-ui-registry-layers.md)); палитра, аккорд ([0060](../adr/0060-keyboard-chord-stack-fms-tactical-strategic.md)), слэш ([0119](../adr/0119-chat-slash-commands-intercom-surface.md) Implemented). | Расширять каталог slash с autocomplete; единая дисциплина имён с MCP; онбординг **трёх** входов, не «только палитра». |
78
79## Следующий шаг документа
80
81При согласовании границ: добавить **одну целевую неделю** или **один эталонный репозиторий** как «полигон без VS» и при необходимости вынести критерии в [architecture-policy.md](../architecture-policy.md) одной строкой версии (как навигатор, без дублирования ADR).
82
View only · write via MCP/CIDE