# Interface r01: source-first technical review

**Disposition: changes required for all three pieces.** This closes the requested
bounded review; it does not approve source fidelity, Resolve reproduction, or
publication. No guide, renderer, movie, or deployment was edited.

## Inspection and limits

Source-only notes froze on **September 13, 2026, at 19:39:01.390504 UTC**, before
any builder guide, findings, candidate movie, or renderer code was opened.
`SOURCE_FIRST_FROZEN.md` remains unchanged, SHA-256
`8ae02f5a3bd4c955ab9ea5c290efa3ed4fe486cbddb0fa1533d2e72b8fdbfe18`.

**No blind vote. No moving credit. No winner or tie preference.** Every frame
listed below was inspected through sequential static contact sheets. Playback
feel, temporal smoothness, physical mouse release, and native Fusion output were
not experienced or verified. The retained sources are 960×540 excerpts, possibly
re-encoded; no full master was available or downloaded. Candidate movies are the
new runtime-r01 exports, not substitutes from the retained comparison archive.

| Piece | Source inspected | New default inspected | New adaptation inspected |
| --- | --- | --- | --- |
| Composer context reveal | review01, 0–136, 137/137 | 0–136, 137/137 | 0–136, 137/137 |
| Reverse selection action | review02, 0–174, 175/175 | 0–174, 175/175 | 0–174, 175/175 |
| Click release camera | review03, 0–123, 124/124 | 0–123, 124/124 | 0–123, 124/124 |

Coverage is **436 source frames and 872 candidate frames**, across the six movies
assigned to this critic. This is not a review of all twelve batch exports or the
r03 browser preview. Thirteen source overview sheets, seven source-detail sheets,
twenty-six candidate sheets, and three matched-region sheets are private static
evidence. Overview cells are 240×135; source detail is 960×540; comparisons scale
candidates to the retained source's 960×540 coordinate basis. Tiny text/edge
judgments remain constrained by that evidence quality.

## Largest actionable gap per piece

### 1. atlas-composer-context-reveal — changes required

**Make the query caret content-aware, or reject incompatible queries.**
The guide offers custom Content in
`guides/interface/atlas-composer-context-reveal/README.md:112`, but maps caret x
to fixed recipe keys in `guides/interface/atlas-composer-context-reveal/guide.json:202`.
The typed query is Content; the caret track is not. Matching character counts
does not match glyph advances. All five caret x positions remain unchanged when
query text changes. General text-box fit does not validate caret registration.

Concrete evidence, in the recipe's 1920-pixel coordinate system:

- At frame 92, text begins at x=589 and the caret is x=611.546875. Bundled Geist
  at 18px/weight 400 measures `pl` as 15.421875px, leaving a 7.125px gap. The same
  track leaves 2px after adaptation prefix `no`. Excess default spacing is also
  visible in the actual default movie's panel crop.
- The schema accepts `iiii.i` and `wwww.w`, as well as the supplied tokens. At
  frame 134, the fixed caret is x=638.328125. Bundled-font measurement of `wwww.w`
  is 75.5px, so its right edge would be x=664.5: the caret is 26.171875px inside
  the token. This is a code/font-metric reproduction, **not a new rendered movie**.
- These widths came from Pillow/FreeType using the bundled font, not Chromium.
  The follow-up Chromium probe failed before font measurement because its private
  temporary socket path was too long. No exact custom-render pixel claim follows.

Next build: derive the five caret positions from the actual loaded-font prefixes
for each supported Content token, or enforce compatible prefix widths and explain
the restriction in the command example. Recheck both supplied variants and narrow/
wide schema-valid tokens. Do not repair the appearance by changing font size.

Other failing source check: the source panel bottom settles during 92–108; both
new movies introduce the final-height panel immediately. Matched crops at
92/93/96/100/104/108 confirm the missing excursion. The guide discloses this; its
disclosure does not repair the implementation. The early 8→9 scale cut and the
91→92 result-state boundary must remain separate from that panel repair.

### 2. atlas-reverse-selection-action — changes required

**Correct the attached capsule's lower face/shadow registration.** At frames
94 and 138, both actual candidates retain the displaced, lighter lower capsule
edge relative to the selected text. The source reads as a different attachment;
repeating the current local coordinates in Fusion reproduces the discrepancy.
Evidence is the matched source/default/adaptation capsule sheet, not an inherited
review verdict alone. The relevant checkpoint is
`guides/interface/atlas-reverse-selection-action/README.md:87`.

Next build: fit the capsule shell and its separate shadow to the selected-text
anchor at 90/94/138. Leave the selection/body geometry fixed; preserve the shell
outside the content crop and the separate shell/hint/button fades. Then check
the 173/174 endpoint without adding a rewritten-email result.

Other failing/unresolved checks: the source's initial anchor dot at frame 2 is
missing in both actual candidates; final button/hand contraction remains open.
The larger dual-tool verification gap is **native Text+ glyph-to-mask and pointer
registration**. All 427 numeric controls can agree without establishing that.
Changed wrapping and arbitrary Unicode are explicitly unsupported, not newly
discovered functionality. The selection factory's file-generation workflow was
not executed in this review: the optional browser probe failed before reaching it.

### 3. codex-click-release-camera — changes required

**Fit the right window edge during deceleration, not just the final frame.**
Both new candidates show a displaced, harder edge around frames 114–118 against
the retained source. The matched-region sheet includes 112/114/116/118/120/123;
it separates the intermediate discrepancy from the eventual wide pose. See
`guides/interface/codex-click-release-camera/README.md:92`.

Next build: compare the camera trajectory, shadow, and temporal exposure against
the intermediate edge, retaining the clear-pane cut at 101, close hold through
105, camera onset at 106, and remaining settle through 123. Do not substitute a
global Gaussian blur, blur the desktop, or move the cursor into frame space.
Camera/cursor exposure counts are 49/33, with child state held at center frame;
numeric sample counts alone cannot establish equivalent optical output in Fusion.

Other unresolved checks: the leading/trailing cursor contour and the extra hover
icon identity switch remain source discrepancies. No source-defined physical
release time or calibrated Fusion shutter mapping is established here.

## Technical checks and what they do not prove

| Check | Result |
| --- | --- |
| Ordered hierarchy, parents, gates, pivots and control pointers | 170 nodes; no omission/order/parent/pointer defect reproduced |
| Numeric control coverage | Composer 179/179; selection 427/427; click 107/107 |
| Discrete event coverage | 43, 109 and 21 events mapped respectively |
| Python handoff versus renderer sampler | 115,820 integer/subframe comparisons; no mismatch |
| Six actual MP4 manifests and decoded streams | All match current bound code/content/assets; silent H.264/yuv420p, 1920×1080 |
| Rational cadence | Atlas 30/1; Codex exactly 24000/1001, 124 frames, 5.171833 s; not rounded to 24 |
| Catalog contract commands | All three exit zero |
| Render preparation without rendering | Both variants and existing full-Content example for each piece accepted: nine preparations |
| Existing timing/assembly/text-fit tests | 18 passed, zero failed |
| Native Resolve/SVG/Text+/blur equivalence | Not run; no credit |
| Selection factory generation and custom movie | Not run; browser infrastructure failure, no retry |

The guided SVG branch rebuild/import is not a verified Resolve API or `.setting`
delivery. Local SVG parsing/asset binding does not establish Fusion support for
gradients, viewBox registration, masks, shadows, or premultiplication. The guide's
raw parent-local CSV is not a world-coordinate solution. These documented limits
must remain visible. Neither successful cadence checks nor retained-render pixel
equality is source-fidelity evidence.

The parent's retained/new equality counts, including the unresolved Atlas
adaptation 18/137 result, were reported to this review but not independently
recomputed. They do not change these dispositions or establish a source win.

## Reproduction and audit boundary

The review scripts use explicit project/input/worker arguments; no private
absolute paths are published here. Private evidence is under the assigned
`expansion200-interface-critic` worker. `REVIEW.json` identifies reviewed bytes
and failing checks. `contracts-and-commands-r02.private.json` is the final
structural/command receipt. The earlier attempt had a critic Counter-construction
bug, corrected before reporting; its activity-coverage errors are not guide bugs.

The failed browser launch left one stale singleton-lock symlink. It was removed
after confirming no review browser remained; the storage guard then passed again.
No browser retry, media render/edit, guide change, dependency install, download,
preview mutation, or deployment was performed. Private evidence stays below
96 MiB; raw RGBA sequences and unbounded PNG sets were never persisted.

Post-freeze clarification: the source-only reverse-selection note's apparent
entry settling does not establish a whole-window transform. It is not retained
as a camera defect or used to override the guide's body-ink model. The later
panel/capsule/edge comparisons and caret analysis are post-freeze findings,
not retroactively claimed as blind/source-only observations.
