# Layered-r01 — bounded source-first critic

Date: September 13, 2026. Scope: the three requested guides and their six
`runtime-r01` default/adaptation exports. No other treatments receive a verdict.

## Conclusions

| Piece | Current guide conclusion | Biggest concrete visual gap | Overall gate |
| --- | --- | --- | --- |
| codex-modal-relay / review03 | No confirmed construction/control/pin bug found | Dark leading cursor survives the fitted exposure | Changes required; NO-MOVING; native Resolve unverified |
| type-masked-name-reel / review02 | No confirmed construction/control/pin bug found | Lower fade leaves a faint additional-row ghost | Localized repair required; NO-MOVING; native Resolve unverified |
| pulse-device-card-arc / review03 | No confirmed construction/control/pin bug found | Text-heavy editorial cards replace subject-led illustrations | Material repair required; NO-MOVING; native Resolve unverified; adaptation reproducibility unresolved |

There is **no concrete guide-only repair to send after the SVG pin repair**.
That is a bounded negative finding, not a native Fusion acceptance. The visual
repairs below belong to renderer/content fitting, followed by guide repinning.
Do not change geometry merely to manufacture a guide defect.

## Order, coverage and limits

- `SOURCE_ONLY_FREEZE.md` was frozen at **19:38:23 UTC**, before any builder
  guide, inherited finding, candidate movie or retained renderer was opened.
  Its SHA-256 remains
  `95583fc101f18b41943f1b3fedff0c895559d90e089865b212a1b0c8127a3b86`.
- The actual retained source files were decoded and every available frame
  inspected: **122 + 300 + 235 = 657**, including first/last frames and all
  intervening boundaries. Twenty-nine bounded JPEG pages contain consecutive
  frames, not sparse samples; forty selected source boundary frames were also
  inspected at the retained 960×540 size.
- All six requested fresh MP4s were complete when inspected. Every decoded
  candidate frame was inspected in paired sequential pages: **1,314 frames**.
  Each paired cell puts default above adaptation. Supplemental comparisons
  put source/default/adaptation left to right at the same inspection scale.
- This was **exhaustive sequential-frame inspection, not uninterrupted moving
  playback perception**. Static image tools cannot establish full-speed feel.
  Full-motion review remains **NO-MOVING**, even though every frame was decoded.
  No source-motion completion, source-fidelity approval or native Resolve credit
  is awarded from these pages or tests.
- Source identities and candidate filenames were exposed. This is an
  identity-aware critique: **NO-BLIND-VOTE**, no winner, no win count.
- The three source MP4s are reduced **960×540 excerpts**. The 1920×1080 source
  metadata in the recipes and guides does not make these inspected excerpts
  full-resolution originals. Candidates encode at 1920×1080; the comparative
  inspections do not claim a full-resolution original-film reference.
- No guides, sources, renderer files or production deployment were changed.
  The only outputs are this review directory and the assigned private critic
  worker. Guard checks used `--incoming-bytes 100663296` before evidence writes;
  private evidence remains below 96 MiB. No frame-sized PNG dump was created.

## codex-modal-relay

**Verdict: no confirmed guide-construction bug; visual repair required.**

The principal defect is the **dark leading arrow/hand during cursor flight**.
At local **18 / 0.750750 s** and **20 / 0.834167 s**, the source has a pale,
distributed streak; both fresh candidates retain a distinct dark arrowhead.
At **100 / 4.170833 s**, the candidate hand outline remains more definite than
the source streak. These differences are visible in newly decoded, common-scale
crops; this conclusion does not borrow a previous review's motion verdict.

The documented 41-sample stack describes the retained implementation, which
uses centered fractional parent transforms and `1/(sampleIndex+1)` over-alpha,
while child shape/press state stays at integer time. The guide does not conceal
the defect. Repeating that stack in Fusion would reproduce a fitted baseline,
not establish source-equivalent exposure.

**Repair need:** refit the cursor's foreground/halo opacity and exposure profile
against the retained source, including both arrow and hand. Do not merely add
more samples, blur the entire desktop, move click targets or retime the relay.
Recheck f16–22 and f97–104 consecutively, including the stationary states on
either side. Update the guide only after the renderer fit changes. Native
Fusion exposure equivalence requires its own rendered test.

**Construction checks:** 85 layer records and 370 numeric controls; 45,140 raw
CSV rows streamed. Ancestor gates and merge order agree with the recipe. The
1720-pixel scrims leave the 200-pixel desktop strip outside their domain. The
single progress frame is f26; f47–86 is an undimmed desktop interval; the second
dialog starts at f87. Cursor arrow/hand gates are not shifted with exposure.
The guide's local domains, unclipped shadows, negative hand offset, independent
hover overlap and last-frame boundary were checked against the retained code.
No completed submission is inferred from f121.

## type-masked-name-reel

**Verdict: no confirmed guide-construction bug; localized visual repair required.**

The principal visible residual is the **lower mask tail**. At f0/f40 and f136,
the candidates retain a faint additional row below the lower neighbor: Drafts
or Boards early, then Plans or Goals. That additional-row ghost is not apparent
to the same extent in the retained source at the common inspection scale.
This is a small attenuation discrepancy, not a newly established material
failure of the entire reel. Do not confuse replacement icon color with mask
coverage or revive the previously reported canvas-color issue.

The actual asset is a white-over gradient, not a luminance mask. Its 23
position/alpha stops agree with the README. Copying those stops into an
untested Fusion gradient preserves an implementation description; it does not
prove matching falloff, premultiplication or color handling.

**Repair need:** adjust the lower tail in the renderer while preserving the
active row, the intended neighboring rows and the fixed suffix's separate
domain. Compare neutral capsule falloff and additional-row visibility at
f0, f40, f136, f148 and f183; do not tune from differently colored icon ink
alone. Keep the f248/249 hard replacement and final drift. Repin the changed SVG
and transfer the actual white-over construction into a rendered Fusion test
before claiming dual-tool mask parity.

**Construction checks:** 28 layer records and 119 numeric controls; 35,700 raw
CSV rows streamed. Per-row clipping and the 700×800 viewport are separate;
the white gradient is last inside the viewport, and the suffix is outside it.
Each row retains 237 y keys and 14 x keys. No exposure group is present.
The suffix has its own eight-key x track despite its name. The viewport and
suffix end before f249; the closing line starts at f249, retaining its 26 x
keys and the noncentral (480,15) scale origin. No new cut/parenting discrepancy
was found in this bounded check. Text+ shaping has not been rendered.

## pulse-device-card-arc

**Verdict: no confirmed guide-construction bug; material visual repair required.
The adaptation export also remains on reproducibility hold.**

The largest concrete gap is **the artwork's visual role**. At f1, the source's
small card is already recognizable as a colored airplane illustration. Default
shows an orange editorial page; adaptation shows a blue typography-led page.
At f84, f100 and f124, the source fan consists of large subject illustrations,
whereas both candidates are dominated by headlines, miniature diagrams, charts
and page furniture. The mismatch persists through the central reveal and is
not repaired by correct arc centers, seven assets or valid SVG rights metadata.

**Repair need:** replace the seven faces with original, subject-led square
illustrations that read at both phone-card and expanded-arc size. Use large
silhouettes and broad color areas rather than tiny text and charts. Do not use
source screenshots or copy the source brand assets. Preserve the independent
card tracks, foreground-card identity, overlaps and word gates while changing
the faces; then inspect the entire fan and exit before repinning the guide.

**Construction checks:** 27 layer records and 147 numeric controls; 34,545 raw
CSV rows streamed. Card 3 is a root sibling, not a phone child, and is merged
last over cards 0,1,2,4,5,6. Its 640×640 local box has origin (320,320): at
f100, raw (640,160) means center (960,480), not raw position plus half the scaled
width. The 714×1500 phone is cropped by the scene, not auto-fitted. Face rounding
is separate from the unclipped shadow. Seven exposure branches keep child time
fixed. Takeaway is beneath the cards, with word steps at 200/206/211/214; a
structurally active offscreen card is not automatically a visible pixel.

**Fresh versus retained output:** the fresh adaptation independently matches
only **33/235 decoded yuv420p frame hashes**; **f33–234 differ**. Its current MP4
hash and all manifest input bindings verify against the runtime. These facts
can coexist: reproducibility against the retained MP4 is still unresolved.
The encoded difference has maximum luma difference 62 and maximum frame-average
luma difference 0.323542 on the decoded 8-bit luma plane. These measurements do
not diagnose the cause, establish perceptual equivalence or prove a guide bug.
Do not dismiss the 202 differing frames as harmless or award a new quality win.

## Verification and guide revision boundary

- The final SVG repair adds only `svgAssets` to each guide JSON: source,
  controls, geometry and all other existing fields are unchanged. README
  changes append the binding explanation. All **33 distinct SVG pins** match
  the retained renderer's actual assets: 6 modal, 13 reel, 14 device.
- Updated helper suites: **18/18 tests**, no skips. All three current
  `handoff.py verify` invocations exit 0. Every hierarchy, parent gate and
  numeric-control mapping is checked by the guide suites; actual raw CSV
  export adds **115,385 rows**, streamed rather than retained as a large CSV.
- All six current MP4s pass the retained renderer's `scripts/verify.mjs`,
  including manifest/asset bindings, frame count, rational cadence, dimensions,
  H.264/yuv420p and absence of extra audio streams. Three recipe catalog-contract
  commands also exit 0. No new render was made by this critic.
- Source and candidate decoded PTS arrays match within each piece: 122 at
  24000/1001, 300 at 60000/1001, and 235 at 60/1. This is **timing equality**,
  never source pixel equality. The private runtime packet reports retained
  output equality for both modal/reel variants and Pulse default; the Pulse
  adaptation exception was independently reproduced here.
- `handoff.py frames` remains **raw local control CSV**. It does not validate
  world-space Fusion centers, Text+ shaping, masks, SVG import, fractional
  exposure rendering, an importable composition or native application behavior.

No native Resolve render, moving-source pass or blind vote is supplied. Current
guide hashes, candidate hashes, command logs and private evidence locations are
recorded separately; private filesystem paths are not included in this report.
