CRITIC_sm64-movement-camera-onboarding.md

assets/CRITIC_sm64-movement-camera-onboarding.md

CRITIC PASS — lens sm64-movement-camera-onboarding

Fresh-context adversarial refutation of

LENS_sm64-movement-camera-onboarding_DRAFT.md (15 findings).

Both repos read READ-ONLY: C:\dev\humanity-forgotten (canon), C:\dev\Humanity\Humanity (built).

VERDICT: GO-WITH-FIXES — 0 killed · 15 survive · 6 amended · 2 contested

Every finding's citation was opened and checked. No finding fails outright. This is an unusually

well-grounded draft: the load-bearing zeros are real, the MISSING-vs-DESIGNED-UNBUILT calls are

correct, and one methodological self-correction (CAVE_BEAR) reproduces exactly. The defects are

citation-precision and one wrong mechanism — none change a verdict class, and two amendments make

findings *stronger* than drafted.

---

KILL LIST — empty

No finding was refuted. Below is what I attacked hardest and why each held.

The four MISSING verdicts all survive the DESIGNED-UNBUILT test

The runbook's sharpest rule is that a spec/ruling/registry row anywhere converts MISSING into

DESIGNED-UNBUILT. I searched for each independently.

bEnableCameraLag = 0 hits across all of Source/ (my own grep, not the draft's). Corpus-wide

the occlusion-policy vocabulary returns 2 hits, both false friends ("camera fade" in the *death*

path, FORKB_ANALYSIS_ADVERSARY L75/L563). Critically, T1_UI_UX_Spec [DRAFT v0.1].md is a

35-byte title-only stub — the one doc that could plausibly have hidden camera rules is empty.

Plan #26 verbatim: "None exist as specs today" (PRE_5090_BUILD_PLAN.md L1925). MISSING (spec) is

correct; a declaration of absence is not a design.

a false friend (QA_WATCHING_PROGRAM.md L209, "input buffer" in a list of what the Tier-1 driver

cannot see). The built verbs are confirmed self-terminating and mutually exclusive

(bParryOnCooldown L336, bMantling L375). The chain meter exists but is parry-scoped

(Character.h L111-129: "Consumers: the encounter chain meter, the HUD, the QA loop"). MISSING holds.

item. #26 lists it as absent. MISSING holds.

variant definitions, rewards, titles, biome rotation, protections — and **no failure, reset, or

re-entry rule of any kind**. MISSING holds, and is stronger than drafted (see amendment 4).

Pre-registered divergences and register dupes — correctly handled

DIVERGENT-BY-DESIGN. The draft correctly dropped that candidate rather than re-litigating it.

SM64-15's no-scoreboard self-check is right.

hidden; rank 13 verified at L70 ("Ability registry data pass (unlock chapters ×153…)").

The scoped instruction it adds (sequence mobility first, inside Ch 2-13) is genuinely not in #32.

---

AMENDMENTS (6)

A1 — SM64-2: the stated mechanism is wrong; the finding survives on BETTER evidence

Impact: reasoning replaced, verdict (WEAKER) and recommendation unchanged, evidence strengthened.

The draft argues the camera tooth is scoped away from traversal because "the tooth is T-SEQ-*

its failure modes are… i.e. cut/sequence continuity." That reading of the prefix is wrong.

§2.2 is titled "The permanent teeth" and the whole family is strip-scoped, not cinematic:

T-SEQ-PRESENCE, T-SEQ-RENDERED, T-SEQ-UPRIGHT, T-SEQ-PHASE-ORDER, T-SEQ-CLOCK

(L154-160). T-SEQ = a tooth over a captured frame strip/burst.

The finding survives on evidence the draft *found but did not use*. QA_WATCHING_PROGRAM.md

L208-210: "Today's drive is a state-teleporting driver: it poses the game for a photograph.

Right for capture, wrong for a beta player — the mapping context, ability gate, input buffer,

lock-on cycle, fork UI focus and traversal are invisible to it by construction." And L225:

"charter would report a clean traversal that was actually teleported." That is the program's own

admission that the QA loop cannot see traversal at all today — a stronger claim than the draft made.

Fix: delete the "i.e. cut/sequence continuity" clause; ground the finding on L208-210 + L225.

The correct residual statement about the tooth is narrower and still true: T-SEQ-CAM-CONTINUITY

asserts only "no angular delta above ceiling; lock target stays in frustum" (L162) — nothing about

penetration, near-clip, self-occlusion, or recovery. Name the Tier-2 agentic driver as the

dependency the recommendation rides, since a teleporting driver cannot produce traversal camera data

at all.

A2 — SM64-4: citation notation is wrong (substance fully intact)

Impact: notation only. Every number in the enumeration reproduces.

The draft writes "12 ability_class=mobility rows" and offers the csv.DictReader read as its

positive control. Strict equality ability_class == 'mobility' yields 8 rows, not 12 — so as

written the control does not reproduce. The draft's 12 reproduces exactly under a substring

filter ('mobility' in ability_class):

classnrows
mobility8incl. A_A_001 Wind Step T1 @ Ch_04
mobility_construct1Ember Trail T3
mobility_combat_hybrid2Phoenix Strike T6, Cyclone Cradle T7
perception_mobility1Astral Projection T4 @ Ch_15

Tier distribution under that filter: 1×T1, 1×T3, 6×T4, 2×T5, 1×T6, 1×T7 — and 10 of 12 empty

unlock_chapter_ref. That is the draft's enumeration, item for item, including the specific

abilities it names. Corpus-wide 32/185 unlock coverage: verified.

Fix: change ability_class=mobility to "ability_class containing mobility (4 sub-classes)".

Note the headline is *sharper* under strict equality — 1 Neophyte of 8 — so the finding does not

weaken either way.

A3 — SM64-9 + header: line-number drift on the defeat reconcile

The quote "CF-10's boss-defeat STATE is UNBLOCKED — D-DEFEAT-AXIS RESOLVED 2026-07-24" is

verbatim-correct but lives at PRE_5090_BUILD_PLAN_VOL2.md L412, not L650. The 2026-07-24

ruling itself ("Rated M game. Things will die. Health 0 is death…") is exactly where the draft says,

L360-368. Fix the L650 cite in both the header and SM64-9.

A4 — SM64-10: strengthen — the ownership vacuum is worse than drafted

Two facts the draft missed, both of which harden the MISSING verdict:

1. T1_Combat_System_Spec L27 explicitly disowns "per-course traversal scripts" from its own

scope.

2. L43 and L330 assign per-course design to "Tier 2 ChapterDesign briefs" — a tier that has been

deleted (CLAUDE.md Phase 5.5: the 12 empty T2 stubs dropped, the T2 folder gone).

So the course reset rule has a declared non-owner and a *deleted* owner. Independent corroboration:

MV-3's own row carries "Absence: grep agility/course = 0" (VOL2 L552), and my grep -i agility

over Source/ returns 0 (the draft said "comments only" — it is actually a clean zero).

A5 — SM64-7: one framing overstatement

"The player fights a Komodo dragon and a reticulated python at beat four" overstates the

encounter's register. CH_02.md L122 defines CH02_B03 as "the Kelimutu Guardian test — … read the

constriction and strike lanes, step the lane on the tell or attune the breath, and the guardian

withdraws, opening the source — a permitted guardian-test, never a hunt," scored 30/45/25

*puzzle-forward* (L100). It is a genuine combat-mode beat (L64: "Combat is a real playable spine,

not flight-by-design"), so the finding's actual point — a tell-reading, lane-stepping encounter at

beat 4 with no prior movement teaching — holds. Change "fights" to "is tested by".

Everything else in SM64-7 verified exactly: beat order B01(seq 1, hook) → B11(seq 2, discovery) →

B02(seq 3, puzzle, mount_inerie_cone_country) → B03(seq 4, combat); the agility course hosts at

mount_inerie_cone_country (L88) and is visited pre-combat; and CH02_B04 is a *learning* beat that

teaches vril recharge, not movement (L126) — so "no beat is assigned to teaching movement" is

precise, not sloppy.

A6 — SM64-1: minor quote conflation + boom line range

The draft renders CC-3 as "blends back to the gameplay camera's live pose." The doc's *heading*

reads "CC-3 EXIT RETURNS TO THE LIVE POSE"; its *body* reads "blends back to the gameplay camera's

CURRENT pose" (L456). Heading and body merged into one quotation; substance identical. Also the

camera-boom block is L105-111, not L103-111.

---

CONTESTED — for the director (2)

C1 — SM64-1's dedupe is right, but its reuse target may be the wrong host

I verified the scope split the draft relies on, and it holds: rank 19 is "[josh-brief·S] The

presentation doctrine (camera/cut/transition covers) — precedes CN5.2 template bake"

(PRE_5090_BUILD_PLAN.md L96), and register #29 scopes to "camera continuity, cut policy, diegetic

transition covers" (L338-339). Gameplay-camera occlusion / enclosed-space / yaw authority is a

genuinely different surface, so MISSING survives.

The contest is the *recommendation*. Folding a §GAMEPLAY CAMERA clause set into

PRESENTATION_DOCTRINE.md loads a josh-brief·S item that is gating a template bake with a

materially larger surface. Alternative: land SM64-1's clauses on rank 20 (T1_UI_UX_Spec,

verified a 35-byte stub, spec-doc·M) — which is already where the draft routes SM64-6 (locomotion)

and SM64-8 (onboarding), and which is where its own closing paragraph says the compression lives.

My read: rank 20 hosts all three cleanly and keeps rank 19 small and on-deadline. But the draft's

one-authority argument (the cinematic and gameplay cameras governed by one doc, so CN5.2 reads a

single source) is real, and I am not overriding a reuse-first call on a judgement difference.

Director's call: rank 19 fold-and-slip vs rank 20 consolidation.

C2 — SM64-9's boundary with the queued Hades lens should be confirmed before that lens runs

DESIGN_GAP_REGISTER.md L425 lists "camera-doctrine (sm64) · retry-failure-latency (sm64; adjacent

D-DEFEAT-AXIS)" under "The new aspect rows… each is a row the QA program's aspect_id join can

now bind." So SM64-1 and SM64-9 are aspects this lens was *commissioned* to produce — not dupes.

Separately, cell 13 ("Defeat axis + retry latency — the Hades economy") is CLAIMED-QUEUED (P1-C)

to hades-death-run-realm-identity (L413). The draft declares this overlap and splits it sensibly

(per-attempt execution-surface latency vs the run economy). The residual risk is ownership of

RecordRetryLatency: two lenses can land the same diagnostic twice. **Recommend the director pin

the split in the register before the Hades lens runs.**

---

DEVIL'S-ADVOCATE AGAINST TIMIDITY — clean, 0 flags

No recommendation is care-inflated or defanged relative to the R-17+ bar.

tutorial space, no prompts, no register change," explicitly preserving Ch 2's survival-horror

opener, and it refuses to touch the Prologue's ruled power-ceiling narrative. A timid draft would

have proposed softening the opener to accommodate teaching; this one restructured teach *order*

instead.

2-minute countdown and the rescuer role are quarantined as SM64-D3 DIVERGENT-BY-DESIGN, and the

findings scope only to course/pattern retry. Correct: consequence and weight are preserved.

are a shipping floor on an R-17 action game, and two in-repo analyses independently flag a real

flash risk. The draft ran this check itself and concluded it survives "in the opposite direction";

I concur.

sanitizing violence.

---

VERIFIED-CLEAN — the load-bearing spot checks that passed verbatim

Game repo (C:\dev\Humanity\Humanity)

than the draft's "seven lines" description*; UE defaults are the shipped model by omission.

MantleMaxHeight=130 / MantleMinHeight=25 L371-373; DeathFadeSeconds=0.55 /

RespawnHoldSeconds=0.9 L394-395; DodgeStaminaCost=20 / ParryStaminaCost=12.

at L273-277.

HumanityWorldDemandAttributeSet.h L64), not the brief's 0 — no checkpoint *system* exists, so

SM64-9's substance is unaffected.

Canon repo (C:\dev\humanity-forgotten)

'CAVE\_BEAR' = T1_Story_Spine [ACTIVE v1.0].md` L50 with the full row

`{boss\_id: CAVE\_BEAR, type: TUTORIAL\_FORCED\_RUN, mechanic: "must-run combat tutorial",

canonical\_outcome: "no combat resolution; flight is the lesson"}; bear` in CH_02.md = 0

against a polo control of 47. This is the a-search-that-cannot-match class caught and

self-corrected in-flight — exemplary method discipline, worth preserving as the wave's exhibit.

bands for exactly three P2-gating surfaces), L360, L362, L386 (RB-8 traversal BUILD-NOW),

L62-66 (pixel strips visual-only, timing disarmed) — all verbatim.

"zero-penalty constraints" and Puzzle's "12 forest pods… without stopping"; the biome roster's

"architecture vertical" / "arboreal three-dimensional canopy" / "vertical cliff-face" rows.

"0/79" note is indeed stale, as the draft says.

L197, the merapi_slopes site row "agility-pod terrace-proportion variant 120x120" L120, and the

sculpt figure "merapi_slopes 18.4°→0.0°" L820-821 — all verbatim. (merapi_slopes is tagged

Ch5 in the tool table, still inside the slice, so slice-relevance holds.)

CH_PROLOGUE L19/L65/L86/L91/L99 — all verbatim.

MV-8's row independently confirms the header's stamina correction ("Input_SprintStart raises

MaxWalkSpeed with no Stamina cost").

(a real per-chapter obligation rider), the parry/chain hook, PRESENTATION_DOCTRINE.md (945 lines,

CC-3 at L456), ROSTER_PROPOSALS.md L373 accessibility floor, DECISIONS_PENDING_JOSH L524-536

(J-1 hold-on default / 2-minute countdown / J-3 THE RESCUER), FORKB brief L472 + L540.

"byte-level EMPTY stubs" claim is accurate.

Internal consistency: counts reconcile — 4 MISSING + 10 WEAKER + 1 DESIGNED-UNBUILT = 15;

priority 6 HIGH + 7 MEDIUM + 2 LOW = 15.

---

Bottom line

Publish after applying A1-A6. A1 (the T-SEQ mechanism) is the only substantive rewrite and it

*improves* the finding — the program doc's own "traversal is invisible to it by construction" is the

strongest sentence available to this lens and belongs in SM64-2. A2 is a notation fix on a finding

whose numbers all reproduce. A3 is a line number. A4 and A5 sharpen. C1 and C2 are routing

judgements for the director, not defects.

The draft's headline compression — that five of six spec findings are one first-ninety-minutes UX

pass that #26 already bundles and the ranked 30 never promoted — is verified true against the

ranked 30 (L60-108) and #26 (L1925), and is the correct call to surface.

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