# Conflicts: # CHANGELOG.md # content/_meta/README.md # content/_meta/npc-authoring-style-guide.md # wiki/_templates/cultural-group.md # wiki/_templates/institution.md # wiki/_templates/star-system.md # wiki/characters/devra.md # wiki/characters/drin.md # wiki/characters/harek.md # wiki/characters/lera-sessik.md # wiki/characters/maret-korr.md # wiki/characters/naia-tamm.md # wiki/characters/nils-davan.md # wiki/characters/pell.md # wiki/characters/renn.md # wiki/characters/resha.md # wiki/characters/sabel.md # wiki/characters/sera-venn.md # wiki/characters/torek-lintar.md # wiki/characters/voss.md # wiki/star-systems/krenn/index.md
110 lines
5.0 KiB
Markdown
110 lines
5.0 KiB
Markdown
---
|
|
title: "Sprint 25 — Joint Briefing"
|
|
description: "Generator proof-of-life coordination, zone spec handoff, throwaway render test"
|
|
type: sprint
|
|
status: archived
|
|
sprint: 25
|
|
team: "joint"
|
|
---
|
|
|
|
# Sprint 25: Emerge — Joint
|
|
|
|
**Confidence: 15%.** This sprint is exploratory — we learn whether the approach works, not whether we can ship it. Declare what we learned, not victory.
|
|
|
|
**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.
|
|
|
|
## Pre-Sprint
|
|
|
|
| Item | Owner | Blocks |
|
|
|------|-------|--------|
|
|
| Tyre shares example YAML schema from #611 with Miri | Tyre | #609, #610 |
|
|
| Agree on file paths for zone spec and culture YAML | Tyre + Miri | #609, #610, #612 |
|
|
|
|
The critical coordination handoff: #611 defines the Rust structs and writes example YAML showing the schema. That YAML goes to Miri immediately. Copy fills the schema with real content. Server builds Phase 1 of #612 with hardcoded stubs in parallel — does not wait for copy.
|
|
|
|
## Sprint Completion Proof — Throwaway Render
|
|
|
|
**This is not a test suite. It is an eyeball test.**
|
|
|
|
**Commands:**
|
|
```bash
|
|
cargo run --bin generator-spike -- --zone rural --seed 42
|
|
cargo run --bin generator-spike -- --zone industrial --seed 42
|
|
cargo run --bin generator-spike -- --zone rural --seed 43
|
|
```
|
|
|
|
**Expected output per invocation:**
|
|
- Zone type and summary (block count, social site list)
|
|
- NPC roster: name, role, 2-3 traits, one observable behavior
|
|
- Relationship pairs: "A knows B as [type] ([valence])"
|
|
|
|
**Pass condition — three comparisons:**
|
|
|
|
Cross-type (rural vs industrial, seed 42):
|
|
- Different output shape — social site mix, NPC role distribution, density all differ
|
|
- Both feel Van Maanen's Star — shared naming conventions and cultural markers
|
|
- Zone taxonomy does visible work (outputs distinguishable by zone type alone)
|
|
|
|
Intra-type (rural seed 42 vs rural seed 43):
|
|
- Both recognizably rural — same zone shape, similar role distribution
|
|
- Different people — different names, traits, relationship pairs
|
|
- Tests coherence within a type and variance across seeds
|
|
|
|
Culture (both zone types):
|
|
- Culture profile does visible work — output feels Van Maanen's Star, not generic space-village
|
|
- NPC relationships are **readable** from text — not inferred, read
|
|
|
|
**Fail condition:**
|
|
- Both outputs look the same with different labels (zone taxonomy not doing work)
|
|
- Neither feels Van Maanen's Star (culture profile not doing work)
|
|
- NPC traits unreadable from text (D-129 legibility gate not met)
|
|
|
|
This sprint **discovers** the right spec — it does not implement a known one. If the output is light and not fully deep, that is expected. The proof is in the pudding: run it, read it, judge it.
|
|
|
|
## Tickets by Team
|
|
|
|
| Team | # | Title |
|
|
|------|---|-------|
|
|
| server | #611 | NpcBlueprint struct design |
|
|
| copy | #609 | Zone identity spec |
|
|
| copy | #610 | Van Maanen's Star culture profile |
|
|
| server | #612 | Template assembly generator (includes NPC pipeline + stdout output) |
|
|
|
|
## Dependency Chain
|
|
|
|
```
|
|
#611 (structs + schema) ──> #609 (zone spec YAML) ──┐
|
|
──> #610 (culture YAML) ──┴──> #612 Phase 2 (integrate real YAML)
|
|
|
|
#611 ──────────────────────────────────────────────────> #612 Phase 1 (hardcoded stubs, build in parallel)
|
|
```
|
|
|
|
#611 first. #609 and #610 in parallel after schema arrives. #612 builds in two phases — Phase 1 with stubs runs alongside copy, Phase 2 integrates real YAML.
|
|
|
|
## Open Questions
|
|
|
|
| ID | Question | Blocking |
|
|
|----|----------|---------|
|
|
| Q-WTF-033 | AI templating: Claude API, local ollama, or manual for v0.2? | #623 (deferred) |
|
|
| Q-WTF-039 | Character creation screen: portrait render or tile-scale preview? | Sprint 26+ |
|
|
| Q-WTF-040 | Do creation choices trace into the generated apartment? | Sprint 26+ |
|
|
|
|
Q-WTF-033 does not block this sprint. Design #612 so AI templating slots in later without a rewrite — the culture profile's speech markers are already the prompt constraint structure.
|
|
|
|
## Deferred to Future Sprints
|
|
|
|
- Tycoon bookmark (#605, #614-617) — needs generator output proven first
|
|
- Character creation screen (#606, #618-620) — client work, post-generator
|
|
- NPC legibility systems (#607, #621-622) — downstream of generator
|
|
- AI content templating (#623) — Q-WTF-033 unresolved
|
|
- World feel systems (#608, #624-626) — downstream of everything
|
|
- Visual rendering of generated world — out of scope for this spike
|
|
|
|
## What This Sprint Does NOT Do
|
|
|
|
- No client work (no rendering of generated content)
|
|
- No new content beyond the zone spec and culture profile YAML files
|
|
- No AI templating implementation (design for it, don't build it)
|
|
- No playable session from the generated world
|
|
- No ECS entity spawning into a running bevy world (#613 absorbed into #612 as stdout-only proof)
|