- Total Items: 45
- High Priority: 12 items
- Medium Priority: 22 items
- Low Priority: 11 items
By Complexity:
- Simple: 22 items
- Medium: 19 items
- Complex: 4 items
These 6 items provide the biggest user experience improvements with minimal development effort:
- [HUD-1] Add DEFCON Status Display - Show current DEFCON level prominently on HUD
- [HUD-2] Uncomment Launch Origin Confidence - Display attribution confidence data
- [FEEDBACK-1] Order Submission Confirmation - Add toast notifications for player actions
- [FEEDBACK-2] Intercept Success/Failure Visualization - Dramatic visual feedback for intercept outcomes
- [TRANSITION-3] Game Phase Transitions - Visual overlays for phase changes
- [TUTORIAL-1] Tutorial/Onboarding - First-time guidance on controls and objectives
These 2 items are essential for realistic gameplay and should be prioritized:
- [HUD-7] Missile Progress Based on Start Time - Missile should start partway along trajectory when game begins mid-scenario
- [HUD-8] Launch Origin Uncertainty Visualization - Show realistic intelligence uncertainty with region/circle instead of precise point
- Impact: HIGH
- Complexity: Simple
- Description: Current DEFCON level is only shown in ActionPanel status indicators at the bottom of the screen. Not prominently displayed in main HUD.
- Suggested Fix: Add DEFCON status to Globe3D overlay alongside timer and tracking status. Should be highly visible with color coding (red for DEFCON 1, amber for 2-3, etc.)
- File:
src/client/components/Globe3D.tsx(lines 326-343)
- Impact: HIGH
- Complexity: Simple
- Description: Launch origin data is commented out in Globe3D (lines 354-365). Players have no visibility into attribution confidence.
- Suggested Fix: Uncomment and style the launch origin overlay. This is critical intelligence that affects decision-making.
- File:
src/client/components/Globe3D.tsx(lines 354-365)
- Impact: MEDIUM
- Complexity: Medium
- Description: No clear HUD element showing if US has launched retaliatory strikes and their targets.
- Suggested Fix: Add a status indicator showing active US launches with target count and ETA.
- File:
src/client/components/Globe3D.tsx
- Impact: MEDIUM
- Complexity: Simple
- Description: No indicator showing how many intercepts have been launched or are in flight.
- Suggested Fix: Add counter overlay showing "Intercepts: X/Y" (active/total).
- File:
src/client/components/Globe3D.tsx
- Impact: MEDIUM
- Complexity: Medium
- Description: Russia/China nuclear alert status exists in game state but not displayed to player.
- Suggested Fix: Add small indicators showing foreign posture: Russia alert level, China alert level, hair-trigger risk levels.
- File:
src/client/App.tsxor new HUD component
- Impact: LOW
- Complexity: Medium
- Description: Advisors have stress and loyalty metrics that affect behavior, but players can't see this.
- Suggested Fix: Add subtle indicators in ParticipantsModal showing advisor state (icons or color coding).
- File:
src/client/components/ParticipantsModal.tsx
- Impact: HIGH
- Complexity: Medium
- Description: Missile progress doesn't account for when the game starts. If starting with 10 minutes remaining (halfway through a 20-minute scenario), the missile should already be halfway to target, not at launch origin.
- Suggested Fix: Calculate initial missile position based on
(initialTimeSeconds - currentTimeSeconds) / initialTimeSecondsand interpolate along trajectory arc. Missile should start at appropriate position on its flight path. - File:
src/client/components/Globe3D.tsx(missile position calculation)
- Impact: HIGH
- Complexity: Medium
- Description: Initial missile trajectory is too precise. Launch point should show uncertainty covering a huge area (parts of China, North Korea, Russia, and surrounding ocean). Trajectory line points to exact location when it should show uncertainty.
- Suggested Fix:
- Replace precise launch point with uncertainty circle/region on globe
- Trajectory line should stop well above the uncertain origin area (not point to specific spot)
- Circle size should decrease as attribution confidence increases over time
- Visual should convey "missile came from somewhere in this region" not "exact launch coordinates"
- File:
src/client/components/Globe3D.tsx(threat track visualization)
- Impact: HIGH
- Complexity: Medium
- Description: When player sends chat messages or uses DebugPanel, no clear loading state or success confirmation.
- Suggested Fix: Add toast notifications or inline feedback for all player actions ("Order received", "Launching intercept...", etc.)
- File:
src/client/App.tsx,src/client/components/DebugPanel.tsx
- Impact: HIGH
- Complexity: Complex
- Description: Intercept status changes (success/failure) happen with color change only. No dramatic visual feedback.
- Suggested Fix: Add particle effects, flash, or explosion animation when intercept succeeds/fails.
- File:
src/client/components/Globe3D.tsx
- Impact: MEDIUM
- Complexity: Medium
- Description: US nuclear launches appear as green arcs but no dramatic "launch initiated" moment.
- Suggested Fix: Add launch animation, screen flash, or dramatic overlay when nuclear order is executed.
- File:
src/client/components/Globe3D.tsx
- Impact: MEDIUM
- Complexity: Medium
- Description: Chat messages disappear into feed with no acknowledgment that AI received them.
- Suggested Fix: Add "typing" indicators when advisors are responding, or "delivered/read" receipts.
- File:
src/client/components/ChatFeed.tsx
- Impact: MEDIUM
- Complexity: Simple
- Description: ActionPanel buttons disable but don't explain WHY they're disabled.
- Suggested Fix: Add tooltips or hover states explaining why actions are unavailable ("Already at DEFCON 1", "No active threats to intercept").
- File:
src/client/components/ActionPanel.tsx
- Impact: LOW
- Complexity: Simple
- Description: Opening hotline has no "connecting" animation or feedback.
- Suggested Fix: Add "Establishing secure connection..." animation when hotline is opened.
- File:
src/client/components/HotlinePanel.tsx
- Impact: MEDIUM
- Complexity: Simple
- Description: Timer counts down but there's no visual sense of urgency as time runs out.
- Suggested Fix: Add pulsing, color changes, or screen edge warnings as impact approaches (e.g., last 60 seconds).
- File:
src/client/components/Globe3D.tsx
- Impact: MEDIUM
- Complexity: Simple
- Description: Backtick (`) for debug and ESC for closing panels are undocumented in UI.
- Suggested Fix: Add keyboard shortcuts legend/help panel (accessible via "?" key) or show hints on first load.
- File:
src/client/App.tsx
- Impact: MEDIUM
- Complexity: Simple
- Description: Many status texts use slate-400/500 on dark backgrounds, failing WCAG contrast ratios.
- Suggested Fix: Audit and increase contrast ratios for all text elements to meet WCAG AA standards.
- File: Multiple (Global CSS and all components)
- Impact: MEDIUM
- Complexity: Medium
- Description: Interactive elements lack aria-labels (buttons, modals, inputs).
- Suggested Fix: Add comprehensive aria-labels, aria-describedby, and role attributes for screen readers.
- File: All component files
- Impact: LOW
- Complexity: Medium
- Description: When modals open (DebugPanel, HotlinePanel, ParticipantsModal), focus doesn't trap.
- Suggested Fix: Implement focus trap and focus management (first element on open, return focus on close).
- File:
src/client/components/DebugPanel.tsx,src/client/components/HotlinePanel.tsx,src/client/components/ParticipantsModal.tsx
- Impact: LOW
- Complexity: Complex
- Description: Globe requires mouse/touch for rotation. No keyboard controls.
- Suggested Fix: Add keyboard controls for rotating globe (arrow keys) or provide alternative 2D view toggle.
- File:
src/client/components/Globe3D.tsx
- Impact: MEDIUM
- Complexity: Medium
- Description: Trajectory colors (red=threat, green=US, cyan=intercept) rely solely on color differentiation.
- Suggested Fix: Add patterns, labels, or shapes to differentiate trajectory types for colorblind users.
- File:
src/client/components/Globe3D.tsx
- Impact: HIGH
- Complexity: Medium
- Description: Globe viewport is small on mobile (flex-1 md:w-3/5). Critical information may be hard to see.
- Suggested Fix: Optimize Globe overlays for mobile - larger text, repositioned elements, or collapse some info into expandable panel.
- File:
src/client/components/Globe3D.tsx,src/client/App.tsx
- Impact: MEDIUM
- Complexity: Simple
- Description: ActionPanel uses grid-cols-2 md:grid-cols-3. On very small screens, buttons may be cramped.
- Suggested Fix: Test on actual mobile devices and adjust grid layout or use vertical stack on smallest screens.
- File:
src/client/components/ActionPanel.tsx
- Impact: LOW
- Complexity: Simple
- Description: Messages max-w-[85%] on mobile may still be too wide for very small screens.
- Suggested Fix: Adjust max-width breakpoints for ultra-small screens (max-w-[95%] sm:max-w-[85%]).
- File:
src/client/components/ChatFeed.tsx
- Impact: MEDIUM
- Complexity: Simple
- Description: Modals use max-w-2xl/4xl but may be too large on tablets.
- Suggested Fix: Make modals full-screen or nearly full-screen on mobile with proper padding.
- File:
src/client/components/HotlinePanel.tsx,src/client/components/DebugPanel.tsx
- Impact: LOW
- Complexity: Simple
- Description: Timer uses text-2xl md:text-3xl. May be too small on large displays or too big on tiny screens.
- Suggested Fix: Add more breakpoints (text-xl sm:text-2xl md:text-3xl lg:text-4xl).
- File:
src/client/components/Globe3D.tsx
- Impact: LOW
- Complexity: Simple
- Description: "INITIALIZING SIMULATION..." screen is good but could be more informative.
- Suggested Fix: Add progress steps ("Establishing secure connection...", "Loading scenario...", "Briefing advisors...").
- File:
src/client/App.tsx(lines 146-155)
- Impact: MEDIUM
- Complexity: Complex
- Description: Messages appear instantly. No sense of AI "thinking" or typing.
- Suggested Fix: Add typing indicators or stream messages character-by-character for realism.
- File:
src/client/components/ChatFeed.tsx
- Impact: HIGH
- Complexity: Medium
- Description: Transition from preImpact to postImpact to ended has no visual cue besides game state change.
- Suggested Fix: Add dramatic transition animations/overlays ("IMPACT DETECTED", "POST-IMPACT PHASE").
- File:
src/client/App.tsx
- Impact: MEDIUM
- Complexity: Simple
- Description: GameOutcome appears with just animate-fade-in. Could be more dramatic for such a critical moment.
- Suggested Fix: Add dramatic entrance animation with sound effect trigger point, or countdown before revealing outcome.
- File:
src/client/components/GameOutcome.tsx
- Impact: LOW
- Complexity: Simple
- Description: "Sending..." text appears but no visual progress indicator.
- Suggested Fix: Add spinner or progress bar during message send.
- File:
src/client/components/HotlinePanel.tsx(line 201)
- Impact: MEDIUM
- Complexity: Medium
- Description: Polling errors are logged but user gets no feedback if connection is lost.
- Suggested Fix: Add connection status indicator and reconnection attempts notification.
- File:
src/client/App.tsx(lines 24-36)
- Impact: LOW
- Complexity: Simple
- Description: Some buttons are px-3 py-2, others px-4 py-3, others px-6 py-2. No consistent sizing pattern.
- Suggested Fix: Establish button size classes (sm, md, lg) and apply consistently across all components.
- File: Multiple components
- Impact: LOW
- Complexity: Simple
- Description: Some modals use "Close" button, others "Close (ESC)", some just X icon.
- Suggested Fix: Standardize modal header pattern with consistent close button placement and labeling.
- File:
src/client/components/DebugPanel.tsx,src/client/components/HotlinePanel.tsx,src/client/components/ParticipantsModal.tsx
- Impact: LOW
- Complexity: Simple
- Description: Borders use border-slate-800, border-slate-700, border-gray-700, border-cyan-900/50 inconsistently.
- Suggested Fix: Define semantic border colors (primary-border, secondary-border, panel-border) in Tailwind config.
- File: Tailwind config and all components
- Impact: LOW
- Complexity: Simple
- Description: "Advisor" vs "Participant" vs "Core Team" used interchangeably.
- Suggested Fix: Standardize on one term throughout UI ("Advisors" recommended).
- File:
src/client/components/ChatInput.tsx,src/client/components/ParticipantsModal.tsx
- Impact: LOW
- Complexity: Simple
- Description: Some status text is UPPERCASE, some is Title Case, some is lowercase.
- Suggested Fix: Establish case convention (UPPERCASE for critical alerts, Title Case for labels, sentence case for body).
- File: Multiple components
- Impact: LOW
- Complexity: Simple
- Description: Country colors defined in HotlinePanel and ChatFeed separately. Could drift out of sync.
- Suggested Fix: Extract country color constants to shared config file.
- File:
src/client/components/HotlinePanel.tsx,src/client/components/ChatFeed.tsx
- Impact: LOW
- Complexity: Simple
- Description: Error toast requires manual dismissal. No auto-timeout.
- Suggested Fix: Add 5-second auto-dismiss with optional manual close.
- File:
src/client/App.tsx(lines 209-216)
- Impact: LOW
- Complexity: Simple
- Description: When hotlines list is empty, shown in HotlinePanel but no similar treatment elsewhere.
- Suggested Fix: Add empty states for chat feed when game starts, advisor list when filtered, etc.
- File: Multiple components
- Impact: LOW
- Complexity: Medium
- Description: Missile position updates every tick, may appear jumpy.
- Suggested Fix: Add smooth interpolation between positions for fluid movement.
- File:
src/client/components/Globe3D.tsx
- Impact: MEDIUM
- Complexity: Complex
- Description: No audio feedback for critical events (launch, intercept, messages).
- Suggested Fix: Add subtle sound effects for high-stakes moments (optional/mutable).
- File: New audio system
- Impact: HIGH
- Complexity: Complex
- Description: Players dropped into crisis with no guidance on controls or objectives.
- Suggested Fix: Add optional first-time tutorial overlay or help screen explaining interface.
- File: New component
- Impact: LOW
- Complexity: Simple
- Description: No version number or changelog visible to players.
- Suggested Fix: Add small version number in corner and link to changelog.
- File:
src/client/App.tsx
- Impact: LOW
- Complexity: Medium
- Description: No way to capture and share outcome screen or critical moments.
- Suggested Fix: Add "Share Result" button on GameOutcome screen.
- File:
src/client/components/GameOutcome.tsx
- HUD-1: DEFCON Status Display
- HUD-2: Launch Origin Confidence
- HUD-7: Missile Progress Based on Start Time ⭐ NEW
- HUD-8: Launch Origin Uncertainty Visualization ⭐ NEW
- FEEDBACK-1: Order Submission Confirmation
- FEEDBACK-5: Disabled Action Explanation
- FEEDBACK-7: Time Progression Indicator
- FEEDBACK-2: Intercept Success/Failure Visualization
- FEEDBACK-3: Nuclear Launch Visual Feedback
- TRANSITION-3: Game Phase Transitions
- TRANSITION-4: Outcome Screen Entrance
- ACCESS-1: Keyboard Shortcut Discoverability
- ACCESS-2: Low Contrast Text
- RESPONSIVE-1: Mobile Globe Visibility
- RESPONSIVE-2: ActionPanel Button Grid
- RESPONSIVE-4: Modal Fullscreen on Mobile
- All CONSISTENCY items (6 items)
- HUD-4: Intercept Launch Count
- TRANSITION-6: Network Error Recovery
- POLISH-1: Error Toast Auto-Dismiss
- POLISH-6: Changelog/Version Display
- POLISH-4: Audio Cues
- POLISH-5: Tutorial/Onboarding
- ACCESS-5: Globe Keyboard Controls
- TRANSITION-2: Chat Message Streaming
- POLISH-7: Screenshot/Share Feature
- Items marked with ⭐ PRIORITY are recommended for immediate implementation
- File paths are relative to project root
- All items have been validated against current codebase structure
- Consider creating GitHub issues from this backlog for team tracking