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