# Sprint 25: Emerge — Joint **Goal:** Prove the generator can extrapolate from minimal input — a rural Krenn village from zone type and culture profile alone, no per-location spec. ## Pre-Sprint | Item | Owner | Blocks | |------|-------|--------| | Coordinate output format for zone identity spec (#609) | Miri + Tyre | #611 | | Coordinate output format for culture profile (#610) | Miri + Tyre | #611, #612 | | Confirm `NpcBlueprint` file location and module wiring | Tyre | #612, #613 | The critical coordination question: does copy deliver YAML files (which the generator reads at runtime) or Markdown design documents (which Tyre reads and encodes into Rust)? Either works — decide at sprint start. YAML is preferred if Tyre can define a schema upfront; Markdown if the profile needs to be free-form first and codified later. ## Sprint Completion Proof — Throwaway Render **This is not a test suite. It is an eyeball test.** The proof is a single standalone invocation that feeds the generator minimal parameters and inspects the output for shape and coherence. **Input (the minimum the generator must accept):** ``` zone_type: "rural" region: "outside Sova urban zone" system: "Krenn" seed: 42 ``` Plus the Krenn culture profile (#610) and zone identity taxonomy (#609) — loaded from disk, not hardcoded. **NO location-specific spec.** No "the village has a tavern." No bespoke social site list. The generator extrapolates entirely from zone type + culture. **Command (to be written as part of #612):** ```bash cargo run --bin generator-spike -- --zone rural --seed 42 ``` **Expected output (printed to stdout):** 1. `DistrictSkeleton` summary: zone type, block count, social site placements 2. Generated NPC list: one line per NPC with name, role, 2-3 traits, one observable behavior 3. A sample relationship pair (NPC A knows NPC B as X) **The pass condition (human judgment, not automated):** - Does the output have *shape*? A rural area should feel different from an industrial one. - Does it feel like it *belongs in the Krenn System*? Not generic space-village. Krenn-inflected. - Can you read the NPC relationships from the output? Not infer — *read*. **The fail condition:** - Output could be from any game in any setting (culture profile not doing work) - All rural areas produce identical outputs with different names (zone type not doing work) - NPC traits are unreadable from text (legibility fails — D-129 gate not met) **Why this framing matters (from the approval discussion):** The sprint proof deliberately uses minimal input because the generator's entire value proposition is scaling beyond hand-authored content. If it only works with detailed per-location specs, it fails the brief — because the whole point is the player walking into an unspecified area and it still having shape. The "throwaway render" framing is intentional: this is a rough proof, not a polished demo. Pass/fail is a 5-minute eyeball by the team lead. ## Tickets by Team | Team | # | Title | |------|---|-------| | copy | #609 | Zone identity spec | | copy | #610 | Krenn culture profile | | server | #611 | NpcBlueprint struct design | | server | #612 | Template assembly generator | | server | #613 | NPC generation pipeline | ## Dependency Chain ``` copy #609 (zone spec) ──┐ ├──> server #611 (NpcBlueprint) ──> #612 (template gen) ──> #613 (NPC pipeline) copy #610 (culture) ───┘ ``` Copy (#609, #610) runs in parallel and completes first. Server (#611 → #612 → #613) runs sequentially after copy delivers. ## Open Questions | ID | Question | Blocking | |----|----------|---------| | Q-WTF-033 | AI templating: Claude API, local ollama, or manual for v0.2? | #613, #623 | | 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 is the most relevant to this sprint. #613 does not need to implement AI templating — that is #623 (deferred). But the pipeline should be designed so AI templating slots in later without a rewrite. Discuss at sprint start. ## 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 authored beyond the zone spec and culture profile - No AI templating implementation (design for it, don't build it) - No playable session from the generated world