--- title: "Sprint 25 — Copy Briefing" description: "Zone identity spec, Van Maanen's Star culture profile" type: sprint status: archived sprint: 25 team: "copy" --- # Sprint 25: Emerge — Copy Tasks **Goal:** Prove the generator can extrapolate from minimal input — a rural Van Maanen's Star area AND an industrial Van Maanen's Star zone from zone type and culture profile alone, no per-location spec. Two zone types, one culture, side-by-side comparison. **Branch:** `copy` **Agents:** Miri (worldbuilding lead), Mellanie (voice/dialogue review) ## New Tickets | # | Title | Blocked by | |---|-------|------------| | #609 | Zone identity spec | #611 (server defines schema first) | | #610 | Van Maanen's Star culture profile | #611 (server defines schema first) | Use `tooling/db/ticket show ` for full details. ## Key Decisions - `decisions/scope.md` — D-114 (generator-first proof-of-life), D-119 (generator spike critical path) - `decisions/content.md` — D-121 (voice is culture-driven, job as modifier), D-122 (all NPCs generated), D-128 (culture implicit in starting location), D-129 (NPC personality: traits + behavior first) - `decisions/architecture.md` — D-012 (chunk-based map, borderless generation future) ## Notes **How this sprint works for copy** Server starts first. Tyre (#611) defines `ZoneSpec`, `CultureProfile`, and `NpcBlueprint` as Rust structs and writes example RON files showing the expected format. The Rust structs ARE the schema — no separate schema file to maintain. Copy fills real content into that format. Wait for #611 to deliver its example RON before writing the real files. Tyre also ships a **RON validator CLI** (`tooling/validate-content `) that deserializes into the actual Rust structs and prints errors. Use it to lint your files before submitting. Coordinate with Tyre at sprint start to agree on file locations (`content/global/zone-identity-spec.ron` and `content/global/culture-van-maanens-star.ron` are the expected paths, but Tyre's struct design is authoritative). **#609 — Zone identity spec** - Output: RON file the generator deserializes at runtime. Schema defined by Tyre's `ZoneSpec` struct from #611. - Minimum two zone types with real content: **rural** and **industrial**. These are the two the sprint proof runs. Remaining types can be stubs with plausible values. - The taxonomy must make the generator produce visibly different output per zone type — if rural and industrial look the same, it has failed. - Content scope: what varies between zone types (density, pace, social site mix, NPC role distribution). Not prose worldbuilding — structured parameters that the Rust generator can read. - Do not invent the schema. Read #611's example RON first. **#610 — Van Maanen's Star culture profile** - Output: RON file the generator deserializes at runtime. Schema defined by Tyre's `CultureProfile` struct from #611. - Must provide enough cultural signal that generated NPCs feel Van Maanen's Star, not generic-space-village. - Sprint scope: **name lists** (not phoneme generation rules — Tyre's generator picks from lists), speech markers, economic values, social norms. - Phoneme-based name generation is explicitly out of scope for this sprint. A curated list of Van Maanen's Star-sounding names is sufficient. - Existing Van Maanen's Star atmosphere and naming examples in `decisions/content.md` D-036 (amended post-workshop) are a starting point. Go deeper on concrete values (specific speech markers, actual name examples) not broader on atmospheric description. - Do not invent the schema. Read #611's example RON first. ## Dependency Chain ``` server #611 (schema + validator) ──> #609 (zone spec RON) ──┐ ├──> server #612 (generator) ──> #610 (culture RON) ──────┘ ``` Server defines the shape. Copy fills it. Both #609 and #610 can be written in parallel once #611 delivers its example RON. ## PR Workflow When ready to submit, create a PR with `tea` CLI. All flags are required to avoid TTY prompts (see CLAUDE.md "Gitea access" section): ```bash tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(copy): zone identity spec and Van Maanen's Star culture profile" --description "body" --base main --head copy ```