Candidate construction guide · native Resolve not tested
New code rows extend an editorial emphasis band
Concrete original SVG/code kit; mechanically testable, unrendered by this builder. Parent renders and independent source-first critique are separate. Source quality remains unresolved; no completed-example or variant-as-example credit.
Source and adaptation
Exact source: Introducing Agent Plugins, publication date 2026-08-06; source frames [2100,2220), 30000/1001 fps, 120 frames, 1920x1080 design canvas.
Publication metadata, source-master hash and source frame mapping are inherited from the pinned queue, not a new online metadata or master verification. The retained source excerpt is research only; it is not an active dependency or part of the overlay.
Largest known gap: Dense monospaced source typography and per-row low-opacity onset are not pixel-fitted. The original code fixture and bundled Geist adaptation require rendered readability and micro-gate comparison.
120 consecutive retained excerpt frames decoded and statically viewed in 5 indexed sheets at480x270 per cell; 9 selected frames viewed at1920x1080. This is not moving review or whole-master inspection.
Clocks are not interchangeable
Declared nominal cadence: 30000/1001, status known-inherited; nominal duration 4.004s. Retained source-relative timeScale: 16000. Fresh excerpt average: 640000/21351; coded duration ticks: 64053 at 1/16000.
guide.json retains every integer source-relative PTS/duration and each fresh decoded frame clock separately from nominal frame/rate seconds. Absolute master PTS are unavailable. This excerpt has irregular528/544-tick steps,533-tick frame durations and a4.0033125s coded tail versus4.004s nominal duration; do not substitute640000/21351 average for30000/1001 nominal. Set Resolve to the exact rational represented by29.97, not a30fps timeline.
Source observations
- estimate; local frames [0, 119]: Dark stationary editor window, explorer, tab and five initial JSON rows are present at0. New extension folders, upper-right badge and row6 begin faintly at1; the frame is not wholly static after0.
- measured; local frames [1, 13, 23, 33, 43, 53, 63, 73, 83, 93, 103, 113]: Native cropped row detail refines coarse sheet estimates: rows6..17 first discernible at1,13,23,33,43,53,63,73,83,93,103,113. In each gate-1 ROI no pixels exceed40; at the gate the text is visibly present. Exact sub-frame onset and opacity remain unmeasured. These are whole-row appearances, not character typing.
- estimate; local frames [0, 119]: Bottom editorial caption arrives around8..14 then remains. New explorer folders and badge settle near8. The viewport, initial rows and title stay fixed; no camera, scroll or cursor movement was observed.
- estimate; local frames [0, 119]: Blue emphasis begins around33 after several new code rows are already present. Upper edge stays at row6; lower edge extends with the newly introduced rows. At40 it covers rows6..9; at60 through11; at80 through13; at100 through15; at119 through16.
- estimate; local frames [0, 119]: Final root closing brace at row17 is outside the blue emphasis. Native119 confirms the last brace is visible while the band ends above it. There is no outgoing fade or replacement screen.
- estimate; local frames [0, 119]: Window estimated x72,y96,w1776,h888; explorer300px; toolbar52px; tab48px; code row pitch35px. Syntax and explorer use a monospaced face. Code references bitmap filenames as displayed text; that is not evidence of an active raster dependency in a new adapter.
Intentional differences
- Default describes a fictional archive collection record kit; adaptation changes the whole fixture to garden planting records: project, filename, explorer labels, schema values, versions, descriptions, view namespaces, themes and caption. Both are original editorial displays, not actual agent-plugin implementations.
- No source logos, product names, source URLs, source copy or bitmap filenames are active input. Folder/document symbols are original SVG; all editor geometry, row masks and text remain separate editable code layers.
- Exact half-open source[2100,2220), inherited nominal30000/1001 and120 local frames are retained. The raw source-relative timeScale16000, irregular528/544-tick PTS steps and533-tick durations remain in guide.sourceClock; they are not replaced with nominal CFR times. Nominal duration4.004s and coded excerpt tail4.0033125s are distinct.
- Native-ROI confirmed row appearances at1,13,23,33,43,53,63,73,83,93,103,113 set the whole-row gates. Five-frame opacity rises from.30 to1, footer y822 to806 over9..18, and badge/folder fades are chosen controls, not recovered source interpolation.
- Emphasis begins33 behind already-present rows6..8 and arriving row9, then adds separate35px masks through row16. Final row17 remains outside the blue band. The eleven row spans and eleven left edges are independent layers, not one preselected rectangle.
- Bundled proportional Geist24 with.4px tracking replaces the source monospaced face. One editable color per complete code row replaces token-level syntax colors; indentation is explicit25px steps. Dense text metrics and exact source syntax optics are the largest typography difference.
- Window geometry is chosen near the observed1920x1080 layout; background optical glow/shadow is omitted. Camera, editor, code origin and sidebar remain fixed. No pointer, caret, scroll, per-character typewriter, exit caption or extra end hold is invented.
Run from the download
Start in a fresh extracted kit root with exactly these runtime files:
guide.json
README.md
handoff.py
controls.csv
overlay-manifest.json
core-publication-v08.zip
active-assets.zip
Use Python3.11+, Node22.18+, npm, unzip, FFmpeg/FFprobe and an existing supported Chromium. The core pins Remotion4.0.520 and the runtime lockfile. Set REMOTION_BROWSER_EXECUTABLE to your local Chromium if discovery fails. No private checkout, preparation script, authoring generator or inspection archive is required.
The core and active overlay both contain project/... members. Apply the selected overlay AFTER the core. The legacy assets-001.zip archives are not this kit; do not install them. The core font and its license remain required even though all active image/video media is SVG/code.
set -eu
test ! -e project
python3 -c "import hashlib,pathlib; assert hashlib.sha256(pathlib.Path('core-publication-v08.zip').read_bytes()).hexdigest() == '307fb6b927e35e6d73779652873d994f5c3e36cb7deba65f22fa64748057a0de', 'Core checksum mismatch'"
python3 -c "import hashlib,json,pathlib; manifest=json.loads(pathlib.Path('overlay-manifest.json').read_text()); assert hashlib.sha256(pathlib.Path('active-assets.zip').read_bytes()).hexdigest() == manifest['archiveSha256'], 'Overlay checksum mismatch'"
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
(cd project && npm ci)
Run the exact archived CLIs from project/. These are user-run commands, not a claim that the author rendered. No --fps, --duration or --output option is supported; cadence and duration come from the recipe.
cd project
node --experimental-strip-types scripts/catalog.mjs show checkpoint100-plugin-rowwise-emphasis --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 checkpoint100-plugin-rowwise-emphasis --variant default --out out/checkpoint100-plugin-rowwise-emphasis-default.mp4
node --experimental-strip-types scripts/render.mjs --recipe checkpoint100-plugin-rowwise-emphasis --variant adaptation --out out/checkpoint100-plugin-rowwise-emphasis-adaptation.mp4
node --experimental-strip-types scripts/verify.mjs out/checkpoint100-plugin-rowwise-emphasis-default.mp4
node --experimental-strip-types scripts/verify.mjs out/checkpoint100-plugin-rowwise-emphasis-adaptation.mp4
cd ..
Keep each output manifest next to its movie. The CLI refuses to overwrite an output or sibling manifest. Verification is provenance/technical checking, not source-fidelity approval. New editorial holds would change the requested bounded example and are not part of this kit.
Edit the complete Content object
Create the file from the installed recipe, never from a stale example or a partial object. This refuses to overwrite an existing custom file:
cd project
node --input-type=module -e "import {readFileSync,mkdirSync,writeFileSync} from 'node:fs'; const recipe=JSON.parse(readFileSync('recipes/checkpoint100-plugin-rowwise-emphasis.json','utf8')); mkdirSync('inputs',{recursive:true}); writeFileSync('inputs/checkpoint100-plugin-rowwise-emphasis-custom.json',JSON.stringify(recipe.defaults,null,2)+'\n',{flag:'wx'});"
cd ..
Edit project/inputs/checkpoint100-plugin-rowwise-emphasis-custom.json, respecting every field and the limits in guide.json. Both variants are original illustrative content, not real product behavior. For image slots, keep the declared viewBox/aspect and SVG-only dependency rules. Then:
cd project
node --experimental-strip-types scripts/render.mjs --recipe checkpoint100-plugin-rowwise-emphasis --content inputs/checkpoint100-plugin-rowwise-emphasis-custom.json --out out/checkpoint100-plugin-rowwise-emphasis-custom.mp4
cd ..
Construction steps
- Unpack core-publication-v08.zip and then active-assets.zip into a fresh kit root. Verify the recipe/SVG hashes and run the kit-root handoff commands before editing. The active overlay is mandatory; the core alone does not implement this treatment.
- Create a1920x1080 square-pixel Fusion composition at 30000/1001fps, local0..119,120frames; if Resolve displays29.97, verify it means30000/1001, not29.97/1 or30/1. Set cadence before adding tools. Do not substitute the excerpt average or an approximate decimal rate. Native application support has not been tested.
- Use guide.sourceClock for provenance: nominal frame seconds, inherited integer source-relative PTS/durations and fresh excerpt decode are separate. Do not feed irregular PTS as uneven output-frame numbers or call frame/rate arithmetic recovered master PTS.
- Build Background_Canvas, each guide.fusionNodes item and its ordered Over chain, then MediaOut1. Make every group in a full1920x1080 transparent local domain before the listed transform. Root/child order and parentLayerId are binding, not suggestions.
- Set the canvas to#080b0d. Add the editorial heading at(72,48,1450,32). Editor-window stays at(72,96),1776x888 with20px radius and overflow hidden for the entire120 frames. Do not insert a camera push. Build its rounded alpha from exact pixel geometry; an uncalibrated Fusion Corner Radius slider is not a20px measurement.
- Inside editor-window build window/titlebar fills, y52 titlebar rule,300px sidebar plus its vertical rule,101px tab rule, active tab at(301,53,236,48),2px tab accent,24px original SVG document symbol and tab/window labels. Three status dots are13px at x20/41/62,y20. All of these remain fixed at local frames0..119.
- Build the explorer as nine independent icon/text groups. The first six are active at0; the last three begin1 and change opacity.28→1 over1..8. Their positions, indentation and selected-file row/accent are enumerated in fusionNodes. Folder and document SVG paths can be rebuilt with filled Polygon and stroked Bezier nodes; keep the icon and label parented to the same entry.
- Corner badge at(1492,62,266,32) begins1, opacity.18→1 by8; it is independent of code and footer. Keep32px shell height and16px geometry radius. Use the complete variant badge text, not source branding.
- Make code-viewport at(301,132),1475x615 with overflow hidden, no scroll or changing transform. Row pitch35px. It has two passes: eleven independent emphasis row/edge pairs first, then the seventeen numbered code groups. Preserve this Over order so background emphasis cannot cover text.
- Rows1..5 are present at0. Rows6..17 begin at1,13,23,33,43,53,63,73,83,93,103,113 respectively. Each whole-row parent fades from.30 at its first frame to1 five frames later; the five-frame curve is chosen smoothstep, not a measured source curve. Use Text+ with full row strings at the gate; no character reveal, caret or fake typing.
- Each code group has line-number Text+ at x10,y3,w28,h28,19px right aligned, and24px code Text+ at x56 +25*indent,y0,height35. Indentation sequence for rows1..17 is0,1,1,1,1,1,2,3,4,4,3,2,2,3,2,1,0. Geist is proportional; the original source monospaced face and token-level colors are not reproduced. Default and adaptation complete JSON rows must remain syntactically coherent.
- Blue emphasis starts33 for rows6..9 together, then each following row through16 adds its own35px full-width rectangular alpha. Mask rowN at y=(N-1)*35 inside code-viewport; width1475. Each strip changes opacity.16→.58 over5 frames, with a2px left edge at.20→.90. Row17 has no strip or edge. Do not substitute one rectangle preselected from0 or animate text scale to imitate row progression.
- Make footer-caption a separate final window child at x594,w650,h54. It is absent0..8, begins9 at y822/opacity.2, and reaches y806/opacity1 at18. Build the rounded paper shell with its1px inside border, lead Text+,1px vertical separator and detail Text+ at the exact local boxes. Keep the caption through119; its later source exit lies outside this window.
- Change project, filename, directory names, seventeen JSON rows, version, description, view namespaces, themes, badge and footer together for custom content. All shown schemas are invented display data, not a claim of a supported plugin format. Runtime active assets are only the four original SVGs across both variants and the core font. No displayed source bitmap path is used.
- Inspect native gates0/1,8/9,12/13,22/23,32/33,42/43 and every following ten-frame row boundary. At113 the final outer brace starts below the highlight; at118 it is fully opaque. Verify editor and code origin never move, and local119 retains both caption and emphasis. No fade or added hold at120.
- Use exact30000/1001 for output metadata,120 frames and4.004 nominal seconds. The source-relative coded tail is64053/16000 seconds and the average640000/21351 is separately retained; do not silently normalize the provenance. Parent output comparison and native Resolve reconstruction remain required before any visual acceptance.
Fusion hierarchy and controls
This is an application-unverified construction map, not a .comp or .drp import. No native Resolve output exists from this worker. The full controls, exact paths, materials and text are in guide.json; the per-frame numeric sampler is controls.csv.
Use Background_Canvas -> the ordered root Merge chain -> MediaOut1. Build every group on transparent RGBA before its parent transform. A group fill is behind all of its children. Each row identifies the exact recipe node, parent, half-open local gate and local pixel box. Do not flatten the whole interface into an image.
| Layer / tool | Parent | Local gate | x; y; width; height |
|---|---|---|---|
| editorial-heading / text | Canvas | [0,120) | 72; 48; 1450; 32 |
| editor-window / group | Canvas | [0,120) | 72; 96; 1776; 888 |
| window-fill / rect | editor-window | [0,120) | 0; 0; 1776; 888 |
| titlebar-fill / rect | editor-window | [0,120) | 0; 0; 1776; 52 |
| titlebar-rule / rect | editor-window | [0,120) | 0; 52; 1776; 1 |
| sidebar-fill / rect | editor-window | [0,120) | 0; 53; 300; 835 |
| sidebar-rule / rect | editor-window | [0,120) | 300; 53; 1; 835 |
| tab-rule / rect | editor-window | [0,120) | 300; 101; 1476; 1 |
| active-tab / rect | editor-window | [0,120) | 301; 53; 236; 48 |
| active-tab-accent / rect | editor-window | [0,120) | 301; 53; 236; 2 |
| tab-document-icon / image | editor-window | [0,120) | 323; 68; 20; 20 |
| tab-filename / text | editor-window | [0,120) | 354; 65; 174; 30 |
| window-title / text | editor-window | [0,120) | 576; 17; 624; 24 |
| window-file-hint / text | editor-window | [0,120) | 1510; 17; 242; 24 |
| explorer-heading / text | editor-window | [0,120) | 22; 73; 250; 24 |
| selected-file-row / rect | editor-window | [0,120) | 0; 144; 300; 43 |
| selected-file-accent / rect | editor-window | [0,120) | 0; 144; 3; 43 |
| window-dot-0 / ellipse | editor-window | [0,120) | 20; 20; 13; 13 |
| window-dot-1 / ellipse | editor-window | [0,120) | 41; 20; 13; 13 |
| window-dot-2 / ellipse | editor-window | [0,120) | 62; 20; 13; 13 |
| explorer-entry-0 / group | editor-window | [0,120) | 24; 111; 236; 32 |
| explorer-icon-0 / image | explorer-entry-0 | [0,120) | 0; 4; 22; 22 |
| explorer-label-0 / text | explorer-entry-0 | [0,120) | 32; 0; 202; 31 |
| explorer-entry-1 / group | editor-window | [0,120) | 48; 154; 212; 32 |
| explorer-icon-1 / image | explorer-entry-1 | [0,120) | 0; 4; 22; 22 |
| explorer-label-1 / text | explorer-entry-1 | [0,120) | 32; 0; 178; 31 |
| explorer-entry-2 / group | editor-window | [0,120) | 48; 197; 212; 32 |
| explorer-icon-2 / image | explorer-entry-2 | [0,120) | 0; 4; 22; 22 |
| explorer-label-2 / text | explorer-entry-2 | [0,120) | 32; 0; 178; 31 |
| explorer-entry-3 / group | editor-window | [0,120) | 72; 240; 188; 32 |
| explorer-icon-3 / image | explorer-entry-3 | [0,120) | 0; 4; 22; 22 |
| explorer-label-3 / text | explorer-entry-3 | [0,120) | 32; 0; 154; 31 |
| explorer-entry-4 / group | editor-window | [0,120) | 96; 283; 164; 32 |
| explorer-icon-4 / image | explorer-entry-4 | [0,120) | 0; 4; 22; 22 |
| explorer-label-4 / text | explorer-entry-4 | [0,120) | 32; 0; 130; 31 |
| explorer-entry-5 / group | editor-window | [0,120) | 48; 326; 212; 32 |
| explorer-icon-5 / image | explorer-entry-5 | [0,120) | 0; 4; 22; 22 |
| explorer-label-5 / text | explorer-entry-5 | [0,120) | 32; 0; 178; 31 |
| explorer-entry-6 / group | editor-window | [1,120) | 48; 369; 212; 32 |
| explorer-icon-6 / image | explorer-entry-6 | [1,120) | 0; 4; 22; 22 |
| explorer-label-6 / text | explorer-entry-6 | [1,120) | 32; 0; 178; 31 |
| explorer-entry-7 / group | editor-window | [1,120) | 48; 412; 212; 32 |
| explorer-icon-7 / image | explorer-entry-7 | [1,120) | 0; 4; 22; 22 |
| explorer-label-7 / text | explorer-entry-7 | [1,120) | 32; 0; 178; 31 |
| explorer-entry-8 / group | editor-window | [1,120) | 48; 455; 212; 32 |
| explorer-icon-8 / image | explorer-entry-8 | [1,120) | 0; 4; 22; 22 |
| explorer-label-8 / text | explorer-entry-8 | [1,120) | 32; 0; 178; 31 |
| corner-badge / group | editor-window | [1,120) | 1492; 62; 266; 32 |
| badge-shell / rect | corner-badge | [1,120) | 0; 0; 266; 32 |
| badge-text / text | corner-badge | [1,120) | 10; 7; 246; 20 |
| code-viewport / group | editor-window | [0,120) | 301; 132; 1475; 615 |
| emphasis-row-6 / rect | code-viewport | [33,120) | 0; 175; 1475; 35 |
| emphasis-edge-6 / rect | code-viewport | [33,120) | 0; 175; 2; 35 |
| emphasis-row-7 / rect | code-viewport | [33,120) | 0; 210; 1475; 35 |
| emphasis-edge-7 / rect | code-viewport | [33,120) | 0; 210; 2; 35 |
| emphasis-row-8 / rect | code-viewport | [33,120) | 0; 245; 1475; 35 |
| emphasis-edge-8 / rect | code-viewport | [33,120) | 0; 245; 2; 35 |
| emphasis-row-9 / rect | code-viewport | [33,120) | 0; 280; 1475; 35 |
| emphasis-edge-9 / rect | code-viewport | [33,120) | 0; 280; 2; 35 |
| emphasis-row-10 / rect | code-viewport | [43,120) | 0; 315; 1475; 35 |
| emphasis-edge-10 / rect | code-viewport | [43,120) | 0; 315; 2; 35 |
| emphasis-row-11 / rect | code-viewport | [53,120) | 0; 350; 1475; 35 |
| emphasis-edge-11 / rect | code-viewport | [53,120) | 0; 350; 2; 35 |
| emphasis-row-12 / rect | code-viewport | [63,120) | 0; 385; 1475; 35 |
| emphasis-edge-12 / rect | code-viewport | [63,120) | 0; 385; 2; 35 |
| emphasis-row-13 / rect | code-viewport | [73,120) | 0; 420; 1475; 35 |
| emphasis-edge-13 / rect | code-viewport | [73,120) | 0; 420; 2; 35 |
| emphasis-row-14 / rect | code-viewport | [83,120) | 0; 455; 1475; 35 |
| emphasis-edge-14 / rect | code-viewport | [83,120) | 0; 455; 2; 35 |
| emphasis-row-15 / rect | code-viewport | [93,120) | 0; 490; 1475; 35 |
| emphasis-edge-15 / rect | code-viewport | [93,120) | 0; 490; 2; 35 |
| emphasis-row-16 / rect | code-viewport | [103,120) | 0; 525; 1475; 35 |
| emphasis-edge-16 / rect | code-viewport | [103,120) | 0; 525; 2; 35 |
| code-row-1 / group | code-viewport | [0,120) | 0; 0; 1475; 35 |
| line-number-1 / text | code-row-1 | [0,120) | 10; 3; 28; 28 |
| code-text-1 / text | code-row-1 | [0,120) | 56; 0; 1320; 35 |
| code-row-2 / group | code-viewport | [0,120) | 0; 35; 1475; 35 |
| line-number-2 / text | code-row-2 | [0,120) | 10; 3; 28; 28 |
| code-text-2 / text | code-row-2 | [0,120) | 81; 0; 1295; 35 |
| code-row-3 / group | code-viewport | [0,120) | 0; 70; 1475; 35 |
| line-number-3 / text | code-row-3 | [0,120) | 10; 3; 28; 28 |
| code-text-3 / text | code-row-3 | [0,120) | 81; 0; 1295; 35 |
| code-row-4 / group | code-viewport | [0,120) | 0; 105; 1475; 35 |
| line-number-4 / text | code-row-4 | [0,120) | 10; 3; 28; 28 |
| code-text-4 / text | code-row-4 | [0,120) | 81; 0; 1295; 35 |
| code-row-5 / group | code-viewport | [0,120) | 0; 140; 1475; 35 |
| line-number-5 / text | code-row-5 | [0,120) | 10; 3; 28; 28 |
| code-text-5 / text | code-row-5 | [0,120) | 81; 0; 1295; 35 |
| code-row-6 / group | code-viewport | [1,120) | 0; 175; 1475; 35 |
| line-number-6 / text | code-row-6 | [1,120) | 10; 3; 28; 28 |
| code-text-6 / text | code-row-6 | [1,120) | 81; 0; 1295; 35 |
| code-row-7 / group | code-viewport | [13,120) | 0; 210; 1475; 35 |
| line-number-7 / text | code-row-7 | [13,120) | 10; 3; 28; 28 |
| code-text-7 / text | code-row-7 | [13,120) | 106; 0; 1270; 35 |
| code-row-8 / group | code-viewport | [23,120) | 0; 245; 1475; 35 |
| line-number-8 / text | code-row-8 | [23,120) | 10; 3; 28; 28 |
| code-text-8 / text | code-row-8 | [23,120) | 131; 0; 1245; 35 |
| code-row-9 / group | code-viewport | [33,120) | 0; 280; 1475; 35 |
| line-number-9 / text | code-row-9 | [33,120) | 10; 3; 28; 28 |
| code-text-9 / text | code-row-9 | [33,120) | 156; 0; 1220; 35 |
| code-row-10 / group | code-viewport | [43,120) | 0; 315; 1475; 35 |
| line-number-10 / text | code-row-10 | [43,120) | 10; 3; 28; 28 |
| code-text-10 / text | code-row-10 | [43,120) | 156; 0; 1220; 35 |
| code-row-11 / group | code-viewport | [53,120) | 0; 350; 1475; 35 |
| line-number-11 / text | code-row-11 | [53,120) | 10; 3; 28; 28 |
| code-text-11 / text | code-row-11 | [53,120) | 131; 0; 1245; 35 |
| code-row-12 / group | code-viewport | [63,120) | 0; 385; 1475; 35 |
| line-number-12 / text | code-row-12 | [63,120) | 10; 3; 28; 28 |
| code-text-12 / text | code-row-12 | [63,120) | 106; 0; 1270; 35 |
| code-row-13 / group | code-viewport | [73,120) | 0; 420; 1475; 35 |
| line-number-13 / text | code-row-13 | [73,120) | 10; 3; 28; 28 |
| code-text-13 / text | code-row-13 | [73,120) | 106; 0; 1270; 35 |
| code-row-14 / group | code-viewport | [83,120) | 0; 455; 1475; 35 |
| line-number-14 / text | code-row-14 | [83,120) | 10; 3; 28; 28 |
| code-text-14 / text | code-row-14 | [83,120) | 131; 0; 1245; 35 |
| code-row-15 / group | code-viewport | [93,120) | 0; 490; 1475; 35 |
| line-number-15 / text | code-row-15 | [93,120) | 10; 3; 28; 28 |
| code-text-15 / text | code-row-15 | [93,120) | 106; 0; 1270; 35 |
| code-row-16 / group | code-viewport | [103,120) | 0; 525; 1475; 35 |
| line-number-16 / text | code-row-16 | [103,120) | 10; 3; 28; 28 |
| code-text-16 / text | code-row-16 | [103,120) | 81; 0; 1295; 35 |
| code-row-17 / group | code-viewport | [113,120) | 0; 560; 1475; 35 |
| line-number-17 / text | code-row-17 | [113,120) | 10; 3; 28; 28 |
| code-text-17 / text | code-row-17 | [113,120) | 56; 0; 1320; 35 |
| footer-caption / group | editor-window | [9,120) | 594; 9:822 smooth; 18:806 hold; 650; 54 |
| footer-shell / rect | footer-caption | [9,120) | 0; 0; 650; 54 |
| footer-lead / text | footer-caption | [9,120) | 18; 15; 243; 27 |
| footer-divider / rect | footer-caption | [9,120) | 270; 18; 1; 18 |
| footer-detail / text | footer-caption | [9,120) | 286; 15; 346; 27 |
Coordinates, easing and alpha
- Local x/y are pixels from the top-left of the parent, not the composition. All keys use the same native local frame f. For absolute source frame use sourceStart+f; for nominal seconds multiply that frame index by fpsDenominator/fpsNumerator. Actual retained source-relative PTS/timeScale are separate in sourceClock and must not be normalized away. These are not measured master PTS.
- Use full1920x1080 transparent domains for local transforms, retaining offscreen material until the parent clipping stage. For these recipes any content permanently outside that local domain never returns into the visible window. Do not resize a group to its changing visible bounding box before parenting.
- For zero-rotation local origin(ox,oy), sx=scalescaleX and sy=scalescaleY: bx=x+ox-sxox, by=y+oy-syoy. Output pixels=(bx+sxinputX,by+syinputY). Full-frame Fusion centered Pivot=(0.5,0.5) then uses CenterX=bx/1920+sx/2; CenterY=1-by/1080-sy/2. Use independent X/Y Size if scales differ. Neither treatment animates rotation; any added CSS clockwise angle would map to a negative Fusion Angle and would be a separately reviewed change.
- For a local rectangle center use ((x+w/2)/1920,1-(y+h/2)/1080), Width=w/1920, Height=h/1080. For rounded corners preserve the radius in pixel geometry; reconstruct a Bezier rounded rectangle rather than treating the Fusion Corner Radius knob as pixels. Every SVG path/viewBox and native icon path is preserved in the guide.
- Left-key hold means the left value persists strictly before the next key, and the right value begins exactly at that key. Smooth means uu(3-2*u), not Resolve default Auto or the older cubic Bezier(.16,1,.3,1). Bake controls.csv values as native-frame keys when an analytic expression is inconvenient.
- Masks change alpha before Over compositing. overflow:hidden plus radius intersects the children with a local rounded rectangle; radius alone does not clip children. All clip.top/right/bottom/left values are local pixels, not percentages or a time offset. Visible inset bounds=(left,top,width-left-right,height-top-bottom). Intersect masks; do not use an effect mask that merely limits Transform influence.
- CSS rect borders lie inside their stated box. Native fallback uses an outer rounded mask minus an inset rounded mask of border thickness; do not expand the box with a centered outline. Whole-group opacity is applied once after child Over merges.
- Keep premultiplied RGBA consistent for Over. If a color operation needs straight alpha, unpremultiply then premultiply immediately around it. No arbitrary opacity compensation, Screen blend or black backing. Original SVG paths use the listed fills/strokes; no raster matte or source image is involved.
- Neither treatment authors blur or exposure sampling. Keep native motion blur disabled. The source editor optical glow is not reproduced; adding a shadow or glow would be a separately reviewed adaptation change.
- Geist text uses explicit line breaks and listed pixel boxes. Resolve Text+ font size/baseline and SVG gradient appearance need actual application calibration. Do not claim identical rasterization from a numerical sampler pass. Use held StyledText strings for the exact character prefix schedule if Write On counts differently.
- Use no optical flow, dynamic zoom, retiming, transition handles or synthesized audio. No extra frames precede or follow the source window. Final output is clipped to1920x1080, not scaled to fit it.
Editable SVG materials
Every SVG is generated from scratch by generate_assets.py. That optional source file can reproduce assets byte-for-byte when supplied; it is not a runtime prerequisite. The active archive already contains the required SVGs. No tracing, bitmap conversion, source master, remote resource, SVG image node or embedded font is present.
Rebuild each SVG as a vector subgroup using svgConstruction in guide.json: all viewBoxes, element attributes, paths, gradient coordinates, stop colors and opacities are explicit. Resolve SVG imports may lose paint/gradient semantics; do not assume a successful import is equivalent. Native Background/Polygon/Ellipse material layers are the fallback, not a screenshot export.
| Active SVG path under project/public | SHA-256 |
|---|---|
| art/checkpoint100-plugin-rowwise-emphasis/document-adaptation.svg | 938aeb2ace44e654ec7c329052cd23ca4d6b6974a0ef768f2155602050a3d788 |
| art/checkpoint100-plugin-rowwise-emphasis/document-default.svg | 1507b7602410b8fa38c3e34e317bef7edd197abd447c3fbe75d5d9536abcb755 |
| art/checkpoint100-plugin-rowwise-emphasis/folder-adaptation.svg | f84c042d6748949f8ff03cc027811ad62972d6eb3f37c0af3d0882b6e1bb1b28 |
| art/checkpoint100-plugin-rowwise-emphasis/folder-default.svg | c377bb7ab0d8145f233408a69b380901849cf8abfe0003fddc0fd4216334a2fc |
Checkpoints and regression gates
| Local / source frame | Expected implementation state |
|---|---|
| 0 / 2100 | Only initial five code rows; fixed editor and six original explorer entries. No footer, badge, extension folders or emphasis. |
| 1 / 2101 | Row6, three new explorer folders and corner badge appear faintly; no blue code band. |
| 8 / 2108 | Folders and badge settled; footer still absent. |
| 9 / 2109 | Footer appears at opacity.2 and local y822; no emphasis. |
| 10 / 2110 | Footer enters; row6 remains the latest code row. |
| 12 / 2112 | Row7 absent. |
| 13 / 2113 | Row7 whole line begins at.30 opacity. |
| 18 / 2118 | Footer settles at local y806 and opacity1. |
| 20 / 2120 | Rows1..7 and footer remain; no emphasis. |
| 22 / 2122 | Row8 absent. |
| 23 / 2123 | Row8 appears as a whole line. |
| 32 / 2132 | Rows6..8 visible without blue emphasis; row9 absent. |
| 33 / 2133 | Row9 and emphasis rows6..9 begin. Four independent35px strips share the upper boundary at row6. |
| 38 / 2138 | First four emphasis strips at.58 opacity; row9 fully visible. |
| 40 / 2140 | Emphasis spans rows6..9 only. |
| 42 / 2142 | Row10 absent. |
| 43 / 2143 | Row10 and its independent band strip begin. |
| 52 / 2152 | Row11 absent. |
| 53 / 2153 | Row11 closing brace and its band strip begin. |
| 60 / 2160 | Band extends through row11; no camera change. |
| 62 / 2162 | Row12 absent. |
| 63 / 2163 | Row12 closing punctuation and its strip begin. |
| 72 / 2172 | Row13 absent. |
| 73 / 2173 | Second view namespace row13 and its strip begin. |
| 80 / 2180 | Band extends through row13. |
| 82 / 2182 | Row14 absent. |
| 83 / 2183 | Second view setting row14 and strip begin. |
| 92 / 2192 | Row15 absent. |
| 93 / 2193 | Row15 closing brace and strip begin. |
| 100 / 2200 | Band extends through row15; caption remains. |
| 102 / 2202 | Row16 absent. |
| 103 / 2203 | Last highlighted row16 appears. |
| 112 / 2212 | All eleven emphasis strips settled; outer brace row17 absent. |
| 113 / 2213 | Outer brace row17 begins outside the emphasis, without a new strip. |
| 118 / 2218 | Outer brace fully visible; no outro or caption exit. |
| 119 / 2219 | Last frame: fixed editor, caption, seventeen rows; emphasis stops at row16. End120 exclusive. |
The focused test_guide.py is an authoring regression suite, not a required download step. It checks exact recipe/source/SVG pins, archive whitelist, deterministic SVG generation, hierarchy and masks, native/quarter-frame sampler agreement, all handoff rows, half-open cuts, content rejection and actual archived CLI options without rendering.
The actual archived scalar font gate passed for default, adaptation and the tested custom content with the core Geist font. This checks full-string width/height constraints only; no Remotion frame or screenshot was made. Public runtime steps do not require the private font probe.
A human still needs to review parent-rendered default and adaptation outputs at native cadence, compare the source and validate the Fusion reconstruction. A contact sheet is not moving review.
The distributed control table uses the unchanged handoff helper's CRLF output so the documented command reproduces its bytes exactly. All 68,401 rows, field values, frame values and interpolation remain unchanged from the authored table.
Limits
- Dense monospaced source typography and per-row low-opacity onset are not pixel-fitted. The original code fixture and bundled Geist adaptation require rendered readability and micro-gate comparison.
- No output render/encode, npm dependency installation, moving-source review, audio assessment, blind test or native Resolve execution was performed by this builder.
- Full native source masters were unavailable. Retained excerpts have1920x1080 pixels; full source masters were not downloaded or rehashed. Published metadata and master hashes remain inherited provenance.
- All historical source-quality status remains unresolved. Mechanical readiness does not approve material, typography, motion, source fidelity or production use.
- The core includes a licensed Geist font. This is SVG/code-only active imagery, not an assertion that the entire runtime contains no binary files.
- Only selected recipe and active SVG files belong in the overlay. No old asset pack, source master, private worker, dependency tree or critic output belongs in it.
- Text fit requires the actual loaded browser font; field length caps and numeric tracks alone cannot establish readability.
- Both content variants demonstrate one treatment, not two new examples. No shared counts, catalog entries or publication state are modified.
Historical inputs and source masters are provenance only. The downloadable run steps use only the listed kit files and installed tools. The source-only builder pass precedes any fresh critic findings; it does not accept its own visual quality.