docs(docs): generator architecture workshop — 5 rounds, 14 D-records
Complete workshop output for ticket #562. Establishes the procedural generator pipeline architecture for the 300-world model: two-phase generation (DistrictSkeleton + ChunkData), three-layer model (generator/simulation/delta), spatial hierarchy, MobileChunk spec, guarantee tier system, heritage grammar overlay, and damage overlay. Participants: Gestalt, Tyre, Miri, Araminta, Nigel, Ozzie. Rounds 1-4 (design) + Round 5 (review/corrections). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,209 @@
|
||||
# Generator Architecture Workshop — Round 5 Notes
|
||||
|
||||
**Workshop:** Generator Architecture (#562)
|
||||
**Round:** 5 — Final Review
|
||||
**Date:** 2026-02-27
|
||||
**Compiled by:** Qatux
|
||||
|
||||
---
|
||||
|
||||
## Purpose
|
||||
|
||||
Round 5 was a sign-off round. All six participants reviewed `workshop-outcomes.md` for accuracy against their Round 4 canonical outputs. No new design proposals were made. Corrections only.
|
||||
|
||||
---
|
||||
|
||||
## Sign-Off Status
|
||||
|
||||
| Agent | Role | Status | Corrections |
|
||||
|-------|------|--------|-------------|
|
||||
| Tyre | Technical Architect | Signed off with corrections | HIGH: WorldTier enum; MEDIUM: DistrictSkeleton fields; LOW: MobileMovementState |
|
||||
| Miri | Worldbuilder | Signed off with corrections | D-READY-10 heritage correlations; D-READY-12 principle |
|
||||
| Araminta | Visual Designer | Signed off with corrections | D-READY-6 terrain types; D-READY-9 domain; D-READY-13 vessel grammar; D-READY-5 stages |
|
||||
| Nigel | Replayability Advocate | Signed off with corrections | Missing ComplexityTier→DramaDensity ceiling |
|
||||
| Gestalt | Systems Design | Signed off with minor notes | complexity→complexity_tier naming |
|
||||
| Ozzie | Player Experience | Signed off with one correction | D-READY-11 rooftop "determines" → "weights probability" |
|
||||
|
||||
All six sign-offs confirmed. Workshop is closed.
|
||||
|
||||
---
|
||||
|
||||
## Corrections Applied to workshop-outcomes.md
|
||||
|
||||
### C-R5-1 — WorldTier Enum Variant Names (HIGH)
|
||||
**Source:** Tyre Round 5, Correction 1
|
||||
|
||||
The outcomes document used simplified/incorrect variant names. Corrected to Tyre's Round 4 canonical:
|
||||
|
||||
| Incorrect | Correct |
|
||||
|-----------|---------|
|
||||
| Core | Epicenter |
|
||||
| Regional | Regional (unchanged) |
|
||||
| Local | Backwater |
|
||||
| Transit | Passage |
|
||||
| Dormant | Waypoint |
|
||||
|
||||
Constraint ceiling also corrected:
|
||||
- **Backwater → Full allowed** (key game design insight: dense isolated community, network-insignificant ≠ budget-capped)
|
||||
- **Passage → Moderate** (was: Transit → Minimal)
|
||||
- **Waypoint → Minimal** (was: Dormant → Empty)
|
||||
|
||||
The original text "Local → Moderate max" materially prohibited the Backwater+Full case, which is one of the most important design combinations in the game.
|
||||
|
||||
---
|
||||
|
||||
### C-R5-2 — ComplexityTier → DramaDensity Ceiling (MEDIUM)
|
||||
**Source:** Nigel Round 5, Correction 2
|
||||
|
||||
The constraint chain was stated only halfway. Added second half:
|
||||
|
||||
> ComplexityTier → DramaDensity ceiling: Full → any intensity; Moderate → Active max; Minimal → Quiescent max; Empty → Zero only (no storyteller activation possible).
|
||||
|
||||
A `ComplexityTier::Empty` district has no social fabric. The storyteller cannot activate drama there.
|
||||
|
||||
---
|
||||
|
||||
### C-R5-3 — DistrictSkeleton Field List (MEDIUM)
|
||||
**Source:** Tyre Round 5, Correction 2
|
||||
|
||||
Five identity/context fields missing from the Phase 1 diagram, replaced by fields from other participants' proposals without attribution. Added:
|
||||
- `district_id: DistrictId`
|
||||
- `seed: u64`
|
||||
- `district_type: DistrictType`
|
||||
- `context: DistrictContext`
|
||||
- `access_points: Vec<AccessPoint>`
|
||||
|
||||
Added "(source: multi-participant)" notes to `vertical_structure` and `breach_only_zones` (present in outcomes but not in Tyre's canonical struct). Added "(source: Miri/Gestalt; Phase 1 computed)" to `derived_analysis`.
|
||||
|
||||
---
|
||||
|
||||
### C-R5-4 — D-READY-10 Heritage Root Correlations (HIGH)
|
||||
**Source:** Miri Round 5
|
||||
|
||||
The heritage root ↔ informal zone type mapping was factually wrong:
|
||||
- **Dust** was listed under `utilitarian_cover` — incorrect. Dust communities have maximum communal observation; the only privacy available is negotiated. Dust → `social_permission`.
|
||||
- **Iron** was missing entirely. Labor function covers presence in Iron communities. Iron → `utilitarian_cover`.
|
||||
|
||||
Corrected mapping: Frost/Stone → `physical_distance`; Tide/Vine/Dust → `social_permission`; Iron/Salt → `utilitarian_cover`.
|
||||
|
||||
---
|
||||
|
||||
### C-R5-5 — D-READY-11 Rooftop Config Assignment (MEDIUM)
|
||||
**Source:** Ozzie Round 5 + Araminta Round 5 (confirming)
|
||||
|
||||
"Heritage root determines which config is assigned" is wrong. Full determination kills the discovery moment — a Frost building with a rooftop bar is memorable *precisely because* it is unexpected.
|
||||
|
||||
Corrected: Heritage root **weights the probability** between `Restricted` and `PublicWithHiddenLayer`. The final config is seeded per-building. A minority of buildings of any heritage root must be configurable as the non-dominant type.
|
||||
|
||||
---
|
||||
|
||||
### C-R5-6 — D-READY-13 MobileMovementState Missing Idle (LOW)
|
||||
**Source:** Tyre Round 5, Correction 4
|
||||
|
||||
`MobileMovementState` was listed as `(Docked / InTransit / InterSystem)`. Tyre's Round 4 canonical includes a fourth state:
|
||||
|
||||
- `Idle` = vessel parked at a location but not docked to infrastructure (anchored ship, grounded shuttle)
|
||||
|
||||
Added to D-READY-13.
|
||||
|
||||
---
|
||||
|
||||
### C-R5-7 — D-READY-13 Missing Vessel Visual Grammar Reference (MEDIUM)
|
||||
**Source:** Araminta Round 5, Correction 3
|
||||
|
||||
D-READY-13 specified vessel structure and cultural grammar but had no source for how vessels look different from buildings. Added reference to Araminta's five-rule vessel visual grammar (`araminta-round4.md` §2):
|
||||
|
||||
1. Exterior hull uses vessel-identity material, not zone palette
|
||||
2. Window tiles reveal exterior context (docked vs. in transit)
|
||||
3. Compression modifier tightens proportions throughout
|
||||
4. Section transitions use vessel-identity threshold elements
|
||||
5. Class stratification expressed through proportion, not palette change
|
||||
|
||||
---
|
||||
|
||||
### C-R5-8 — D-READY-6 Terrain Type Numbering T5/T7 Transposed (MEDIUM)
|
||||
**Source:** Araminta Round 5, Correction 1
|
||||
|
||||
The outcomes document had T5 = mountain and T7 = wetland. Neither is correct per Araminta's Round 3 specification:
|
||||
- T5 = Coastal water (the terrain type referenced by D-READY-7's horizon view corridor guarantee)
|
||||
- T6 = Beach/coastal margin
|
||||
- T7 = Mountain/high terrain
|
||||
- T8 = Desert/arid
|
||||
|
||||
"Wetland" was never in the original 8 types. Added note: if wetland terrain is needed, it requires design work as a new T9.
|
||||
|
||||
---
|
||||
|
||||
### C-R5-9 — D-READY-9 Araminta's Authoring Domain Incomplete (MEDIUM)
|
||||
**Source:** Araminta Round 5, Correction 2
|
||||
|
||||
Araminta's authoring domain was listed as "object sets, arrangement algorithms, lighting temperature." The full domain covers additional visual expression fields she specified in her Round 4 TOML schema:
|
||||
- Floor surface variants (`[floor].variant_preference`)
|
||||
- Overhead flora density and character (`[overhead].density_factor`, `[overhead].character`)
|
||||
- Wall/structure material character (`[structure].primary_material`, `material_tone_shift`)
|
||||
- Boundary material type (`[boundaries].fence_type`)
|
||||
|
||||
Updated domain description accordingly.
|
||||
|
||||
---
|
||||
|
||||
### C-R5-10 — D-READY-5 Destruction Stages and Palette Constraint (MEDIUM)
|
||||
**Source:** Araminta Round 5, Correction 4
|
||||
|
||||
D-READY-5 referenced "Stage 2" and "Stage 3" without enumerating the full sequence. Added:
|
||||
|
||||
| Stage | Name | Visual state |
|
||||
|-------|------|-------------|
|
||||
| 1 | Active | DamageOverlay rendering live |
|
||||
| 2 | Fresh Aftermath | Structure breached; scorch, rubble, debris |
|
||||
| 3 | Stabilized | Debris cleared; structural state permanent |
|
||||
| 4 | Reconstruction | Scaffolding tiles, incomplete floors |
|
||||
| 5 | Healed Scar | Functional; residual visual tells remain |
|
||||
|
||||
Added destruction palette constraint: corruption-only (no new colors introduced by destruction; single exception: `#c8d8f0` open-sky tile when roof removed).
|
||||
|
||||
---
|
||||
|
||||
### C-R5-11 — D-READY-12 Trauma Intensification Principle (MINOR)
|
||||
**Source:** Miri Round 5
|
||||
|
||||
Added design principle framing to D-READY-12:
|
||||
|
||||
> Trauma intensifies culture, it does not transform it. A stressed community becomes a more concentrated version of itself. Decay is toward the community's pre-trauma baseline, not toward a new equilibrium.
|
||||
|
||||
---
|
||||
|
||||
### C-R5-12 — complexity → complexity_tier Field Naming (MINOR)
|
||||
**Source:** Gestalt Round 5, Correction 2
|
||||
|
||||
`complexity: ComplexityTier` in the Phase 1 diagram corrected to `complexity_tier: ComplexityTier` to parallel `world_tier` naming convention.
|
||||
|
||||
---
|
||||
|
||||
### Minor Notes Applied
|
||||
|
||||
- **Q-NNN-b** (departure schedule model): Added note that D-READY-13 resolves this — recommend closing before sprint planning.
|
||||
- **Q-NNN-f** (assassination difficulty synthesis): Clarified that on-demand computation is display-only; game logic uses Phase 1 `DerivedDistrictAnalysis` value.
|
||||
- **Key Tensions table**: Updated WorldTier canonical values from old names to new.
|
||||
|
||||
---
|
||||
|
||||
## Notes for D-Record Filing
|
||||
|
||||
The following items were identified as issues in the D-records to be filed, not errors in the outcomes document:
|
||||
|
||||
- **`GuaranteeAuditResult` struct** (Tyre Round 5, Correction 6): Tyre's Round 4 struct was missing `non_institutional_route`, `egress_multiplicity`, `horizon_view_corridor`, `breach_only_zone`, `rooftop_discovery` in the Tier 2/3 sections. These should be added when filing the D-record for D-READY-2/D-READY-8.
|
||||
- **`Docked` state struct** (Tyre Round 5, Correction 5b): The outcomes doc asserted `scheduled_departure` existed in the canonical struct, but Tyre's Round 4 struct was incomplete. Corrected to clarify these fields must be added at implementation time. Both `docked_since: SimTick` and `scheduled_departure: Option<SimTick>` are required — applied directly to D-READY-13 text.
|
||||
|
||||
---
|
||||
|
||||
## Post-Correction Status
|
||||
|
||||
- Workshop-outcomes.md: all 12 corrections applied. Document is accurate for all six domains.
|
||||
- 14 D-records remain ready for filing.
|
||||
- Q-NNN-b recommended for closure (resolved by D-READY-13).
|
||||
- Q-NNN-d (DramaDensity naming 3 vs 5 levels) remains open for sprint work. Nigel preference on record: preserve `Flashpoint` as distinct peak value.
|
||||
|
||||
---
|
||||
|
||||
*Round 5 complete. Workshop closed.*
|
||||
Reference in New Issue
Block a user