diff --git a/.claude/skills/sprint-start/SKILL.md b/.claude/skills/sprint-start/SKILL.md index e86bd1525..b7ba98eec 100644 --- a/.claude/skills/sprint-start/SKILL.md +++ b/.claude/skills/sprint-start/SKILL.md @@ -431,8 +431,8 @@ and the WORKFLOW section from the standard template): Those actions belong to executor agents (SI, Qatux) after the team lead confirms consensus. - 4. OUTPUT FORMAT: Send your analysis to the team lead via - SendMessage. Structure it as: + 4. OUTPUT FORMAT: Your first message to the team lead should + be your full analysis. Structure it as: - Your position on open questions (with rationale) - Proposed team assignments (table format) - Split candidates (if any) diff --git a/decisions/README.md b/decisions/README.md index 116587353..1f6e1d579 100644 --- a/decisions/README.md +++ b/decisions/README.md @@ -12,8 +12,8 @@ Cross-domain decisions live in one file with cross-reference notes in related fi |------|--------|-----------| | [architecture.md](architecture.md) | Technical foundation | D-008, D-009, D-010, D-012, D-020, D-026, D-030, D-031, D-041, D-042, D-054, D-055, D-066, D-068, D-073, D-085, D-088, D-094, D-096, D-097, D-099, D-100, D-101, D-102, D-103, D-106, D-108, D-109, D-113, D-133, D-134, D-135, D-136, D-137 | | [perception.md](perception.md) | Player observation | D-011, D-015, D-016, D-017, D-018, D-019, D-033, D-035, D-043, D-044, D-045, D-046, D-047, D-048, D-049, D-052, D-056, D-057, D-058, D-059, D-060, D-061, D-067, D-069, D-070, D-071, D-072, D-076, D-077, D-078, D-086 | -| [content.md](content.md) | NPC, dialogue, templates | D-023, D-024, D-025, D-028, D-029, D-032, D-034, D-035, D-036, D-037, D-050, D-062, D-063, D-064, D-074, D-075, D-084, D-090, D-092, D-093, D-095, D-098, D-104, D-105, D-107, D-121, D-122, D-123, D-124, D-125, D-126, D-127, D-128, D-129, D-130, D-131, D-132, D-138, D-139, D-140, D-142 | -| [scope.md](scope.md) | Game concept, prototype | D-001, D-003, D-005, D-006, D-007, D-013, D-014, D-027, D-038, D-039, D-051, D-053, D-065, D-087, D-089, D-091, D-114, D-115, D-116, D-117, D-118, D-119, D-120 | +| [content.md](content.md) | NPC, dialogue, templates | D-023, D-024, D-025, D-028, D-029, D-032, D-034, D-035, D-036, D-037, D-050, D-062, D-063, D-064, D-074, D-075, D-084, D-090, D-092, D-093, D-095, D-098, D-104, D-105, D-107, D-121, D-122, D-123, D-124, D-125, D-126, D-127, D-128, D-129, D-130, D-131, D-132, D-138, D-139, D-140, D-142, D-147 | +| [scope.md](scope.md) | Game concept, prototype | D-001, D-003, D-005, D-006, D-007, D-013, D-014, D-027, D-038, D-039, D-051, D-053, D-065, D-087, D-089, D-091, D-114, D-115, D-116, D-117, D-118, D-119, D-120, D-145, D-146 | | [process.md](process.md) | Team, workflow | D-004, D-021, D-022, D-040 | | [questions.md](questions.md) | Open questions (index) | Q-001 through Q-054 | | [questions-architecture.md](questions-architecture.md) | Technical questions | Q-001, Q-006, Q-009, Q-018–Q-023, Q-029, Q-030, Q-046 | diff --git a/decisions/content.md b/decisions/content.md index daedc2487..4f55809ee 100644 --- a/decisions/content.md +++ b/decisions/content.md @@ -557,15 +557,16 @@ How narrative, NPCs, and world content are created: content tiers, NPC generatio ### 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. +- **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 #679); the character customisation 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 (customisation) 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. +- **Information boundary (D-010):** `aesthetic_taste` is a public trait — visible to other entities and the client. NPCs can observe the player's taste (e.g. gift relevance, comfort assessment). This is not private knowledge behind the information boundary. - **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) +- **Cross-reference:** [D-125](#d-125-world-is-quietly-responsive--gradient-of-caring-by-social-proximity) (quiet responsiveness), [D-134](architecture.md#d-134-full-character-customisation--hair-clothing-colors-at-tile-scale) (full character customisation), [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)* +*44 decisions. Last updated: 2026-03-17 (D-147 aesthetic taste trait)* diff --git a/decisions/questions-content.md b/decisions/questions-content.md index 18d40cf61..4c9ed4cf1 100644 --- a/decisions/questions-content.md +++ b/decisions/questions-content.md @@ -219,6 +219,13 @@ Narrative, NPCs, dialogue, templates, setting, worldbuilding, and storyteller me - **Assigned to:** Gestalt (systems), Paula (narrative), confirmed by project lead - **Source:** Sprint 27 planning pass (2026-03-17) +### Q-WTF-041: What should the player feel looking at the span gate from their apartment? +- **Status:** Open +- **Question:** The First Settled Reach moment (D-136) is apartment + insert activation. The player's apartment has a view of the span gate. What emotional register should this view hit? Awe? Routine familiarity? Unease? This shapes the visual design of the apartment scene and the insert's first content. +- **Affects:** #626 (setting delivery — both layers). Blocks implementation until the emotional target is defined. +- **Needs:** Gore (thematic framing), Ozzie (player experience), Miri (setting grounding), Araminta (visual direction) +- **Source:** Where's the Fun? Workshop, Round 5 (2026-03-05) + --- -*23 questions (9 resolved, 2 partially resolved, 12 open). Last updated: 2026-03-17 (Q-WTF-039, Q-WTF-040 resolved)* +*24 questions (9 resolved, 2 partially resolved, 13 open). Last updated: 2026-03-17 (Q-WTF-039, Q-WTF-040 resolved, Q-WTF-041 added)* diff --git a/decisions/scope.md b/decisions/scope.md index f0a2cf063..06e2af946 100644 --- a/decisions/scope.md +++ b/decisions/scope.md @@ -289,13 +289,13 @@ What we're building: game concept, design pillars, prototype definition, map spe ### 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. +- **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 customisation 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 customisation (#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) +- **Cross-reference:** [D-115](#d-115-character-creation-scoped-to-skills--bookmark-for-v02) (creation scope), [D-134](architecture.md#d-134-full-character-customisation--hair-clothing-colors-at-tile-scale) (full character customisation), [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 --- diff --git a/docs/sprints/sprint-28/sprint-28-candidates.md b/docs/sprints/sprint-28/sprint-28-candidates.md index 2f402d5a6..aeba3821b 100644 --- a/docs/sprints/sprint-28/sprint-28-candidates.md +++ b/docs/sprints/sprint-28/sprint-28-candidates.md @@ -28,7 +28,7 @@ These tickets have: team assigned, no unresolved open questions, no upstream blo | **#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 +**Total:** 7 tickets across server (4), client (1), planning (2) ---