Files
settled-reach/docs/sprints/sprint-27/planning.md
T
jpmschweitzerandClaude Sonnet 4.6 2fddf8b6ca chore(meta): plan Sprint 27: Scale
9 tickets assigned. Teams: server (5), copy (3), planning (1).
Sprint goal: extend zone-type template library from 2 to 31 zone types,
wire server structs for D-142, eliminate Clippy debt.

New ticket #676 created: assign teams to v0.2 story backlog (#614-#626).
Tickets #669 and #672 reassigned from maintenance to server.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 22:47:55 +01:00

98 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 <id>` 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
```