ADR 0133: Commander cockpit — общая модель внимания и instrument deck по роли¶
Статус: Proposed
Дата: 2026-05-19
Связанные ADR¶
| ADR | Роль |
|---|---|
| 0021 | Канон зон: Forward, Pfd, Mfd, Eicas, Hud — семантика не меняется |
| 0025 | AttentionZoneCanonicalIds в контрактах; capabilities ↔ зона |
| 0073 | Каталог приборов; здесь — deck по роли Commander |
| 0010 | Пресеты overlay: pilot vs commander без подмены семантики зон |
| 0120 | Forward = редактор или Intercom |
| 0132 | Transport, multi-client, паритет ролей; MCC ≠ message store |
| 0080 | Intercom как командный канал |
| 0121 | IOP: намерение, верификация, наблюдаемая дельта |
Вне ADR (playbook / экосистема)¶
| Документ | Роль |
|---|---|
| cide-design-handbook-v1.md | §2.2 иерархия внимания; дизайн-критерии |
| iop-manifest-v1.md | IOP use case; среда команды |
| Mission Control Center (project card) | Web-реализация Check / Control (и Companion) — не primary workplace |
Резюме¶
Два яруса продуктов (нормативно):
| Ярус | Поверхность | Назначение |
|---|---|---|
| Primary workplace | Cascade IDE (Avalonia) | Pilot и Commander — полный кокпит: зоны внимания 0021, мультимонитор 0017, in-proc MCP, редактор / reveal |
| Companion tier (web) | PWA / браузер | Companion · Check · Control — спутник, не замена IDE; тот же Intercom transport 0132 |
Commander — роль (Lead / PO / QA). Основное рабочее место Commander — CIDE (preset commander). Веб — участие в канале и обзор миссии без претензии на полный кокпит.
| Роль | Primary (CIDE) | Web (3C) |
|---|---|---|
| Pilot | Редактор, Roslyn, полный deck | Companion: Intercom read/лёгкий compose; deep link |
| Commander | Intercom-first Forward, mission deck, presentation | Check + Control (+ Companion Intercom); trace, verify, digest |
| Зона (семантика 0021) | Commander в CIDE | Web (упрощённо, один viewport) |
|---|---|---|
| Forward | Intercom (полный) | Companion — compose, агент, slash subset |
| Pfd | Mission trace, requirements | Control — обзор, цели, heatmap |
| Mfd | git, KB, digests | Check — verify ADR↔код, статус, ссылки в CIDE |
Принято направление (Proposed):
- Идентификаторы зон — общий канон (
forward,pfd,mfd, …) для SDK и UX-языка (0025); полный deck и топология — только primary (CIDE). - Паритет в Intercom — Lead не второго сорта: тот же transport, compose и агент доступны в Companion (web) и в Commander CIDE; отсутствие мультимонитора на web не лишает голоса в канале.
- MCC / team-console — продуктовое имя Control · Check (и модуль Companion), не «веб-Commander как главный стол».
- MVP web может начать с read-only Check/Control; расширение Companion (compose) — по transport 0132, без цели заменить CIDE.
Контекст¶
В 0132 зафиксированы transport и паритет ролей: Lead не должен жить в «втором контуре» (CIDE у dev + MCC без голоса). Отдельно обсуждалось: у CIDE сильны архитектура внимания, кокпит, Intercom как центр сессии — это переносимо на командира, а не только на разработчика с редактором.
Риск без этого ADR: MCC остаётся плоским дашбордом (таблицы, графы), а Lead для агента и slash уходит в третий продукт; модель внимания IOP не масштабируется на команду.
Проблема¶
- Разрыв метафор: dev думает кокпитом (Forward/PFD/MFD); Lead — «открой MCC в браузере» без той же дисциплины внимания.
- Дублирование продуктов: Intercom Web + MCC + опционально CIDE = три UX без общего deck contract.
- Недоиспользование SDK: зоны в 0025 не связывают CIDE и web Commander явной ролью и каталогом приборов.
Решение¶
1. Commander — именованная роль, не «урезанный IDE»¶
Commander — оператор с полным паритетом в Intercom (обсуждение, @, slash subset, агент как партнёр) и частичным паритетом по коду (attach excerpt, трассировка, deep link в CIDE для reveal/commit).
Не путать с:
- Observer — read-mostly, без обязательного compose;
- Pilot — полный редактор и in-proc MCP.
Роль задаёт default preset и instrument deck, не ACL transport (ACL — в 0132).
2. Instrument deck Commander (нормативный черновик)¶
Семантика зон — 0021. Ниже — продуктовое наполнение v0→v1; детали UI — handbook + 0073.
| Зона | Вопрос (0021) | Приборы Commander (кандидаты) |
|---|---|---|
| Forward | Что делаю сейчас? | Intercom composer + topic tabs; агент в канале; slash subset; attach chips |
| Pfd | Где в миссии? | Mission board; trace graph «требование → ADR → ветка → файлы»; ADR/kb indicator (0061 — кандидат) |
| Mfd | Что вторично? | Git overview; hybrid search; KB router (read); «open in CIDE»; дайджест SA |
| Eicas | Что тревожит? | Пробелы трассировки; drift канон/код; failed checks (не toast-шторм) |
| Hud | Контекст на лобовом | Активная цель релиза / requirement id; краткий статус transport sync |
Pilot deck в CIDE не меняется; пресет commander в CIDE — переключение deck при тех же zone ids (0010).
3. Архитектура поверхностей¶
┌─────────────────────────────────────┐
│ Shared: zone ids + IOP + transport │
└──────────────────┬──────────────────┘
┌───────────────────────────┼───────────────────────────┐
▼ ▼ ▼
CIDE preset team-console / MCC (опц.) CIDE
`commander` PWA Commander layout pilot preset
Avalonia render web render для dev
│ │
└──────── Forward = Intercom (compose) ──────────────┘
same event log [0132]
- Контракты (
CascadeIDE.Contracts): рольcommanderв metadata capability/deck descriptor (фаза B — вместе с 0025 фаза C). - Рендер: CIDE (Avalonia) и MCC (web) — разные host; общая семантика зон и список instrument id.
3.1 Презентация: web vs CIDE (мультимонитор)¶
Наблюдение (продуктовое): на вебе (PWA, SPA) нельзя в общем случае обещать ту же мультиоконность по мониторам, что в CIDE (0017: TopLevel, presentation, MfdHostWindow / PfdHostWindow, display.screens). Браузер — по сути один viewport на вкладку; window.open / Picture-in-Picture — костыли без стабильного плейсмента на второй монитор и без паритета с presentation-грамматикой.
| Возможность | CIDE (Avalonia) | MCC / team-console (web) |
|---|---|---|
| Зоны PFD / Forward / MFD в одном окне | да | да (split / tabs / responsive layout) |
Разнести зоны по мониторам ((P+F)(M) и т.д.) |
да (0017) | не v0; не норма для PWA |
| Сохранение геометрии окон на дисплеях | settings.toml / presentation |
ограничено браузером |
| Commander с двумя физическими экранами | preset commander + presentation |
рекомендация: CIDE или второй браузер вручную — не «из коробки» |
Нормативно для 0133:
- Семантика зон (forward, pfd, mfd) — общая; топология экранов — не общая между CIDE и web.
- team-console — имя единого web-shell (одна вкладка: Forward + Mission), не обещание multi-monitor cockpit. Альтернатива: две вкладки («Intercom» / «Mission») на одном мониторе — хуже, но честнее, чем симуляция 0017 в браузере.
- Commander на двух мониторах (Intercom на одном, trace на другом) — out of scope для MCC PWA v0–v1; in scope для CIDE preset
commander+ 0017. Remote/phone — см. 0117 (другая ось). - Web Commander фокусируется на плотности одного экрана (handbook §2.2: иерархия внутри viewport) и deep link в CIDE, когда нужен reveal или вторая физическая поверхность.
Anti-pattern: проектировать MCC как «веб-клон 0017» с обязательным выносом MFD на второй монитор.
3.2 Web = Companion · Check · Control (не primary workplace)¶
Позиция продукта: браузер/PWA — спутниковый ярус IOP-контура. Пользователь не должен вынужденно жить в вебе так же, как пилот или командир в основном кокпите CIDE.
| Режим (3C) | Вопрос | Типичные приборы | Не обещаем |
|---|---|---|---|
| Companion | «Я в контексте команды?» | Intercom лента, compose, агент, @, slash subset, push |
Полный editor, reveal in-proc |
| Check | «Верно ли связано и согласовано?» | Trace ADR↔код, attach excerpt, diff summary, QA slash | Commit, правка канона |
| Control | «Как идёт миссия?» | Mission board, heatmap, digests, EICAS-style gaps | Мультимонитор, полный instrument deck |
Связь с ролями:
- Commander в CIDE — primary: все зоны + 0017.
- Commander на web — 3C: достаточно для совещания, телефона, QA-проверки; тяжёлая сессия → открыть CIDE (deep link, preset
commander). - Pilot на web — в основном Companion (не отрывать от треда); код — в CIDE.
MCC (project-id): маркетинговое имя Mission Control; архитектурно — реализация Control + Check (и при необходимости Companion) в одном PWA, не дублирующая CIDE.
Anti-patterns:
- «Lead работает только в браузере» как целевой steady state для Commander.
- «MCC = Commander cockpit» без оговорки primary = CIDE.
- Три отдельных web-продукта на каждую C — не требуется; достаточно режимов/вкладок в одном shell.
4. Связь с 0132¶
| Тема | 0132 | 0133 |
|---|---|---|
| Event log, ACL, wire attach | Да | Ссылается |
clientKind telemetry |
cide / web / mcc / agent | rolePreset + workplaceTier: primary | companion |
| MCC read-only в MVP | Допустимо как фаза | Check/Control first; Companion compose по мере transport |
| Intercom Web | Transport client | Companion-модуль; не primary workplace |
Anti-pattern (повтор для связки): MCC с собственным чатом или compose только «в другом приложении» без Forward Commander в той же оболочке.
5. Capability matrix (Commander)¶
| Capability | Commander CIDE (primary) | Web 3C |
|---|---|---|
| compose в Intercom | да (Forward) | да (Companion; BFF) |
| slash | полный / subset | subset |
| agent | in-proc MCP | BFF + policy |
| attach re-resolve | в редакторе | excerpt + deep link → CIDE |
| git/kb write | по политике pilot | нет (Check/Control) |
| mission trace / heatmap | PFD/MFD full | Control / Check |
| multi-monitor presentation | да 0017 | нет |
Последствия¶
Положительные¶
- Lead и dev делят одну ментальную модель кокпита; onboarding IOP проще.
- MCC получает продуктовую форму, а не «ещё один портал».
- Instrument deck можно эволюционировать по 0073 без смены transport.
Отрицательные / риски¶
- Два рендера (Avalonia + web) — нужен общий каталог instrument id и тесты parity compose.
- Пресет
commanderв CIDE может размыть фокус «IDE только для кода» — митигация: default Intercom-first, редактор скрыт/узок. - Web без 0017: Lead с двумя мониторами может почувствовать регресс vs CIDE — митигация: явный positioning (§3.1), CIDE
commanderдля power users, опционально ручной второй браузер (не канон).
Фазы (черновик)¶
| Фаза | Содержание | Где |
|---|---|---|
| 0 | Этот ADR + обновление MCC project card | cascade-ide, agent-notes |
| 1 | Документ Commander instrument catalog (id → зона → data source) | docs/design/ или MCC repo |
| 2 | CIDE: TOML preset commander (Forward=Intercom, deck stub) |
cascade-ide |
| 3 | MCC PWA: layout PFD+Forward+MFD + transport (0132 ф.2–3) | mission-control-center |
| 4 | Contracts: rolePreset + deck descriptor в capability map |
CascadeIDE.Contracts |
Зависимости: transport MVP — 0132 ф.2; Commander Forward compose — не откладывать за «только SA-дашборд».
Критерии принятия (Accepted)¶
- [ ] MCC README описывает Commander cockpit и таблицу зон (не только «дашборд SA»).
- [ ] 0132 ссылается на этот ADR в §1.1 и фазах.
- [ ] Зафиксирован черновик Commander instrument catalog (минимум 5 instrument id).
- [ ] Решение: team-console одна PWA vs два репо — issue/запись в MCC card.
История¶
| Дата | Изменение |
|---|---|
| 2026-05-19 | Proposed: Commander role; shared attention zones; MCC as cockpit; link 0132 parity. |
| 2026-05-19 | §3.1: web ≠ multi-monitor [0017]; team-console — однооконный shell, не клон presentation. |
| 2026-05-19 | §3.2: web = Companion/Check/Control; primary workplace только CIDE; MCC не главный стол Commander. |