OpenAI Film Fieldnotes

Candidate construction guide · native Resolve not tested

Historical builder snapshot: 2026-09-14. Earlier README and handoff statements about being unrendered or unpublished describe that authoring stage. The current selected report verifies both content exports at 2026-09-15T00:24:06.540448+00:00; those earlier statements do not describe their current availability. Native Resolve execution and source-quality approval remain unverified.

Current selected render verification · Batch export report

Selected slide request, waiting context, and targeted revision

Concrete source-bound vector adaptation. Authoring-time mechanical checks only; no source-quality approval. Parent renders and independent review are separate.

Download and run

Requires Python 3.11+ (handoff uses hashlib.file_digest), Node.js22.18+, npm, unzip and cmp. Movie verification additionally needs FFmpeg/ffprobe. Native Resolve/Fusion must be checked in your installed edition; no native application run is claimed.

Run from the extracted kit root. Required files: guide.json, README.md, handoff.py, controls.csv, overlay-manifest.json, core-publication-v08.zip, active-assets.zip. Optional self-contained test: test_kit.py. No private worker, prepared project, generator, inspection image, sidecar or external helper documentation is required.

Install the accepted core first, then the selected active override. Never substitute legacy assets-001.zip; that historical archive can contain raster media. Start with no project/ directory:

test ! -e project
unzip core-publication-v08.zip
unzip -o active-assets.zip
python3 handoff.py verify --guide guide.json --project project
python3 handoff.py frames --guide guide.json --project project > controls-regenerated.csv
cmp controls.csv controls-regenerated.csv
cd project
npm ci

npm ci and movie rendering are reader/parent steps. This builder ran neither. The font and license arrive in the core. From project/:

node --experimental-strip-types scripts/catalog.mjs show targeted-revision --contract
node --experimental-strip-types scripts/render.mjs --help
node --experimental-strip-types scripts/verify.mjs --help
node --experimental-strip-types scripts/render.mjs --recipe targeted-revision --variant default --out out/targeted-revision-default.mp4
node --experimental-strip-types scripts/render.mjs --recipe targeted-revision --variant adaptation --out out/targeted-revision-adaptation.mp4
node --experimental-strip-types scripts/verify.mjs out/targeted-revision-default.mp4
node --experimental-strip-types scripts/verify.mjs out/targeted-revision-adaptation.mp4

For custom content, first create the complete editable file from this selected recipe, then edit only its values (including accurate SVG dimensions and rights):

node --input-type=module -e "import {readFileSync,mkdirSync,writeFileSync} from 'node:fs'; const recipe=JSON.parse(readFileSync('recipes/targeted-revision.json','utf8')); mkdirSync('inputs',{recursive:true}); writeFileSync('inputs/targeted-revision-custom.json',JSON.stringify(recipe.defaults,null,2)+'\n',{flag:'wx'});"

Edit project/inputs/targeted-revision-custom.json from the kit root. Keep field caps and fixed geometry; run the actual font gate when rendering. From project/:

node --experimental-strip-types scripts/render.mjs --recipe targeted-revision --content inputs/targeted-revision-custom.json --out out/targeted-revision-custom.mp4
node --experimental-strip-types scripts/verify.mjs out/targeted-revision-custom.mp4

Do not combine --variant with --content. This archive uses --out, not --output; no --fps or --duration override belongs to this treatment. From the kit root, the optional tests need only the extracted project and downloaded handoff:

python3 test_kit.py --project project

Tests are source/preflight checks, not render or native Resolve approval. controls-regenerated.csv is a generated output, not a missing file. Capture handoff stdout as raw bytes; its CSV uses CRLF. Do not normalize line endings: the download test and cmp require byte-for-byte equality, not parsed-field equivalence.

Exact binding

Source and native clock

Official research reference: Meet ChatGPT Work; source URL https://www.youtube.com/watch?v=yRc5HcGJ-Cs. Published 2026-07-09. Metadata authority, response hash, retrieval date and inherited master hash are pinned separately in guide.json. Exact half-open source bounds: [3840,4320); 480 selected frames at 60/1. All retained excerpt frames are selected; no trim required. Local f maps to source index start+f. Nominal seconds=(start+f)*denominator/numerator.

Raw integer master PTS/durations were not supplied. Rounded absolute source timestamps are retained separately and cross-checked against every selected rounded relative sample. Nominal frame/rational-FPS seconds are arithmetic labels, not recovered raw master ticks. Do not replace either source sample set with decoded excerpt PTS. Fresh decoded excerpt time base: 1/15360. Every integer PTS and duration, independently retained rounded source-relative time, exact source selection and provenance are in guide.json. Excerpt timing does not prove absolute master PTS.

Every selected native index viewed in a static480x270 cell. Four explicitly listed960x540 stills per piece viewed in detail. Not moving review, a master-resolution pass or an output inspection. No external source window or critic findings supplied these controls. The original source media are research only, never active assets.

Source observations versus choices

Adaptation differences

Editable Remotion construction

Install the selected recipe under project/recipes/. The accepted Treatment framegraph reads groups, text, vector-image slots and native shapes from it. Layer order is back-to-front. Start/end gates use the global local frame, not frame minus layer.start. Edit fields and both embedded content objects; do not alter source bounds or reuse the historical builder timing.

All numeric tracks below are chosen implementation values. Held string prefixes live in the node controls; they do not resize their text boxes. The original SVGs have separate vector elements and local gradients; no image element or linked media is allowed.

Resolve / Fusion manual build

Create1920x1080 at 60/1 fps, V1 Fusion composition[0,480), timeline timecode01:00:00:00. No audio. There is no supplied or validated native .setting macro.

Recipe coordinates are top-left pixels, local to parent. For a local domain W,H and pivot ox,oy, place the transform pivot at(ox/W,1-oy/H). Translate by(x/W,-y/H) in that parent domain after local scaling/rotation; use the explicit affine mapping below rather than assuming canvas dimensions for every nested group.

p_parent = (x,y) + origin + R_clockwise(rotation) * diag(scalescaleX,scalescaleY) * (p_local-origin). Merge children before applying this once per group. Convert final top-left pixels to Fusion normalized(x/W,1-y/H). Fusion angle convention must be calibrated against positive clockwise recipe rotation.

For each flattened projected plane, first subtract origin(ox,oy), then apply diag(scalescaleX,scalescaleY,1), clockwise Rz(rotation), Ry(rotationY), Rx(rotationX), in that order. With CSS right/down axes and positive z toward the viewer: Rx maps(y,z) to(cos(a)y-sin(a)z,sin(a)y+cos(a)z); Ry maps(x,z) to(cos(b)x+sin(b)z,-sin(b)x+cos(b)z). Project to(parent x,parent y)=(x+ox+X/(1-Z/d), y+oy+Y/(1-Z/d)), d=perspective pixels. Map all four local corners and use a projective Corner Positioner, not an affine Transform. Convert output points to Fusion normalized(u/W,1-v/H). Nodes without perspective use the ordinary affine rule. Each plane has its own projection; this is not a shared3D camera/scene. The accepted engine flattens children before parent projection.

Left-key smooth=uu(3-2*u), linear=u, hold until next key. Never Auto. All tracks sampled on global recipe-local time.

Normal Over with transparent outside shape; group opacity after child composition; local clip and SVG clipPath before local transform. No image/video Loader or black/Screen workaround.

  1. Create one1920x1080 Fusion composition on V1, starting at local0. Set the exact rational native rate and out-exclusive frame from source/resolveSetup. No audio tracks, transitions, retime or extra handles. Timeline origin01:00:00:00 is a display convention; add composition offsets explicitly.
  2. Start with Background_Canvas. For each group make a transparent RGBA domain of that group width/height; compose children in the listed mergeIndex order with Normal Over. Follow every backgroundInput and output name in fusionNodes. The last ROOT Merge goes to MediaOut1.
  3. All keyframe indices are on the SAME recipe-local clock, including late-starting children. Do not subtract a child start. For every half-open[start,end), gate at start and remove at end; last visible frame=end-1. Sample inactive rows in controls.csv only to inspect values, not visibility.
  4. Set numeric keys from tracks; left-key interpolation controls the interval: hold until next key, linear u, smooth uu(3-2*u). Use expressions or the complete sampled controls.csv; never Fusion Auto splines. Keys after the last selected frame define an unfinished slope, not permission to lengthen the comp.
  5. Rebuild each image slot as native vector geometry from svgConstruction: Background nodes with Rectangle/Ellipse/Polygon masks, matching path control points, fill, stroke width/caps/joins, gradients and opacity. Keep viewBox scale; do not substitute a raster Loader. Asset entries include exact default AND adaptation hashes and XML trees.
  6. Build live labels with bundled Geist in Text+. Use explicit pixel fontSize, weight, lineHeight, fixed width/height and native left/top coordinates. Text+ normalized Size and baseline need installed-font calibration; do not shrink a text box or type size to reveal a prefix. For reveals, key exact StyledText substrings with held interpolation. String limits do not guarantee glyph width.
  7. Keep alpha zero outside each shape. Combine local clipPath/inset/rounded masks before the node transform; apply group opacity only after merging children. An explicit inset is independent of overflow; rounded clipping of descendants needs overflow:hidden. No Screen blend, black key or fake opaque backdrop.
  8. Apply local transforms once per group using the given pivot and parent-domain coordinates. For a domain W,H convert top-left pixel positions to Fusion(x/W,1-y/H); calibrate positive-clockwise rotation against a known corner. An explicit box does not itself clip children when overflow is visible.
  9. Build desktop-field and wide-context as siblings beneath selected-slide. Their opacity is held1 on[0,16),0 on[16,197),1 on[197,480). wide-context is at(240,80),1440x920 and contains original editor chrome, chat labels, wait/result strings and file card. These are an invented document app, not product behavior evidence.
  10. Build selected-slide as a1600x900 domain with rounded white paper, before/after headings, chart caption, matching line/bar assets, totals, goal, season/value labels and two result notes. Native source coordinates are not reused as original data. Default18,27,34,61; adaptation24,40,52,84. Source chart typography and photograph are intentionally replaced.
  11. Frame selected-slide with pivot(0,0). At0 use(x,y,scale)=(938,332,.448); at16 hard switch to(112,62,1.06). Smooth to(118,69,1.052) at34; hold through173 then smooth to(152,88,1.008) at196. Hard cut197 to(948,343,.436), smooth to(938,332,.448) at217 and hold. Both framing cuts change only parent context, not document content.
  12. Merge selection-tint after chart/text: rounded1600x900 blue rect, alpha.29, gate[8,345). Place blue pin at(349,332),58x66 gate[16,345). Composer is sibling above pin at local(430,310),760x300; white rounded background, three separate fixed680px text boxes and send-disc/arrow. Do not tint the composer with the selection mask.
  13. Type three original request lines with held character counts from each node reveal.steps: first35..62, second65..110, third112..133. Hold the full request133..344, including detail settling and return-to-wide. These counts differ from source copy; global start/completion/hold gates are source-grounded observations, not official animation API constants.
  14. Add the root-level send-pointer only[274,345). It travels(1820,374)→(1480,576)→(1454,594) at274/306/320 using smooth segments, then holds. It is NOT a child of the selected slide; slide motion must not be applied again.
  15. At345 remove tint/pin/composer/pointer without fading. The line chart, old heading and totals remain unchanged on all72 indices345..416. Swap left conversation into request+waiting text; no artificial loading spinner or shortened wait.
  16. At417 end line-state and heading-before; start bar-state, heading-after, revision-note-1/2 in the SAME slide. Data continuity is mandatory: same values, new encoding and emphasis. Complete chat-result by445 and reveal file-card450. Hold revised result through479, then stop, without an exit transition.
  17. Check every checkpoint and its adjacent native indices. Run actual core content/typography preflights and handoff controls. Parent output review and a native Resolve run remain required for visual or application-equivalence claims; this guide has neither.

Complete node hierarchy and track ownership

Each row is one authored layer, with its native subgroup tools. Follow the sibling Merge order and parent IDs; guide.json contains full literal controls, local box, effective gates, mask order, text values and SVG construction trees. Child groups are transparent until their active children contribute alpha. A dormant child never makes a parent visible.

Layer Parent Kind Local gate Native tools
paper ROOT rect [0, 480] Background with Rectangle/Ellipse mask, Inside-border ring if stroke is present, Blur if present, Local Transform, Over Merge
desktop-field ROOT image [0, 480] Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge
wide-context ROOT group [0, 480] Transparent RGBA working domain, Ordered child Merges, Rounded Rectangle/Polygon alpha intersection if required, Transform, Group opacity, Over Merge
editor-chrome wide-context image [0, 480] Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge
workspace-title wide-context text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
document-tab wide-context text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
chat-intro wide-context text [0, 345] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
chat-context wide-context text [0, 345] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
chat-request wide-context text [345, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
chat-wait wide-context text [345, 417] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
chat-result wide-context text [417, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
file-card wide-context rect [450, 480] Background with Rectangle/Ellipse mask, Inside-border ring if stroke is present, Blur if present, Local Transform, Over Merge
file-name wide-context text [450, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
input-hint wide-context text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
selected-slide ROOT group [0, 480] Transparent RGBA working domain, Ordered child Merges, Rounded Rectangle/Polygon alpha intersection if required, Transform, Group opacity, Over Merge
slide-paper selected-slide rect [0, 480] Background with Rectangle/Ellipse mask, Inside-border ring if stroke is present, Blur if present, Local Transform, Over Merge
heading-before selected-slide text [0, 417] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
heading-after selected-slide text [417, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
chart-caption selected-slide text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
line-state selected-slide image [0, 417] Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge
bar-state selected-slide image [417, 480] Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge
total-label selected-slide text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
total-value selected-slide text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
goal-label selected-slide text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
goal-value selected-slide text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
revision-note-1 selected-slide text [417, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
revision-note-2 selected-slide text [417, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
season-1 selected-slide text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
value-1 selected-slide text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
season-2 selected-slide text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
value-2 selected-slide text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
season-3 selected-slide text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
value-3 selected-slide text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
season-4 selected-slide text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
value-4 selected-slide text [0, 480] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
selection-tint selected-slide rect [8, 345] Background with Rectangle/Ellipse mask, Inside-border ring if stroke is present, Blur if present, Local Transform, Over Merge
selection-pin selected-slide path [16, 345] Polygon/Bezier fill/stroke using exact path/viewBox, Path-length dash/trim when present, Local Transform, Over Merge
composer selected-slide group [16, 345] Transparent RGBA working domain, Ordered child Merges, Rounded Rectangle/Polygon alpha intersection if required, Transform, Group opacity, Over Merge
composer-paper composer rect [16, 345] Background with Rectangle/Ellipse mask, Inside-border ring if stroke is present, Blur if present, Local Transform, Over Merge
request-line-1 composer text [35, 345] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
request-line-2 composer text [65, 345] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
request-line-3 composer text [112, 345] Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge
send-disc composer ellipse [16, 345] Background with Rectangle/Ellipse mask, Inside-border ring if stroke is present, Blur if present, Local Transform, Over Merge
send-arrow composer path [16, 345] Polygon/Bezier fill/stroke using exact path/viewBox, Path-length dash/trim when present, Local Transform, Over Merge
send-pointer ROOT pointer [274, 345] Polygon arrow with exact native viewBox, Local Transform, Over Merge

Exact numerical controls

For any perspective plane, use guide.json projectionControls: every native-frame TL/TR/BR/BL destination is enumerated in pixels and Fusion normalized coordinates. Perspective is a constant node control, not an omitted animation track. All2D and rotationX/Y tracks remain in controls.csv. Coordinates are local pixels. Keys are frame:value easing; constant values remain held. Whole-group origin and nonnumeric controls are in the adjacent node contract in guide.json. controls.csv enumerates every native value, including inactive rows (see active column).

Layer Property Value / keys
paper x 0
paper y 0
paper width 1920
paper height 1080
desktop-field x 0
desktop-field y 0
desktop-field width 1920
desktop-field height 1080
desktop-field opacity 0:1 hold; 16:0 hold; 197:1 hold
wide-context x 240
wide-context y 80
wide-context width 1440
wide-context height 920
wide-context opacity 0:1 hold; 16:0 hold; 197:1 hold
editor-chrome x 0
editor-chrome y 0
editor-chrome width 1440
editor-chrome height 920
workspace-title x 20
workspace-title y 15
workspace-title width 490
workspace-title height 32
document-tab x 560
document-tab y 16
document-tab width 500
document-tab height 32
chat-intro x 22
chat-intro y 157
chat-intro width 475
chat-intro height 40
chat-context x 22
chat-context y 203
chat-context width 475
chat-context height 40
chat-request x 22
chat-request y 158
chat-request width 475
chat-request height 62
chat-wait x 22
chat-wait y 251
chat-wait width 475
chat-wait height 45
chat-result x 22
chat-result y 254
chat-result width 475
chat-result height 70
file-card x 22
file-card y 344
file-card width 475
file-card height 76
file-card radius 12
file-name x 48
file-name y 370
file-name width 420
file-name height 32
input-hint x 40
input-hint y 837
input-hint width 430
input-hint height 32
selected-slide x 0:938 hold; 16:112 smooth; 34:118 hold; 173:118 smooth; 196:152 hold; 197:948 smooth; 217:938 hold
selected-slide y 0:332 hold; 16:62 smooth; 34:69 hold; 173:69 smooth; 196:88 hold; 197:343 smooth; 217:332 hold
selected-slide width 1600
selected-slide height 900
selected-slide scale 0:0.448 hold; 16:1.06 smooth; 34:1.052 hold; 173:1.052 smooth; 196:1.008 hold; 197:0.436 smooth; 217:0.448 hold
slide-paper x 0
slide-paper y 0
slide-paper width 1600
slide-paper height 900
slide-paper radius 28
heading-before x 32
heading-before y 38
heading-before width 1510
heading-before height 76
heading-after x 32
heading-after y 38
heading-after width 1510
heading-after height 76
chart-caption x 65
chart-caption y 170
chart-caption width 1110
chart-caption height 46
line-state x 65
line-state y 235
line-state width 1100
line-state height 520
bar-state x 65
bar-state y 235
bar-state width 1100
bar-state height 520
total-label x 1240
total-label y 290
total-label width 325
total-label height 40
total-value x 1240
total-value y 344
total-value width 325
total-value height 56
goal-label x 1240
goal-label y 493
goal-label width 325
goal-label height 40
goal-value x 1240
goal-value y 550
goal-value width 325
goal-value height 56
revision-note-1 x 76
revision-note-1 y 788
revision-note-1 width 1410
revision-note-1 height 42
revision-note-2 x 76
revision-note-2 y 832
revision-note-2 width 1410
revision-note-2 height 42
season-1 x 135
season-1 y 724
season-1 width 200
season-1 height 42
value-1 x 182
value-1 y 680
value-1 width 130
value-1 height 40
season-2 x 385
season-2 y 724
season-2 width 200
season-2 height 42
value-2 x 432
value-2 y 680
value-2 width 130
value-2 height 40
season-3 x 635
season-3 y 724
season-3 width 200
season-3 height 42
value-3 x 682
value-3 y 680
value-3 width 130
value-3 height 40
season-4 x 885
season-4 y 724
season-4 width 200
season-4 height 42
value-4 x 932
value-4 y 680
value-4 width 130
value-4 height 40
selection-tint x 0
selection-tint y 0
selection-tint width 1600
selection-tint height 900
selection-tint opacity 0.29
selection-tint radius 28
selection-pin x 349
selection-pin y 332
selection-pin width 58
selection-pin height 66
composer x 430
composer y 310
composer width 760
composer height 300
composer-paper x 0
composer-paper y 0
composer-paper width 760
composer-paper height 300
composer-paper radius 36
request-line-1 x 42
request-line-1 y 38
request-line-1 width 680
request-line-1 height 45
request-line-2 x 42
request-line-2 y 86
request-line-2 width 680
request-line-2 height 45
request-line-3 x 42
request-line-3 y 134
request-line-3 width 680
request-line-3 height 45
send-disc x 676
send-disc y 218
send-disc width 58
send-disc height 58
send-arrow x 690
send-arrow y 231
send-arrow width 28
send-arrow height 31
send-pointer x 274:1820 smooth; 306:1480 smooth; 320:1454 hold
send-pointer y 274:374 smooth; 306:576 smooth; 320:594 hold
send-pointer width 36
send-pointer height 45

Original SVG whitelist and construction

These are the complete default+adaptation active image dependencies. Each SVG is supplied in active-assets.zip at project/public/. Rebuild its independent shape elements from the exact svgConstruction XML tree; use the per-element attributes, transforms, gradient stops and clipPath alpha. No generated source or private script is required.

Active SVG path SHA-256
art/targeted-revision/chart-bars-adaptation.svg 1836a0e99678b7f776e4f74ab2127748356a5099385a4792958231deb48235ec
art/targeted-revision/chart-bars-default.svg e89387b528e2ba189ce5f4f3364e79504d977eac012896733944dd85031f478c
art/targeted-revision/chart-line-adaptation.svg 263780ed5e5b44eaac145aef1d515b0591183597499a26cc83b13fa07d82846b
art/targeted-revision/chart-line-default.svg 9f73b2314dc1f163d65e13744278f6c02762502ac9cf485ed5b5a7be16db4b80
art/targeted-revision/desktop-adaptation.svg 0f997e99c9d65197ed95041dbb4954ea10530ac1b6a64bacbe925398e557ccdd
art/targeted-revision/desktop-default.svg d2c0348f73925ad5f5c70372f3a49ea28d6a703cdb98505a4598eef20034a4ad
art/targeted-revision/editor-adaptation.svg 3c1c62b3093d06b2010b90ee877c831f9548bfa49c880015c17859cc4ca3355d
art/targeted-revision/editor-default.svg 09e777c642d75b8e6098b00456bf32de2281f9477d3a7c4966f95ad2914ce259

Checkpoints and regression limits

Local Source Required condition
0 3840 Wide original report; no composer yet.
8 3848 Blue selection appears over the unchanged line chart.
15 3855 Last wide opening frame.
16 3856 Hard cut to isolated selected slide and blank composer.
34 3874 Detail framing settles; text still absent.
35 3875 First original request prefix appears.
62 3902 Request line one complete; no result.
65 3905 Second request line begins.
110 3950 Second line complete.
112 3952 Third request line begins.
133 3973 Entire three-line request now visible.
173 4013 Full request still held; final detail settling begins.
196 4036 Last isolated frame.
197 4037 Hard return to wide context with SAME selected slide/composer.
217 4057 Wide settle complete.
273 4113 Quiet wide hold; no cursor yet.
274 4114 Cursor enters from the right.
320 4160 Cursor reaches send area.
344 4184 Last selected/composer frame.
345 4185 Composer/tint/pin/pointer gone; request and wait message in chat; line chart remains.
416 4256 Last unchanged-chart wait frame;72 frames elapsed since345.
417 4257 Hard result cut: same data becomes bars, new heading and two notes; chat response begins.
445 4285 Response prefix complete.
450 4290 Updated file card appears.
479 4319 Final held updated result; no exit.

The tests verify installed core/recipe/artifact pins, exact flat ZIP whitelist, active SVG closure, node ownership, every numerical control and CSV row, real archived CLI options and default/adaptation/custom prepareInput bindings. The frozen font receipt checks actual full-text widths; parent renders still need their normal font gate. No passing scalar test establishes visual fidelity.

Largest remaining gap: Photographic desktop field, dense real application UI, exact text metrics and pointer/settling curves are replaced by original vector context and authored trajectories. Revision semantics and the long wait are retained, but no motion or source-quality equivalence is established.