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

5.9 KiB
Raw Blame History

title, description, type, status, sprint, team
title description type status sprint team
Sprint 27 — Planning Briefing Assign teams and review open questions for v0.2 story tickets #614#626 sprint active 27 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 DBtooling/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:

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