Clue-Solver

Clue Solver — Project Overview

For LLM context injection, onboarding, marketing-context reference, and product briefs. Last updated: 2026-03-19 Version: Launch v1.0

App Store Identity

What It Is

Clue Solver is a native iOS companion app for the classic mystery deduction board game Clue (known internationally as Cluedo). It replaces manual paper note-taking with a real-time deduction engine: you choose the edition, set up the table, record every suggestion or accusation, and let the app continuously deduce what must be true about the hidden envelope and each player’s hand.

The app is designed for a single player sitting at a real table game. It is not a digital board game, not online multiplayer, and not a rules simulator. Its job is to be a fast, polished deduction assistant that helps one player capture information accurately and extract more logic from it than a human notepad ever could.

Important distinction for marketing: This is a companion tool for a physical board game, not a standalone game. All messaging should make this clear to avoid purchase confusion.

Core Product Promise

The product is built around four promises:

Who It Is For

Key Value Propositions (for marketing use)

  1. It solves the mystery for you — not a passive tracker, an active solver that reasons through every turn and tells you what must be true.
  2. Probability on every unknown card — see which cards are most likely in the envelope, backed by exhaustive feasibility analysis.
  3. Plain-language explanations — the Insights tab explains why each deduction was made so you can learn and verify.
  4. Faster than paper, smarter than paper — setup takes under a minute, and the app catches deductions humans routinely miss.
  5. Detective notepad with freehand drawing — a structured grid with tap-to-mark cells plus a freehand drawing layer on top for personal notes, hunches, and table reads.
  6. Save and resume across sessions — pause a game, close the app, come back days later and pick up exactly where you left off.
  7. Catches your mistakes — contradiction detection alerts you when a turn entry conflicts with the evidence so far.

Feature Inventory At A Glance

The shipping app at launch includes:

Capabilities in the codebase but not surfaced at launch:

User-Facing Experience

Home And Case File Management

The home screen is the app’s landing surface and case-file hub.

Home screen features

Saved case file list

The saved-case modal presents persisted investigations from SwiftData.

Case file lifecycle

Investigation Setup Wizard

The setup flow is a multi-step wizard that creates the game state before the first suggestion is recorded.

Setup goals

Step 1: Edition picker

The edition picker is the first screen in setup.

Step 2: Player count

The player count screen asks how many detectives are in the game, including the app user.

Step 3: Player names

The detective naming screen records seating order clockwise around the table.

Step 4: Cards per player

The card distribution screen records how many cards each player was dealt.

Step 5: Your hand

The final setup step records the cards held by the app user.

Setup data reconciliation

The setup draft is intentionally resilient.

Setup navigation details

Investigation Workspace

Once setup is complete, the user lands in the main dashboard.

Dashboard shell

The dashboard is the main investigation workspace.

Global feedback inside the dashboard

The dashboard can surface two cross-tab feedback banners above the tab content.

Contradiction banner

Deduction banner

Solved-case reveal

When all three envelope cards are known, the dashboard presents a solved-case celebration flow.

Cards Tab

The Cards tab is the primary “what do we know?” surface.

Envelope summary

At the top of the tab, the app summarizes the envelope.

Category sections

Cards are grouped by the edition’s three categories (e.g., Suspects, Weapons, Rooms).

Each section behaves differently depending on solve state.

Card rows

Each card row reflects the engine’s latest understanding.

Unknown cards include a live probability treatment based on feasible envelope solutions.

This tab is the fastest way to answer questions like:

Players Tab

The Players tab explains what the app believes about each player’s hand.

Player cards

Each player gets an expandable card.

Within each player card

When expanded, the card can show:

Unresolved marker display

This is especially useful during live play.

This makes the Players tab the best screen for checking:

History Tab

The History tab shows the recorded timeline of the investigation.

History presentation

Turn row content

Each turn row can show:

Empty state

Before any turns exist, the tab shows an empty-state prompt encouraging the user to record the first turn.

Insights Tab

The Insights tab is the explanation layer for solver output.

Purpose

Instead of only showing what the solver believes, this tab explains why a deduction was made.

Insight timeline

Each insight card can include

Examples of insight value

This screen is where a user can understand logic like:

Notepad Tab

The Notepad tab is a manual note-taking companion layered on top of the solver.

It exists because some players still want a place for intuition, reminders, table reads, or off-model notes that the formal solver does not track. The notepad presents a single unified surface — a structured detective grid with a freehand drawing layer on top — so the user can mark cells and sketch notes on the same “sheet of paper.”

Detective grid

The grid presents a traditional detective matrix.

Available mark states:

Grid marks are persisted into the Game model, so the user’s manual notes survive app relaunches and case resumes.

Freehand drawing overlay

A pencil FAB in the bottom-right corner toggles freehand drawing mode. When active, the user can draw directly on top of the grid and surrounding parchment area — the entire visible surface acts as a single drawable sheet.

Freehand strokes are encoded and stored on the Game model, then reloaded when the case resumes.

Drawing implementation details

Turn Recording Flow

The plus button in the dashboard opens the turn recorder.

Suggestion vs accusation mode

The first decision in the flow is whether the user is entering:

The screen uses a mode toggle rather than separate entry points.

Turn composition

For both suggestions and accusations, the user selects:

Only non-eliminated players are shown as eligible suggesters.

Proof / result entry

After selecting the cards, the user moves to the proof screen.

Suggestion proof flow

The proof screen records what happened after the suggestion.

Proof validation

The proof screen prevents a number of invalid entries.

Accusation result flow

For accusations, the proof screen simplifies to:

The engine uses that outcome to either solve the game or eliminate the accused triple from consideration.

Submission behavior

Turn submission records the turn in history and then rebuilds the solver from the recorded turns rather than relying on a drift-prone incremental mutation path. This keeps normal entry aligned with undo/resume behavior and reduces false contradiction scenarios.

Deduction And Solving Features

The solver is the heart of the product.

What the engine reasons about

The current engine models classic Clue-style games with:

Deduction capabilities users benefit from

Contradiction handling

Contradictions are not silent internal failures. They are an explicit user-facing feature.

Examples of contradiction categories include:

Persistence And State Management

Persistence is central to the app experience because Clue games are often paused or revisited.

Persisted game data

Each saved Game stores:

Resume behavior

When a saved case is reopened:

Undo behavior

The dashboard exposes undo for the most recent recorded turn.

Redo behavior

Redo exists in the undo manager internally, but the current main dashboard does not expose a redo button in the live UI.

Editions

Launch editions

The app launches with two verified editions:

Future editions (planned IAP)

The codebase ships with 25 bundled edition JSON files covering themed editions (Master Detective, Simpsons, Harry Potter, Game of Thrones, etc.). Most are currently marked as unsupported because they include side decks or mechanics the solver doesn’t model yet. Additional supported editions and a custom edition creator will be unlocked via in-app purchase.

Settings

The app includes a lightweight settings screen.

Current settings

Persistence of settings

Feedback, Theming, And Atmosphere

The app intentionally avoids looking like a plain spreadsheet utility.

Visual style

Motion and feedback

Accessibility And Usability Considerations

The app contains a mix of accessibility support and known UX polish areas.

Existing support

UX philosophy reflected in the current product

Tech Stack

Layer Technology
Language Swift 6
UI SwiftUI (iOS 17+)
Persistence SwiftData (@Model, ModelContainer)
State management @Observable macro (Observation framework)
Concurrency @MainActor isolation
Testing Swift Testing (@Suite, @Test, #expect) + XCTest (performance, UI)
Build Xcode 16, XcodeGen (project.yml)

Architecture

Models

Engine

Supporting infrastructure

Testing

The test suite is intentionally heavier on solver correctness than a typical consumer app because logical trust is the product.

Major test categories

See testing-suite.md for detailed commands and test-architecture notes.

File Layout

ClueSolver/
├── App/                    AppState, ClueSolverApp
├── Models/                 Game, Player, Card, Turn, CardMarker, GameEdition, CardCategory
├── Engine/                 DeductionEngine, Constraint, StateValidator, EngineSnapshot
├── Views/
│   ├── Home/               HomeView, SavedGamesView, SettingsView
│   ├── Setup/              EditionPicker, PlayerCount, PlayerNames, CardDistribution, MyCards
│   ├── Game/               Dashboard, Cards, Players, History, Insights, Notepad
│   ├── Turn/               Suggestion/Accusation entry and proof screens
│   └── CustomEdition/      Custom edition list and creator
├── Editions/               Registry + bundled JSON definitions
├── Theme/                  Theme, animations, sound, haptics
├── Utilities/              UndoRedoManager, ExportManager
└── Extensions/             Shared view helpers

ClueSolverTests/            Domain, regression, integration, and performance tests
ClueSolverUITests/          End-to-end UI automation
Docs/                       Audits, project docs, testing docs
design-system/              Repo-level UI guidance and design tokens

Edition Support Status

At launch, Classic Clue and Alfred Hitchcock are the two available editions. The codebase includes data for 25 editions total, with compatibility metadata that categorizes each as Supported or Unsupported based on whether the physical edition’s rules fit the current 3-category deduction engine.

See edition-support-audit.md for the full breakdown.

Current Limitations

Planned Expansion (IAP Roadmap)

Short Summary

Clue Solver is a premium native iOS deduction companion for the classic board game Clue / Cluedo. It goes far beyond a paper notepad — it actively solves the mystery by reasoning through every suggestion, tracking card ownership, calculating probabilities from feasible envelope solutions, and explaining its deductions in plain language. The app includes case-file save/resume, a unified detective notepad with freehand drawing, contradiction detection, a themed mystery UI, and is designed for one player sitting at a real table game.