pipelines/STORYDEPTH_FACTORY_WIRING_AUDIT_2026-07-27.md
Read-only analysis, 2026-07-27. Axis: answer Josh's "how's everything been getting wired up here
so everything we've worked on makes it into the factory?" with evidence, then design the missing
artifact. Every claim below carries the file + line I read. Absence claims are positive-controlled
(the search is proven able to find something else in the same file before "zero" is reported).
---
There IS a wiring chain, and it is mostly real. It has seven links:
1. RULING RECORDED — docs/spine/DECISIONS_PENDING_JOSH.md (the ruled block at the head) and
the ▶ PROGRESS LEDGER in docs/PRE_5090_BUILD_PLAN.md L99+.
2. DOCTRINE DOC — a named home carrying the shape (COMBAT_PROGRAM_ADDENDUM.md,
NATURAL_VOICE_DOCTRINE.md, proposals/PRESENTATION_DOCTRINE.md…).
3. CANON HOME — the tier doc section and/or the registry rows the ruling becomes.
4. TOOTH — a gate in harness/gates_config.json (29 today).
5. SCHEDULED WORK — a rank in the ▶ THE PRE-5090 WINDOW PLAN (build plan L50-97).
6. DISCOVERABILITY — a docs/DOC_MAP.md row with a named consumer.
7. PER-CHAPTER CONSUMPTION — the thing that makes chapter N+1 inherit it automatically.
Links 1-6 are strong and were exercised repeatedly this session. **Link 7 is the broken one, and
it is the one Josh's question is actually about.** There are three separate per-chapter consumption
surfaces in this repo, they carry different lists, and nothing reconciles them:
.claude/skills/spine-chapter/SKILL.md (load manifest L56-57, Step 3aL73-79, the block table L90-102, the Step-11 acceptance checklist L142-152) + the enrich pack
(harness/enrich.py SYSTEM_DOCS L54-60).
docs/PRE_5090_BUILD_PLAN_VOL2.md wave rows (the STATUS block ~L1400-1407) and docs/ROADMAP_POST_5090_TO_SHIP.md §P5 "Machinery it runs on" L395-421.
A ruling lands on whichever surface its author happened to be standing on. The addendum's
OWNER: lines are the closest thing to a reconciliation layer that exists — twelve sections, each
ending in an explicit owner ("OWNER: … + the factory per chapter", COMBAT_PROGRAM_ADDENDUM.md
L20, L52, L64, L86, L100, L132, L146, L173, L196, L221, L257) — but they are prose in a
proposal-tier doc that no tool reads.
**The honest one-line answer to Josh: rulings reliably become CANON and reliably become GATES;
they become per-chapter FACTORY BEHAVIOUR by a human remembering to edit a prose bullet list, and
this session that memory failed at least four times.**
---
Grades: COMPLETE (all seven links, or the link is genuinely N/A) · PARTIAL (canon+tooth
landed, consumption or schedule missing) · DANGLING (a promise made in a doc tail that was
never applied anywhere).
DECISIONS_PENDING_JOSH.md §D-MYTHIC-GATE (L80-90) + addendum §§7-12.COMBAT_PROGRAM_ADDENDUM.md L116-260 (all six ruled sections, examples-not-limitsbanner at L3-12).
b8dc09e(T1_Combat_System_Spec +4 sections; T1_Ability_Tree §5H/§5I/§14A; T1_Integrity_Paths §8.11.6-.9;
T1_Tier_C_MMO_Spec §8.7-.9 — ledger 2026-07-27a, build plan L265-287). Data homes minted at
a1a47c2: thirteen registries (registries/T0_Bonus_Pool_Registry [DRAFT v0.1] … verified on
disk; 55 registry dirs total), fk_spec 21→34 edges, WS_043-046.
build_space, rarity_firewall, counter_class_coverage, ally_build), roster 25→29, every tooth fixtured (harness/gates_config.json _note).
factory machinery list gains: 'the ability foundry per chapter's unlock set; the presentation
ladder's tiered variants per the DR-2 contract; per-boss arena-mutation rows.'"* That edit was
never made — see DANGLING D1 below. ROADMAP_POST_5090_TO_SHIP.md contains zero occurrences of
"foundry", "presentation ladder", "arena-mutation" (positive control: the same grep finds
"ladder" at L283 and "voice" at L27/219/245, so the search works).
_deferred.item-ally-extension-columns (ledger 27f, build plan L180-185) — that is the right
behaviour and should be the model.
docs/NATURAL_VOICE_DOCTRINE.md (56 lines, 5 sections).re-authored, 5 authors + 5 four-lens critics, GO-WITH-FIXES ×5, all fixes applied (ledger 27e,
build plan L187-206; commit ab5d32c).
factory checklist + adds two critic lenses."*
— not regexable" (§5 final bullet). Acceptable; but that makes the consumption link the ONLY
thing carrying it forward.
(a) P5 was never amended: ROADMAP_POST_5090_TO_SHIP.md has no "natural voice" string
(positive-controlled above).
(b) The two new critic lenses ("does a person say this?" / "does this carry the culture?") are
not in .claude/skills/normalize-doc/SKILL.md nor in /spine-chapter. The only repo-wide
hit for the phrase family is a comment in harness/check_build_space.py L603
("-- the natural-voice pass owns these words"). The lenses exist as prose in a doctrine file
and in the memory of the session that ran them.
no mechanism that hands it the doctrine.**
docs/proposals/PRESENTATION_DOCTRINE.md (945 lines) — CC-1..CC-10 camera continuity,the CUT POLICY per-beat-class table, CP-0 precedence, diegetic transition covers.
CN5.2 — DECISIONS_PENDING_JOSH.md L66-69). Three forks still open (one-shot camera, defeat cut,
loading-screen standing) and correctly briefed with options+recommendation+objection.
build_shot_templates.py, the 11 LS_TPL_* templates, CN-4/CN-7/CN-8, U11.26/U11.22/PG-2, CF-10/SL-1, gap-register #29).
owner (32 rows with an off-enum scene_type and no template; one off-vocabulary anchor_type;
chapter_bridging_cinematic with zero executed rows) — those are per-chapter obligations with
no per-chapter home. Nothing says "every chapter's scene rows take a template and the precedence
rule is applied."
Josh, COMBAT_PROGRAM_ADDENDUM.md L75-87 + L110-113) is a *different* presentation rider and is
the one the P5 amendment was supposed to carry. It has a data seam named (presentation_tier_ref
on the extension rail) but that column is still on the residue list (handoff L48).
DECISIONS_PENDING_JOSH.md L71-78 (playable compressed-geographycrossings, the West Texas principle, important crossings become staged/open dungeons, all 78
seams typed T0-T3 on SeamlessTravel, the screen survives only as the honest failure state).
docs/pipeline_review/FORKC_TRANSITIONS_BRIEF_2026-07-27.md + 3 analyses — all UNTRACKED at audit time (git status).
docs/TRANSITION_TREATMENT.md (the doc that owns Layer-1/Layer-2movement, DOC_MAP L93) was not amended.
grep -rl "seam_type\|seam_class" registries/ → 0 files. The 78 seams exist only as authored prose in docs/spine/transitions/TRANSITIONS_*.md (7 files, DOC_MAP L253-260).
78 seams T0-T3) + the CH_05-belt prototype enter the window plan"* (L77). The ranked 30 was not
edited; rank 21 covers *between-site* traversal (intra-region legs), not the map seams.
all 79 nodes, with no doctrine doc, no column, no rank, and no tooth.
27h, build plan L130-132).
registries/T0_Composure_Routing [DRAFT v0.1] — verified on disk; 53/53 ability_class values, source_ref per row, the 8th standalone character-engagement node
positive-controlled.
counter_class_coverage consumes it (gates_config.json _note).This is what a complete wire looks like.
T1_Trades_Master [ACTIVE v1.0].md §3.11 rewritten to aCLOSURE ("The gate CLOSES at the 2026-07-27 Phase 6 trade-pin batch") with all five pins + the
two-trades-per-chapter rationale; the Mining continent amendment carried inline at §3.2 with full
provenance; T0_Trade_Registry modern_home_chapter verified populated for all ten trades
(TRADE_01→Ch_59, 02→Ch_59, 03→Ch_60, 05→Ch_61, 06→Ch_60, 08→Ch_61, no placeholders left);
Chapter_Index reciprocal cells + nine stale spine lines refreshed.
§3.x entries were NOT refreshed. Lines 55(Animal Communication), 63 (Blacksmithing), 71 (Alchemy), 75 (Tailoring), 83 (Engineering) still
read *"Modern home base Ch 59-65 continental revisit …, specific chapter at Phase 6 spine cascade
pinning."* Only Mining (L59) got its inline amendment. A future agent reading §3 alone sees an
open gate that §3.11 closed — exactly the "a stale name left in a source doc makes later agents
hallucinate" failure the living-source doctrine names. Fix: five one-line edits.
docs/proposals/QA_WATCHING_PROGRAM.md (487 lines, 45 components, 4 pillars), 2 designerbriefs + 1 workflow brief + 2 fresh critics, 30 findings all applied (ledger 27c, build plan
L225-248; commit da6b29c).
(build plan L60-92) for captur|telemetry|agentic|reference|watch|lens → 0 hits; positive
control "harness" → 1 hit (rank 1). Rank 1's X9.5 kill-test set is a *different* item (build plan
L1394). So the DOC_MAP status asserts a schedule that does not exist.
COMPARATOR_LENS_PROGRAM.md (DOC_MAP L322) ISwired into the plan — the sequencing rule at build plan L94-96 names "COMPARATOR_LENS_PROGRAM
P1-A" as a hard predecessor of ranks 13-17. One program got a sentence in the plan; the other
did not. Nothing structural distinguished them — only whether the director wrote the sentence.
inherently per-chapter/per-surface obligations. No home.
docs/proposals/REALM_DESIGN_PROGRAM.md (1,295 lines; five deliverables + one gate; explicitlyproposal-tier and authoring no world canon — §0.1/§0.2 read).
realm_design|REALM_DESIGN → 0; positive control: DOC_MAP does match traversal at L93/L214).
docs/proposals/AMULET_PROVENANCE_BRIEF.md (499 lines — the integration plan for Josh'sown authored Prologue/Ch-1 emotional spine) and the 10 FORKB/FORKC/REALM analysis records.
ordering: discoverability lands LAST, which is precisely the ordering that produces orphans
when a session dies mid-ritual (and this repo has lost sessions mid-ritual repeatedly — the
handoff's own "IF THE TREE IS DIRTY ON ARRIVAL" block, L80-83).
---
| # | Dangling wire | Evidence | Cost if unfixed |
|---|---|---|---|
| D1 | The P5 factory machinery list has never been amended by any 2026-07-26/27 landing | ROADMAP_POST_5090_TO_SHIP.md L395-421 unchanged; 0 hits for foundry / presentation ladder / arena-mutation / natural voice (positive-controlled) | Ch 6+ inherits none of the six combat systems or the voice doctrine |
| D2 | enrich.py SYSTEM_DOCS is frozen at 5 docs since the enhancement program | harness/enrich.py L54-60 | The per-chapter *pack* — the one thing every author reads — carries none of 2026-07's doctrine |
| D3 | The canon pack and the skill manifest have DIVERGED | Skill L56-57 loads ESOTERIC_GROUNDING, SIGNIFICANCE_LENSES, CROSS_CULTURAL_WEAVE, ENTITY_PERSONA; enrich.py loads none of them | Two per-chapter manifests, only one maintained; an agent that runs the pack and skips the skill silently drops four systems |
| D4 | DOC_MAP status labels have rotted in BOTH directions | SIGNIFICANCE_LENSES row L148 says "PENDING WIRING" but the skill runs it as Step 3a with landing rules (L73-79) and an acceptance line (L151); ESOTERIC row L140 is half-true (skill wired, enrich not); QA_WATCHING row L288 claims a schedule that doesn't exist | Closed work gets re-opened; open work reads as closed |
| D5 | Seam typing has no doctrine doc, no column, no rank, no tooth | Part 1 §4 above | A 79-node design doctrine survives only in one ruled paragraph |
| D6 | T1_Trades_Master §3.x per-trade lines stale against §3.11 | L55/63/71/75/83 vs L95-105 | Future agents read a closed gate as open |
| D7 | The anti-orphan doctrine has NO tooth | grep -rn "DOC_MAP" harness/*.py → 0 | "A doc is not done until it's in DOC_MAP" is enforced by director memory only |
| D8 | 16 artifacts from today are untracked / un-DOC_MAP'd | git status | Session-death exposure on ~4,000 lines of design |
| D9 | Nothing in the repo is keyed BY CHAPTER | Every rider is keyed by SYSTEM — a wave row, a DOC_MAP row, a gap-register Owner: field | There is no artifact that answers "for Ch 23, what must be true?" — which is Josh's literal question |
D9 is the root cause; D1-D5 are its symptoms.
---
The repo's wiring doctrine is anti-orphan by discoverability: every artifact gets a DOC_MAP row
naming a consumer. That doctrine catches *orphan documents*. It does not catch **orphan
obligations** — a ruling that correctly lands in canon, correctly grows a gate, correctly earns a
DOC_MAP row, and still never becomes something a chapter build does.
The three closest existing near-misses, and why each falls short:
/spine-chapter skill is the best per-chapter contract in the repo — a load manifest, a20-block table with per-block rules, an acceptance checklist, and RR-every-10. It is the model.
But it is scoped to *canon authoring* and the cascade it serves is COMPLETE; nothing extended it
to the build/QA surfaces, and nothing adds to it automatically.
docs/proposals/CHAPTER_BUILD_TARGET.md (219 lines, 10 sections) is a per-chapter *qualitybar* — but it is a prose bar for spine entries, not a rider register, and it has not grown since
the enhancement program.
docs/DESIGN_GAP_REGISTER.md already carries an Owner: taxonomy that includes P5-factory (5 of the 9 ranked v1.0 entries name the factory as owner: entries 2/3/4/5/8). That
is a *proto rider register* — it just has no per-chapter view and no tooth.
The missing artifact is therefore not "another index." It is the join between the three
consumption surfaces, keyed on chapter, with a tooth.
---
docs/FACTORY_CONTRACT.md — the single accumulating per-chapter obligation register. One row
per RIDER: a thing that must be true of every chapter (or every chapter of a class) as a
consequence of a ruling. It sets no canon; it records what each ruling OBLIGES per chapter, and it
is the artifact the P5 factory reads instead of a hand-maintained prose bullet list.
Tier placement: operational (T99-class), subordinate to CVD and every tier doc. Its authority is
purely bookkeeping — a rider row is never the source of a rule, always a pointer to one.
Machine half: docs/factory_contract.json carries the rows; the .md is the human view generated
alongside it (same pattern as topography_baseline.json ↔ the topography proposal).
§1 — THE RIDER REGISTER (the accumulating table; one row per rider)
| field | meaning | ||||
|---|---|---|---|---|---|
rider_id | FR-###, stable forever | ||||
ruling_src | doc#anchor of the RULING (never a summary) | ||||
obligation | one sentence, imperative, per chapter: *"the chapter's unlock set is built through the ability foundry"* | ||||
lane | canon-author · schema-data · engine-code · qa-teeth · art-asset · spec-doc (the window plan's own lane vocabulary) | ||||
scope | all · class:<name> (realm chapters, high-care chapters, boss-bearing nodes…) · once | ||||
data_home | registry:<name>#<column> \ | path-glob \ | doctrine_only \ | NONE_YET(rank NN) | |
tooth | a gate name, or critic:<lens> for human-judgment lanes, or NONE(reason) | ||||
consumption_point | where the factory picks it up: enrich:SYSTEM_DOCS \ | skill:<step> \ | vol2:<wave> \ | p5:<bullet> \ | gate:<name> |
status | BUILT · PARTIAL · SEED · DEFERRED(pointer) — the vocabulary RESIDUE_CLASSIFICATION_2026-07-27.md already uses | ||||
evidence | the commit/ledger entry that made it true |
§2 — THE PER-CHAPTER CHECKLIST (derived, never hand-typed). For chapter N: the rider set
filtered by scope, ordered by lane, each with an evidence slot. Emitted by
harness/emit_chapter_checklist.py CH_NN. This is the artifact that answers *"for Ch 23, what must
be true?"* — and the one a chapter-build agent is handed as its brief. It is generated, per the
standing "work-lists are script-emitted, never hand-typed" rule.
§3 — THE CONSUMPTION MANIFEST (per chapter, written by the build). `rider_id → artifact path +
verdict + evidence, one file per chapter under build/factory/CH_NN.json`. This is the factory
half of the P5 scorecard: the scorecard's four existing row classes (content budget · structure
completeness · test coverage · care/reveal, roadmap L422-435) gain a fifth — rider completeness.
§4 — THE MIGRATION LEDGER. Where each rider was harvested from, so v1 is provably lossless and
so a later reader can audit the harvest rather than trust it.
factory_contractThree rulers, each self-testing on canned known-bad/known-good fixtures (the self-testing-gate law;
the check_entity_taxonomy.py shape is the precedent):
OWNER: line and every factory-promise phrase (the factory inherits / joins the P5 factory /
the factory per chapter / the P5 factory … gains) must be cited by ≥1 rider row. **A landing
that adds a factory promise without a contract row FAILS.** This ruler alone catches D1 and the
natural-voice half of D2 on the day they happen.
data_home resolves: the registry+column exists, or the glob is non-empty, or it is explicitly NONE_YET with a live window-plan rank cited. A rider
whose only home is a prose paragraph fails unless it declares doctrine_only. Catches D5.
consumption_point names a real place AND that place actually cites the rider — enrich.py SYSTEM_DOCS membership, a skill step id, a Vol2 wave row,
a P5 bullet id, a gate name. Catches D1/D2/D3/D4/D5 as a class.
rider set is empty, if no rider resolves a home, or if the declared doc set matches zero
promise-phrases (which would mean the regex rotted, not that the repo is clean).
ROADMAP_POST_5090_TO_SHIP.md §P5's "Machinery it runs on" bullet list stops being hand-maintained
prose and becomes a pointer: *"the per-chapter machinery is the FACTORY_CONTRACT rider set at
scope=all, plus the class-scoped riders this chapter matches; the per-chapter scorecard carries
the consumption manifest."* The existing bullets are not deleted — they are harvested into riders
first (they are the BUILT baseline), then the prose is replaced by the pointer.
That inversion is the whole design. Today, every landing must remember to edit P5. After the
contract, P5 reads the contract, and the gate refuses a landing that made a factory promise without
a row. The failure mode moves from *silent omission* to *red gate*.
Same treatment for DOC_MAP: for factory-bearing docs, the "Consumer / wired" column should point at
rider_ids rather than restating the wiring in prose — that kills the D4 label-rot class at the
source, because the rider row is the thing with the tooth.
| # | Source | What to harvest | est. riders |
|---|---|---|---|
| 1 | docs/COMBAT_PROGRAM_ADDENDUM.md §§1-12 OWNER: lines (L20, 28, 52-53, 64, 72, 86, 100, 132, 146, 171-173, 195-196, 221, 257) | every clause naming "the factory" / "per chapter" / "per boss" | ~14 |
| 2 | docs/NATURAL_VOICE_DOCTRINE.md §§2-5 | the strings/dialogue authoring lane; the two critic lenses; the QA solvability test (§3); the difficulty-routing audit (§4) | 4-5 |
| 3 | ROADMAP_POST_5090_TO_SHIP.md §P5 L395-421 | the already-codified BUILT baseline: player-strings sidecar · DT_Clue lane · non-kill/pip schema · festival windows · ambient/SFX rows · W-SPACE audit→sculpt→teeth · personas fleshed · seeds typed through the housing ledger · the P2 asset passes · the P3 QA loop | ~10 |
| 4 | .claude/skills/spine-chapter/SKILL.md (Step 3a L73-79; blocks 6/7/8/15/16; the L142-152 acceptance checklist; RR-every-10 L186) | the canon-side riders — the best-maintained set, and the shape the register generalizes | ~12 |
| 5 | harness/enrich.py SYSTEM_DOCS L54-60 + docs/proposals/CHAPTER_BUILD_TARGET.md | the pack riders (and the divergence D3 gets recorded as two rows, not hidden) | ~5 |
| 6 | docs/DESIGN_GAP_REGISTER.md Owner: fields naming the factory (entries 2/3/4/5/8 + the v1.1 tail) | rider-in-waiting rows at status SEED | ~8 |
| 7 | PRE_5090_BUILD_PLAN_VOL2.md STATUS block (~L1405-1407) | W-SPACE (per chapter, always) + the COMBAT ADDENDUM tail | 2-3 |
| 8 | docs/proposals/PRESENTATION_DOCTRINE.md | the CUT POLICY per-beat-class table + CP-0 precedence applied to every chapter's scene rows | 2-3 |
| 9 | docs/proposals/QA_WATCHING_PROGRAM.md Pillars 1/2/4 | per-chapter capture + telemetry + reference boards per surface class | 3-4 |
| 10 | docs/proposals/REALM_DESIGN_PROGRAM.md | the first class:realm scoped riders — the reason the scope column exists | 3-5 |
| 11 | DECISIONS_PENDING_JOSH.md ruled Forks A/B/C | seam typing T0-T3 per seam; continuity-by-default per scene; the downed/rescue loop per encounter class | 3-4 |
| 12 | The ▶ PROGRESS LEDGER "riders noted" lines (e.g. 27e's *"the 2-field log/tracker split idea → the W10 UI lane"*, build plan L204-206) | the most fragile home of all — riders recorded only inside a ledger paragraph | unknown; sweep required |
| 13 | SIGNIFICANCE_LENSES / ENTITY_PERSONA_SYSTEM / CROSS_CULTURAL_WEAVE | the three approved systems' per-chapter obligations (incl. the still-missing T0_Persona_Index — verified absent among 55 registry dirs) | ~5 |
Recommended v1 scope: harvest sources 1-5 and 11 (the ones with explicit per-chapter language and
a ruled source) → ~45-50 riders. Sources 6-10 and 12-13 land at v1.1 as their programs ratify. The
lossless proof for the critic: *every OWNER: line and every factory-promise phrase in the declared
doc set maps to ≥1 rider, and every rider cites a real ruling anchor.*
emit_chapter_checklist.py + the JSON emitter), one Opusauthoring wave for the harvest, one fresh-context critic for the lossless proof, one teeth agent
for gate 30's three rulers + fixtures. One wave, one landing.
and BEFORE the schema-freeze ranks 13-17. Reason: ranks 13-17 will mint schemas that carry
per-chapter obligations, and it is materially cheaper for them to emit rider rows than to
retrofit them. Every rank after 2.5 becomes self-wiring.
ledger, and Vol2 — a sixth index can rot exactly the way DOC_MAP's status labels rotted (D4), and
then it is worse than nothing because it looks authoritative. The answer: the contract is the
only one of the six with a TOOTH and a DERIVED view. DOC_MAP rotted *precisely because nothing
checked it*. Therefore the hard rule: **if gate 30 does not ship in the same commit as the doc,
do not ship the doc.** A rider register without R1/R2/R3 is another orphan.
scope=all risk becoming a 50-item checklist thatevery chapter must satisfy, which could ossify into bureaucracy. Mitigation is in the schema:
status=SEED riders are advisory (they surface in the checklist, they never fail the gate), and
only status=BUILT riders with a resolving tooth gate a chapter's scorecard. The contract
records the whole obligation set; only the proven part is binding.
---
Josh's question has two halves, and this audit's axis is the wiring half. But the halves connect at
exactly one point, and it should be stated:
The Prologue/Ch-1 emotional spine he just authored (the amulet as the mother's, the guilt, the
grudge, the dumb fight, the fall — DECISIONS_PENDING_JOSH.md L3-29) is *the class of depth he
wants everywhere*. Today the only mechanism that would carry that class into Ch 23 is a human
remembering. There is no rider for it, and no lane that owns it: the closest thing is window-plan
rank 9 (the 6th narrative-craft seed gate — reversal / cost / moral residue), which is scheduled
*before* the rank-10 typing pass over the 264 UNROUTED seeds precisely because a craft bar has to
exist before volume authoring consumes it.
Recommendation (creative-within-vision, applies without a Josh fork): the contract's first
class-scoped rider family should be the narrative-depth lane — one rider per depth obligation
(personal-arc cost · relationship consequence with a state row · side-story reversal/residue ·
through-line payoff registered on the connective web), with rank 9's narrative-craft gate as their
tooth and the standing whole-arc-connections directive (docs/proposals/WHOLE_ARC_CONNECTIONS_PASS.md,
DOC_MAP L426) as their arc-level auditor. That converts "you're missing a LOT" from a directive that
must be re-issued into a per-chapter row that fails a gate.
---
Every zero reported above was proven able to report non-zero:
ROADMAP_POST_5090_TO_SHIP.md foundry/ladder/arena-mutation/natural-voice = 0 → control:"ladder"/"voice" family = 7 hits (L27, 28, 219, 245, 283, 352).
"harness" = 1 hit.
registries/ seam_type|seam_class = 0 files → control: the same tooling found modern_home_chapter populated across all 10 T0_Trade_Registry rows.
realm_design|amulet|FORKC = 0 → control: DOC_MAP matches traversal at L93/L214.harness/*.py referencing DOC_MAP = 0 → control: the same grep pattern class found natural-voice at check_build_space.py L603.
T0_Persona_Index absent → control: the same ls registries/ listing returned T0_Composure_Routing, T0_Bonus_Pool_Registry, T0_Imprint_Affix (55 dirs total).