pipelines/LENS_animal-crossing-cadence-collection_DRAFT.md
Lens id: animal-crossing-cadence-collection · Wave P1-C (contract-critical) · Read-only audit,
2026-07-28. Repos: C:\dev\humanity-forgotten (canon) + C:\dev\Humanity\Humanity (built-system
reference).
Aspects audited: live-cadence/retention rhythm (festivals, Pawukon) · collection/completionism
(journal, bestiary, links) · immersive-history teaching as a REWARD surface · writing/tone register
(warmth + per-NPC voice) · companion/social low-stakes relationships · economy/vendors (solo
faucet-sink, debt-as-goal) · player-expression (decoration) · minigames + daily ritual (L1.5
ambient) · onboarding/accessibility (no-fail play) · endgame/replay (seasonal return) ·
non-combat progression viability (the NEW aspect row minted in register v1.2).
Method law held: every zero is positive-controlled (control search + hit count stated inline);
DESIGNED-UNBUILT is never reported as MISSING; every recommendation names the existing
system/schema/gate it lands on. Dedupe baseline read in full: docs/DESIGN_GAP_REGISTER.md
v1.0–v1.2 (entries 1-45 + the 24-cell claim board + the new aspect rows), this cluster's divergence
guards, docs/PRE_5090_BUILD_PLAN.md + _VOL2, docs/FACTORY_CONTRACT.md,
docs/NATURAL_VOICE_DOCTRINE.md, `docs/proposals/systems/{base-building,minigame-galaxy,
creature-system}.md, docs/proposals/QA_WATCHING_PROGRAM.md`.
DIVERGENCE GUARD honoured throughout: no dailies-as-chores, no FOMO windows, no real-clock
gating. The import is the CHANGE, never the chore. Every recommendation is written to compose with
anti-grind, no-scoreboard, walked-geography and single-player-first.
THE HEADLINE CORRECTION. The cluster brief predicted this would be the "blankest surface" with
MISSING verdicts for museum-grade collection payoff. **That prediction is wrong and is refuted
below.** AC's museum lesson — *collect a specimen, be paid in a real, well-written fact* — is
already ACTIVE T3 canon at T3_Creatures_Tameable, with a four-tier documentation-reward
ladder and an explicit "the tier rewards knowledge and attention" clause. The real gaps are
narrower and sharper: the ladder exists for one substrate domain, has no read surface, has
~1% data, and the festival/cadence layer has a **calendar-to-playtime binding that nobody has
defined**. Findings are written to that corrected picture.
---
Plus 8 refuted-and-dropped candidates (recorded in full at the foot of this file, with the
decisive evidence, so they are not re-found by a later lens).
---
scene_type enum cannot express PARTICIPATION: a festival can only be rowed as a cinematic to be WATCHEDClass: MISSING (schema) · Priority: HIGH · Owner: spec-doc + schema-data (§5.5 scene
vocabulary + check_spine_graph.py) · Wave: pre-slice (it binds Ch 2-5 festival content that is
already authored) · Workable tag: SCHEMA-TINY (one enum value + one gate line).
What AC proves. Its calendar events are staged as *participation* — you fish in the tourney, you
build the ornament, you dance at the countdown. Spectatorship is the failure mode AC deliberately
avoids: an event you only watch is set dressing.
Current state (cited). T0_Festival_Registry already carries the participation bar and clears
it: player_participation resolves opt-in-participate ×11 · observe ×4 · assist ×1 across the
16 live rows (registries/T0_Festival_Registry [DRAFT v0.1]/Sheet1.csv), and the participate rows
carry real verbs — FST_0008 has the player skewer fruit up a banana trunk and *carry the
banten-tegeh balanced on the head through the inner temple gate without spilling*, FST_0004 seats
the off-hand Shield (WPN_033) and grounds the CH_03 PARRY verb. **But the spine's scene layer has
nowhere to put that.** scene_type is a CLOSED 11-value enum enforced as an ERROR by
harness/check_spine_graph.py:92-98: `boss_encounter_intro · boss_encounter_phase_transition ·
boss_encounter_resolution · convergence_node · per_chapter_cutscene · architect_appearance ·
ambient_cinematic · canonical_set_piece · prologue_cinematic · epilogue_cinematic ·
branch_decision_point`. Nine of eleven are boss/cutscene/reveal classes; the only non-boss ambient
value is ambient_cinematic — a cinematic, i.e. a thing that plays at the player. So a
Penti spring offering the player takes a role in must be typed either as a cutscene, an
ambient_cinematic, or a canonical_set_piece. The registry design and the spine schema
contradict each other.
Positive control. The enum was read out of the gate source directly (not grepped for), and the
same file's neighbouring enums (PATH_BUCKETS, CARE_BANDS, SQ_STAGES) read correctly, so the
read is sound. docs/SPINE_SCHEMA_v3.md L83 independently recites the same 11 values and says
"Adopt as-is; do not re-invent." Cross-checked against BG3 register entry #42 ("no downtime/crew
scene_type to stage it") — related but distinct: #42 is about companion downtime; this is about
a communal, culture-bearing, *player-acting* scene class, and it blocks already-authored Ch 2-5
content rather than an unbuilt companion layer.
Self-refutation attempted. (a) *"canonical_set_piece covers it."* — A set piece is authored
spectacle; the registry's own care notes insist the rite is the community's, "never spectacle"
(FST_0001), which is exactly what typing it as a set piece would make it. (b) *"Festivals are L1.5
ambience and don't need spine rows."* — FST_0004 seats a weapon and grounds a boss verb, and FR-039
makes festival authoring a per-chapter factory obligation; ambience does not seat equipment. (c)
*"The enum is ratified canon."* — It is §5.5 vocabulary, an operational T99 artifact, not
CVD/numerical/naming canon; extending it is execution, and the schema doc's "do not re-invent" is a
caution against parallel vocabularies, not a freeze.
Reuse-first recommendation. Add one value — communal_participation (or
festival_participation) — to the §5.5 set, to SCENE_TYPES in check_spine_graph.py, and to
T0_Scene_Spec_Registry. Nothing else moves. It gives the 16 festival rows (and the 295
festival_or_daily_immersion seeds cited at VOL2 LW-5) a legal spine home, and it makes the
participate-vs-observe distinction *machine-checkable*: a festival row whose
player_participation is opt-in-participate but whose scene rows are all cinematic classes is a
detectable defect. Land it in the same commit as the FR-039 festival-authoring pass.
---
Class: MISSING (design rule) · Priority: HIGH · Owner: spec-doc (the LW-3/LW-5 join) →
W-LW3 build · Wave: slice-relevant (Ch 2-5 rows are the first consumers) · Workable tag:
SPEC-SMALL (one column + one policy paragraph).
What AC proves. AC's real-clock cadence works because the player *lives in* the calendar for
months. Its lesson for us is the inverse one: **when the player is only passing through, the
calendar must come to them.** AC's own concession to this is that a returning player is paid in
CHANGE immediately, not made to wait.
Current state (cited). Both ends are designed and neither meets the other. Calendar side: LW-3
is "the deterministic 210-day / 10-concurrent-week combinatorial calendar" with "the cited 55
day-name + tika good-day data list" (PRE_5090_BUILD_PLAN_VOL2 L1034); LW-12 adds pawukon_day
and active_festival to the worldstate store (L1038); LW-5 says rows "map Pawukon good-days →
festival windows" (L1001). Registry side: every festival row declares its window as a SHAPE
only — FST_0001 "annual turning-of-the-year… (SHAPE only, exact window lands with the LW-3
runtime)"; FST_0011 Galungan "recurs on the 210-day Pawukon cycle… good-day mapping lands with
LW-3"; window_kind distributes **calendar_annual ×6 · event_triggered ×5 · pawukon_cycle ×3 ·
lunar ×1 · daily ×1**. Playtime side: the ruled density curve is "≈100-200h main" across 79 nodes
(VOL2 §A.1 L202-205, Josh RULED verbatim) — on the order of **1-3 hours of main path per
chapter**. Nothing anywhere states how many in-game days a chapter's stay spans, nor what happens
when a calendar_annual window does not intersect the visit. The W-LW3 exit criterion is "a live
festival/Pawukon window" per region (L1087) with no rule for making it live.
Positive control. Searched the full plan for a chapter-duration or day-budget doctrine
(in-game day, time scale, day length, hours per chapter) — zero; the same corpus returns
the density-curve ruling and the LW-1/LW-3 clock rows on adjacent searches, so the corpus is
reachable and the absence is real. grep -rn Pawukon returns 30 hits across docs/_source, all
either the calendar's *arithmetic* (bali S04/S18, the L3 grounding queue) or a build-item
declaration — none is a resolution policy.
Self-refutation attempted. (a) *"LW-3 will decide it at build time."* — LW-3 is specced as the
calendar's arithmetic and the day-name data; a scheduling policy is a design ruling, and the
festival rows explicitly defer to a runtime that has no such clause. (b) *"event_triggered rows
solve it."* — Only 5 of 16; the 10 calendar/lunar/pawukon rows are exactly the ones with no
trigger. (c) *"This is FOMO-adjacent — the guard says don't import windows."* — Inverted: the guard
says don't import *missable* windows, and the absence of a policy is precisely what makes them
missable today.
Reuse-first recommendation. Add one column to the existing T0_Festival_Registry header —
window_resolution with three values on the shape already implied by window_kind:
guaranteed_in_visit (the beat is scheduled into the chapter's stay; the calendar supplies the
*flavour*, never the gate — the correct default for the marquee rows FST_0001/0004/0008/0009),
opportunistic (fires if the player lingers or returns; pure bonus), ambient_daily (the FST_0010
canang-sari class — always available, the L1.5 texture layer). The Pawukon arithmetic still runs
underneath and still teaches the real combinatorial calendar (it is a genuine civilizational-marks
L2 payload, civ_marks_queue/bali.md L14); what changes is that a festival becomes a **staged beat
with a calendar skin**, not a lottery. This is "import the CHANGE, not the chore" made
enforceable, and it costs one column on a DRAFT registry.
---
Class: WEAKER (spec-rich, surface-and-data-poor) · Priority: HIGH · Owner: P5-factory
(data) + the W10 UI wave (surface) · Wave: post-slice for the full ladder, in-slice for the
Ch-2 Komodo chain · Workable tag: UI-SMALL + DATA-BULK.
What AC proves. The museum is the single best commercial proof of our own thesis as a *loop*:
donate a specimen → receive a real, well-written fact → the collection becomes a place you walk
through. Collection and immersive teaching are the same mechanism.
Current state (cited) — the design half is DONE and better than the lens expected.
_source/03_Tier_3_Characters/T3_Creatures_Tameable [ACTIVE v1.0] is the canonical authority for a
420-plus-entry Beastiary (L78; "222 total entries" at L9 is the older 22+200 reading, superseded
in the same doc by the 22 + 400-plus scope at L78 — flagged as a live-source currency defect,
below). It specifies: the status ladder TAME / OBSERVE / DANGEROUS (L99-100), the **seven
non-combat observations per species canonical completionist benchmark** modelled on the Ch 02
Komodo chain (L113), rare-variant documentation (L170-186), and a four-tier reward ladder (L210-212)
— per-species full-variant → "the species Full Cultural Profile, an extended Beastiary entry
including cross-cultural references, deep ecological role context, and conservation-status
reference"; per-chapter → "the chapter Ecological Witness title and permanent Intuition plus-2";
per-region → "region-level ecological restoration questline access". And the clincher at L217:
"Completion does not grant combat advantages — the tier rewards knowledge and attention." That
is AC's museum contract, written in our own voice, at ACTIVE tier.
Current state (cited) — the three halves that are missing.
1. No read surface, and no build item for one. The UI wave enumerates U11.14 ability book,
U11.16 quest log, U11.17 fork widget, U11.18 journal, U11.19 Grimoire, U11.20 screens shell
(VOL2 §11e/11f, L722-728). There is no bestiary/codex screen item. The only adjacent row is
U11.25 "Photo / scan / codex-capture mode… ties to the L2 Beastiary/codex
(T3_Creatures_Tameable DOCUMENT verb)" (L752) — the *capture* half with no *read* half.
2. No data. registries/T0_Creature_Roster [DRAFT v0.1] carries the exact right columns —
dex_completion_class and collect_verb are live header fields — populated 1/150 and 1/150
(OBSERVATION_CHAIN and DOCUMENT, one row each). trade_8_tameable is the healthiest column
at 95/150 (TAME 36 · OBSERVE 31 · DANGEROUS 16 · CRYPTID 12). The roster is 150 rows against a
canonical 420-plus.
3. No gate. Nothing checks that a chapter's fauna carry an observation chain.
Positive control. Searched PRE_5090_BUILD_PLAN.md (the ranked 30) for
[Bb]e?astiary|codex → zero; the same file returns Grimoire on the adjacent search (L1795,
L1964), so the file is reachable and the absence is real. Column populations were counted directly
out of the CSV, not inferred.
Self-refutation attempted. (a) *"The creature-collection lens already ran (register cell 5,
P1-A)."* — It did, and it claimed familiars/bonding + the bond ladder (gate 29 WARN). The
documentation/dex arm is a different column set (dex_completion_class / collect_verb) and
a different reward ladder (T3 §3), and neither appears in the P1-A mint. (b) *"DESIGNED-UNBUILT,
not WEAKER."* — The *design* is designed-unbuilt; the finding is that a piece of **ACTIVE T1/T3
canon has no line item in the build plan at all**, which is a planning gap, not a build queue
position. (c) *"Photo mode covers it."* — Capture without a codex to read is the AC museum with no
exhibits.
Reuse-first recommendation. Three small moves, no new system: (i) fold a **bestiary/codex tab
into U11.20's screens shell** (it already hosts book/journal/Grimoire/map/ability — one more tab,
and U11.25 already names the tie); (ii) add a factory-contract row in the FR-038 pattern
("populate dex_completion_class / collect_verb / observation-chain fields on every creature in
this chapter") so data accrues per-chapter instead of as a doomed later sweep; (iii) fix the
T3 L9-vs-L78 count currency in place (living-source doctrine) so the next agent does not author
against 222.
---
Class: WEAKER · Priority: MEDIUM-HIGH · Owner: schema-data + spec-doc · Wave:
P5-factory · Workable tag: SCHEMA-TINY ×2 (one column, copied twice).
What AC proves. The museum has four wings — fish, bugs, fossils, art. Breadth is what makes
the collection a place rather than a list, and each wing pays out a different kind of real
knowledge.
Current state (cited). Our museum has one wing. T0_Flora_Registry is 25 rows × 12 columns
(`flora_id, common_name, scientific_name, region_native, chapter_range, plant_type,
gatherable_parts, trade_uses_note, rarity_class, care_note, sources, notes`) — real botanical
substrate (FL_0001 Tamarind / *Tamarindus indica*), **no discovery state, no documentation tier, no
completion reward**. T0_Mineral_Registry is 19 rows × 11 columns with the same shape (MN_0001
Obsidian / volcanic_glass) and the same absence. Languages are the closest near-miss: CVD L1217
promises "language fragments accumulate to roughly fifteen documented languages by arc completion"
and T0_Language_Script_Registry is ACTIVE — an accumulation with **no completion tier and no
payout**. The Grimoire is the one live knowledge-payout engine (Q3.8: "nodes on discovery, link-
action requiring a scholarly-basis ref, reward on valid link", PRE_5090_BUILD_PLAN L1795) but it
pays connections, not specimens — it is the L3 lattice, not the L1.5 field guide.
Positive control. Counted rows/columns directly from the CSVs. Searched the flora/mineral
headers for any of observ|document|dex|complet|discover → zero, while the same headers return
rarity_class and care_note, so the read is sound.
Self-refutation attempted. (a) *"Trades already reward gathering."* — Trades reward
*materials*; the AC lesson is that the same act must also pay *knowledge*, which is our stated
thesis and which T3_Creatures_Tameable L217 already ratifies for fauna. (b) *"25 flora rows is
just population thinness."* — The thinness is real and separate; the finding is that the **schema
has no place to put a documentation state** even when the rows arrive. (c) *"Care risk — turning a
culture's plant knowledge into a checklist."* — Devil's-advocate-against-timidity applied: the
fauna ladder already handles this by paying "Full Cultural Profile" *entries* with attribution, and
care_note is already a column on both registries. Withholding the ladder from flora would be
care-inflation, not care.
Reuse-first recommendation. Copy the column that already exists: add dex_completion_class
(and, where it applies, collect_verb) to T0_Flora_Registry and T0_Mineral_Registry, and
declare in T3_Creatures_Tameable's own §3 language that the four-tier ladder (per-entry /
per-chapter / per-region / full) is substrate-general, not fauna-specific. Wire the language
wing to the existing T0_Language_Script_Registry accumulation with a per-language completion tier.
That is one already-proven ladder, three more wings, zero new systems — and it converts the
SCIENCE_GROUNDING / ESOTERIC_GROUNDING substrate into a *played* teaching surface, which is the
whole thesis.
---
Class: MISSING (the measurement + the arc-level guarantee; the verbs themselves are COVERED) ·
Priority: HIGH · Owner: QA loop + spec-doc · Wave: slice-relevant (Ch 2-13) ·
Workable tag: GATE-SMALL (one sweep on existing sweep machinery).
What AC proves. A peaceful player can advance — not as a mercy setting but as a *posture the
game is designed around*. This is the register's newly-minted aspect row
non-combat-progression-viability (animal-crossing) (DESIGN_GAP_REGISTER v1.2), which was minted
by name and left undefined. This finding defines it.
Current state (cited) — much stronger than a naive audit would report. The win-condition
vocabulary is ruled and deeply non-lethal: T99_Translation_Combat carries a 10-verb ruled enum
(D-COMBAT-TD R3, Josh 2026-07-19; EVADE minted 2026-07-20) including **PACIFY — "yield-into-
respect / no-kill de-escalation; the killing blow refusable at explicit integrity cost (Ch
3/7/17/21/27; HL_0021)"**, plus PURGE, PERCEIVE, EXPOSE, FREE, REFUTE, BYPASS, EVADE.
Live distribution on the 281 boss rows is genuinely non-lethal-heavy: PERCEIVE 46 · REDUCE 33 ·
PURGE 16 · PERCEIVE;PURGE 16 · PERCEIVE;FREE 10 · PACIFY 6 (+14 more in combos), and
primary_verb runs strike 64 against perceive 52 / decode 23 / purge 19 / expose 17 /
attune 15 / infiltrate 14. Josh's own NATURAL_VOICE_DOCTRINE §4 names "**the strictly-no-kill
path's special rewards**" as a ratified routing tier. FUN_REBUILD_PLAN L28 records "no kills
forced" as a property of the built mechanics.
Current state (cited) — what is absent. No document anywhere states that a strictly-no-kill run
can traverse all 79 nodes, and nothing measures it. has_nonkill_path is a live Boss_Encounter
column populated 16/281 — but that population is *already queued* as factory obligation FR-038
(docs/FACTORY_CONTRACT.md L152, PARTIAL, gate counter_class_coverage) and was already noted by
the BG3 lens (LENS_BG3_2026-07-27.md L424), so it is not this finding. What is missing is the
arc-level closure: population is per-boss and per-chapter; nobody checks that the *union* of
non-lethal routes forms a connected path from Prologue to Epilogue. The QA program's rubric
aspect_id join (QA_WATCHING_PROGRAM L438-446) would host it and currently has no rubric citing
this aspect — the register itself warns that "a rubric whose aspect has no roster row is WARN-skip
and UNCLAIMABLE".
Positive control. has_nonkill_path counted directly from the CSV (16 TRUE / 265 empty);
searched docs for no-kill|pacifis|non-lethal|peaceful path → 20+ real hits including the ruling
sources above, so the search matches; searched the same corpus for an arc-level claim
(pacifist run|no-kill run|complete the arc without) → zero.
Self-refutation attempted. (a) *"This defangs a rated-R action RPG."* — Explicitly not.
Devil's-advocate-against-timidity applied in the other direction too: this proposes **no reduction
in violence, no new mercy content, and no pacifist mode**. Violence stays CORE; PACIFY already costs
integrity; the gladiator arena stays a killing venue. The claim is only that a path Josh has already
ruled *exists and pays prizes* should be provably walkable. (b) *"The no-dead-end gate covers it."*
— check_no_dead_end.py enforces non-empty reroutes per fork; it does not know what a *lethality*
route is, and a chapter can be no-dead-end while every route through it requires a kill.
(c) *"Pillar 3 (action-packed every chapter) forbids it."* — Pillar 3 demands *action*, and PACIFY /
PURGE / EVADE / PART_BREAK are all action. The Ch-2 CAVE_BEAR forced-run (U11.27, "a fight you
cannot win") is canon proof that an unkillable encounter is still a combat beat.
Reuse-first recommendation. Define the aspect as a PACIFIST SWEEP on the existing
build-space-sweep doctrine (COMBAT_PROGRAM_ADDENDUM §10 Phase-5M/5H; the QA program already
calls its own version "the QA twin of the build-space-sweep doctrine", L455): for each of the 79
nodes, assert ≥1 authored route requiring zero required human kills, computed from the data
that already exists (win_condition ∪ has_nonkill_path ∪ the fork rerouted_paths[]). A node
with no such route is a defect in exactly the way a never-picked bonus-pool option is a defect.
Register the rubric under aspect_id: non-combat-progression-viability so the register's orphan
row is claimed. Zero new content; it makes an existing ruling verifiable by the only player we have
until the Josh gate.
---
Class: WEAKER · Priority: MEDIUM · Owner: W-LW3 / schema-data · Wave: post-slice
(but with one in-slice instance: Flores across Ch 2→3) · Workable tag: SPEC-SMALL.
What AC proves. The strongest anti-grind retention mechanism in the medium: the world moves
whether you play or not, so returning is paid in change, never in rested-XP. Register entry #9
(rest/safe-site loop) explicitly rules rested-XP out as a fork and leaves the return-reward half
open; this is the shape that fills it without touching anti-grind.
Current state (cited). Return is real but late and coarse. WGM §7 gives the Ch 59-65 Vimana
revisit band and the five-world-state revisit mechanic — "the five-world-state revisit
mechanic, which continues to govern the previously visited ground each node still reflects on"
(T1_World_Geography_Master [ACTIVE v2.3] L766). Pre-Vimana the arc is a walk-forward pilgrimage
(§4/§6.7). Player-caused change persists: the mark_write region-mark ledger (PG-6, VOL2 L859)
and STATE_DELTA_GRAMMAR's append set-insert (154 rows). Death does not reset the world —
SL-1 respawns "with the world ADVANCED, never reset" (L880). **But no worldstate key represents
elapsed time since a visit**: LW-12's set is `time_of_day, weather_state, pawukon_day,
active_festival` (L1038) — a live clock, not a since-you-left delta — and nothing authors a
"what changed while you were gone" read at region re-entry. The Hearthway return network is
proposal-tier only (base-building.md §6, fork C unratified).
Positive control. LW-12's key list read verbatim from VOL2 L1038; Worldstate_Variables is 42
rows (WS_001-042) "none time/weather/calendar/festival" per the same line. Searched for a
since-last-visit concept (since you left|last visit|elapsed|time away) → zero real hits, while
mark_write and five-world-state both return their real anchors, so the corpus is reachable.
Self-refutation attempted. (a) *"Walked geography means you never return — this is a
non-problem."* — Ch 2 and Ch 3 are both Flores; Ch 5 spans two regions; the Ch 59-65 band returns to
everything. The mechanism has consumers. (b) *"Register #9 already covers it."* — #9 covers the
*anchor* (save/restock/companion talk at a safe site) and explicitly bans rested-XP; the change
half is named as absent there and is what this fills. (c) *"Five world-states covers it."* — At
*chapter* granularity, for the revisit band only, as a narrative reflection — not as a
region-re-entry read.
Reuse-first recommendation. No new system: reuse the **mark_write ledger + the five-world-
state mechanic and declare a re-entry delta read** — on entering a region already visited, the
world surfaces 2-3 diegetic changes drawn from marks already written (the field the player helped
open is planted; the person they spared is at the market; the shrine they left broken is still
broken). Drive it off the existing ledger, not off a timer, so it is causal rather than clock-based
— which sidesteps the FOMO guard entirely and is *stronger* than AC's version, because our change
is about the player rather than about the calendar.
---
Class: WEAKER · Priority: MEDIUM · Owner: spec-doc (rides the D-ECONOMY brief) ·
Wave: W10 economy · Workable tag: SPEC-SMALL.
What AC proves. Debt-as-goal: a self-paced, never-punishing, unbounded sink that structures a
hundred hours without a single timer. It is the solo faucet-sink model that WoW's auction-house
divergence left uncovered — and it is *aggressively* compatible with anti-grind, because the debt
never penalises you for ignoring it.
Current state (cited). DESIGN_GAP_REGISTER L207-208 lists WoW's "Player-driven economy /
auction house" as DIVERGENT-BY-DESIGN "(faucet-sink discipline)" — i.e. the register justifies
a divergence by naming a discipline we hold. That discipline has no spec. Positive control:
faucet returns exactly 3 hits across docs/** — this register line, and two uses in
ROADMAP_POST_5090_TO_SHIP.md (L58, L634) meaning *generative* faucets (a different sense
entirely). The economy itself is deliberately held: EC-medium + EC-vendor are BLOCKED-ON-BRIEF
pending Josh (VOL2 §11.6.4, cohere H7), with Opt-1 recommended (mixed regional exchange, no
universal coin) — and Opt-3's stated con is the tell: *"leaves gathered materials + drops with
no sink; the slice reads incomplete"* (L1059). EC-inventory (P2.6) is a *storage* sink, not an
economic one.
Self-refutation attempted. (a) *"The economy is BLOCKED-ON-BRIEF, so this is designed-unbuilt."*
— The *transaction medium* is blocked (correctly, it is a world rule → Josh's). The **sink
structure** is a separate design question that nobody has asked, and it does not depend on the
medium ruling: whatever the medium, something must absorb it. (b) *"Anti-grind forbids a money
sink."* — Anti-grind forbids *required repetition*; a self-paced optional sink is the opposite —
it is what gives voluntary play a destination. (c) *"Debt-as-goal is tonally wrong for a rated-R
arc."* — Not proposed as debt. The shape is what transfers: an open-ended, never-punishing,
player-chosen goal ladder.
Reuse-first recommendation. Do not design an economy. Write one page declaring the existing
systems AS the sink ladder, with a pacing curve: base-building modules + compound upgrades
(base-building.md §3.4/§4.3), the 2nd/3rd purchasable loadout sets quick-changed at vril sites
(COMBAT_PROGRAM_ADDENDUM §9), imprint/rune crafting (T0_Imprint_Affix, T0_Rune_Registry), and
vehicle upgrades — these are already four sinks with no declared relationship. Naming them as one
ladder closes the register's own divergence rationale and gives EC-vendor a target when Josh rules
the medium. Explicitly bounded: no timers, no upkeep, no repossession — the AC property we want
is self-pacing, not obligation.
---
Class: WEAKER (design collision) · Priority: MEDIUM · Owner: spec-doc
(T1_Personal_Dimension_Spec + T1_Integrity_Paths §8.9 authority) · Wave: post-slice ·
Workable tag: SPEC-TINY (one clause).
What AC proves. Decoration is the primary expression currency: the player's taste, placed and
photographed, is the reason to keep playing. Expression requires authorship.
Current state (cited). Our home surface is system-authored, not player-authored. Canon:
the Personal Dimension is integrity-visible — "L1 Truly-Good → verdant-light substrate; L3 Drifting
→ neutral-grey balance; L4-L5 Evil → shadow-substrate variants" (base-building.md §5.1, citing
T1_Personal_Dimension_Spec + T1_Integrity_Paths §8.9), and §5.3 recommends extending that skin
to Layer-B world-homes. The player-authored half is proposal-tier and thin: "trade-crafted modules…
walls, roofs, floors, stations, defenses, decor — free-form module placement (DQB2
room-recognition + Minecraft freedom)" (§4.3), with the module catalog and build UI explicitly
handed off (§10, Fable-5 handoff). And the owning T1 doc is a 2-line byte-level stub
(_source/01_Tier_1_Foundation/T1_Personal_Dimension_Spec [DRAFT v0.1].md = 2 lines — this is
register entry #22's stub class, verified by line count). So the AAA hook §5.3 sells — "a
screenshot tells your whole playthrough's story" — is currently a screenshot of a shader the game
chose for you.
Positive control. Line counts taken directly (T1_Personal_Dimension_Spec 2, T1_UI_UX_Spec 2,
T1_Audio_Spec 2 — the register's four-stub class confirmed). Photo mode is not a zero: U11.25
exists (VOL2 L752).
Self-refutation attempted. (a) *"The minecraft-sandbox-build lens (P1-B) claims this."* — It
claims persistence + shareability (register cells 22 and the player-expression-shareability
aspect row). The collision between an authored skin and an authored object layer is a different
claim and appears nowhere. (b) *"Integrity-visible is canon; don't touch it."* — Not touched. The
proposal keeps it exactly and only clarifies its *scope*.
Reuse-first recommendation. One ruling clause, landed in T1_Personal_Dimension_Spec when the
stub is authored (register #22's queued work — no new item): **integrity paints the SUBSTRATE
(light, ground, growth, sky, material weathering); the player authors the OBJECTS (placement,
palette within the era-and-culture-authentic material set, arrangement).** Both read in the same
screenshot and neither overrides the other — the moral portrait and the personal taste become two
legible layers rather than one contested one. Preserves §8.9 authority intact and gives the
build-UI handoff a rule to build to.
---
Class: WEAKER · Priority: MEDIUM · Owner: spec-doc (the natural-voice critic lens) ·
Wave: the natural-voice rewrite pass (already the next canon-lane wave) · Workable tag:
SPEC-TINY (one critic question + one default table).
What AC proves. Warmth is a craft discipline, not an absence of edge. AC carries a whole game on
gentle, specific, per-character voice with no antagonist — and it is the calibration set for
exactly the scenes our arc has most of and has specced least: the daily-life and festival beats.
Current state (cited). docs/NATURAL_VOICE_DOCTRINE.md (Josh ruling 2026-07-26, binding on
every player-facing word) specifies the cultural register in §2 — "an elder's cadence, a
healer's directness, a broker's oil… drawn from the persona system (the 13-field personas) +
T0_Voice_Registry" — and the two new critic questions in §5 are "does a person say this?" and
"does this carry the culture?". There is no affective/tonal axis: nothing asks whether a line is
the right *warmth* for its scene. T0_Voice_Registry is 10 rows, every one protagonist or
antagonist (5 protagonist age variants, GRAND_SAGE_REVEAL_VOICE, ARCHITECT_VOICE, 3 Cassius phase
voices); its voice_substrate.timbre_tags do carry warm on 3 protagonist rows, so the vocabulary
exists — it just has no scene-side counterpart and no villager rows. Meanwhile the festival rows
that most need it are authored: FST_0010's canang sari daily offering is explicitly "the texture of
an ordinary Balinese morning".
Positive control. Registry rows enumerated directly from the CSV; `grep -i "warm|tone|cozy|
gentle|register" over NATURAL_VOICE_DOCTRINE.md` returns 2 hits, both §2 cultural-register lines,
against a 56-line file — the doctrine is short and fully read, not sampled.
Self-refutation attempted. (a) *"Register is a P2 lens's job (persona-disco-curriculum-voice-
ui)."* — That lens is queued for the *prose-as-play-surface* and curriculum cells (register cells
10/19); the natural-voice rewrite pass runs first and will set the register defaults by
default-of-silence if nothing declares them. (b) *"10 voice rows is the real gap."* — Adjacent, and
it belongs to the bark-vocal-identity-channel aspect (bl-repeat); this finding is about the
*written* register, which binds regardless of VO scope (partial VO is the ship ruling).
(c) *"Warmth risks defanging a rated-R arc."* — Devil's advocate applied and rejected: the arc's
emotional payload *depends* on the ordinary mornings being warm enough to lose. Uniform grimness is
the flattening failure, not the safe one.
Reuse-first recommendation. Add a third question to the natural-voice critic lens already being
built in §5: "is this the right warmth for this scene?", plus a one-table `scene_type →
default register` map (festival/communal → warm-specific; boss → pressure; reveal → restraint) that
rides the new communal_participation scene_type from AC-1. No new doc, no new pass — it joins a
wave that is already scheduled.
---
Class: DESIGNED-UNBUILT (never MISSING — the registry, the obligation and the wave all exist) ·
Priority: MEDIUM · Owner: P5-factory · Wave: per-chapter staging · Workable tag:
GATE-SMALL.
Current state (cited). T0_Festival_Registry holds 16 rows across 4 regions —
flores_island ×7, bali ×5, sumatra_java ×2, angkor_khmer ×2 — i.e. chapters 2-5 only, against a live
T0_Region_Index of 76 rows / 79 nodes. That is correct and expected: the rows were authored as the
slice staged. The obligation exists — FACTORY_CONTRACT.md FR-039: "Author this chapter's
festival windows and the region's ambient and SFX rows as part of the staging pass, not as a later
sweep." **But its gate column reads, verbatim: `NONE (no per-chapter festival or ambient coverage
assertion exists; rank 8 authors the cue table)`.** An obligation whose gate is NONE is a sentence,
not a tooth — and the repo's own hard-won lesson is that an unenforced rule against the path of
least resistance loses (OPEN_DECISIONS_BRIEF_2026-07-22 L489, on exactly this class of drift).
Positive control. Region distribution counted from the CSV; FR-039 read verbatim from
FACTORY_CONTRACT.md L153; T0_Region_Index row count from the live CSV.
Reuse-first recommendation. Give FR-039 the tooth it declares missing: a coverage assertion in
the existing gate suite — every staged chapter has ≥1 T0_Festival_Registry row whose
chapter_range covers it, and ≥1 row with window_kind: daily per region (the L1.5 ambient spine;
today daily is 1 of 16 rows, FST_0010, and it is the single best template we have). Same
teeth philosophy as the existing coverage gates; no new content required at gate-authoring time
because the rule fires per staged chapter, not retroactively.
---
Class: WEAKER · Priority: MEDIUM-LOW · Owner: schema-data (persona) · Wave: W-LW3 ·
Workable tag: SCHEMA-TINY.
What AC proves. A villager who remembers your last visit and says something small is
disproportionately cheap relational depth — and it is the layer that makes a *village* feel like a
place rather than a quest dispenser.
Current state (cited). Every relational system we own carries weight. Companions run
loyalty_score / loyalty_state / belief-distance with departure thresholds
(WS7_WIRING_BUILD_PLAN §, register #39/#40). Community relations run through the mark_write
ledger and the community-ripple doctrine (killing "ripples through the community and is
remembered", CLAUDE.md content bar). T0_Reputation_Ladder_Registry is 2 rows. The generative
layer *does* own the raw channel — "NPC ambient dialogue (barks, crowd chatter, vendor lines) …
Line content within topic + mood … Persona card; region; **worldstate facts flagged
safe-to-reference**; integrity band" (RUNTIME_GENERATIVE_LAYER.md L64) — so the machinery for
"someone says something small that references what you did" exists. What is missing is the
*acquaintance tier*: a person who recognises you without any ledger consequence.
Positive control. Reputation ladder counted from CSV (2 rows); the generative-layer row read
verbatim; searched persona + docs for small talk|remembers you|last visit|greeting → the single
substantive hit is the generative-layer row above, while loyalty|persona|relationship return
hundreds — so the corpus is reachable and the acquaintance tier is genuinely absent.
Self-refutation attempted. (a) *"GTA register #2 (daily schedules) covers it."* — #2 puts NPCs
*somewhere at a time*; this is about them *knowing you*. Same infrastructure, different field.
(b) *"Personas are 13 fields; add nothing."* — Agreed, and the recommendation adds one field to an
existing card rather than a system.
Reuse-first recommendation. One persona field — recognition_state
(stranger | seen | known | familiar), advanced by ordinary proximity and non-consequential
interaction, read only by the already-designed generative ambient-dialogue channel to select
greeting register. It never enters the loyalty formula, never gates, never scores — which keeps it
clear of the no-scoreboard doctrine by construction. Rides LW-8/LW-9 (persona index + ambient-NPC
schedule), already queued.
---
Class: DESIGNED-UNBUILT · Priority: (no new work proposed) · Owner: existing MG-1 item ·
Wave: WR3.
Current state (cited). The daily-ritual / ambient-minigame aspect is not a gap. CVD §17.12
ratifies two L2 completion conditions in canon text — "max upgrades on every craft (the
Vehicle/Mount and base Domains buildables) and top score on every minigame"
(T1_CVD_Creative_Vision_Document [ACTIVE v1.4] L1148) — and minigame-galaxy.md builds the whole
spine on it: a four-tier taxonomy (Marquee / Structured / Ambient parlor / Easter-egg arcade),
one bronze-silver-gold + platinum-ghost scoring model, a five-gate anti-litter bar, the "Games
Master" completion meta, ~6 reusable engine families, and boss-as-game fusion. Tier A is explicitly
AC's texture layer: "tavern knucklebones, cup-and-ball, coin-pitch, drinking-song call-and-response,
a market-haggle rhythm beat, a fishing-catch timing tap… pure L1.5 immersion" (§2.1). The runtime
has a home: MG-1 UHumanityScoredInteractionSubsystem — "ONE bronze/silver/gold scoring spine
under which both N8.8 minigames (MG_ rows) and Q3.7 puzzles register; non-blocking (no progression
gate); medals→save" (VOL2 L867), which correctly cites the live state as DT_Minigame = 2 DRAFT
rows and no subsystem. T0_Minigame_Registry is 2 rows × 19 columns (MG_0001 caci, MG_0002 Senet)
— proposal-tier with open Josh forks, exactly as the scope warning says.
Verdict rationale. DESIGNED-UNBUILT, per the standing rule and the cluster's own scope warning.
No finding is minted. Recorded so the register does not later read this cluster as having found
the minigame layer wanting: the design is at or above the AC bar, and the only outstanding items are
Josh's forks (count/caps, arcade canon, boss-as-game boss numerics) and row population.
---
Class: COVERED (with a small note) · Priority: — · Owner: —
Current state (cited). Three independent surfaces meet the no-fail-posture bar.
(1) Difficulty: DIFFICULTY_SYSTEM.md Wellspring — Story: "while it holds you close the world
moves with you; no trial can strand you here. This is the arc for the traveller who came for the
journey and the wonder" — a diegetic, lore-grounded Story tier on a dial that is "ONLY vril density;
NEVER HP / damage / resistance inflation", i.e. no-fail achieved without hollowing the combat.
(2) Content routing: NATURAL_VOICE_DOCTRINE §4 (RULED) — "Progression-gating content = the
solvable-fun tier, always. Genuinely hard / time-consuming / obscure puzzles and challenges route
to the completionist tier… They are PRIZES for the players who want them — never walls."
(3) Structure: the standing no-dead-end / multi-path / non-gating doctrine, enforced by
harness/check_no_dead_end.py.
Note (small, not a finding). AC's version is a *posture* (there is no fail state at all);
ours is a *tier plus a routing rule*. That is a legitimate and, for a rated-R action RPG, better
choice — the register should carry it as DIVERGENT-BY-DESIGN rather than as a gap, so a later
lens does not re-litigate it. The one genuinely open piece is the death/defeat axis
(D-DEFEAT-AXIS / CF-10 boss-defeat state, BLOCKED-ON-BRIEF, VOL2 cohere H13), which the
hades-death-run-realm-identity lens owns (register cell 13) — not this lens's to claim.
---
Class: DIVERGENT-BY-DESIGN · Priority: — · Owner: register (pre-registration)
AC's retention engine is a real-world clock: the game reads the system time, seasons turn in
real months, and events are missable by real calendar. Three of its load-bearing mechanisms are
therefore rejected here on purpose, and the rejection should be recorded so a future lens or
rubric does not re-open them as gaps:
pilgrimage; also unverifiable by the AI QA loop, which is our only player until the Josh gate.
anti-grind model and with register #9's rested-XP rejection.
and with the completionist promise; AC-2's window_resolution column exists precisely to make
festival windows *non*-missable.
What is imported instead, across AC-2 and AC-6: the CHANGE without the clock — causal,
player-driven world movement surfaced on return, and calendar content staged as guaranteed beats
wearing a real calendar's skin.
---
1. "There is no museum / no collection payoff." — The cluster's own expected verdict. Killed by
T3_Creatures_Tameable [ACTIVE v1.0] §L99-113/L170-217: status ladder, seven-observation chain,
four-tier documentation rewards, "the tier rewards knowledge and attention". Re-scoped into
AC-3/AC-4 (surface, data, breadth) rather than existence.
2. "T0_Journal_Entry_Template_Registry is missing (CVD Pillar 6 cross-refs it)." — Killed:
T1_Build_Pipeline_Contracts [ACTIVE v1.0] L224 defers it by design — "registry creation
deferred until consumer demand demonstrates need." *This one nearly reported a false zero:* the
CVD escapes markdown underscores (T0\_Journal\_Entry\_Template\_Registry), so the obvious grep
returns nothing. Re-run with Journal\\?_Entry\\?_Template — the documented
"a-search-that-cannot-match-reports-zero" trap, hit live in this audit.
3. "The journal is missing." — Killed: Pillar 6 is ratified canon with beats Ch 13/38/57, Q3.6
is a build item, U11.18 ships the slice shell empty by canon, and VOL2 L817 states the
emptiness is "by canon, not by under-build."
4. "has_nonkill_path 16/281 is a gap." — Killed as a *new* finding: already an obligation
(FACTORY_CONTRACT FR-038) and already noted by the BG3 lens (L424). Re-scoped into AC-5's
arc-level measurement claim, which is genuinely unclaimed.
5. "No photo mode / no shareability surface." — Killed: U11.25 photo/scan/codex-capture is a
BUILD-NOW item (VOL2 L752); the shareability *aspect* belongs to the minecraft lens.
6. "Only 10 voice rows — NPC voice identity is missing." — Not this lens's: the
bark-vocal-identity-channel aspect (bl-repeat) owns it. Noted inside AC-9 as context only.
7. "Gather nodes have no seasonal rhythm." — Killed: T0_Gather_Node_Registry.respawn_class
is populated 24/24 with a genuinely seasonal vocabulary — seasonal_forage ×7, slow_regrowth
×4, rare_tap ×3, quarry_finite ×3, fumarole_slow ×2, tidal_daily, tidal_replenish,
flood_pulse_seasonal, crop_cycle, daily_offering. The cadence substrate is real; only its
*calendar binding* is open, which is AC-2.
8. "The economy has no vendor/medium design." — Killed: BLOCKED-ON-BRIEF pending Josh by
correct process (VOL2 §11.6.4, cohere H7), with a recommendation on file. Re-scoped into AC-7's
sink-structure claim, which is medium-independent.
---
is CVD/numerical/naming/§17 canon, so both are director-applies under the standing protocol — but
AC-1 edits a gate-enforced enum and should ride a single commit with its gate change, per the
never-write-a-gate-enrolled-file-mid-check rule.
written to be the opposite: no content softened, no violence reduced, PACIFY's integrity cost
untouched. If the director disagrees, the fallback is to scope the sweep to the slice
(Prologue→Ch 13) where Josh's own no-kill reward tier is nearest to being playable.
222 at L9 vs 420-plus at L78 in the same ACTIVE doc) is aliving-source factual fix, not a canon change — but it is a *numerical* string in an ACTIVE T3
doc, so the director should apply it rather than a subagent (the subagent-classifier lesson).