Files
settled-reach/docs/sprints/sprint-27/joint.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

71 lines
4.5 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 — Joint Briefing"
description: "Cross-team coordination, integration points, sprint completion proof"
type: sprint
status: active
sprint: 27
team: "joint"
---
# Sprint 27: Scale — Joint
**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.
## Pre-Sprint Checks
| Item | Owner | Status |
|------|-------|--------|
| Sprint 26 all done (15/15) | SI | confirmed |
| content/global/zone-types/ has rural_agricultural.ron and industrial_freight.ron | copy/server | confirmed |
| validate-ron currently accepts zone spec format | server | needs update (#663) |
| Sprint 27 created in planning status | SI | confirmed (ID: 27) |
## Cross-Team Dependencies
| Dependency | Upstream | Downstream | Notes |
|------------|----------|------------|-------|
| #669 (move content/) completes | server | server (#663 loader paths) | #663 loader should target `server/content/` from the start — coordinate on timing |
| #663 (ZoneTypeTemplate structs) merges | server | copy (#662 validate-ron) | Copy team can author in parallel; full validate-ron pass requires #663 merged |
| #663 struct design | server | copy (#662 authoring) | Server team: share the new struct field names before copy team starts batch authoring so RON files are aligned from the start |
**Action required — sprint start:** Server team (`#663` agent) to post the finalized `ZoneTypeTemplate` struct layout (field names and types) as a comment on #663 before copy team begins batch authoring. Copy team is authoring to the existing RON format (which IS the schema per D-142's "Rust structs match the RON files" contract) — but if the struct rename changes any field names, copy team needs to know before producing 29 files.
## Sprint Completion Proof
Sprint 27 is done when all of the following are observable:
**Server:**
- `cargo clippy -- --deny warnings` passes with zero warnings on the `server` branch.
- `cargo audit` runs as `make audit` and reports the RUSTSEC-2025-0141 advisory as ignored (expected), with no new advisories failing.
- `tooling/validate-ron content/global/zone-types/rural_agricultural.ron zone_type` passes against the new `ZoneTypeTemplate` struct.
- `cargo run --bin generator_spike -- --zone-type rural_agricultural --seed 42 --from-files` produces legible NPC output (eyeball test: you can tell it's a rural agricultural zone from the behaviors).
**Copy:**
- `content/global/zone-types/` contains all 31 RON files (2 existing + 29 new).
- All 31 files pass `tooling/validate-ron content/global/zone-types/<zone_type>.ron zone_type` (requires #663 merged).
- Each file has at least 3 roles with at least 12 `OnShift` primitives and 3 `Social` primitives per role.
- `content/npc-conversations/overheard.yaml.deprecated` exists; replacement RON file exists with 10+ entries.
**Planning:**
- All 12 v0.2 story tickets (#614#626) have a team assigned in the DB.
- Q-WTF-039 and Q-WTF-040 are marked resolved in `decisions/questions-content.md`.
- Any required split tickets created with blockers wired.
## Test Plan Alignment
Sprint 27 is a content + infrastructure sprint. No new ECS systems, no new IPC protocol changes. Test surface:
- **#663 struct changes:** Unit test deserializing `rural_agricultural.ron` into the new `ZoneTypeTemplate`. Existing spike integration test (`make generator-spike-test` or equivalent) must still pass. No regressions in existing blueprint deserialization tests.
- **#635 Clippy:** `cargo clippy -- --deny warnings` is the test. Zero warnings = done.
- **#669 content/ move:** `make test` must pass after the move. All fixture paths verified.
- **#662 zone-type files:** `tooling/validate-ron` pass for all 31 files is the acceptance criterion.
- **#664 overheard replacement:** New RON file deserializes without errors. Old YAML archived (not deleted).
## Sprint Retro Trigger
If any of these conditions are hit mid-sprint, flag to SI immediately:
- Server struct changes in #663 force RON file format changes that break the copy team's partially-authored files. (Mitigation: struct field names should be locked before copy batch authoring begins — see cross-team dependencies above.)
- Copy batch authoring produces more than 5% of primitives with cultural encoding (failing standalone readability). (Mitigation: reviewer agent pass at end of each batch.)
- #669 (content/ move) breaks more than 3 test files. (Mitigation: run `make test` after each subdirectory move, not at the end.)