QUEST_EXEMPLAR_CH02_OPENER.md

chapters/CH_02/quests/main_story/QUEST_EXEMPLAR_CH02_OPENER.md

Quest Exemplar — the CH_02 opener (QUEST_CH02_ARRIVAL_UNLOCKED)

CANON SUBORDINATION — this document is PROPOSAL-TIER: it serves canon and never outranks it.
The canon: the CVD · the T1 foundation docs · the T0 registries (registries/) · the spine
(docs/spine/CH_*.md) · the region pages (_source/02_Tier_2_Region_Pages/). Authority order: docs/DOC_MAP.md § 0.
Canon served (scanned from this document's own citations):
CVD §17 · T1_Build_Pipeline_Contracts §6.5/§6.7/§6.8/§9.5 · T0_Quest_Definition_Registry ·
T0_Quest_Seed_Registry · T0_Questline_Index · T0_Promise_Ledger · T0_Worldstate_Variables ·
T0_Scene_Spec_Registry · T0_Hard_Lines · T0_Character_Index · T0_Familiar_Registry ·
T0_Equipment_Registry · T0_Ability_Tree_Registry · T0_RNG_Drop_Table · T0_SFX_Registry ·
T0_Gather_Node_Registry · docs/spine/CH_02.md · _source/02_Tier_2_Region_Pages/flores_island.md
Newly derived since this block was last widened: CVD §15 · T0_Chapter_Index · T0_Dialogue_Line
READ THAT CANON FIRST — open it and derive from it before you build anything from this document.
If this document disagrees with canon, CANON WINS and this document is the defect — fix the
document, never the canon. Nothing here is applied until it is ratified into canon.

Status: PROPOSAL-TIER. Lane A of the 2026-08-07 content-exemplar wave 2 (claim block at the tail of

docs/HANDOFF_2026-08-05_ACCOUNT_SWITCH.md, commit eb9a3895). Nothing here is canon; this document edits no

registry, no spine node, and no _source tier doc. It is the pipeline-B1 exemplar docs/PIPELINE_LEDGER.md

L119 asks for — one ordinary per-chapter quest authored end to end, in a form the director can apply

mechanically as one registry row.

Scope discipline, stated once and stated exactly, because an overclaim here is what sends the next lane back

through closed ground. T1_Build_Pipeline_Contracts [ACTIVE v1.0] §6.5 L1440 records the 2026-07-20

mechanical completion pass closing CG-01, CG-02, CG-03, CG-04, CG-05, CG-07 through CG-11, the DIALOGUE-HOME

HALF of CG-12, and CG-13 through CG-28. Three items are NOT closed and this document does not pretend they

are: CG-06 (T0_Questline_Index) and the CG-12 RESIDUE (the landing surface plus a spike-or-proposal

quest_status value) are named by L1440 itself as a separate registry-population leg, and CG-29 (Champa

source grounding, book-gated) remains open. The live T0_Quest_Definition_Registry header carries every

typed field the Ch 2-5 spike called missing. So this document closes no SCHEMA gap and re-litigates none;

what it does is the POPULATION leg L1440 names — the registry carries sixteen rows, every one endgame or

hard-line, and not one ordinary per-chapter row for Ch 2-13. CG-06 is untouched here because this quest's

questline_id is NULL by evidence; the CG-12 residue is finding #1.

DERIVATION

DERIVED FROM — every element below traces to one of these lines, quoted where the quotation does work.

objective "Wake on cold stone in the dark of Liang Bua after the rift-fall; the Child Familiar bites once,

bolts, and is watched dying from a crack in the rock"; `in: {none} → out: {ws.familiar_bond_state:

+child_familiar_lost_believed_dead, local.alone: true}; layers: L1 · reveal: HELD(believed dead only)`.

stone the landing threw up, follow the line the scatter came to rest along, feel into the cold seams, and

read where the outside light reaches and where it stops"; "The search cannot fail and cannot wall: the

tells escalate to certainty, so a player who keeps looking always finds it and no one is ever held at this

beat"; in: {local.alone: true} → out: {local.ward_recovered: true}; systems: [object:mothers_amulet];

threads: [THREAD_20:ANCHOR]; layers: L1+L2 · reveal: HELD(... per HL_0095).

the first days in the cone country beneath Mount Inerie — the fire-making survival puzzle, forest foraging,

improvised shelter"; systems: [ability:A_F_001, ability:A_T_002]; `in: {local.alone: true} → out:

{local.fire_made: true}; layers: L1 · reveal: none`.

SPINE_SCHEMA_v3 §4 mode-projection table". This is the authority for the encounter_mode_tag value on the

find-beat and the reason no enum member is invented for it.

cultural_depiction_tier standard. L17 — the shaping constraints HL_0005 and HL_0028.

... no inventory in the acquisition sense — the one realm object that fell with them is a worn thing rather

than a carried item ... unreadable and unidentified on this side of the barrier until the Ch-8 script reveal

opens that door (HL_0095)".

working name). L26 — the search prose, "The child comes back to the crack with empty hands and works the

loose earth the landing threw up along it"; "It is the first quiet work of the new world, done alone and

unhurried, and the chapter offers no comfort with it beyond the fact of the thing in the hand". L28 — the

emptied-dark night, "no fire, nothing eaten — the black eases by a single shade, a faint lightening of the

air with no source the child can find". L30 — "Climbing out of the cave into the volcanic cone country

beneath Mount Inerie".

discovery, learning, stealth, character] · ambient_threat moderate · vril_density low · climactic_affordance

none · protected true"; env "the landing leaves a scar of loose thrown-up earth along the crack in the rock,

the searchable ground of the find-beat, and the place beyond the crack stays unreachable by design; hosts

CH02_B01/CH02_B11/CH02_B05". L87-88 — mount_inerie_cone_country, "terrain mountain · functions [traversal,

combat, puzzle] ... hosts CH02_B02/CH02_B07".

CH02_B03/B05) and "(twelve_level_gate: none binds at Ch 2)". Neither SQ interleaves a beat of this quest,

which is why reward_seed_refs is empty and honest.

per_chapter_cutscene | UNLOCKED | scene_entry | protagonist and SC_CH02_the_first_search | CH02_B11 |

canonical_set_piece | UNLOCKED | beat_transition | protagonist`.

ground where everything was lost and gets one small thing back". L226 — the L2 lane.

to the Ch-13 departure where it is given away; a worn thing and never inventory, unrechargeable on this side

of the barrier, and no in-world name is minted here". L238 — the garment states, ELEVATED by Josh 2026-08-06.

— A_E_001 Stone Skin, A_E_002 Tremor Stomp, A_F_001 Ember Strike, A_T_002 Cloaking, all at the Neophyte

floor". L249 — "weapons the protagonist's first survival body-grammar; chapter_anchored_weapon_add none".

L251 — "the Child Familiar present at open and lost mid-chapter ... a §17.9 reveal-authority reference row

also applies and is deliberately not named (HL_0043/0046)". L254 — the main_quest_beat line, "survive the

arrival, recover the realm object out of the fall-strewn earth at the crack (CH02_B11)". L257 — the rewards

line and its two [POPULATE→] targets.

object crossed with the child and the familiar and lies scattered in the earth the landing threw up,

unrecovered until CH02_B11 (a prose carry, not a ws key and not inventory — the no-inventory start state is

unaffected)".

seq 2, immediately after the waking and inside the same site, and it is REAL PLAYABLE SEARCH rather than a

cutscene ... a quiet quest with search verbs, low difficulty and escalating tells so it can never wall a

player, per the clues-are-never-unsolvable and never-gate discipline."

"220×180×60 karst interior + 400 m forest approach", build_priority P1 (origin node), meters_per_vertex

1, footfall_surface stone / secondary leaf-litter, care_tier elevated, environment_grammar_refs

EG_0005;EG_0006;EG_0007. L53 — mount_inerie_cone_country: "stratovolcano slope corridor ~2.5 km, agility

pod 120×120", P2, mpv 5, gravel/dirt, care_tier standard, EG_0003;EG_0004;EG_0005;EG_0012.

mouth as a scripted composite. L921-928 (Section 11) — "None. This is a reveal-ladder constraint ... The

House of Velheim does not exist to the player here and first appears at Ch 8". L1195-1197 (Section 13, Main

Story) — "the CH_02 origin beats (survive arrival, the polo's bargain, the Quiet Step stalk, reach the

village edge)". L1526 — the Trade-4 forage line lands "on the Ch-2 valley corridor the substrate already uses

for the stalk — the liang_bua_cave forest approach".

rule "quest_id is QUEST_\<quest_anchor_id\>_\<path_bucket\>"; L1447 the twenty-one-member quest_type enum and

the CG-21 spine-role rule; L1448 encounter_facet; L1449 CG-28 chapter ownership; L1450 the path_bucket

enum; L1453-1454 sq_stage and sq_gate_condition; L1455 CG-08 participant prefixes; L1456 quest_giver and

its environment sentinel; L1457 the trigger_type observed-enum; L1459 realized_beat_refs; L1460

objectives_array ("an objective's completion_condition reads only state a prior beat or objective wrote");

L1461 completion_condition; L1462 fail_state; L1463 progression_guarantee; L1464 CG-03/CG-24/CG-25

state_writes; L1468 fork_option_refs; L1470 spatial_requirements_array; L1471 scene_anchor_array and

the CG-20 coverage predicate; L1472-1475 the reward fields; L1478 the CG-09/CG-10 dialogue home

docs/quest_dialogue/DD_\<quest_id\>.csv and the CG-12 residue; L1480 quest_status; L1483

author_in_loop_required; L1496-1520 the T0_Dialogue_Line column contract, pinned at L1494 and running

line_id (L1496) through source_ref, notes, extensions (L1520); L1534 the CG-16b wheel scoping.

substrate_check, blocked_on_substrate, authoring, complete, rejected, regeneration_required).

outside the fixed eight (Ch 29, 42, 57, 11, 12, 13, 47-48, 50) routes to the LIGHTER tier, batch-level audit

only; "Care-tier INFLATION is itself a defect class"; and the CH_04 precedent resolving a spine-TRUE against

a quest-row-FALSE on the same chapter.

and the one gate-and-condition mini-grammar.

produce-before-consume doctrine every completion condition below is written under.

and never mix with the gate grammar; this quest's conditions live on the condition-grammar surface.

QUEST_CH77_FINAL_REVEAL and QUEST_CH77_ENDING_TRULY_GOOD rows read as form exemplars.

are live; neither is this quest's questline, so questline_id is NULL rather than dangling.

B08), SEED_0002 (SQ9, beats B03/B05), SEED_0003 (Trade 6 Tailoring via Emma), SEED_0004 (Shell bond-seed,

VS_CH02_001). None anchors a beat of this quest.

promise_anchor "CH01_B08 — the fall, writing local.amulet_crossed", payoff_anchor "CH02_B11 — the find-beat

at the waking, the object recovered scattered nearby", reveal_ceiling CH_38. This quest is the payer of that

debt, and PL_0107 is the reason the find-beat is inside the opener rather than deferred.

bond_tier (the corpus-attested familiar bond-quest ladder: approach | accepted | mastery, with qualitative

per-familiar bond-event writes)". WS_012 is a member of the CG-25 append-legal set, so the + prefix is

legal and child_familiar_lost_believed_dead lands as a qualitative bond-event write.

are both live rows, so scene_anchor_array resolves.

role "collective_consciousness_canon_reference_authority_per_CVD_17_9", chapter_first_appearance

"Ch_02_environmental_impressions", seed_status "canonical_reveal_protected_per_CVD_17_9".

from the 12 elven fairy-realm legendary species", chapter_first_encounter CH_01, chapter_bonding_window

CH_01;CH_58. This is the Child Familiar, and it is the CG-08-legal participant ref for CH02_B01.

exchange_value_class unsellable, notes "THE CH-2 STAGING, RULED ... lifted out at CH02_B11 ... a one-sided

prose carry, never a ws key and never inventory", and "never rolled, never crafted, never an imprint base".

systems line names.

DROP_CH02_RECHARGE_SOURCE, DROP_CH02_SERPENT_DUAL_FORM, DROP_CH02_SHELL_BOND_SEED) all link to BE_0002_S1,

BE_0002_S2 or Shell. None links to a beat of this quest, so reward_drop_refs is empty by evidence.

Approach Ambient Bed, SFX_00016 Mount Inerie Cone-Country Wind Bed, SFX_00021 Gather-Yield Confirm,

SFX_00062-00065 Ember Strike four-beat cast cues, SFX_00076-00078 Cloaking cast cues — all chapter_anchor

2.0, region_id flores_island.

Herbalism_T4) and GN_0010 (mineral vein, mount_inerie_cone_country, Mining_T2); both

progression_critical FALSE.

HL_0121, HL_0123, read in full for the care and reveal sections.

definitions of the four turn columns and the gate-47 teeth Q0-Q4 that read them.

quest end to end (the CH_02 opener — the Rock Throw of this domain), wire it as a REAL graph (adoption

QW-1)", and the wiring statement "The driver reads SPINE tables, not T0_Quest_Definition_Registry". The

first half is load-bearing for author_in_loop_required in Section 5; the second is Section 9's premise.

canon", predating the eleventh-sitting amendment (it works a ten-beat graph with no CH02_B11). Its QS_CH_02_01

grouping of CH02_B01 with CH02_B02 is adopted and extended; its QS_CH_02_NN id form is retired per the

L1444 format rule; its gap list is superseded by the §6.5 completion pass.

NOT DERIVED — authored judgment, with why each had no canon home:

L1445 gives the anchor-id FORM (CH13_CONVERGENCE_NODE, CH76_FATHER_ENCOUNTER) and L1460 requires a

quest-local stable objective_id, but no canon mints these particular tokens. The anchor reuses the spike's

CH02_ARRIVAL so two proposal-tier artifacts do not disagree.

life that will be measured from a wound") rather than composed, but the selection of that phrase as the

display label is mine. It is a WORKING LABEL, not display text: the §6.5 seed-column note at L1476 pins that

discipline for quest_name and the natural-voice naming pass owns the final string.

§6.5 L1460 sanctions objective-produced state in terms ("an objective's completion_condition reads only

state a prior beat or objective wrote"), and each key realizes a search or survival verb the beat's own

objective line names. No beat produces them, so harness/check_spine_graph.py will not see them; they never

leave the quest, are never promoted, and never touch ws.. Section 7 states the zero-mint fallback the

director can take in one edit. One tension named rather than silently resolved: §9.5 L2452 says a consumed

local key "must be produced by a prior beat's out:" while §6.5 L1460 says "a prior beat or objective

wrote" — this doc relies on L1460 as the later and more specific clause; the contract-lock pass should

harmonize the §9.5 wording.

object shape they ride in. The column is named in §6.5's substrate list (L1424) but carries no typed field

definition anywhere in the contract, so both the tokens and the shape are authored form, offered as the

shape the contract-lock pass could adopt.

dialogue lane's convention in dialogue_registry_rows.csv is one node per beat (DN_CH02_B10), so the

contract-lock pass must pick one form — this doc's five-node split is the proposal, not a settled convention.

but which cues belong to THIS quest is authored judgment — the registry has no quest-to-cue mapping to

derive from, and the column itself carries no field definition anywhere in the contract (the same

definition-gap class as the turn columns in finding 2). The selection was ELEVEN and is now ten: `SFX_00021

Gather-Yield Confirm` was removed on review, because finding 9 argues in terms that a generic gather confirm

is the wrong register for a recovery offered without comfort, and a cell that carries the cue its own

document complains about is the cell that is wrong. The finding stands; the cue does not ride the row.

1. What the opener is, and where its edges fall

The chapter decomposes into quest anchors "at natural mode and site boundaries" (§6.5 L1445, CG-10). The

opener takes three beats: CH02_B01 (seq 1, hook, character), CH02_B11 (seq 2, core, discovery) and CH02_B02

(seq 3, core, puzzle). Four reasons, each canon-cited rather than asserted.

recover the realm object out of the fall-strewn earth at the crack (CH02_B11)" (L254). The third clause,

"refuse the polo's bargain", is the next anchor.

out: {local.fire_made: true} is consumed by CH02_B03 (the guardian test, L124) and by CH02_B07 (the stalk,

L144) — both OUTSIDE this anchor, and by nothing inside it. The test is deliberately not a fan-out test: a

first cut of this bullet argued that B02 was the last single-successor beat, and that is false on the

graph's own face. CH02_B01's out feeds BOTH CH02_B11 (in: {local.alone: true}, L114) and CH02_B02

(in: {local.alone: true}, L119), so the fan-out is at the FIRST beat, not the last; and CH02_B11's own

output local.ward_recovered is consumed at CH02_B10 (L159), far outside the anchor, so B11 is not B02's

predecessor at all. Stated as the arithmetic actually runs: exactly one key produced in this anchor is

consumed inside it (local.alone, produced at B01, consumed by B11 and by B02), and the other two

(local.ward_recovered, local.fire_made) are consumed only outside it. That closure is the seam.

array (§6.5 L1470: "array of spatial requirement objects per quest beat ... Each entry covers beat_id ...

site_ref"). A multi-site quest is schema-native, and the two sites ride two entries.

the eleventh-sitting ruling at L299 places the find-beat "at seq 2, immediately after the waking and inside

the same site". Deferring it would leave a PAID edge unrealized.

What the opener is NOT. It stages no boss and no sub-boss (all three beat rows read boss none). It anchors

no fork (all three read fork none; the chapter's only fork is FORK_CH02_A at CH02_B09, L151). It interleaves

no side-questline stage (SQ1 and SQ9 take B03/B05/B06/B08, L183-184). It carries no mastery gate (L185). Each

of those is a NULL in the row below, and each NULL is evidence rather than omission.

2. Identity

and "For UNLOCKED and ALL rows the suffix is the literal path_bucket token".

or core on the main graph. The survival-and-search flavour never bends the primary type.

encounter class, and the folkloric register of the chapter belongs to the polo and Ebu Gogo beats.

carries no direction value, because direction rides a fork option and this quest anchors no fork.

header's existing rows carry, matching Section 8's cell exactly. The bare protagonist token is the

mute player node per CG-08 and CHAR_0001 is its persona row (§6.5 L1534). FAM_22 is the Child Familiar, and

CG-08 widened this field precisely so a familiar is expressible; the beat's actors line reads

[protagonist] only, so this ref is the quest-grain widening the contract added rather than a contradiction

of the beat. Reveal note carried on the row: FAM_22's own registry row holds the Ch-58 resolution, so the

join is DESIGN-LAYER and no player-facing string ever says anything but believed-dead.

agent". There is no NPC in this quest; the chapter's first human contact is CH02_B10.

the build order (L21) and the quest opens on the CH_01→CH_02 seam (L281).

3. The objective sequence

Six objectives, ordered; objective order carries progression per §6.5 L1460. Every completion condition is a

single predicate in the §9.5 mini-grammar, validated against docs/CONDITION_EXPRESSION_GRAMMAR.md §1.

Objective text is player-facing and reveal-safe: no line names the object, the familiar's fate, or anything a

child alone in a cave could not know.

objective_idbeat_refobjective_textcompletion_conditionkey produced by
OBJ_01CH02_B01Wake.flag(local.alone)beat CH02_B01 out
OBJ_02CH02_B11Go back to the crack and turn the loose stone the landing threw up.flag(local.scatter_line_read)objective (quest-local)
OBJ_03CH02_B11Feel into the cold seams. Read where the outside light reaches and where it stops.flag(local.seams_searched)objective (quest-local)
OBJ_04CH02_B11Lift what the ground gives back. Clean it. Put it on.flag(local.ward_recovered)beat CH02_B11 out
OBJ_05CH02_B02Climb out into the cone country. Forage, and get a shelter up out of the wet.flag(local.shelter_made)objective (quest-local)
OBJ_06CH02_B02Make fire.flag(local.fire_made)beat CH02_B02 out

All seven expressions (six objective conditions plus the quest-level conjunction) were run through the

reference evaluator harness/condition_expr.pyCondition(src) compiles each without a

ConditionSyntaxError, UnknownKeyError or DomainError, and consumed_local_keys() returns exactly the

key each is meant to read.

Produce-before-consume, checked by hand against §5 of the grammar doc. OBJ_01 consumes nothing. OBJ_02's beat

consumes local.alone, produced by OBJ_01's beat one seq earlier. OBJ_03 follows OBJ_02 in order. OBJ_04 tests

the beat's own terminal write. OBJ_05's beat consumes local.alone, already produced. OBJ_06 tests the beat's

terminal write. No condition reads a key produced later, and no condition reads a ws. key at all — this

quest tests only chapter-local state, which is what a chapter opener with no inherited world state can do.

Both conjuncts are beat-produced and both are this quest's own outputs. The conjunction is deliberate rather

than convenient: local.ward_recovered is consumed downstream at CH02_B10 (L159, `in: {local.first_wound_set:

true, local.ward_recovered: true}`), so a quest that could close without it would leave the chapter's exit beat

unsatisfiable.

Why the search takes three objectives rather than one. The ruling at L299 is explicit that CH02_B11 is "REAL

PLAYABLE SEARCH rather than a cutscene" with "search verbs, low difficulty and escalating tells". A single

objective reading "find the thing" would represent a cutscene, not a search. Three objectives make the ladder

of tells machine-visible, and OBJ_02 and OBJ_03 are the two escalation rungs the ruling names before the beat's

own terminal write lands at OBJ_04.

What is NOT an objective, and why. The faint lightening of the air on the worst emptied night (L28) is real

authored canon inside this quest's span — it happens before fire, which puts it between OBJ_05 and OBJ_06 —

and it is deliberately not an objective, not a reward, and not a participant. Section 5 says what it is and

Section 8 files the finding that no typed beat carries it.

4. Durable state, rewards, and the no-dead-end contract

That is the whole durable footprint, and the smallness is the point. CH02_B11 and CH02_B02 write only local.

keys, and §6.5 L1464 is absolute that "local. keys are chapter-scoped and NEVER land on a quest row". The

value is carried verbatim from CH02_B01's out map per CG-03 — a quest never mints a worldstate value — and

it is legal twice over under CG-25: WS_012 is a member of the append-legal set, and its declared domain admits

"qualitative per-familiar bond-event writes" on bond_tier.

The recovered object is NOT a state write. EQ_0001's own registry row and the spine's seam block at L281 both

type it as "a one-sided prose carry, never a ws key and never inventory". A quest row that wrote it would

contradict two canon surfaces at once, so world_memory_write and state_writes both leave it alone and

local.ward_recovered carries the whole mechanical fact.

and confirmed by the abilities line at L245, "all at the Neophyte floor".

stages none of them.

offered without comfort (L26), and the beginning of the habit of looking that the deep-cave backtrack later

asks for (L112).

has nothing to attach to; the search "cannot fail and cannot wall" by the ruling's own construction (L112);

and the fire-making puzzle loops the survival pressure rather than terminating an attempt. retry_with_bank

was considered and rejected: a bank presupposes an attempt that can be lost, and none of these three beats

has one.

harness/check_no_dead_end.py reads this field (§6.5 L1463).

5. Care routing, reveal discipline, and the register

Care tier and audit routing, and the one place the CG-26 default is correctly overridden. The chapter is

cultural_depiction_tier standard (L12) and Ch 2 is not among the fixed eight §6.8 names, so CG-26 as Josh

calibrated it routes Ch-2 quest content to the LIGHTER tier — batch-level cultural authenticity audit, never

full author-in-loop by default. That default governs the FACTORY rows: the Ch 3-13 per-chapter quests that

follow this exemplar down the slice carry author_in_loop_required FALSE and run the §6.7 STANDARD

quest-track state machine, and nothing below is an argument for raising them.

THIS row carries author_in_loop_required TRUE, for two reasons that are specific to it and do not

generalize. First, the spine's chapter-level TRUE at L12 does not float free — it names its reasons, and the

first of them is "the origin-node opener", which is this quest and no other. The CH_04 precedent at §6.8

L1635 separates a spine-entry TRUE from a quest-row FALSE where the spine's flag was about the chapter BUILD;

here the flag's stated subject is the beat span this row realizes, so the separation has nothing to separate.

Second, this row is the ledger's B1 EXEMPLAR, and the ledger's own words for it are "author + Josh-grade ONE

quest end to end" (docs/PIPELINE_LEDGER.md L119). An artifact whose acceptance condition is Josh's grade is

author-in-loop in fact; typing it FALSE would make the row lie about the process that produced it.

Which state machine this row runs, since the flag selects one. TRUE puts the row on §6.7's author-in-loop

machine, whose terminal state is accepted — "author signed off, dialogue_dataset_ref locked" (L1601) — and

that is precisely the state the ledger's "Josh-grade" acceptance condition needs a name for; the standard

machine's terminal complete has no sign-off in it. One honest schema observation rides along: §6.5 L1483

states the flag as "TRUE for canonical hard-line quest track quests", and this chapter's

canonical_hard_line_flag is FALSE (L12), so this is the first row to carry TRUE off the hard-line track.

The implication in L1483 is therefore one-way in practice — hard-line implies TRUE, TRUE does not imply

hard-line — and reading it as a biconditional would forbid exactly the case the exemplar needs. Named here

rather than left for a validator to discover.

The care-tier-inflation caveat is undiminished and is the reason the override is scoped this tightly. §6.8

names inflation as a defect class, and Josh's 2026-08-04 standing calibration is that the care register does

not accrete. So: no new protection is invented here, no care tier moves, the chapter stays standard, and

the lighter tier remains correct for every batch row that follows. What changed is one boolean on one

exemplar row, on a clause the spine wrote about that row.

What the batch audit checks on this row, named so the lighter tier is not a thinner one:

across all three beats; the Manggarai, Ngada, Lio and Nage enter the chapter at CH02_B10 and Ch 3. HL_0003

binds and has nothing to bite on here.

is weather, dark, hunger and stone.

site row (L83) because it is a real archaeological type-site. The site row's own words bind the build:

"Homo floresiensis type-site (referenced not reproduced)". No excavation, no stratigraphy dig, and no

fossil is staged as a findable — the ground the player works is the fall's own impact scar, which L299

explicitly distinguishes from the site.

Reveal discipline, three separate ceilings holding at once.

dialogue node may confirm, deny, or re-open it; the Ch-58 Truly-Good reveal is held from every surface

artifact. FAM_22 sits in participant_entity_refs as a design-layer join only.

"Lift what the ground gives back. Clean it. Put it on." — no name, no property, no HUD, no charge, no

inventory entry. The row's hard_line_relevance says so in terms, and EQ_0001's own notes say the same.

The garment states at L238 are look-development and carry ornament without glyphs under the same line.

and the spine at L251 says a §17.9 reveal-authority reference row applies and "is deliberately not named".

The faint lightening at L28 is that impression. HL_0046 is absolute that the Grand Sage never speaks, and

HL_0043 that the thesis is never declared. So: CHAR_0007 is NOT in participant_entity_refs, the impression

is NOT an objective, NOT a reward and NOT a dialogue node, and it is carried on the quest as an ambient

environmental cue with no agent, no caption naming an agent, and no player-legible attribution. The child

lays it to hungry eyes and does not think of it again, which is the spine's own disposal of it.

House of Velheim does not exist to the player here. Nothing in this quest reaches for it.

Register. Per CVD §17.14 the player-facing strings above are plain prose with no emphasis marks, and per the

CH_02 dialogue-set declaration at L211 the orthography is US and the village register is a lightly plain

English. This quest has no village in it, so that declaration binds only the interiority channel.

6. The turn clause — empty, deliberately, with the arithmetic

Gate 47 (harness/check_quest_turn.py) reads four columns whose doctrine lives at

docs/registry_extensions.json _column_doctrine/quest-turn. Tooth Q1 ARMS a chapter the moment any main

row of that chapter puts a value in ANY of the four, and then demands at least one fully-populated turn in

that chapter's main quest set. Tooth Q3 fails a row that fills some and not all.

The honest read of this quest against that doctrine:

everything, the child "comes back to the crack with empty hands" (L26).

with the empty-handed framing.

durable choice is FORK_CH02_A at CH02_B09 (L166-176), which is a different anchor and a different quest.

Q2 fails a cell carrying prose without a resolving key.

Verified against the live gate rather than reasoned about. python harness/check_quest_turn.py at HEAD reports

main=16/16 rows · turns full=0 partial=0 · chapters armed=0 and prints its arming conditions in terms: "the

moment ONE cell of ONE row lands, that row must fill all four" (Q3), and per chapter "the moment any of them

carries any turn cell, this chapter must carry >=1 FULLY-populated turn" (Q1). Its census line names CH_02

among the 73 index chapters carrying no main-quest row at all — which the proposed row moves to 72.

So all four cells are LEFT EMPTY on the proposed row. Filling two would trip Q3 and would arm chapter 2 for Q1

against a chapter whose only turn-bearing quest is not yet authored. The finding this produces is worth more

than a filled cell: the ledger's named B1 exemplar is, by canon's own construction, a NO-TURN quest — a

survival opener with no giver, no framing handed by an agent, and no choice — and CH_02's turn belongs on the

quest that realizes CH02_B09. Section 8 files that as owed work rather than resolving it here.

7. Dialogue home, the interiority channel, and the six-option wheel

Dialogue home per CG-09 and CG-10: docs/quest_dialogue/DD_QUEST_CH02_ARRIVAL_UNLOCKED.csv, one CSV per

quest, carrying the pinned T0_Dialogue_Line column contract at §6.5 L1496-1520. That directory does not exist

in the repo today.

The six-option wheel does not appear in this quest, and the reason is structural rather than a CG-16b appeal.

CG-16b scopes the wheel to spoken dialogue moments; this quest has no interlocutor at all across three beats,

so there is no dialogue moment of any kind to hang a wheel on. That holds whichever way the pre-verbal

question is later ruled.

The node inventory the dataset needs, typed but not minted:

close-third channel per CG-18. This is where the arrival-as-loss register is authored.

familiar:FAM_22, subtitle_exempt TRUE, with a sensation_caption for the bite and the bolt. Reveal

binding: the caption describes what the child perceives and never what is true.

tells are read here.

chapter offers no comfort beyond the fact of the thing in the hand, so this node states the object in the

hand and stops.

Line ids are NOT minted here. line_id is a GLOBAL, immutable, never-reused id space (§6.5 L1496) and the

live emitted set at docs/proposals/dialogue/dialogue_registry_rows.csv already runs to DL_000433 across 427 rows.

Hand-minting into that space from a proposal doc would collide. The lines are the dialogue lane's to author

through harness/emit_dialogue_rows.py; this section gives that lane its node contract and nothing more.

8. The proposed registry row

One row for registries/T0_Quest_Definition_Registry [ACTIVE v1.0]/T0_Quest_Definition_Registry.csv, every

one of the 48 live columns disposed of. quest_status is written proposal — minted into both §6.7 state

machines by the director pass of 2026-08-07 executing the CG-12 residue leg (finding 1 carries the ruling

and the rejected alternative). Cells written (empty — reason) land as genuinely empty cells at apply; the

parenthetical is this document's evidence note, not cell content.

columnvalue
quest_idQUEST_CH02_ARRIVAL_UNLOCKED
quest_anchor_idCH02_ARRIVAL
quest_nameThe First Morning
quest_typemain_story_per_chapter
chapter2.0
path_bucketUNLOCKED
questline_id(empty — main story, not a questline aggregate)
twelve_tier_gate(empty — no mastery gate binds at Ch 2, CH_02.md L185)
participant_entity_refs["protagonist","char:CHAR_0001","familiar:FAM_22"]
quest_beat_structureorigin-seam waking with no giver and no framing; the loss beat played rather than narrated; the return to the crack; a real playable search of the fall-strewn earth on escalating tells; the recovery, offered without comfort; the climb out into the cone country; forage and shelter under monsoon exposure; the fire that ends the first days and opens both onward routes
branching_logic(empty — no path-conditional, biography-conditional or fork-conditional branch exists; path_bucket is UNLOCKED, integrity is initialized at zero, and this anchor holds no fork)
dialogue_trigger_anchors[{"anchor_id":"CH02_ARRIVAL_ENTRY","anchor_type":"scene_entry","scene_anchor_id":"SC_CH02_rift_fall_waking","beat_id":"CH02_B01"},{"anchor_id":"CH02_THE_FIRST_SEARCH","anchor_type":"beat_transition","scene_anchor_id":"SC_CH02_the_first_search","beat_id":"CH02_B11"}]
spatial_requirements_array[{"beat_id":"CH02_B01","site_ref":"liang_bua_cave","zone_ref":"liang_bua_cave","required_zone_type":"","encounter_mode_tag":"character","climactic_affordance_required":false},{"beat_id":"CH02_B11","site_ref":"liang_bua_cave","zone_ref":"liang_bua_cave","required_zone_type":"","encounter_mode_tag":"learning","climactic_affordance_required":false},{"beat_id":"CH02_B02","site_ref":"mount_inerie_cone_country","zone_ref":"mount_inerie_cone_country","required_zone_type":"","encounter_mode_tag":"puzzle","climactic_affordance_required":false}]
scene_anchor_array["SC_CH02_rift_fall_waking","SC_CH02_the_first_search"]
dialogue_dataset_array["docs/quest_dialogue/DD_QUEST_CH02_ARRIVAL_UNLOCKED.csv"]
hard_line_relevanceChild Familiar believed-dead only; the Ch-58 Truly-Good reveal held from every surface artifact per HL_0043 reveal-authority. No fairy-realm-script identification of the recovered object before the Ch-8 in-chapter reveal per HL_0095 — no name, no property, no HUD, no inventory entry, no charge state. The §17.9 reveal-authority reference row that first surfaces at this chapter as environmental impression is never named, never speaks and is never a participant per HL_0046 and HL_0043. Perception at the Neophyte vril-trace register only, never a tier-6 substrate read per HL_0028. The Liang Bua type-site is referenced and never reproduced; no excavation or fossil is staged. No House of Velheim name, family or pattern exists to the player here.
quest_statusproposal
generation_prompt_hash(empty — not yet authored through the §6.7 pipeline)
last_authored_timestamp(empty — same reason)
author_in_loop_requiredTrue
regeneration_trigger(empty)
notesThe B1 population exemplar. Origin-node opener, giverless; realizes the eleventh-sitting find-beat and pays promise-ledger edge PL_0107.
extensions{}
populated_from{"quest_type":["T1_Build_Pipeline_Contracts §6.5 L1447 CG-21"],"quest_id":["T1_Build_Pipeline_Contracts §6.5 L1444"],"realized_beat_refs":["docs/spine/CH_02.md L106","L111","L116"],"objectives_array":["docs/spine/CH_02.md L107","L112","L117","L299"],"completion_condition":["docs/spine/CH_02.md L114","L119","L159"],"state_writes":["docs/spine/CH_02.md L109","T0_Worldstate_Variables @ WS_012"],"spatial_requirements_array":["docs/spine/CH_02.md L83","L87","_source/02_Tier_2_Region_Pages/flores_island.md L51","L53"],"scene_anchor_array":["docs/spine/CH_02.md L203","L204","T0_Scene_Spec_Registry"],"ability_unlock_refs":["docs/spine/CH_02.md L118","L245"],"hard_line_relevance":["T0_Hard_Lines @ HL_0043","@ HL_0046","@ HL_0095","@ HL_0028"],"quest_giver":["T1_Build_Pipeline_Contracts §6.5 L1456"],"trigger_type":["T1_Build_Pipeline_Contracts §6.5 L1457","docs/spine/CH_02.md L21"],"progression_guarantee":["T1_Build_Pipeline_Contracts §6.5 L1463","docs/spine/CH_02.md L112"],"quest_dialogue_sfx_id_ref_array":["T0_SFX_Registry"],"schema_authority":["T0_Schema_Dictionary §3.20"]}
recent_changes[]
last_updated(director stamps at apply)
version1.0.0
encounter_facetnone
sq_stage(empty — quest_type is not side_questline_stage)
sq_gate_condition(empty — same reason)
quest_giverenvironment
trigger_typeorigin_node_auto
realized_beat_refs["CH02_B01","CH02_B11","CH02_B02"]
objectives_array[{"objective_id":"OBJ_01","beat_ref":"CH02_B01","objective_text":"Wake.","completion_condition":"flag(local.alone)"},{"objective_id":"OBJ_02","beat_ref":"CH02_B11","objective_text":"Go back to the crack and turn the loose stone the landing threw up.","completion_condition":"flag(local.scatter_line_read)"},{"objective_id":"OBJ_03","beat_ref":"CH02_B11","objective_text":"Feel into the cold seams. Read where the outside light reaches and where it stops.","completion_condition":"flag(local.seams_searched)"},{"objective_id":"OBJ_04","beat_ref":"CH02_B11","objective_text":"Lift what the ground gives back. Clean it. Put it on.","completion_condition":"flag(local.ward_recovered)"},{"objective_id":"OBJ_05","beat_ref":"CH02_B02","objective_text":"Climb out into the cone country. Forage, and get a shelter up out of the wet.","completion_condition":"flag(local.shelter_made)"},{"objective_id":"OBJ_06","beat_ref":"CH02_B02","objective_text":"Make fire.","completion_condition":"flag(local.fire_made)"}]
completion_conditionflag(local.ward_recovered) & flag(local.fire_made)
fail_statenone
progression_guaranteeplays_through
state_writes["ws.familiar_bond_state: +child_familiar_lost_believed_dead"]
fork_option_refs[]
reward_classmixed
ability_unlock_refs["ability:A_F_001","ability:A_T_002"]
reward_drop_refs[]
reward_seed_refs[]
quest_dialogue_sfx_id_ref_array["SFX_00013","SFX_00014","SFX_00016","SFX_00062","SFX_00063","SFX_00064","SFX_00065","SFX_00076","SFX_00077","SFX_00078"]
premise_as_given(empty — see Section 6)
falsifier(empty — see Section 6)
irreversible_choice(empty — see Section 6)
world_memory_write(empty — see Section 6)

Three notes on cells a reader will want to challenge.

value rather than a gap. §6.5 L1470 types the field as a FALLBACK: "required_zone_type enum matching

T0_Region_Index canonical_zones terrain_type vocabulary RETAINED as the fallback where no site_ref or

zone_ref resolves". Both site_ref and zone_ref resolve on every entry — the site ids come from the

spine's §3b rows (L83, L87) and the zone ids from the region page's Zone Catalog (L51, L53), where the

catalog copies the site rows verbatim. A fallback populated beside a resolving primary is a second source

of truth for the same fact, which is exactly the hand-synced duplication the CG-05 spatial join was added

to end. An earlier cut of this row carried cave_system and mountain here; they were removed, not lost —

both terrains are readable from the resolving site rows.

tag to the Pillar-1.12 five and discovery is not among them; the spine's own fold at L162 states the

projection, "discovery projects to the LEARNING letter per the SPINE_SCHEMA_v3 §4 mode-projection table". So

the value is the ratified projection of a ratified mode, not an approximation, and CG-31 (the

encounter_mode_tag enum-text sync the contract itself lists as cosmetic and gating nothing) is the residue.

spatial_requirements_array entry rather than filled with zeros. Neither has a canon value: no distance

band is authored for these beats, and no vril site or settlement anchor overrides procedural placement in

this quest (VS_CH02_001 belongs to CH02_B04, two beats later).

9. ENGINE-OWED — what QW-1 real-graph wiring needs

Stated as a named owed item. No engine work is done here and none is claimed.

The ledger's B1 row records the exact condition: "The driver reads SPINE tables, not

T0_Quest_Definition_Registry — a hand-staged slice driver, not a general graph runtime"

(docs/PIPELINE_LEDGER.md L119). HumanityQuestSliceDriver.cpp auto-arms CH_02 and stages CH_02 through

CH_05 from DT_Beat. So landing this row changes nothing in-engine until the driver's source of truth moves.

What that move requires, derived from the row above rather than from a wish list:

pin the way DT_Beat and DT_SideQuestBeat already are. Without it there is nothing for a runtime to read.

CSV cell. The engine needs either a child DataTable keyed quest_id + objective_id or a parse-on-import

step; the row above is authored so either shape works, since objective_id is stable and quest-local.

the C++ evaluator is a PORT of harness/condition_expr.py and pins the port's obligations, including the

64-level nesting bound and the four typed errors. This quest exercises exactly one predicate surface,

flag(local.key), across seven expressions — which makes it the cheapest possible first port target, and

the reason the opener is a good exemplar rather than only a required one.

which are objective-produced and appear in no beat row. The runtime needs a per-chapter local flag store

that objectives can write, distinct from the ws. save state, and it needs the produce-before-consume order

to come from objectives_array order rather than from beat order.

quest must arm from the chapter seam with no interaction. The slice driver already auto-arms CH_02, so this

is a re-point rather than a build: the arm condition becomes a row lookup instead of a hard-coded chapter id.

a WS_012 object. docs/proposals/CALLBACK_EXEMPLAR_CH03.md reports the generic write path exists; this row

is a one-write smoke test for it.

DT_Quest, presents six objectives in order, completes each on its own flag() predicate, writes exactly

one ws. key, completes the quest on the conjunction, and never presents a fail state. A run that completes

the quest without local.ward_recovered is a failure of the port, not of the row.

10. Findings for the director

Ranked by what blocks the row from landing.

1. quest_status = proposal is not an enum member — the one mechanical blocker, and the only item here that

stops the row from landing at all. RULED by the director: the mint proceeds. Both options are recorded

because a ruling with only its winner written down is not auditable.

Option (a), the no-mint alternative: write pending, which IS enum-legal on both §6.7 machines and needs

no canon edit whatever. It is the cheapest possible path and it LOSES. §6.7 L1594 and L1607 define

pending as "quest row exists in T0_Quest_Definition_Registry, quest authoring not yet attempted" — which

is false of this row, since the authoring is the document you are reading. Typing it pending erases the

one distinction the proposal-tier-to-ratified firewall depends on: an empty placeholder row and a

fully-authored-but-ungraded row would be indistinguishable in the registry, so a later pass could not tell

which of the two it was looking at, and the sixteen genuinely-unauthored endgame rows would sit in the

same state as this one. A status that lies about the work done is worse than a missing enum member,

because the missing member is visible and the lie is not.

Option (b), the mint — RECOMMENDED and RULED. proposal lands as a pre-pending member on BOTH §6.7

state machines, meaning the row exists and is authored at proposal tier and has not entered the pipeline.

This is not new canon reaching past the contract; it is the contract's own work order executing. §6.5

L1440 names the item in terms — "the T0_Quest_Definition_Registry landing surface plus a spike-or-proposal

quest_status value (CG-12 residue)" — and lists it among the population-leg items rather than among the

closed gaps. The mint's home is §6.7, not §6.5: L1480 does not define the enum, it points at §6.7, so the

member lands on the two state machines and L1480's pointer stays exactly as written. The lane mandate

named §6.5; §6.7 is where the enum actually lives. The director makes this edit; this lane does not.

Corroboration rather than one lane's opinion: docs/proposals/TRADE_GATE_EXEMPLAR_Q_TR6_NEO.md §7.3 hit

the identical blocker from a different domain in the same wave, calling it "the single mechanical blocker

between this document and three real registry rows".

2. The four turn columns DO have a definition, and the sibling lane's finding that they do not is stale —

stated precisely, because the sibling is right about the thing it actually looked at.

TRADE_GATE_EXEMPLAR_Q_TR6_NEO.md L641-647 records that the four "carry no definition anywhere in §6.5's

field enumeration, which stops at extensions", and offers provisional readings. That claim is TRUE of

§6.5's field enumeration and FALSE of the corpus: docs/registry_extensions.json

_column_doctrine/quest-turn defines all four verbatim, and gate 47 harness/check_quest_turn.py reads

them with teeth Q0 through Q4. The defect is therefore a scope-of-search one, not a reasoning one, and the

fix is a one-line correction on that document plus — the more useful half — a pointer FROM §6.5's

enumeration TO the column-doctrine block, so the next lane that reads §6.5 to the end does not conclude

the same thing again for the same good reason.

3. CH_02 has no turn-bearing quest authored, and this quest cannot be one. Section 6 gives the arithmetic. The

chapter's turn belongs on the FORK_CH02_A quest (CH02_B09 plus CH02_B10), where an irreversible choice and

a durable write both exist. Until that quest is authored, gate 47 will correctly report chapter 2 as

unarmed rather than passing. Owed work, not a defect in this row.

4. The protagonist SPEAKS at CH02_B10 in the landed dialogue lane, which contradicts CG-16b as written.

docs/proposals/dialogue/dialogue_registry_rows.csv carries 108 CH02_B10 rows including

dialogue_type = player_option with six_option_slot populated and vo_tier = voiced_performance

(DL_000008 "I'm not in it. I'm at the edge."). §6.5 L1534 states the spoken wheel "switches on at

protagonist speech" at approximately Ch 3, and preserves the pre-verbal question as a veto surface for

Josh. This is a real conflict between a ratified contract clause and landed lane output, and it does not

touch this quest (there is no interlocutor in it), so it is filed rather than resolved. Note the same file

uses dialogue_type values npc_line and player_option, neither of which is among the six ratified

members at L1500.

5. The dialogue dataset key form does not match the contract. The landed CH02_B10 rows carry

dialogue_dataset_ref = DLGSET_CH02_B10_CH03_WAE_REBO_HUB, while CG-09/CG-10 pin the form to

DD_<quest_id>. Once the CH02_B10 quest row exists, that key becomes re-pointable; until then the dataset

is keyed to a hub rather than to a quest. Naming it now is cheaper than migrating it later.

6. The region page's Derived Index for scenes is stale. flores_island.md L86 lists five CH_02 scenes and

omits SC_CH02_the_first_search, which the eleventh-sitting amendment added and which IS a live row in

T0_Scene_Spec_Registry. The block's own preamble says "Generated from the spine at build time;

regenerate, never hand-edit" (L69), so this is a regeneration owed, not a hand edit.

7. No seed row exists for the object-recovery payload. T0_Quest_Seed_Registry carries four CH_02 rows and

none anchors CH02_B11 or THREAD_20, while the spine at L47 names THREAD_20 as a NEW carrier joined at

CH02_B11 and says in terms that the grid row "is registry follow-through this entry implies and does not

itself write". Two registry follow-throughs are implied and neither is taken here: a THREAD_20 / CH_02

T0_Thread_Grid row, and the refreshed beat count on the T0_Chapter_Index CH_02 row that L162 flags.

8. The opener's survival substrate has no reachable node. Every flores gather node carries a

tool_or_trade_required (GN_0001 Herbalism_T4 at liang_bua_cave, GN_0010 Mining_T2 at

mount_inerie_cone_country) and no trade is unlocked at Ch 2, so OBJ_05's forage has no rowed source. All

eleven are progression_critical FALSE, so the no-dead-end law is not threatened — the beat plays as

scripted survival. But a survival opener whose forage is unrowed is a hole the B8 economy lane will hit

again at every pre-trade chapter. Recommend a trade-free survival-gather class rather than a per-chapter

exception.

9. Two SFX gaps on this quest's beats. The four-beat cast cues exist for both abilities the quest unlocks

(SFX_00062-65 Ember Strike, SFX_00076-78 Cloaking) and the ambient beds exist for both sites, but there is

no ignition cue for the fire-making puzzle and no cue for the find-beat's lift — the chapter's most

load-bearing single moment of the three. SFX_00021 Gather-Yield Confirm is the nearest and is a generic

gather confirm, which is exactly the wrong register for a recovery offered without comfort.

10. The spike draft is now materially stale and should be marked so. docs/proposals/quest_spike/CH_02_quests.md

works a ten-beat graph with no CH02_B11 and carries seventeen gaps of which the great majority are closed

by the §6.5 completion pass. It remains useful as prior art for Ch 3-5. A one-line SUPERSEDED-IN-PART

banner on its CH_02 section would stop the next lane re-reading closed gaps as open.

Files written

_source doc, no DOC_MAP.md entry and no commit — the director-lands protocol recorded on the claim.

Generated by harness/site/structure_site.py — the URL path is the repo path. review root