feat(content): author 29 zone-type behavior templates
Completes the zone-type template library (31 total with the 2 existing). Each file has ~4 roles x ~15 culture-neutral behavior primitives with context tags and modifier_hints per D-142. 2,210 new primitives across rural, industrial, port, extraction, commercial, administrative, research, medical, military, security, entertainment, residential, detention, archaeological, wilderness, and diplomatic zone types. Ticket: #662 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
# Zone-Type Template Consistency Review
|
||||
**Sprint 27 · Ticket #662 · Task #6**
|
||||
**Reviewed by:** Mellanie
|
||||
**Files reviewed:** 31 (29 new + 2 canonical references)
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
All 31 zone-type templates pass the core authoring criteria. Two issues
|
||||
require fixes before merge: one is a factual error in a header comment,
|
||||
one is a cosmetic inconsistency affecting 5 files.
|
||||
|
||||
**Status: PASS with minor fixes required**
|
||||
|
||||
---
|
||||
|
||||
## Check Results
|
||||
|
||||
### 1. RON schema structure
|
||||
**PASS — all 31 files**
|
||||
|
||||
Every file validates against the `ZoneTypeTemplate` schema. All required
|
||||
fields present: `id`, `subtype`, `label`, `description`, `economic_level`,
|
||||
`population_density`, `roles`, `social_site_types`. Role entries all have
|
||||
`id`, `label`, `skill_focus`, `combat_eligible`, `behavior_primitives`.
|
||||
Primitive tuples all have `action`, `context`, `modifier_hint`.
|
||||
|
||||
### 2. Culture-neutrality
|
||||
**PASS — all 31 files**
|
||||
|
||||
No cultural attitudes, speech patterns, naming conventions, or social
|
||||
assumptions encoded in any action text. All primitives describe physical
|
||||
behavior and professional practice only. The layer composes cleanly — no
|
||||
primitive will read as contradicted by a culture modifier.
|
||||
|
||||
### 3. modifier_hint coverage
|
||||
**PASS — all 31 files**
|
||||
|
||||
2383 total primitives across all files. Every primitive has
|
||||
`modifier_hint: Some(...)`. Zero with `None`. All 7 categories represented
|
||||
across the set: `work_pace`, `physical_manner`, `social_signal`,
|
||||
`task_completion`, `environmental_scan`, `offduty_posture`, `authority_response`.
|
||||
|
||||
### 4. Context tag coverage
|
||||
**PASS — all 31 files**
|
||||
|
||||
All files have OnShift primitives and Social/OffDuty primitives. 18 of 31
|
||||
files use the `OffDuty` context tag for break/rest behavior alongside
|
||||
`Social` for interaction primitives (matching the canonical references).
|
||||
13 of 31 files use `Social` only, folding both posture and interaction under
|
||||
one tag. Both are schema-valid. The OffDuty/Social split is richer where
|
||||
the zone character warrants it (security-heavy, institutional, or isolated
|
||||
settings) and the Social-only approach works where the distinction carries
|
||||
less meaning. No file is missing off-shift coverage.
|
||||
|
||||
### 5. social_site_types coverage
|
||||
**PASS — all 31 files**
|
||||
|
||||
All files declare ≥ 2 social site types. `detention_facility.ron` declares 4
|
||||
(`guard_post`, `exercise_yard`, `medical_bay`, `administrative_office`), which
|
||||
is compliant — the schema has no upper bound.
|
||||
|
||||
### 6. Role count
|
||||
**PASS — all 31 files**
|
||||
|
||||
All files declare exactly 4 roles. Role labels are appropriate to zone
|
||||
character and non-overlapping within each file.
|
||||
|
||||
### 7. Standalone readability
|
||||
**PASS — all 31 files**
|
||||
|
||||
All action text reads as specific, concrete, and informative without a
|
||||
culture modifier appended. No primitive requires cultural context to be
|
||||
legible. The behavior is the information.
|
||||
|
||||
### 8. Grammar constraint
|
||||
**PASS — all 31 files**
|
||||
|
||||
All action text accepts trailing prepositional phrases and coordinating
|
||||
conjunctions cleanly. No action ends in a word that would create a
|
||||
grammatical collision with modifier additions (e.g., actions ending in
|
||||
prepositions, incomplete phrases, or conjunction stubs).
|
||||
|
||||
---
|
||||
|
||||
## Issues
|
||||
|
||||
### Issue 1 — Stale header comment in `residential_station.ron` ⚠️ Fix required
|
||||
**File:** `content/global/zone-types/residential_station.ron`
|
||||
**Line:** 19
|
||||
|
||||
The header comment reads:
|
||||
```
|
||||
// Roles: resident, maintenance_tech, block_admin, child (no combat, low authority)
|
||||
```
|
||||
|
||||
The actual implementation has four roles: `resident`, `maintenance_tech`,
|
||||
`block_admin`, **`security`**. The `child` role was not implemented.
|
||||
|
||||
**Fix:** Update header comment to:
|
||||
```
|
||||
// Roles: resident, maintenance_tech, block_admin, security
|
||||
```
|
||||
|
||||
### Issue 2 — Missing explanatory comment before `social_site_types` in 5 files (cosmetic)
|
||||
**Files affected:**
|
||||
- `content/global/zone-types/entertainment_hospitality.ron`
|
||||
- `content/global/zone-types/entertainment_venue.ron`
|
||||
- `content/global/zone-types/residential_station.ron`
|
||||
- `content/global/zone-types/residential_surface.ron`
|
||||
- `content/global/zone-types/residential_dispersed.ron`
|
||||
|
||||
All other 26 files include the explanatory comment before the
|
||||
`social_site_types` field:
|
||||
```ron
|
||||
// Valid social site types for this zone type.
|
||||
// Location specs declare which appear, with their own label, min_npcs, max_npcs.
|
||||
social_site_types: [
|
||||
```
|
||||
|
||||
The 5 affected files go straight to `social_site_types: [` without the comment.
|
||||
The field itself is correct in all cases — this is a documentation consistency
|
||||
gap only.
|
||||
|
||||
**Fix:** Add the two-line comment block before `social_site_types:` in each
|
||||
affected file.
|
||||
|
||||
---
|
||||
|
||||
## No action required
|
||||
|
||||
- `detention_facility.ron` declaring 4 social site types: within spec, no upper bound
|
||||
- OffDuty/Social context variation: intentional, both valid per D-142
|
||||
- `diplomatic_elite.ron` using `OffDuty` for ambassador and aide social primitives
|
||||
while protocol officer and security use `Social`: appropriate zone-level distinction
|
||||
Reference in New Issue
Block a user