Correction Interview Protocol β Gamepad UI Design
Status: DESIGN β Ready for implementation review
Agent: PERISCOPE
Timestamp: 2026-05-11T00:00:00Z
Target: RG40XXV (640Γ480), D-pad + A/B/X/Y
Context: Turn-based strategy game β AI units traverse hex nodes, produce output. Player corrects misdirected output without keyboard.
1. Screen Real Estate Analysis (640Γ480)
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββ 20px TOP BAR (node name, step X/3)
ββββββββββββββββββββββββββββββββββββββββββββββββββ "NODE: Alpha-7 β CORRECTION: Step 1/3"
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β QUESTION TEXT AREA 80pxβ Question text (1-3 lines, bold)
β "What type of problem is this?" β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βΆ [1] Output is inaccurate 48pxβ Option rows (48px each)
β [2] Scope is wrong 48pxβ Max 5 visible at once
β [3] Depth is wrong 48pxβ Scroll beyond 5
β [4] Direction is wrong 48pxβ
β β [5] Format is wrong 48pxβ β = highlight bar (cursor)
β β
β [6] Missing context β Hidden (scroll down)
β [7] Not sure β show me more β Hidden (scroll down)
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
ββββββββββββββββββββββββββββββββββββββββββββββββββ 24px BOTTOM BAR
ββββββββββββββββββββββββββββββββββββββββββββββββββ A:Select B:Back X:Skip Y:Explain
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
PRECISE LAYOUT MATH:
ββββββββββββββββββββ
Screen: 640 Γ 480
Top bar: 20px
Bottom bar: 24px
βββββββββββββββββββββ
Usable: 436px vertical
Question area: 80px
βββββββββββββββββββββ
Option zone: 356px
Option height: 48px each
Visible slots: 5 (240px used of 356px)
Padding above: 20px
Padding below: 96px (partial-row tease for scroll affordance)
2. Button Map
| Button | Context | Action |
|---|---|---|
| A | On option | Select β lock choice, advance to next question |
| A | On exit confirmation | Commit correction β compile and write to node |
| B | Any question | Back β return to previous question |
| B | First question | Cancel interview β return to game |
| X | Any question | Skip / N/A β mark question as "not applicable," advance |
| Y | Any question | Explain more β unit dumps reasoning for current step |
| Y | On reasoning screen | Return to question |
| D-pad Up/Down | Always | Move highlight bar through options (wrap-around or clamped) |
| D-pad Left/Right | Multi-column layouts | Jump between columns |
| Select | Anywhere | Help overlay (shows this button map) |
| Start | Anywhere | Quick-abort (discard interview, return to game) |
3. Branching Interview Trees β All 6 Scenarios
3.0 ROOT β Question 1: Categorize the Problem
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββ NEW CORRECTION β STEP 1/3 ββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β What's wrong with this node's output? β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββ
β β βΆ Output is inaccurate ββ β 3.1
β β Scope is wrong ββ β 3.2
β β Depth is wrong ββ β 3.3
β β Direction is wrong ββ β 3.4
β β Format is wrong ββ β 3.5
β ββββββββββββββββββββββββββββββββββββββββββββββββ€β
β β Missing context ββ β 3.6 (scroll)
β β Not sure β show me more ββ β 3.7 (escape hatch)
β βββββββββββββββββββββββββββββββββββββββββββββββββ
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
βββββββββββββββ A:Pick B:Cancel Y:Explain βββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
3.1 BRANCH: Output is Inaccurate
Q2 β Pinpoint the inaccuracy type:
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββ INACCURACY β STEP 2/3 ββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β What kind of inaccuracy? β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββ
β β βΆ Factual error β wrong data, dates, names ββ
β β Source misuse β misquoted or misattributed ββ
β β Calculation error β numbers don't add up ββ
β β Contradiction β output conflicts with ββ
β β established game-state knowledge ββ
β β Hallucination β fabricated entities/events ββ
β βββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
βββββββββββββββ A:Pick B:Back X:Skip Y:Why? ββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Q3 β Correction direction:
| Q2 Choice | Q3 Presets |
|---|---|
| Factual error | "Re-check source X" / "Verify against game-state log" / "Cross-reference with other nodes" |
| Source misuse | "Re-read source Y carefully" / "Use a primary source instead" / "Attribute quote to correct author" |
| Calculation error | "Show your math step-by-step" / "Double-check inputs" / "Use different formula" |
| Contradiction | "Reconcile with known fact Z" / "Flag the contradiction for review" / "Assume game-state overrides" |
| Hallucination | "Only use entities from the game log" / "Mark all unverified claims" / "Stick to what's known" |
Q3 screen example:
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββ INACCURACY β STEP 3/3 ββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β You said: "Source misuse" β
β β
β What should the unit do? β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββ
β β βΆ Re-read source Y carefully ββ
β β Use a primary source instead ββ
β β Attribute quote to correct author ββ
β β [Write custom direction...] ββ β start text-input fallback
β βββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
βββββββββββββββ A:Commit B:Back X:Skip Y:Why? ββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
3.2 BRANCH: Scope is Wrong
Q2 β Scope direction:
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββ SCOPE β STEP 2/3 βββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β How is the scope wrong? β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββ
β β βΆ Too broad β covers too much, unfocused ββ
β β Too narrow β misses relevant areas ββ
β β Wrong focus β right breadth, wrong center ββ
β β Missing boundary β should include/exclude ββ
β β specific regions/nodes ββ
β βββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
βββββββββββββββ A:Pick B:Back X:Skip Y:Why? ββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Q3 β Correction direction:
| Q2 Choice | Q3 Presets |
|---|---|
| Too broad | "Narrow to node's immediate hex cluster" / "Focus on one faction only" / "Limit to current turn's events" |
| Too narrow | "Expand to neighboring sectors" / "Include allied-node outputs" / "Consider full faction context" |
| Wrong focus | "Refocus on {selected node/region}" / "Center on the conflict zone" / "Prioritize resource nodes" |
| Missing boundary | "Include sector A" / "Exclude sector B" / "Set radius to N hexes" |
3.3 BRANCH: Depth is Wrong
Q2 β Depth direction:
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββ DEPTH β STEP 2/3 βββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β How is the depth wrong? β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββ
β β βΆ Too shallow β surface-level, no analysis ββ
β β Too deep β overanalyzing minor details ββ
β β Key points missing β right depth but ββ
β β skipped crucial elements ββ
β β Uneven β deep on wrong parts, shallow on ββ
β β important parts ββ
β βββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
βββββββββββββββ A:Pick B:Back X:Skip Y:Why? ββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Q3 β Correction direction:
| Q2 Choice | Q3 Presets |
|---|---|
| Too shallow | "Add strategic implications" / "Include second-order effects" / "Detail the 'why' not just 'what'" |
| Too deep | "Summarize β one sentence per finding" / "Cut sub-points below level 2" / "Focus on actionable outcomes" |
| Key points missing | "Address {highlighted section}" / "Don't skip the resource trade-off" / "Cover the diplomatic angle" |
| Uneven | "Balance section weights β all equal priority" / "Shrink section A, expand section B" / "Use template distribution" |
3.4 BRANCH: Direction is Wrong
Q2 β Direction type:
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββ DIRECTION β STEP 2/3 βββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β What's wrong with the direction? β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββ
β β βΆ Wrong conclusion β facts are fine, ββ
β β logical leap is broken ββ
β β Wrong recommendation β suggests action ββ
β β that doesn't follow from facts ββ
β β Wrong framing β correct facts, incorrect ββ
β β narrative or lens-to-view-through ββ
β β Missed alternative β there's a better ββ
β β interpretation not considered ββ
β βββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
βββββββββββββββ A:Pick B:Back X:Skip Y:Why? ββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Q3 β Correction direction:
| Q2 Choice | Q3 Presets |
|---|---|
| Wrong conclusion | "Re-evaluate from premise P" / "Consider the opposite conclusion" / "Weaken confidence β this is uncertain" |
| Wrong recommendation | "Recommend {opposite action}" / "Recommend 'wait and observe'" / "Recommend a defensive stance instead" |
| Wrong framing | "Reframe as {economic/defensive/exploratory}" / "Consider the opponent's perspective" / "View through {faction}'s goals" |
| Missed alternative | "Consider strategy X instead" / "What if we do nothing?" / "Evaluate the third path: diplomacy" |
3.5 BRANCH: Format is Wrong
Q2 β Format issue:
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββ FORMAT β STEP 2/3 βββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β What's wrong with the format? β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββ
β β βΆ Wrong structure β should be bullet/brief/ ββ
β β report/table but isn't ββ
β β Section order wrong β right content, ββ
β β wrong sequence ββ
β β Too verbose β needs trimming ββ
β β Too terse β needs expansion with details ββ
β β Wrong output type β should be a plan, ββ
β β got an analysis (or vice versa) ββ
β βββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
βββββββββββββββ A:Pick B:Back X:Skip Y:Why? ββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Q3 β Correction direction:
| Q2 Choice | Q3 Presets |
|---|---|
| Wrong structure | "Restructure as bullet-point list" / "Use table format" / "Follow the standard report template" / "Output as executive summary" |
| Section order wrong | "Move {section} to top" / "Group by {theme/faction}" / "Chronological order instead" |
| Too verbose | "One sentence per bullet" / "Cut to 3 key points" / "Remove all adjectives and qualifiers" |
| Too terse | "Add one example per point" / "Expand each bullet to a paragraph" / "Include supporting evidence" |
| Wrong output type | "Reformat as a battle plan" / "Reformat as a diplomatic report" / "Reformat as an economic summary" / "Reformat as a threat assessment" |
3.6 BRANCH: Missing Context
Q2 β Identify unused context:
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββ MISSING CONTEXT β STEP 2/3 ββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β What context did the unit ignore? β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββ
β β βΆ Adjacent node outputs β neighbors already ββ
β β discovered relevant info ββ
β β Faction intelligence β known enemy ββ
β β positions, capabilities, intentions ββ
β β Terrain/hex data β resource nodes, ββ
β β chokepoints, movement costs ββ
β β Turn history β what happened in prior ββ
β β turns that's still relevant ββ
β β Player directives β standing orders, ββ
β β strategic priorities set previously ββ
β βββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
βββββββββββββββ A:Pick B:Back X:Skip Y:Why? ββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Q3 β Correction direction:
| Q2 Choice | Q3 Presets |
|---|---|
| Adjacent node outputs | "Incorporate {node-name}'s last report" / "Check nodes within N hex radius" / "Sync with allied cluster" |
| Faction intelligence | "Use known {faction} positions" / "Factor in enemy fleet sightings" / "Consider {faction} declared intentions" |
| Terrain/hex data | "Account for terrain modifiers" / "Include resource node analysis" / "Map movement corridors" |
| Turn history | "Review turn {N} events" / "Consider the trend over last 3 turns" / "Check for unresolved prior incidents" |
| Player directives | "Align with standing order: {directive}" / "Prioritize per player's strategic goal" / "Check mission parameters" |
3.7 ESCAPE HATCH: "Not Sure β Show Me More"
Triggered when player selects "Not sure β show me more" from Q1, or presses Y at any question.
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββ EXPLAINING β NODE ALPHA-7 ββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β The unit explains its reasoning: β
β β
β "I analyzed hex cluster [A3..C5] and found β
β enemy presence at B4. Based on terrain β β
β mountain pass at C3 β I concluded that the β
β enemy will advance through the pass. My β
β recommendation to fortify A3 assumes the β
β pass is the only route. I used source: β
β Scout report T+3, Terrain map (static). β
β I did NOT consider: sea route at D2 or β
β the allied fleet position at E1." β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββ
β β βΆ [Continue correction interview] ββ
β β [Pivot: "You missed the sea route"] ββ β shortcut into 3.6 branch
β β [Pivot: "Your conclusion is wrong"] ββ β shortcut into 3.4 branch
β β [Pivot: "That terrain data is stale"] ββ β shortcut into 3.1 branch
β β [Write custom feedback...] ββ
β βββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
βββββββββββββββ A:Pick B:Back Y:More detail βββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Escalation ladder for Y (Explain more):
Y press 1 β Unit explains top-level reasoning (sources, constraints, logic chain) [shown above]
Y press 2 β Unit shows what it considered AND rejected, with reasons
Y press 3 β Unit shows the raw hex-state data it operated on (full dump)
Y press 4 β Cycles back to level 1
At any escalation level, the player can select a pivot shortcut to jump directly into the relevant correction branch.
4. Exit: Compiling the Correction
After Q3 selection (or skip), the player sees:
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββ REVIEW ββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Correction for Node: ALPHA-7 β
β β
β Problem: Format is wrong β
β Specific: Wrong output type β
β Direction: Reformat as a threat assessment β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββ
β β βΆ Commit this correction ββ
β β Edit and recommit ββ β restart interview
β β Discard and cancel ββ
β βββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
βββββββββββββββ A:Commit B:Back Start:Discard ββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
On commit, the following is written to node_player_prompts:
{
"node_id": "alpha-7",
"timestamp": "T+12",
"correction": {
"category": "format",
"subcategory": "wrong_output_type",
"direction": "Reformat as a threat assessment β prioritize enemy capabilities over economic summary.",
"origin": "player_correction_interview"
},
"interview_path": ["format", "wrong_output_type", "reformat_threat_assessment"]
}
5. Full Interaction Flow Diagram
GAME MAP
β
β Player selects node β opens radial menu β "Correct Output"
βΌ
ββββββββββββββββ B (cancel) βββββββββββββ
β Q1: TYPE? ββββββββββββββββββββΆβ GAME MAP β
β (6 options β βββββββββββββ
β + escape β
β hatch) βββ Y βββΆ EXPLAIN (3 levels deep)
ββββββββ¬ββββββββ β
β A (select) β Player can pivot from explain
βΌ β into any branch via shortcuts
ββββββββββββββββ β
β Q2: SPECIFY βββββββββββββββ
β (3-5 opts, β
β branch- βββ X βββΆ skip Q2 (N/A), advance with null subcategory
β dependent) β
ββββββββ¬ββββββββ
β A
βΌ
ββββββββββββββββ
β Q3: DIRECT β
β (3-6 presetsβββ X βββΆ skip Q3 (N/A), advance with null direction
β per Q2 β
β choice) β
ββββββββ¬ββββββββ
β A
βΌ
ββββββββββββββββ
β REVIEW βββ B βββΆ Back to Q3
β COMMIT βββ Start βββΆ Discard, return to map
ββββββββ¬ββββββββ
β A (commit)
βΌ
ββββββββββββββββ
β WRITE TO β
β node_player_β
β prompts β
ββββββββ¬ββββββββ
β
βΌ
GAME MAP (node re-processes with correction)
6. Scroll Behavior Specification
ββ VISIBLE WINDOW (5 items) βββββββββββββββββββββββ
β β
β βΆ [1] First visible option β β highlight
β [2] Second β
β [3] Third β
β [4] Fourth β
β [5] Fifth (partial reveal of [6] as cue) β β scroll affordance
β ββββββββββββββββββββββββββββββββββββββββββββββ β β fade/scrollbar
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SCROLLED DOWN: β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββ β β fade/scrollbar
β βΆ [5] Fifth (now at top) β β highlight
β [6] Sixth β
β [7] Seventh β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
RULES:
β’ D-pad Down at last visible option: scroll one row down (new top becomes visible item 2)
β’ D-pad Up at first visible option: scroll one row up (new bottom becomes visible item N-1)
β’ Highlight stays at current index regardless of scroll position
β’ Wrap-around: OFF (clamped at first/last option). This prevents disorientation.
β’ Scrollbar: 4px right edge, proportional thumb, visible only when scrolling
β’ 5th row always shows partial clipping of 6th option when more exist (scroll affordance)
7. State Machine for the Entire Interview
States:
IDLE β Not interviewing
Q1_CATEGORY β Choosing problem type (7 options: 6 categories + escape hatch)
Q2_SPECIFY β Narrowing within chosen branch (3-5 options)
Q3_DIRECT β Selecting correction direction (3-6 presets per Q2)
EXPLAIN_L1 β Unit reasoning, level 1
EXPLAIN_L2 β Unit reasoning, level 2 (rejected alternatives)
EXPLAIN_L3 β Unit reasoning, level 3 (raw hex-state dump)
REVIEW β Confirmation before commit
COMMIT β Writing to node_player_prompts (transient, auto-advances)
Transitions:
IDLE β Q1_CATEGORY [player opens correction on node]
Q1_CATEGORY β Q2_SPECIFY [A on category option]
Q1_CATEGORY β EXPLAIN_L1 [A on "Not sure" OR Y press]
Q1_CATEGORY β IDLE [B press]
Q2_SPECIFY β Q3_DIRECT [A on specify option]
Q2_SPECIFY β Q1_CATEGORY [B press]
Q2_SPECIFY β REVIEW [X press β skip Q3, null direction]
Q3_DIRECT β REVIEW [A on direction option]
Q3_DIRECT β Q2_SPECIFY [B press]
Q3_DIRECT β REVIEW [X press β null direction]
EXPLAIN_L1 β Q1_CATEGORY [A on "Continue interview"]
EXPLAIN_L1 β Q2_SPECIFY [A on pivot shortcut β enters relevant branch at Q2]
EXPLAIN_L1 β EXPLAIN_L2 [Y press]
EXPLAIN_L2 β EXPLAIN_L3 [Y press]
EXPLAIN_L3 β EXPLAIN_L1 [Y press β cycle]
EXPLAIN_{N} β Q1_CATEGORY [B press β return to question that triggered explain]
REVIEW β COMMIT [A on "Commit"]
REVIEW β Q1_CATEGORY [A on "Edit and recommit"]
REVIEW β IDLE [A on "Discard" OR Start press]
COMMIT β IDLE [auto after write succeeds]
8. Edge Cases & Failure Modes
| Case | Handling |
|---|---|
| Player skips all 3 questions (X,X,X) | Commit with {category: null, subcategory: null, direction: "re-evaluate from scratch"} as default |
| Node has no prior output yet | Q1 options change to: "It hasn't started yet" / "Start with template X" |
| Player re-corrects a node they already corrected | Show prior correction as context: "You previously said: ..." with option to amend or overwrite |
| Unit's reasoning is too long for EXPLAIN screen | Scrollable text box with Y to expand, D-pad to scroll |
| 2+ problems simultaneously | After commit, offer: "Apply another correction to this node?" (loop back to Q1) |
| Player wants to abort mid-commit | Start button = full abort at any stage, no write |
| Interview timeout (player idle 60s) | Auto-close, no write, return to map |
9. Implementation Notes
Data structures to define:
CorrectionCategoryenum (6 values)CorrectionSubcategoryper-category stringsCorrectionPresetper-subcategory string arraysCorrectionPath=[category, subcategory?, direction?]NodeCorrection={node_id, timestamp, path, compiled_direction}
Files to touch:
node_player_promptsβ write target (append or overwrite per node)- UI screens:
correction_interview_screen.c(or equivalent) - Input handler: add branching state machine
Key constraint:
- No text input required. The "Write custom..." option at Q3 opens a simple character selection grid (cellphone-style T9) only as a fallback. 95%+ corrections should complete via preset selections.
End of Correction Interview Protocol.