clone

fifteen puzzle games for the terminal, with daily puzzles, weekly ladders and xp, built on bubble tea

refactor/root-tui-model
puzzletea / openspec / specs / sudokurgb / spec.md
spec.md 2.8K rendered
1## Purpose2Document the shipped Sudoku RGB built-in game behavior.34## Requirements56### Requirement: Registry Metadata7Sudoku RGB SHALL be registered as a built-in game with canonical description "Fill the board with RGB symbols so each row, column, and 3x3 box contains {1,1,1,2,2,2,3,3,3}. [1,2,3] maps to [triangle,square,filled]. Inspired by Sudoku Ripeto.", aliases `rgb sudoku, ripeto, sudoku ripeto`, variants `Sudoku RGB (default 1800 Elo)`, and daily legacy modes `easy, medium`.89#### Scenario: Resolve Sudoku RGB10- **WHEN** the registry resolves the canonical name or any alias11- **THEN** it returns the Sudoku RGB entry with help text, import behavior, variant metadata, and legacy mode compatibility1213### Requirement: Variant Elo Creation14Sudoku RGB MUST support the current variant plus target Elo creation path, using the variant default Elo when no explicit target is supplied.1516#### Scenario: Spawn Sudoku RGB by Elo17- **WHEN** the user selects the Sudoku RGB variant and a target Elo from 0 through 300018- **THEN** PuzzleTea spawns a deterministic Sudoku RGB puzzle and records target, actual, and confidence metadata when generation reports it1920### Requirement: Legacy Mode Compatibility21Sudoku RGB SHALL preserve legacy named modes as compatibility presets that map to the Sudoku RGB variant and preset Elo values: Beginner (0 Elo), Easy (600 Elo), Medium (1200 Elo), Hard (1800 Elo), Expert (2400 Elo), Diabolical (3000 Elo).2223#### Scenario: Use legacy mode title24- **WHEN** the user supplies a legacy Sudoku RGB mode title through CLI or deterministic daily metadata25- **THEN** PuzzleTea resolves it to the Sudoku RGB variant and the registered preset Elo2627### Requirement: Puzzle Rules28The Sudoku RGB runtime MUST let players fill a 9x9 grid with the three RGB symbols so each row, column, and 3x3 box contains exactly three of each symbol while preserving givens.2930#### Scenario: Check solved state31- **WHEN** the player fills the board or word state32- **THEN** Sudoku RGB reports solved only when all rule constraints are satisfied3334### Requirement: Save Load And Interaction35Sudoku RGB SHALL serialize enough state for resume/import, reset to its initial puzzle, expose debug and full-help data, and support its shipped interaction model. Keyboard symbol entry is required, and mouse click-to-focus support MUST be available.3637#### Scenario: Resume saved Sudoku RGB38- **WHEN** a saved Sudoku RGB payload is imported39- **THEN** the restored game preserves givens, player entries, cursor/selection state where applicable, and solved-state behavior4041### Requirement: Print Export Support42The Sudoku RGB print adapter SHALL render puzzle and solution data for JSONL-to-PDF workflows.4344#### Scenario: Export Sudoku RGB45- **WHEN** Sudoku RGB is included in a JSONL or PDF export flow46- **THEN** PuzzleTea follows the registered print support behavior for that game