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>
71 lines
4.5 KiB
Markdown
71 lines
4.5 KiB
Markdown
---
|
||
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.)
|