| 1 | # ADR 0091: Гипотеза — PFD instrument deck в режиме отладки (MFD DebugStack не исчерпывает) |
| 2 | |
| 3 | **Статус:** Proposed |
| 4 | **Дата:** 2026-04-23 |
| 5 | |
| 6 | ## Связанные ADR |
| 7 | |
| 8 | | ADR | Роль | |
| 9 | |-----|------| |
| 10 | | [0002](0002-debug-human-agent-parity.md) | единый снимок отладки | |
| 11 | | [0011](0011-debug-situational-awareness.md) | ситуационная осведомлённость без «только нижняя панель» | |
| 12 | | [0021](0021-pfd-mfd-cockpit-attention-model.md) | PFD / MFD и внимание | |
| 13 | | [0063](0063-instrument-deck-named-composition-one-anchor.md) | Instrument deck, один якорь | |
| 14 | | [0073](0073-pfd-instrument-deck.md) | каталог вариантов PFD-deck | |
| 15 | | [0075](0075-ui-topic-index-and-mfd-page-conventions.md) | страницы Mfd | |
| 16 | |
| 17 | --- |
| 18 | ## Контекст |
| 19 | |
| 20 | Сейчас детальный контур отладки (стек, locals, согласование с редактором и MCP) сосредоточен на **вторичном контуре Mfd** (страница «Отладка · стек») и доке инструментов. Практика и продуктовая интуиция: **одной поверхности Mfd может не хватить**, потому что при останове одновременно важны: |
| 21 | |
| 22 | - позиция в коде (лобовой / редактор); |
| 23 | - **краткая** сводка состояния отладки в зоне **приоритетного** взгляда (типично PFD); |
| 24 | - **развёрнутая** картина (глубокий стек, дерево locals, точки останова, при необходимости потоки) — сейчас естественно тянет в Mfd или в док. |
| 25 | |
| 26 | Модель кокпита (PFD = краткая ситуация, Mfd = детальные приборы) **формально соблюдается**, но **физически** весь «сигнал остановы» оказывается либо вбок, либо в одной Mfd-странице, с риском переключений и вертикального скролла. |
| 27 | |
| 28 | <a id="adr0091-hypothesis"></a> |
| 29 | |
| 30 | ## Предлагаемое направление (без фиксации реализации) |
| 31 | |
| 32 | **Гипотеза:** в активной DAP-сессии и/или при `IsExecutionStopped` иметь **отдельный, минимальный** состав строки/деска на **PFD** (условно *debug situational deck*): например «пауза / бег», «файл:строка», верх кадра стека, счётчик активных брейкпоинтов — в объёме **1–3 readout**, не дублируя полноразмерный отладчик. |
| 33 | |
| 34 | **Mfd** остаётся местом **полных** списков (стек, locals, дальше — вкладки/секции по мере роста). |
| 35 | |
| 36 | **Риск** перегруза PFD: deck показывать **только** в контексте отладки или только при останове — политика visibility отдельно (не смешивать с штатной WH/EICAS без правил). |
| 37 | |
| 38 | <a id="adr0091-open-questions"></a> |
| 39 | |
| 40 | ## Открытые вопросы |
| 41 | |
| 42 | - Критерий «Mfd достаточно» vs «нужен PFD-deck» (user research, узкие раскладки, один монитор). |
| 43 | - Связь с **пресетом** `presentation` / отдельным profile «debug session» (см. [0090](0090-launch-profiles-and-debug-startup-configurations.md)) — alternative к постоянному деску. |
| 44 | - Не дублировать [0011](0011-debug-situational-awareness.md); уточнить, что **ситуационная полоска** и **PFD-deck** — разные масштабы (полоса vs якорь deck). |
| 45 | |
| 46 | <a id="adr0091-consequences-if-accepted"></a> |
| 47 | |
| 48 | ## Последствия, если гипотеза примется позже |
| 49 | |
| 50 | - Явные слоты/канал для данных отладки в композиторе PFD (см. [0063](0063-instrument-deck-named-composition-one-anchor.md), [0068](0068-deck-row-payload-and-presentation-projection.md)). |
| 51 | - Тесты регрессии: не ухудшить Dark Cockpit / плотность PFD вне отладки. |
| 52 | |
| 53 | <a id="adr0091-rejected"></a> |
| 54 | |
| 55 | ## Отклонённые на этой стадии фиксированные решения |
| 56 | |
| 57 | - «Сделать PFD полной копией панели отладки» — **не цель**; дублирование противоречит разделению PFD/Mfd. |
| 58 | - «Оставить только Mfd и не трогать PFD» — оставлено как **базовая** линия до проверки гипотезы; этот ADR фиксирует **сомнение**, что одной Mfd-страницы может хватить не всем сценариям. |
| 59 | |