dm / commit
docs: update README and plan.md to reflect completed Cypher migration
README.md | 5 ++++- plan.md | 16 +++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 5333d01..3377931 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,13 @@ The game is powered by `claude-haiku-4-5-20251001` and uses Claude's tool-use AP ## Features -- **Cypher System character creation** — pick a Descriptor (20 options), Type (Warrior, Adept, Explorer, Speaker), and Focus (20 options) to form the sentence *"I am a Clever Warrior who Hunts."* +- **Cypher System character creation** — pick a Descriptor (34 options), Type (Warrior, Adept, Explorer, Speaker), and Focus (69 options) to form the sentence *"I am a Clever Warrior who Hunts."* +- **Setting selector** — choose Classic Fantasy, Ninth World (Numenera), Modern Thriller, or Science Fiction at character creation; adjusts currency, tone, special-ability vocabulary, and available Foci - **Three stat pools** — Might, Speed, and Intellect each with current/max and Edge displayed; colour-coded bars shift green → amber → red as pools deplete - **Damage track** — one pool at 0 → Impaired; two at 0 → Debilitated; all at 0 → Dead +- **Skills** — starting skills populated from Type and Descriptor; sidebar section shows each skill with a colour-coded rank badge (green Trained / gold Specialized / red Inability); overlapping trained skills automatically promote to Specialized - **Cyphers** — one-use items found during play; displayed in the sidebar with Cypher Limit enforcement +- **Advancement modal** — spending 4 XP opens a choice dialog: increase a pool max by 4, add +1 Edge to a stat, train a new skill, specialize in a trained skill, or describe a custom improvement; four improvements advance your Tier (max Tier 6) - **Session persistence** — adventure state and conversation history saved to `localStorage`; reloading the page resumes mid-scene; save version guard offers Markdown export before discarding incompatible sessions - **Cost display** — per-turn and session cost estimates shown in the sidebar (based on token counts from the SSE stream) - **Dice roller** — d4 through d100, configurable count diff --git a/plan.md b/plan.md index 7ac2928..670a769 100644 --- a/plan.md +++ b/plan.md @@ -2,7 +2,7 @@ ## Background -The app currently runs D&D 5e via Claude. The goal is to switch to the Cypher System Reference Document (CSRD) — Monte Cook Games' open ruleset used in Numenera, The Strange, and others. +The app migrated from D&D 5e to the Cypher System Reference Document (CSRD) — Monte Cook Games' open ruleset used in Numenera, The Strange, and others. The migration is complete. `SAVE_VERSION` is currently **3**. Every phase that changes `gameState` shape must increment `SAVE_VERSION` in `public/index.html`. Old saves are automatically offered for export and discarded. @@ -28,9 +28,9 @@ The biggest structural change. D&D's Race + Class becomes Cypher's **Descriptor ### 1a — Data definitions -- [x] Replace `RACES` array with `DESCRIPTORS` (20 entries implemented) -- [x] Replace `CLASSES` array with `TYPES` (4 entries: Warrior, Adept, Explorer, Speaker — each with starting pools, Cypher Limit, and starting equipment) -- [x] Add `FOCI` array (20 entries implemented) +- [x] Replace `RACES` array with `DESCRIPTORS` (34 entries, each with pool bonus and starting skills) +- [x] Replace `CLASSES` array with `TYPES` (4 entries: Warrior, Adept, Explorer, Speaker — each with starting pools, Cypher Limit, starting abilities, and starting skills) +- [x] Add `FOCI` array (69 entries, each with settings tags, playstyle description, and Tier 1 ability) ### 1b — New `gameState.character` shape @@ -145,7 +145,7 @@ Complete replacement of `buildSystemPrompt`. Claude needs to understand: - [x] Replace XP progress bar (which tracked D&D level thresholds) with a plain XP counter - [x] Tier shown as Roman numeral next to XP - [x] Show advancement progress: 4 dot pips below XP/Tier row -- [x] "Spend 4 XP" button — disabled when XP < 4 or Tier 6; spending 4 steps increments dots; at 4 dots tier advances and dots reset +- [x] "Spend 4 XP" button — disabled when XP < 4 or Tier 6; opens advancement modal (see Phase 5c); four steps advances the Tier and resets dots ### 3c — Cyphers panel @@ -175,11 +175,9 @@ Cypher System is genre-neutral. Offer a setting choice at creation that adjusts --- ---- - -## Phase 5 — Skill system +## Phase 5 — Skill system ✅ -The `skills` array already exists in `gameState.character` as `[{ name, rank: 'trained'|'specialized'|'inability' }]` but nothing populates or displays it yet. Claude knows about skills in the system prompt (trained = difficulty −1, specialized = −2, inability = +1) but the player has no visibility or control. +The `skills` array in `gameState.character` is fully implemented: populated from Type and Descriptor starting skills, displayed in the sidebar with rank badges, managed via the advancement modal, and passed to Claude in the system prompt. ### 5a — Display