From 0d18c76dfab167afcb3104726ca190f20c46f63b Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Tue, 17 Mar 2026 08:10:29 +0100 Subject: [PATCH] feat(docs): assign teams to v0.2 story tickets (#614-#626) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolve Q-WTF-039 (tile-scale heavy zoom, not portrait — D-146) and Q-WTF-040 (aesthetic taste trait as shared root — D-147). Split #617 into server generator + client rendering, split #620 into server culture resolution + client location picker. Sprint 28 candidate list with 7 unblocked tickets. Ticket: #676 Co-Authored-By: Claude Opus 4.6 (1M context) --- decisions/content.md | 15 ++- decisions/questions-content.md | 18 +++- decisions/scope.md | 15 ++- .../round-21-v02-ticket-assignments.md | 92 +++++++++++++++++++ .../sprints/sprint-28/sprint-28-candidates.md | 73 +++++++++++++++ 5 files changed, 210 insertions(+), 3 deletions(-) create mode 100644 docs/discussions/round-21-v02-ticket-assignments.md create mode 100644 docs/sprints/sprint-28/sprint-28-candidates.md diff --git a/decisions/content.md b/decisions/content.md index de4b1be2b..daedc2487 100644 --- a/decisions/content.md +++ b/decisions/content.md @@ -555,4 +555,17 @@ How narrative, NPCs, and world content are created: content tiers, NPC generatio --- -*43 decisions. Last updated: 2026-03-14 (D-144 Sirius as Reach capital)* +### D-147: Aesthetic taste as character personality trait — shared root for cosmetic and environmental expression +- **Date:** 2026-03-17 +- **Decision:** Characters have an `aesthetic_taste` personality trait (preferred palette, style leanings) that naturally expresses in both personal appearance and living space. This is NOT a cosmetic→apartment pipeline — hair color does not map to wall color. Instead, taste is a shared root: someone who gravitates toward teal will pick teal clothing AND own a teal vase. The apartment generator reads the character's taste trait (alongside economic position from #615 and cultural context from #620); the character customization screen lets the player express that same taste through appearance choices. Neither system depends on the other — both read the same underlying trait. +- **Rationale:** The naive approach (pipe cosmetic choices into apartment generator) creates a crude "team color" mapping that feels artificial. The elegant approach: taste is a personality attribute, like traits or skills. It manifests independently in multiple contexts. This keeps #619 (customization) and #617 (apartment) architecturally independent while producing coherent identity expression. The taste trait is also reusable: NPC aesthetic preferences, gift preferences, "does this room feel like home" comfort checks, cultural style variations. +- **Dependency implication:** #619 does NOT block #617. Both read the character's taste trait independently. The taste trait definition belongs to the character data model (server), not to either consuming system. +- **Source:** Sprint 27 planning pass — Q-WTF-040 resolution +- **Raised by:** Project lead (taste-as-shared-root framing), Gestalt (ColorHint concept evolved into trait), Paula (culture + economics as primary apartment drivers) +- **Dissent:** Ozzie argued for direct cosmetic→apartment pipeline. Tyre and Paula argued for no connection at all. The taste trait is the synthesis: connection through personality, not through data pipeline. +- **Cross-reference:** [D-125](#d-125-world-is-quietly-responsive--gradient-of-caring-by-social-proximity) (quiet responsiveness), [D-134](#d-134-full-character-customization) (full character customization), [D-136](architecture.md#d-136-first-settled-reach-moment-auto-generated-apartment--insert-activation) (first game moment), ticket #617 (auto-generated apartment), ticket #619 (full character customisation) +- **Resolves:** Q-WTF-040 + +--- + +*45 decisions. Last updated: 2026-03-17 (D-147 aesthetic taste trait)* diff --git a/decisions/questions-content.md b/decisions/questions-content.md index 3f27e354a..18d40cf61 100644 --- a/decisions/questions-content.md +++ b/decisions/questions-content.md @@ -205,4 +205,20 @@ Narrative, NPCs, dialogue, templates, setting, worldbuilding, and storyteller me --- -*21 questions (7 resolved, 2 partially resolved, 12 open). Last updated: 2026-03-13 (Q-015 closed as obsolete per D-122)* +### Q-WTF-039: Character creation — portrait render or tile-scale preview? +- **Status:** Resolved → [D-146](scope.md#d-146-character-creation-preview--tile-scale-sprite-with-heavy-zoom) +- **Question:** Does the character creation screen show a portrait render or a tile-scale in-world preview of the player character? Affects #618 (CK3-style character creation screen) team assignment: portrait render is a visual team deliverable; tile-scale preview is client. +- **Resolution:** Tile-scale sprite with heavy zoom. The creation screen shows the game sprite rendered at high resolution, zoomed in so cosmetic details are clearly visible. Same approach as Rimworld: one rendering pipeline, no separate portrait system. #618 stays as a single client ticket. Resolved by [D-146](scope.md#d-146-character-creation-preview--tile-scale-sprite-with-heavy-zoom). +- **Assigned to:** Tyre (architecture), confirmed by project lead +- **Source:** Sprint 27 planning pass (2026-03-17) + +### Q-WTF-040: Do creation choices trace into the generated apartment? +- **Status:** Resolved → [D-147](content.md#d-147-aesthetic-taste-as-character-personality-trait--shared-root-for-cosmetic-and-environmental-expression) +- **Question:** If the player picks hair colour and clothing in #619, does the generator use those choices when laying out the starting apartment (furniture style, colour palette)? Affects #617 scope and dependency. +- **Resolution:** Not directly. Cosmetic choices do not pipeline into the apartment generator. Instead, characters have an `aesthetic_taste` personality trait that independently informs both appearance choices and living space. Someone who likes teal picks teal clothing AND owns a teal vase — but through shared taste, not data coupling. #619 does NOT block #617. Resolved by [D-147](content.md#d-147-aesthetic-taste-as-character-personality-trait--shared-root-for-cosmetic-and-environmental-expression). +- **Assigned to:** Gestalt (systems), Paula (narrative), confirmed by project lead +- **Source:** Sprint 27 planning pass (2026-03-17) + +--- + +*23 questions (9 resolved, 2 partially resolved, 12 open). Last updated: 2026-03-17 (Q-WTF-039, Q-WTF-040 resolved)* diff --git a/decisions/scope.md b/decisions/scope.md index f80afe8f8..f0a2cf063 100644 --- a/decisions/scope.md +++ b/decisions/scope.md @@ -287,4 +287,17 @@ What we're building: game concept, design pillars, prototype definition, map spe --- -*25 decisions (16 active, 9 superseded). Last updated: 2026-03-15 (D-145 added)* +### D-146: Character creation preview — tile-scale sprite with heavy zoom +- **Date:** 2026-03-17 +- **Decision:** The character creation screen shows the player character's game sprite at heavy zoom — the same top-down tile-scale rendering used in gameplay, rendered at high resolution so it holds up when zoomed in. No separate portrait rendering system. Cosmetic choices (hair, clothing, colors) update the zoomed sprite in real time. Rimworld uses this exact approach: the character customization screen shows the same pawn sprite rendered larger, with clothing/equipment layers visible. +- **Rationale:** The tile-scale sprite IS the player's character for the entire game. Showing it zoomed in character creation: (1) sets accurate expectations for in-game appearance, (2) reuses the production sprite/animation pipeline — zero new rendering infrastructure, (3) validates that cosmetic customization (#619) reads correctly at game scale, (4) keeps #618 as a single client ticket with no visual-team split. A separate portrait system would be a one-off rendering context (different camera, lighting, asset pipeline) that serves no other game feature. "CK3-style" in the bookmark concept refers to the bookmark structure, not the portrait aesthetic. Portraits can be added later as an additive feature if needed. +- **Team implication:** Ticket #618 (CK3-style character creation screen) stays as a single `client` team ticket. No split required. +- **Source:** Sprint 27 planning pass — Q-WTF-039 resolution +- **Raised by:** Tyre (architecture), Paula (narrative), Gestalt (systems), confirmed by project lead +- **Dissent:** Ozzie argued for portrait render (emotional attachment). Overruled: tile-scale at heavy zoom provides sufficient character identity without a second rendering pipeline. +- **Cross-reference:** [D-115](#d-115-character-creation-scoped-to-skills--bookmark-for-v02) (creation scope), [D-134](content.md#d-134-full-character-customization) (full character customization), [D-136](architecture.md#d-136-first-settled-reach-moment-auto-generated-apartment--insert-activation) (first game moment), ticket #618 (CK3-style character creation screen) +- **Resolves:** Q-WTF-039 + +--- + +*26 decisions (17 active, 9 superseded). Last updated: 2026-03-17 (D-146 tile-scale heavy zoom)* diff --git a/docs/discussions/round-21-v02-ticket-assignments.md b/docs/discussions/round-21-v02-ticket-assignments.md new file mode 100644 index 000000000..095bbe975 --- /dev/null +++ b/docs/discussions/round-21-v02-ticket-assignments.md @@ -0,0 +1,92 @@ +--- +title: "Round 21: v0.2 Story Ticket Team Assignments — Sprint 27 Planning" +description: "Team assignment pass for v0.2 story tickets #614–#626; resolve Q-WTF-039 and Q-WTF-040; produce Sprint 28 candidate list" +type: discussion +status: active +round: 21 +created: 2026-03-17 +--- + +# Round 21: v0.2 Story Ticket Team Assignments + +**Sprint:** 27 (Scale) +**Date:** 2026-03-17 +**Ticket:** #676 — Assign team and sprint for v0.2 story tickets (#614–#626) +**Participants:** Gestalt (systems), Tyre (technical), Paula (narrative), Ozzie (player experience), Qatux (documenter), SI (project manager) +**Output target:** DB team assignments, split tickets, Q-WTF-039/Q-WTF-040 resolved, Sprint 28 candidate list + +--- + +## Internal Round Structure + +| Internal Round | Topic | Status | +|----------------|-------|--------| +| Round 1 | Team assignment pass — one team per ticket | Pending | +| Round 2 | Split review — identify server+client splits, create child tickets | Pending | +| Round 3 | Sprint readiness check — Sprint 28 candidate list | Pending | + +--- + +## Ticket Inventory + +| # | Title | Epic | Dependencies | Team (proposed) | +|---|-------|------|-------------|-----------------| +| #614 | Bookmark definition system | Tycoon Bookmark (#605) | blocks #618 | — | +| #615 | Tycoon small business owner starting state | Tycoon Bookmark | blocks #617 | — | +| #616 | Broad economic verb vocabulary design | Tycoon Bookmark | — | — | +| #617 | Auto-generated apartment | Tycoon Bookmark | blocked by #615 | — | +| #618 | CK3-style character creation screen | Character Creation (#606) | blocked by #614 | — | +| #619 | Full character customisation | Character Creation | open Q-WTF-040 | — | +| #620 | Culture-implicit-in-location system | Character Creation | blocks #621 | — | +| #621 | NPC personality surface area | NPC Legibility (#607) | blocked by #620, blocks #622 | — | +| #622 | Relationship formation system | NPC Legibility | blocked by #621 | — | +| #624 | Quietly responsive world | World Feel (#608) | — | — | +| #625 | Dual-scale consequence model | World Feel | — | — | +| #626 | Setting delivery — both layers | World Feel | — | — | + +--- + +## Open Questions to Resolve + +### Q-WTF-039: Character creation portrait vs tile-scale preview +- **Status:** Resolved → [D-146](../../decisions/scope.md#d-146-character-creation-preview--tile-scale-sprite-with-heavy-zoom) +- **Question:** Does the character creation screen show a portrait render or a tile-scale in-world preview of the player character? +- **Resolution:** Tile-scale sprite with heavy zoom. Same top-down game sprite rendered at high resolution with real-time cosmetic preview. No separate portrait rendering system. #618 stays as a single `client` ticket — no split required. +- **Decided by:** Tyre (architecture), Paula (narrative), Gestalt (systems), confirmed by project lead. Ozzie dissented (portrait render for emotional attachment); overruled. +- **Source:** Sprint 27 planning pass, 2026-03-17 + +### Q-WTF-040: Do creation choices trace into the generated apartment? +- **Status:** Resolved → [D-147](../../decisions/content.md#d-147-aesthetic-taste-as-character-personality-trait--shared-root-for-cosmetic-and-environmental-expression) +- **Question:** If the player picks hair colour and clothing in #619, does the generator use those choices when laying out the starting apartment (furniture style, colour palette)? +- **Resolution:** Not directly. Characters have an `aesthetic_taste` personality trait (preferred palette, style leanings) that independently informs both appearance choices and living space — shared root, not data pipeline. #619 does NOT block #617. Both systems read the same underlying trait independently. The taste trait definition belongs to the character data model (server). +- **Decided by:** Project lead (taste-as-shared-root framing), Gestalt (ColorHint concept evolved into trait), Paula (culture + economics as primary apartment drivers). Ozzie dissented (direct pipeline); Tyre and Paula argued no connection at all. Taste trait is the synthesis. +- **Source:** Sprint 27 planning pass, 2026-03-17 + +--- + +## §1 — ROUND 1: Team Assignment Pass + +*Pending agent contributions.* + +--- + +## §2 — ROUND 2: Split Review + +*Pending. Note: #618 split question is now resolved — tile-scale zoom means #618 stays as a single `client` ticket (D-146). Anticipated remaining split: #620 (culture-implicit-in-location).* + +--- + +## §3 — ROUND 3: Sprint 28 Readiness + +*Pending.* + +--- + +## Decision Registry + +| ID | Type | Title | Domain file | Status | +|----|------|-------|-------------|--------| +| D-146 | D | Character creation preview — tile-scale sprite with heavy zoom | decisions/scope.md | **Filed** | +| D-147 | D | Aesthetic taste as character personality trait — shared root for cosmetic and environmental expression | decisions/content.md | **Filed** | +| Q-WTF-039 | Q | Character creation: portrait vs tile-scale preview | decisions/questions-content.md | **Resolved → D-146** | +| Q-WTF-040 | Q | Creation choices → generated apartment? | decisions/questions-content.md | **Resolved → D-147** | diff --git a/docs/sprints/sprint-28/sprint-28-candidates.md b/docs/sprints/sprint-28/sprint-28-candidates.md new file mode 100644 index 000000000..2f402d5a6 --- /dev/null +++ b/docs/sprints/sprint-28/sprint-28-candidates.md @@ -0,0 +1,73 @@ +--- +title: "Sprint 28 — Candidate Ticket List" +description: "v0.2 story tickets cleared for Sprint 28 sprint planning. Output of Sprint 27 planning pass." +type: sprint-prep +sprint: 28 +prepared_by: Sprint 27 planning team +date: 2026-03-17 +--- + +# Sprint 28 Candidate Tickets + +**From:** Sprint 27 planning pass (ticket #676) +**For:** SI — sprint planning + +These tickets have: team assigned, no unresolved open questions, no upstream blocker currently in backlog. + +--- + +## Ready for Sprint 28 + +| # | Title | Team | Epic | Notes | +|---|-------|------|------|-------| +| **#614** | Bookmark definition system | server | Tycoon Bookmark | No blockers. Blocks #618 (creation screen). Start here. | +| **#615** | Tycoon small business owner starting state | planning | Tycoon Bookmark | No blockers. Design spec for Day 1 state. Blocks #681 (apartment generator). | +| **#616** | Broad economic verb vocabulary design | planning | Tycoon Bookmark | No blockers. Verb map design doc. Independent. | +| **#619** | Full character customisation | client | Character Creation | No blockers. Cosmetic UI. Independent of apartment (#617) — taste trait is shared root, not pipeline (D-147). | +| **#679** | Location-to-culture resolution system (server) | server | Character Creation | No blockers. Split from #620. Unblocks #621, #680, #681. Critical path for NPC generation. | +| **#624** | Quietly responsive world | server | World Feel | No blockers. Proximity-weighted NPC attention + reaction systems. | +| **#625** | Dual-scale consequence model | server | World Feel | No blockers. Sharp events + slow accumulation. Rimworld + DF model. | + +**Total:** 7 tickets across server (3), client (1), planning (2), + 1 server unblocking ticket + +--- + +## NOT Ready — Blocked or Needs Design First + +| # | Title | Team | Blocked by | When Ready | +|---|-------|------|-----------|------------| +| #618 | CK3-style character creation screen | client | #614 (bookmark definition) | Sprint 29 (after #614 ships) | +| #680 | Location picker in character creation UI | client | #679 (culture resolution) | Sprint 29 (after #679 ships) | +| #681 | Apartment generator logic | server | #615 (starting state) + #679 (culture resolution) | Sprint 29 (after both ship) | +| #682 | Apartment rendering + first-moment sequence | client | #681 (generator logic) | Sprint 29+ | +| #621 | NPC personality surface area | server | #679 (culture resolution) | Sprint 29 (after #679 ships). CRITICAL priority. | +| #622 | Relationship formation system | server | #621 (NPC personality surface) | Sprint 29+ | +| #626 | Setting delivery — both layers | planning | Q-WTF-041 unresolved (span gate feeling) | Design pass needed first | + +--- + +## Tickets Marked as Split (do not assign) + +| # | Title | Split into | +|---|-------|-----------| +| #617 | Auto-generated apartment | #681 (server: generator) + #682 (client: rendering + first moment) | +| #620 | Culture-implicit-in-location system | #679 (server) + #680 (client). Original deleted. | + +--- + +## Q-WTF-041 Note for #626 + +Ticket #626 (Setting delivery — both layers) references Q-WTF-041: "what should the player feel looking at the span gate from their apartment?" This question is unresolved. Before #626 can be split and implemented, the design spec for the visual + insert layers must be authored. Recommend a planning ticket for the design pass in Sprint 28, separate from implementation. + +--- + +## Critical Path + +**NPC legibility chain:** #679 → #621 → #622 +NPC personality surface area (#621) is CRITICAL priority. Get #679 (culture resolution) into Sprint 28 so #621 is unblocked for Sprint 29. + +**First Settled Reach moment:** #615 + #679 → #681 → #682 +The apartment moment (D-136) depends on both the tycoon starting state spec and culture resolution shipping first. Apartment rendering (#682) is the client-side emotional delivery — sprint-pair with #681. + +**Character creation chain:** #614 → #618 +Bookmark definition gates the creation screen UI.