--- title: "Nigel Round 5 — Final Review" description: "Final review and sign-off on workshop outcomes for replayability domain" type: workshop status: archived workshop: generator-architecture agent: "nigel" round: 5 created: 2026-02-27 --- # Generator Architecture Workshop — Round 5: Nigel (Final Review) **Date:** 2026-02-27 **Role:** Replayability Advocate **Task:** Sign-off review of workshop-outcomes.md. Corrections only. --- ## Sign-Off Status **SIGNED OFF** with two corrections required and two notes. --- ## Verification Checklist **1. MobileChunk replayability guarantees — PASS WITH NOTE** D-READY-13 correctly captures: vessels as persistent world entities, Docked state with dock_position, boarding via gangway, interior cache persisting crew state across voyages, departure schedule as required generator output (error state if missing). The stage+cast framing is correct. Note: R-V-1 through R-V-6 are cited by reference only ("see round-4-notes.md §5"). This is acceptable if round-4-notes.md is preserved. For D-record durability, R-V-1 (≥50% variable manifest slots must differ between adjacent voyages) and R-V-3 (in-transit events are voyage-seeded, not vessel-seeded) are the two most critical for implementation correctness and should be verified to appear in the referenced section before filing. **2. Minimum 3 NPCs for intra-seed replayability — PASS** Explicitly stated: "Minimum NPC count for intra-seed replayability: 3 (one functional triangle). One NPC = maximum seed-to-seed variation, zero intra-seed emergence. Three NPCs = triangles, shifting alliances, cascade effects. Even Minimal-complexity insignificant districts need 3 NPCs." Correct and complete. **3. RegenerationStrategy enum — PASS** `LocalOverlay / SoftReseed / FullReseed` correctly maps in-playthrough / scenario-boundary / era-level. XOR prohibition for in-playthrough events is stated as a hard constraint and confirmed as lead decision L-7. The allowance of SoftReseed for scenario-boundary events is a valid nuance — the player was not present, so causal legibility is not required. Correct. **4. DramaDensity as runtime state — PASS** L-5 is explicit. The three-layer model correctly places `drama_density` under `SIMULATION STATE (runtime storyteller — NOT generator output)`. Not on DistrictSkeleton. Confirmed. **5. Three-parameter model (WorldTier + ComplexityTier + DramaDensity) — CORRECTIONS REQUIRED** Two separate issues found: --- ## Correction 1 — WorldTier Ceiling Conflict (Local) The constraint table states: > "WorldTier → ComplexityTier ceiling: Core/Regional → Full max; **Local → Moderate max**; Transit → Minimal; Dormant → Empty." The very next sentence states: > "A narratively critical backwater can be `WorldTier::Local + ComplexityTier::Full`." These are directly contradictory. Local cannot simultaneously have a Moderate ceiling and an explicit Full-complexity example. **Root cause:** The WorldTier enum description for `Local` includes "limited budget," conflating network significance (Local = low external connectivity) with simulation budget (which should be fully determined by ComplexityTier alone). WorldTier is about network position. ComplexityTier is about generator output depth. They are independent — this was the central Round 3 insight confirmed by all three participants. The `Backwater + Full complexity` case is fundamental to the game's design ("Insignificance is a lens, not a verdict"). A dense, isolated community of 150 people who've lived together for 40 years can be as socially rich as any hub — it's just not connected to the wider network. **Required fix — corrected ceiling table:** | WorldTier | ComplexityTier ceiling | |-----------|------------------------| | Core | Full | | Regional | Full | | **Local** | **Full** | | Transit | Minimal | | Dormant | Empty | Also remove "limited budget" from the `Local` enum comment. Budget is ComplexityTier's responsibility, not WorldTier's. --- ## Correction 2 — Missing ComplexityTier → DramaDensity Ceiling The document states the first half of the constraint chain: > WorldTier constrains ComplexityTier ceiling ✓ But does NOT state the second half: > ComplexityTier constrains DramaDensity ceiling ✗ (missing) This constraint is load-bearing. A `ComplexityTier::Empty` district has no NPCs, no social sites, no triangles. The storyteller cannot meaningfully activate drama in a district with no social fabric. Allowing the storyteller to set `DramaDensity::Flashpoint` on an Empty district is a bug category, not a design option. **Required addition** — after the existing WorldTier → ComplexityTier ceiling table, add: > ComplexityTier → DramaDensity ceiling: Full → any intensity; Moderate → Active max; Minimal → Quiescent max; Empty → Zero only (no storyteller activation possible). (Using the 3-level enum values currently in the struct: Quiescent / Active / Intense.) This does not change any other part of the document. It is a missing half of the stated constraint chain. --- ## Notes (Not Corrections, Not Blocking) **Note 1 — DramaDensity enum naming (Q-NNN-d)** Q-NNN-d flags Round 4 struct as Quiescent/Active/Intense (3 levels) vs. Round 3's Zero/Low/Medium/High/Flashpoint (5 levels). My preference is 5 levels for finer storyteller control. Specifically: the distinction between `High` ("this is the current narrative focus") and `Flashpoint` ("crisis actively destabilizing the world") is a categorically different gameplay state that should not collapse into a single `Intense` value. If 3 levels is chosen for implementation simplicity, I ask that Flashpoint be preserved as the distinct peak value — it is the storyteller's maximum-pressure instrument and deserves its own state. This is a Q-record and sprint work. Flagging my position, not blocking. **Note 2 — Q-NNN-b Resolution** Q-NNN-b is listed as unresolved: "Departure schedule model — departure windows as generator output for docked vessels." But D-READY-13 already states: "`scheduled_departure: Option` field in Docked state satisfies this; the generator must populate it. Vessels without departure schedules are an error state." This appears resolved within the document. Recommend closing Q-NNN-b before sprint planning. --- ## Overall Verdict The document correctly captures the workshop architecture. Two corrections must be applied before D-records are filed: 1. Local ceiling must be Full (not Moderate) — the backwater case is core design 2. ComplexityTier → DramaDensity ceiling must be stated — it is half of the constraint chain Everything else accurately reflects my Round 3-4 positions. The replayability architecture this document specifies will deliver: two players comparing the same world mod will have wildly different stories to tell.