Forge
markdowndeeb25a2
1<!-- English translation of adr/0091-pfd-debug-situational-deck-hypothesis.md. Canonical Russian: ../../adr/0091-pfd-debug-situational-deck-hypothesis.md -->
2
3# ADR 0091: Hypothesis - PFD instrument deck in debug mode (MFD DebugStack does not exhaust)
4
5**Status:** Proposed
6**Date:** 2026-04-23
7
8## Related ADRs
9
10| ADR | Role |
11|-----|------|
12| [0002](0002-debug-human-agent-parity.md) | single debug snapshot |
13| [0011](0011-debug-situational-awareness.md) | situational awareness without "bottom bar only" |
14| [0021](0021-pfd-mfd-cockpit-attention-model.md) | PFD/MFD and Attention |
15| [0063](0063-instrument-deck-named-composition-one-anchor.md) | Instrument deck, one anchor |
16| [0073](0073-pfd-instrument-deck.md) | catalog of PFD-deck options |
17| [0075](0075-ui-topic-index-and-mfd-page-conventions.md) | Mfd Pages |
18
19---
20## Context
21
22Currently, the detailed debug loop (stack, locals, editor and MCP alignment) is focused on the **Mfd secondary loop** (Debug · Stack page) and the tools dock. Practice and product intuition: **one Mfd surface may not be enough**, because when stopping, the following are simultaneously important:
23
24- position in the code (frontal / editor);
25- **brief** summary of debug status in **priority** view area (typically PFD);
26- **expanded** picture (deep stack, locals tree, breakpoints, threads if necessary) - now it’s natural to go to Mfd or to the dock.
27
28The cockpit model (PFD = brief situation, Mfd = detailed instruments) **formally respected**, but **physically** the entire “stop signal” ends up either sideways or in one Mfd page, with the risk of switching and vertical scrolling.
29
30<a id="adr0091-hypothesis"></a>
31
32## Suggested direction (without committing implementation)
33
34**Hypothesis:** in an active DAP session and/or with `IsExecutionStopped` have a **separate, minimal** row/deck composition on **PFD** (conditionally *debug situational deck*): for example, “pause / run”, “file:line”, top of the stack frame, active breakpoints counter - in the amount of **1–3 readout**, without duplicating the full-size one debugger
35
36**Mfd** remains the place for **full** lists (stack, locals, then tabs/sections as they grow).
37
38**Risk** of PFD overload: show deck **only** in the context of debugging or only when stopped - visibility policy separately (do not mix with standard WH/EICAS without rules).
39
40<a id="adr0091-open-questions"></a>
41
42## Open questions
43
44- Criterion “Mfd is enough” vs “you need a PFD-deck” (user research, narrow layouts, one monitor).
45- Communication with **preset** `presentation` / separate profile “debug session” (see [0090](0090-launch-profiles-and-debug-startup-configurations.md)) - alternative to the permanent desk.
46- Do not duplicate [0011](0011-debug-situational-awareness.md); clarify that **situational strip** and **PFD-deck** are different scales (strip vs anchor deck).
47
48<a id="adr0091-consequences-if-accepted"></a>
49
50## Consequences if the hypothesis is accepted later
51
52- Explicit slots/channel for debug data in PFD composer (see [0063](0063-instrument-deck-named-composition-one-anchor.md), [0068](0068-deck-row-payload-and-presentation-projection.md)).
53- Regression tests: do not degrade Dark Cockpit / PFD density outside of debug.
54
55<a id="adr0091-rejected"></a>
56
57## Fixed solutions rejected at this stage
58
59- “Make the PFD a complete copy of the debug panel” - **not the goal**; duplication contradicts the PFD/Mfd split.
60- “Leave only Mfd and do not touch PFD” - left as the **baseline** line until the hypothesis is tested; This ADR captures the **doubt** that one Mfd page may not be enough for all scenarios.
View only · write via MCP/CIDE