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>
98 lines
5.9 KiB
Markdown
98 lines
5.9 KiB
Markdown
---
|
||
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
|
||
```
|