Files
settled-reach/docs/sprints/sprint-25/joint.md
T
jpmschweitzerandClaude Opus 4.6 e8263e209e refactor(data): rename Krenn to Van Maanen's Star
System S-057 assigned to real star GJ 35 (Van Maanen's Star, DG white
dwarf at 13.9 ly). Renamed across all content, server code, docs,
decisions, wiki lore, and config files. 224 files updated.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 00:23:26 +01:00

4.8 KiB

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:

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)