diff --git a/PROJECT_STATE.md b/PROJECT_STATE.md index 3590d2907..52bc6311e 100644 --- a/PROJECT_STATE.md +++ b/PROJECT_STATE.md @@ -17,6 +17,6 @@ The Settled Reach: top-down life-sim — asymmetric information, occlusion-based **Key pivots:** Tycoon bookmark (D-117), all NPCs generated (D-122), culture implicit in location (D-128), consequence replaces complicity (D-132). -**Current sprint:** 31 (Bedrock). Phase 1 content + client refactoring. +**Current sprint:** 32 (Landfall). Close Phase 1 + Phase 2 design kickoff. *Updated: 2026-04-05. Maintained by Qatux.* diff --git a/docs/backups/settledreach.db.backup b/docs/backups/settledreach.db.backup index 4b7efb634..3184db429 100644 Binary files a/docs/backups/settledreach.db.backup and b/docs/backups/settledreach.db.backup differ diff --git a/docs/sprints/sprint-32/client.md b/docs/sprints/sprint-32/client.md new file mode 100644 index 000000000..bead69a11 --- /dev/null +++ b/docs/sprints/sprint-32/client.md @@ -0,0 +1,63 @@ +# Sprint 32: Landfall — Client Tasks + +**Goal:** Close Phase 1 — deliver remaining deliverables, validate pipelines with spikes, kick off Phase 2 economics design. + +**Branch:** `sprint-32/client` +**Agents:** Stig (UI), Tyre (architecture), Hoshe (QA) + +## New Tickets + +| # | Title | Blocked by | +|---|-------|------------| +| #792 | HUD layout pass — resolve overlapping elements | — | +| #786 | Convert HUD status display to implant components | — | +| #787 | Convert minimap + stance label to implant components | #795 (icon design) | +| #788 | Convert interaction prompt to implant component | — | + +Use `tooling/db/ticket show ` for full details. + +## Key Decisions + +- `decisions/architecture.md` — D-169 (implant UI component library), D-170 (HUD visibility groups) +- `decisions/perception.md` — D-086 (insert icon system) + +## Notes + +### #792 HUD layout pass (do first) + +Fix anchor/position conflicts causing overlapping HUD elements. No component rewrites — layout only. This unblocks visual clarity for the implant conversions. + +**Key files:** +- `client/ui/implant/` — implant component library +- `client/scripts/autoloads/hud_groups.gd` — z-index layer manager + +### #786 HUD status → implant + +Convert the top-left Health/Time/Mode/Perception panel to use ImplantPanel, ImplantHeader, ImplantDataRow components from `client/ui/implant/`. + +### #787 Minimap + stance → implant + +Convert the top-right minimap container and stance badge. **Blocked by #795** — Araminta must deliver the icon set before the stance label can use proper icons instead of text labels. + +Start the minimap container conversion (not icon-dependent), but the stance badge needs the icons. + +### #788 Interaction prompt → implant + +Convert the bottom-center E-Examine prompt to implant component styling. + +## Dependency Chain + +``` +#792 (HUD layout) → do first, unblocks clarity +#786 (status → implant) → standalone, parallel +#795 (icon design, visual team) → #787 (stance → implant) +#788 (interaction → implant) → standalone, parallel +``` + +## PR Workflow + +```bash +tea pr create --repo jpmschweitzer/settled-reach --login schweitz \ + --title "refactor(ui): Sprint 32 — HUD implant conversion" \ + --description "body" --base main --head sprint-32/client +``` diff --git a/docs/sprints/sprint-32/copy.md b/docs/sprints/sprint-32/copy.md new file mode 100644 index 000000000..35fc73a11 --- /dev/null +++ b/docs/sprints/sprint-32/copy.md @@ -0,0 +1,72 @@ +# Sprint 32: Landfall — Copy Tasks + +**Goal:** Close Phase 1 — deliver remaining deliverables, validate pipelines with spikes, kick off Phase 2 economics design. + +**Branch:** `sprint-32/copy` +**Agents:** Mellanie (author), Paula (narrative), Miri (worldbuilding) + +## New Tickets + +| # | Title | Blocked by | +|---|-------|------------| +| #784 | Cultural diversity audit & remediation plan (analysis only) | — | +| #793 | Cultural diversity sweep — apply approved plan | #784 | +| #790 | Add Bodies + Population rows to wiki System Profile tables | — | +| #781 | Economic profile fields — industries/imports/exports for 301 systems | — | + +Use `tooling/db/ticket show ` for full details. + +## Key Decisions + +- `decisions/content.md` — D-121 (voice is culture-driven), D-122 (all NPCs generated), D-128 (culture implicit in location) +- `decisions/scope.md` — D-167 (corridor cultural system) +- `decisions/architecture.md` — D-166 (development cascade) + +## Notes + +### #784 Cultural diversity audit (Phase 1 — analysis only) + +This is an **analysis ticket**, not an implementation ticket. Deliverable is `docs/design/cultural-diversity-audit.md`. + +**What to produce:** +- Current culture distribution: count every cultural heritage reference across all 301 systems, grouped by corridor +- Gap analysis: which cultures are absent or have only 1-2 references? +- Over-representation analysis: which cultures dominate disproportionately? +- Remediation plan: from/to changes per system, with justification +- Non-culture exodus groups: at least 3-5 groups whose identity isn't traceable to an Earth culture — a corporation that funded an exodus, a religious community, a fan community, a founding family dynasty +- Great-scientist/pioneer/philosopher naming: identify stations and locations that should carry names of fictional scientists, space pioneers, or philosophers (like real-world Webb, Hubble, Gagarin) +- Prevalence justification: where a culture is more common, note why (colonization wave, corporate sponsorship, etc.) + +**NO wiki edits.** The user reviews this document before #793 begins. + +**Data sources:** `wiki/systems/`, `server/data/systems.db`, `client/data/star_map_data.json` + +### #793 Cultural diversity sweep — apply approved plan + +**Blocked by #784.** Do not start until the audit is reviewed and approved. + +Apply the remediation plan from #784 to the wiki entries. Follow the from/to changes exactly as approved. + +### #790 System Profile tables + +Quick fix — add Bodies and Population rows to the System Profile table in each of the 301 wiki system pages. Data already exists in `systems.db`. + +### #781 Economic profiles + +Add industries, imports, and exports fields to all 301 system wiki entries. This is the last major content deliverable for Phase 1 and feeds directly into Phase 2 economics simulation. Start with hub systems (hop 1-4), cascade outward. + +## Dependency Chain + +``` +#784 (cultural audit) → #793 (batch culture edits) +#790 (profile tables) → standalone +#781 (economic profiles) → standalone, largest piece +``` + +## PR Workflow + +```bash +tea pr create --repo jpmschweitzer/settled-reach --login schweitz \ + --title "data(copy): Sprint 32 — cultural audit, profiles, economics" \ + --description "body" --base main --head sprint-32/copy +``` diff --git a/docs/sprints/sprint-32/joint.md b/docs/sprints/sprint-32/joint.md new file mode 100644 index 000000000..55a2d87c6 --- /dev/null +++ b/docs/sprints/sprint-32/joint.md @@ -0,0 +1,47 @@ +# Sprint 32: Landfall — Joint Notes + +**Goal:** Close Phase 1 — deliver remaining deliverables, validate pipelines with spikes, kick off Phase 2 economics design. + +## Sprint Completion Proof + +When Sprint 32 is done, you can: + +1. **Review a cultural diversity audit** — `docs/design/cultural-diversity-audit.md` shows distribution across all 301 systems with remediation plan including non-culture exodus groups and great-scientist naming +2. **See one annotated heightmap** — a single inhabited planet with cities, rivers, roads annotated, validating the pipeline before batch +3. **View planetary shader screenshots** for wiki/GTTR arrival windows +4. **Read System Profile tables** with Bodies + Population rows for all 301 systems +5. **Read economic profile fields** (industries, imports, exports) for all 301 systems +6. **See implant-themed HUD** — status, minimap, stance, interaction prompt all using D-169 components +7. **Read Phase 2 design kickoff output** — D-records and child tickets under #747 + +## Phase 1 Context + +Phase 1 deliverable: "Implant-ready Godot map of the Reach with click-throughs + wiki/GTTR popups." + +**What's done:** 301 systems, body catalogs, star map insert with click-through popups, GTTR coverage, cultural sweep (10 systems), implant component library (D-169/D-170), HUD visibility groups. + +**What this sprint closes:** Economic profiles (#781), system profile tables (#790), cultural audit (#784), heightmap spike (#778), planetary screenshots (#779). + +**Phase 2 gate:** When #778, #779, #781, #784, #790 are done, epic #746 closes and #747 (Phase 2: Economics) unblocks. The planning ticket (#796) produces the first children of #747. + +## Not In Scope + +- Batch culture edits (#793) and batch heightmaps (#794) are in-sprint but **blocked** by their spike/audit tickets. They proceed only after user review. +- All Phase 2 implementation — gated by #796 planning output. +- Character creation UI (#694, #618, #619) — Phase 4. +- World generation — Phase 5. + +## Dependency Chain + +``` +#784 (cultural audit) → #793 (batch culture edits) +#778 (heightmap spike) → #794 (batch heightmaps) +#795 (icon design) → #787 (minimap + stance → implant) +#792 (HUD layout) → standalone, do first +#786 (status → implant) → standalone +#788 (interaction → implant) → standalone +#790 (profile tables) → standalone +#781 (economic profiles) → standalone +#779 (screenshots) → standalone +#796 (Phase 2 kickoff) → standalone, planning track +``` diff --git a/docs/sprints/sprint-32/planning.md b/docs/sprints/sprint-32/planning.md new file mode 100644 index 000000000..8b8307544 --- /dev/null +++ b/docs/sprints/sprint-32/planning.md @@ -0,0 +1,41 @@ +# Sprint 32: Landfall — Planning Tasks + +**Goal:** Close Phase 1 — deliver remaining deliverables, validate pipelines with spikes, kick off Phase 2 economics design. + +**Agents:** Gestalt (systems), Miri (worldbuilding), Tyre (technical), Paula (narrative), Nigel (replayability), Qatux (documenter), SI (project manager) + +## New Tickets + +| # | Title | Blocked by | +|---|-------|------------| +| #796 | Phase 2 economics design kickoff | — | + +Use `tooling/db/ticket show ` for full details. + +## Notes + +### #796 Phase 2 economics design kickoff + +Break down Phase 2 epic (#747) into implementable stories. This is a structured design discussion, not implementation. + +**Phase 2 deliverable** (from CLAUDE.md cascade): "Economics spreadsheets/graphs with runtime-tweakable simulation" covering supply/demand, transport, political/social pressure, corporations, supply chains. + +**Discussion must produce:** +1. D-records in `decisions/economics.md` (new domain file) defining: + - Economic data model (production chains, resources, trade goods) + - Corporation/faction economic roles + - Supply/demand simulation approach + - Transport and trade route mechanics + - Political/social pressure as economic modifier +2. Child tickets under #747 ready for Sprint 33 implementation +3. Data model schema (what goes in `systems.db` vs runtime state) + +**Discussion rounds:** +1. **Inventory** — what economic systems exist in the lore? What does `#781` economic profiles data look like? What are the reference games (X4, EVE, Rimworld)? +2. **Proposals** — concrete data model proposals, simulation tick design, what the "spreadsheet" deliverable actually looks like +3. **Convergence** — lock D-records, create tickets + +**Context to read:** +- `decisions/scope.md` — D-117 (tycoon bookmark), D-118 (small business owner), D-131 (broad economic verb vocabulary) +- `wiki/systems/` — existing system entries for economic flavor +- Sprint 32 copy output from #781 (economic profiles) — use as input data diff --git a/docs/sprints/sprint-32/visual.md b/docs/sprints/sprint-32/visual.md new file mode 100644 index 000000000..6b85dcbfa --- /dev/null +++ b/docs/sprints/sprint-32/visual.md @@ -0,0 +1,72 @@ +# Sprint 32: Landfall — Visual Tasks + +**Goal:** Close Phase 1 — deliver remaining deliverables, validate pipelines with spikes, kick off Phase 2 economics design. + +**Branch:** `sprint-32/visual` +**Agents:** Araminta (art direction) + +## New Tickets + +| # | Title | Blocked by | +|---|-------|------------| +| #778 | Heightmap pipeline spike — single example for review | — | +| #794 | Heightmap batch — all inhabited planets | #778 | +| #779 | Planetary shader screenshots for wiki/GTTR | — | +| #795 | Icon set design for implant HUD components | — | + +Use `tooling/db/ticket show ` for full details. + +## Key Decisions + +- `decisions/perception.md` — D-086 (insert icon system — custom SVG constraints) +- `decisions/architecture.md` — D-166 (development cascade), D-169 (implant UI component library) +- `decisions/scope.md` — D-170 (HUD visibility groups) + +## Notes + +### #778 Heightmap spike — ONE example + +Produce a single annotated heightmap for one inhabited planet. The user wants to validate the approach and visual style before committing to batch production. + +**Deliverable:** One heightmap with annotations (cities, rivers, roads, biomes) + brief pipeline documentation describing how the batch will work. + +**Pick a planet with varied terrain** — a good candidate has mountains, water, and at least one major settlement to showcase all annotation types. + +### #794 Heightmap batch + +**Blocked by #778.** Do not start until the spike is reviewed and approved. Run the validated pipeline for all inhabited planets. + +### #779 Planetary shader screenshots + +Per-planet-type screenshots for GTTR arrival window content. These appear in the wiki/GTTR as the visual first impression of each world. + +### #795 Icon set design + +Design the icon vocabulary for the implant HUD. This **blocks #787** (client team's minimap + stance label conversion). + +**Output:** SVG icon set following D-086 constraints: +- Custom SVG, not icon font +- 1px stroke base weight +- `#c8d0e0` chrome color (runtime-replaceable) +- Minimal anchor points, clean geometry + +**Icons needed:** +- Stance indicators (WALK, CAREFUL, SPRINT, CROUCH) +- Status badges (health, perception mode) +- Interaction prompt icons + +## Dependency Chain + +``` +#778 (heightmap spike) → #794 (batch heightmaps) +#795 (icon design) → #787 (client: stance label, cross-team) +#779 (screenshots) → standalone +``` + +## PR Workflow + +```bash +tea pr create --repo jpmschweitzer/settled-reach --login schweitz \ + --title "feat(visual): Sprint 32 — heightmap spike, screenshots, icon design" \ + --description "body" --base main --head sprint-32/visual +```