--- title: "Sprint 27 — Planning Briefing" description: "Assign teams and review open questions for v0.2 story tickets #614–#626" type: sprint status: active sprint: 27 team: "planning" --- # Sprint 27: Scale — Planning Tasks **Goal:** Extend the zone-type template library from 2 to 31 zone types, wire the server to load them, and eliminate Clippy debt — clearing the path to the NPC legibility sprint. **Branch:** `planning` **Agents:** Gestalt (systems), Tyre (technical), Paula (narrative), Ozzie (player experience), Qatux (documenter/decisions), SI (project manager/ticket updates) ## New Tickets | # | Title | Blocked by | |---|-------|------------| | #676 | Assign team and sprint for v0.2 story tickets (#614–#626) | — | Use `tooling/db/ticket show ` for full details. ## Context The v0.2 story tickets were created during the Where's the Fun? workshop (2026-03-05) and captured in the backlog without team assignments. Before they can enter a sprint they need a team and any cross-team splits resolved. The full ticket list: | # | Title | Epic | Dependencies | |---|-------|------|-------------| | #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 | — | ## Key Decisions - `decisions/scope.md` — D-114 (generator-first), D-115 (character creation: skills + bookmark only), D-117 (tycoon bookmark for v0.2), D-118 (tycoon = aspiration, not starting state), D-120 (no skill ceiling) - `decisions/content.md` — D-121 (voice is culture-driven), D-122 (all NPCs generated), D-125 (world quietly responsive), D-126 (Groundhog Day homage on first game day), D-128 (culture implicit in starting location), D-129 (NPC personality: traits + behavior first), D-130 (emergent moral arc), D-131 (broad economic verb vocabulary), D-132 (dual-scale consequence model), D-133 (skills affect outcome), D-134 (full character customization), D-135 (setting delivery via both layers), D-136 (First Settled Reach moment: apartment + insert activation), D-137 (generator: structural and cosmetic variety) ## Open Questions to Resolve Before assigning teams, resolve or document the following open questions: **Q-WTF-039: Character creation portrait vs tile-scale preview** - 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`. - Needs: Araminta (visual) + Stig/Tyre (client architecture) input. Decision determines whether #618 splits into two tickets. **Q-WTF-040: Do creation choices trace into the generated apartment?** - 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 (auto-generated apartment) scope. If yes, #619 blocks #617 (not just #615). - Needs: Gestalt (systems) + Mellanie (content) input. Low complexity to resolve — yes/no decision with a rationale. ## Discussion Structure Three focused rounds: **Round 1 — Team assignment pass** For each ticket, propose a team. Apply the rule: one team per ticket. If a story spans server + client, it must be split. Output: proposed team assignment for each of the 12 tickets, with rationale. Heuristics: - Data model / simulation logic → `server` - UI screen / rendering / player-facing interaction → `client` - Design doc / verb vocabulary / narrative spec → `copy` or `planning` - Open question must be resolved before implementation can start → `planning` first, then re-assign **Round 2 — Split review** Identify which tickets need to be split into server + client pairs. For each split: write the two child tickets with explicit blocker relationship. #620 (culture-implicit-in-location) is almost certainly a split: server (location-to-culture resolution logic) + client (location picker in character creation UI). **Round 3 — Sprint readiness check** Which of the 12 tickets are ready for Sprint 28? Criteria: team assigned, no unresolved open questions blocking implementation, no upstream blocker still in backlog. Present a Sprint 28 candidate list. ## Output Specification Deliverables from this planning session: 1. **Team assignments committed to DB** — `tooling/db/sqlite-exec "UPDATE tickets SET team = '...' WHERE id = ..."` for all 12 tickets. 2. **Split tickets created** — new tickets for any server/client splits, with blocker relationships wired via `tooling/db/sqlite-exec "INSERT INTO ticket_deps ..."`. 3. **Q-WTF-039 and Q-WTF-040 resolved** — file resolution notes in `decisions/questions-content.md` (Qatux). 4. **Sprint 28 candidate list** — a short list of tickets ready for Sprint 28, delivered to SI for sprint planning. ## PR Workflow When ready to submit planning artifacts, create a PR with `tea` CLI. **All flags are required** to avoid TTY prompts: ```bash tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "chore(meta): plan v0.2 story ticket team assignments" --description "body" --base main --head planning ```