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.
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
- Active archive SHA-256:
94aaf17be99518cab59971223330b8b940c2e498637dce350305b0cb84b0877d - Accepted core SHA-256:
307fb6b927e35e6d73779652873d994f5c3e36cb7deba65f22fa64748057a0de - Recipe SHA-256:
743dac9719638b556f2d27d7c26b6582cc2615fafbc94501188b9d368ae66111 - Queue unit SHA-256:
3b2930d52b941c8d7a08b5e3dd162721bd486314e37fa1a673c392a6cac78750 overlay-manifest.jsonis the complete runtime whitelist with sizes and per-file hashes. Both content variants are embedded in the one selected recipe.
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
- Desktop with left conversation, slide filmstrip and selected line-chart slide cuts at16 to an isolated blue-selected slide with a blank floating composer. Small framing settling continues. Local indices: 0,8,15,16.
- Instruction builds by words and partial glyphs from35 through133, requesting a bar chart, emphasis on the final quarter and changes to heading and explanatory copy. Full prompt holds; actual copy is reference only. Local indices: 35,39,43,46,49,52,55,58,62,65,69,73,81,88,91,94,97,100,104,107,110,114,116,121,124,130,133.
- Completed prompt remains visible through a slow isolated-slide settling interval and hard cut197 back to the wider desktop. Wide context holds before pointer action; do not treat these as padding. Local indices: 134,160,173,196,197,217,273.
- Pointer enters from the right at274, travels to the send control by approximately311..320, then holds. At345 composer, blue selection and pin disappear, but the original line chart remains through416 while the request sits in conversation. Local indices: 274,311,320,344,345,416.
- At417 the slide changes abruptly to a bar chart with a highlighted final quarter, revised headline and explanatory labels. The left response continues appearing/reflowing. Updated result remains through479; no exit is supplied. Local indices: 417,445,450,479.
Adaptation differences
- Enter the wide selected report. Hard cut to an isolated slide at16 and return at197; the scene is original Garden harvest or Studio editions, never source branding/data.
- At417 cut to bars representing the SAME values as the earlier line, replace heading and two notes; hold this result to479 while conversation completes. Do not replace the result with merely a selection highlight.
- The default series is18,27,34,61(total140, autumn43.57% rounded44%); adaptation24,40,52,84(total200, autumn42%). Chart SVG heights and lines use the same variant data. Copy is a fictional content example, not a real report.
- Both content variants share timing and the full request/response mechanism. Parent framing, cursor curves, glyph counts and simplified slide chrome are implementation choices. Every text box keeps its full width.
- All positions, easing and vector material choices are authored approximations, not official measured controls. Source observations and nominal/source PTS authorities remain separate.
- One treatment with two content variants. No source images, logos, brand data, audio or photographic claims.
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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/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.
- 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.
- Source quality unresolved. No moving, blind-win, native Resolve execution or application-equivalence claim.
- No renderer, encoder, npm install, dependency copy, source-master download or deployment by this builder. Parent work is separate.
- All native indices were statically inspected; fitted sheets are not moving review. Raw integer master PTS are unavailable; rounded absolute source samples and decoded excerpt clocks are separate.
- Public files work from the kit download. Private inspection/generator files are not run prerequisites.
- Text length caps are not guaranteed glyph-width bounds; actual full-string font gate must pass without shrink.
- One treatment and two original content variants, not multiple examples.