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-14T02:20:33.205891+00:00; those earlier statements do not describe their current availability. Native Resolve execution and source-quality approval remain unverified.
Title scaffold yields to a growing portrait stack
Concrete source-bound vector adaptation. Authoring-time mechanical checks only; no source-quality approval. Parent renders and independent review are separate.
Download and run
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
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 character-title-inset --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 character-title-inset --variant default --out out/character-title-inset-default.mp4
node --experimental-strip-types scripts/render.mjs --recipe character-title-inset --variant adaptation --out out/character-title-inset-adaptation.mp4
node --experimental-strip-types scripts/verify.mjs out/character-title-inset-default.mp4
node --experimental-strip-types scripts/verify.mjs out/character-title-inset-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/character-title-inset.json','utf8')); mkdirSync('inputs',{recursive:true}); writeFileSync('inputs/character-title-inset-custom.json',JSON.stringify(recipe.defaults,null,2)+'\n',{flag:'wx'});"
Edit project/inputs/character-title-inset-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 character-title-inset --content inputs/character-title-inset-custom.json --out out/character-title-inset-custom.mp4
node --experimental-strip-types scripts/verify.mjs out/character-title-inset-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.
Exact binding
- Active archive SHA-256:
fd7c7d1f58dbdcee2e44dedd4dc9d2fef0a99a9e3c84910029f33d46a57ef4ad - Accepted core SHA-256:
307fb6b927e35e6d73779652873d994f5c3e36cb7deba65f22fa64748057a0de - Recipe SHA-256:
bf055d640847fd6e345e54f238fc70fa273ee8a07b5f9a052b8e7048bf6214c0 - Queue unit SHA-256:
52032a07aca8f48bbdcf4d8bcd1e3c9c43a0931aefe64eb8e1c0ea91e3634892 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: Character Consistency with 4o Image Generation; source URL https://www.youtube.com/watch?v=PFsOUNfBhzI. Published 2025-03-25. Metadata authority, response hash, retrieval date and inherited master hash are pinned separately in guide.json.
Exact half-open source bounds: [72,216); 144 selected frames at 24000/1001. All retained excerpt frames are selected; no trim required. Local f maps to source index start+f. Nominal seconds=(start+f)*denominator/numerator.
Not supplied. Nominal frame/rational-FPS seconds are arithmetic labels, not recovered absolute master PTS. Do not silently replace the separately retained rounded samples with nominal times.
Fresh decoded excerpt time base: 1/24000. 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
- One final live-action context frame0 precedes white frames1..2. Three title lines enter at3,4,5 and hold through63. The opening context cannot be discarded as padding. Local indices: 0,1,2,3,4,5,63.
- Small centered portrait cards begin at64 and replace every roughly3frames. At72 the upper two title lines have gone while the bottom remains; at73 it disappears. New top line enters75 and bottom line78. Cards stay above type. Local indices: 64,67,70,72,73,75,76,78.
- Portraits keep replacing, leaving slivers of earlier cards beneath. Stack scales up continuously and increasingly occludes both headings. Last front card switches at133 and remains through143 while scale keeps increasing; no new exit or finished hold is shown. Local indices: 79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,143.
Adaptation differences
- Default is a bird-study collection; adaptation a robot-edition collection. A vector workbench replaces the one live-action context frame0. Frames1..2 remain blank.
- Final portrait enters133 and remains through143 while the parent keeps enlarging toward an off-window148 key. Do not create a final hold or remove the remaining word occlusion.
- Eight original SVG styles per variant replace source rendered cat images; material and lighting range is knowingly narrower. The stack uses authored offsets/slivers, not source-extracted imagery.
- 230/224px fixed live type. Top and middle initial lines cut72; bottom cuts73. Replacement top and bottom enter75 and78. Every portrait merges above both title groups.
- 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 24000/1001 fps, V1 Fusion composition[0,144), 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.
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 Edit V1, no audio tracks. Set the exact guide rational timeline cadence before insertion. The timeline GUI may label24000/1001 as23.976; keep the rational value in the delivery contract. Set length to the listed nativeFrameCount, local0 through count-1. Do not import the research excerpt.
- Use one explicit Background_Paper and ordered Over Merge chain. Treat JSON layer IDs as node names and fusionNodes parentLayerId as nesting ownership. A group contains a transparent RGBA local domain, ordered child Merges, then its own Transform and one opacity multiplier. Never apply parent travel separately to already transformed children.
- Reconstruct each active SVG from svgConstruction in guide.json. Use Background plus Rectangle/Ellipse/Polygon/Bezier masks; preserve viewBox, exact path controls, fill/stroke and gradient stops. Keep separate editable shape nodes in XML order; the orb uses two fills intersected with its circle alpha. No Loader of a bitmap or video. SVG import is optional, not required to obtain editable native nodes.
- Use bundled Geist for Text+. Enter defaults or adaptation values from contentContract. Text values remain editable, with fixed recipe width/height and no auto-wrap/shrink. Match pixel font size, weight, line height and alignment through a native baseline/width check; no numeric claim that Text+ Size equals CSS px. The supplied source-only browser gate does not certify Fusion typography.
- Set each layer gate start inclusive and end exclusive. When using clip trims, local Fusion time must still evaluate the global recipe-local clock: add the clip In before sampling. Use held StyledText prefixes for reveal.steps, with no interpolation of glyph counts. A disappearing group cuts all children together.
- For numeric tracks use controls.csv per-native-frame values, or exact left-key interpolation: linear u; smooth uu(3-2*u); hold returns left value strictly until next key. No Auto spline, overshoot, cross-dissolve or optical-flow interpolation. Evaluate keys beyond duration only to derive the truncated last in-window sample.
- Keep alpha transparent outside vector shapes. SVG fill/stroke opacity and gradient stop-opacity multiply their own coverage; Merge with Normal/Over, not Screen or black-keying. Clip the final canvas only; explicit inset masks, if present, apply in local pixels before that group transform. Do not shrink live text widths as a reveal mechanism.
- Use opening-context SVG at[0,1), then white-only[1,3). Put initial-title-1/2/3 at x100,y10/360/710, fixed1720x270 boxes and230px font. Gates3/4/5; first two cut72, third cuts73. Preserve60frames of complete title before the first card64.
- New headings are siblings below portrait-stack: top x70,y42,1780x270 at75; bottom x60,y768,1800x270 at78; both224px. They never resize, shift or shrink to accommodate cards. Word occlusion is intentional.
- Build portrait-stack at x840,y360, local240x360, pivot120,180. Each portrait-card is a240x360 original SVG with its own small x/y offset from the exact node controls. Merge them in ordinal order. Every card survives beneath later ones until144; this leaves colored edge slivers rather than a one-slot image swap.
- Hard replacement gates are64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133. Each picks the slot listed in its controls. Eight original styles intentionally consolidate the source material range; their motifs are not new examples.
- Scale only portrait-stack: .90 at64,1.22 at78,1.52 at100,1.86 at120,2.25 at148, linear segments. Pivot stays centered; previous edges grow with the front. The last front card holds content133..143 but the group is still growing. Stop at143, not at the off-window endpoint.
- Check every listed source-bound checkpoint and adjacent frames against the scalar contract. Inspect an actual parent render and native Resolve output separately before any fidelity/equivalence claim. Default, adaptation and custom passing here are content/framegraph/font preflights only.
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, 144] | Background with Rectangle/Ellipse mask, Inside-border ring if stroke is present, Blur if present, Local Transform, Over Merge |
opening-context |
ROOT |
image | [0, 1] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
initial-title-1 |
ROOT |
text | [3, 72] | Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge |
initial-title-2 |
ROOT |
text | [4, 72] | Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge |
initial-title-3 |
ROOT |
text | [5, 73] | Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge |
new-top-title |
ROOT |
text | [75, 144] | Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge |
new-bottom-title |
ROOT |
text | [78, 144] | Text+ in bundled Geist, Set explicit newline layout, Stepped StyledText or Write On gate when present, Local Transform, Over Merge |
portrait-stack |
ROOT |
group | [64, 144] | Transparent RGBA working domain, Ordered child Merges, Rounded Rectangle/Polygon alpha intersection if required, Transform, Group opacity, Over Merge |
portrait-card-00 |
portrait-stack |
image | [64, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-01 |
portrait-stack |
image | [67, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-02 |
portrait-stack |
image | [70, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-03 |
portrait-stack |
image | [73, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-04 |
portrait-stack |
image | [76, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-05 |
portrait-stack |
image | [79, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-06 |
portrait-stack |
image | [82, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-07 |
portrait-stack |
image | [85, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-08 |
portrait-stack |
image | [88, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-09 |
portrait-stack |
image | [91, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-10 |
portrait-stack |
image | [94, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-11 |
portrait-stack |
image | [97, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-12 |
portrait-stack |
image | [100, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-13 |
portrait-stack |
image | [103, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-14 |
portrait-stack |
image | [106, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-15 |
portrait-stack |
image | [109, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-16 |
portrait-stack |
image | [112, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-17 |
portrait-stack |
image | [115, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-18 |
portrait-stack |
image | [118, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-19 |
portrait-stack |
image | [121, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-20 |
portrait-stack |
image | [124, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-21 |
portrait-stack |
image | [127, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-22 |
portrait-stack |
image | [130, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
portrait-card-23 |
portrait-stack |
image | [133, 144] | Native vector subgroup reconstructed from svgConstruction, Fit Transform, Local Transform, Over Merge |
Exact numerical controls
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 |
opening-context |
x |
0 |
opening-context |
y |
0 |
opening-context |
width |
1920 |
opening-context |
height |
1080 |
initial-title-1 |
x |
100 |
initial-title-1 |
y |
10 |
initial-title-1 |
width |
1720 |
initial-title-1 |
height |
270 |
initial-title-2 |
x |
100 |
initial-title-2 |
y |
360 |
initial-title-2 |
width |
1720 |
initial-title-2 |
height |
270 |
initial-title-3 |
x |
100 |
initial-title-3 |
y |
710 |
initial-title-3 |
width |
1720 |
initial-title-3 |
height |
270 |
new-top-title |
x |
70 |
new-top-title |
y |
42 |
new-top-title |
width |
1780 |
new-top-title |
height |
270 |
new-bottom-title |
x |
60 |
new-bottom-title |
y |
768 |
new-bottom-title |
width |
1800 |
new-bottom-title |
height |
270 |
portrait-stack |
x |
840 |
portrait-stack |
y |
360 |
portrait-stack |
width |
240 |
portrait-stack |
height |
360 |
portrait-stack |
scale |
64:0.9 linear; 78:1.22 linear; 100:1.52 linear; 120:1.86 linear; 148:2.25 hold |
portrait-card-00 |
x |
0 |
portrait-card-00 |
y |
0 |
portrait-card-00 |
width |
240 |
portrait-card-00 |
height |
360 |
portrait-card-01 |
x |
-7 |
portrait-card-01 |
y |
-3 |
portrait-card-01 |
width |
240 |
portrait-card-01 |
height |
360 |
portrait-card-02 |
x |
14 |
portrait-card-02 |
y |
-6 |
portrait-card-02 |
width |
240 |
portrait-card-02 |
height |
360 |
portrait-card-03 |
x |
0 |
portrait-card-03 |
y |
-9 |
portrait-card-03 |
width |
240 |
portrait-card-03 |
height |
360 |
portrait-card-04 |
x |
7 |
portrait-card-04 |
y |
0 |
portrait-card-04 |
width |
240 |
portrait-card-04 |
height |
360 |
portrait-card-05 |
x |
-14 |
portrait-card-05 |
y |
-3 |
portrait-card-05 |
width |
240 |
portrait-card-05 |
height |
360 |
portrait-card-06 |
x |
0 |
portrait-card-06 |
y |
-6 |
portrait-card-06 |
width |
240 |
portrait-card-06 |
height |
360 |
portrait-card-07 |
x |
-7 |
portrait-card-07 |
y |
-9 |
portrait-card-07 |
width |
240 |
portrait-card-07 |
height |
360 |
portrait-card-08 |
x |
14 |
portrait-card-08 |
y |
0 |
portrait-card-08 |
width |
240 |
portrait-card-08 |
height |
360 |
portrait-card-09 |
x |
0 |
portrait-card-09 |
y |
-3 |
portrait-card-09 |
width |
240 |
portrait-card-09 |
height |
360 |
portrait-card-10 |
x |
7 |
portrait-card-10 |
y |
-6 |
portrait-card-10 |
width |
240 |
portrait-card-10 |
height |
360 |
portrait-card-11 |
x |
-14 |
portrait-card-11 |
y |
-9 |
portrait-card-11 |
width |
240 |
portrait-card-11 |
height |
360 |
portrait-card-12 |
x |
0 |
portrait-card-12 |
y |
0 |
portrait-card-12 |
width |
240 |
portrait-card-12 |
height |
360 |
portrait-card-13 |
x |
-7 |
portrait-card-13 |
y |
-3 |
portrait-card-13 |
width |
240 |
portrait-card-13 |
height |
360 |
portrait-card-14 |
x |
14 |
portrait-card-14 |
y |
-6 |
portrait-card-14 |
width |
240 |
portrait-card-14 |
height |
360 |
portrait-card-15 |
x |
0 |
portrait-card-15 |
y |
-9 |
portrait-card-15 |
width |
240 |
portrait-card-15 |
height |
360 |
portrait-card-16 |
x |
7 |
portrait-card-16 |
y |
0 |
portrait-card-16 |
width |
240 |
portrait-card-16 |
height |
360 |
portrait-card-17 |
x |
-14 |
portrait-card-17 |
y |
-3 |
portrait-card-17 |
width |
240 |
portrait-card-17 |
height |
360 |
portrait-card-18 |
x |
0 |
portrait-card-18 |
y |
-6 |
portrait-card-18 |
width |
240 |
portrait-card-18 |
height |
360 |
portrait-card-19 |
x |
-7 |
portrait-card-19 |
y |
-9 |
portrait-card-19 |
width |
240 |
portrait-card-19 |
height |
360 |
portrait-card-20 |
x |
14 |
portrait-card-20 |
y |
0 |
portrait-card-20 |
width |
240 |
portrait-card-20 |
height |
360 |
portrait-card-21 |
x |
0 |
portrait-card-21 |
y |
-3 |
portrait-card-21 |
width |
240 |
portrait-card-21 |
height |
360 |
portrait-card-22 |
x |
7 |
portrait-card-22 |
y |
-6 |
portrait-card-22 |
width |
240 |
portrait-card-22 |
height |
360 |
portrait-card-23 |
x |
-14 |
portrait-card-23 |
y |
-9 |
portrait-card-23 |
width |
240 |
portrait-card-23 |
height |
360 |
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/character-title-inset/context-adaptation.svg |
fb3ad9894652aab7fcd314ddb9a89a0008b8ba24596a139ff1d808e0f126c337 |
art/character-title-inset/context-default.svg |
d0676f118f8c005a644e59eedd099c63d68472c688eb4705330ea89930de132d |
art/character-title-inset/portrait-0-adaptation.svg |
a993de7d828a56d82fc38c771eac9b4e848b3637a11f759e283de93d74b0ddd7 |
art/character-title-inset/portrait-0-default.svg |
e9dc12531c9df5d4e3ef9dc71194b5826ac18964b75a504cf5c810ee8656a907 |
art/character-title-inset/portrait-1-adaptation.svg |
2f9fa8d99e1c1d17a852a8c586250bc581b5ab041892f438e8a70832f7a85da0 |
art/character-title-inset/portrait-1-default.svg |
5ed05bcc4723fb872ef85c0a5ba968a177790c8b1a06e0a79c05b98007938952 |
art/character-title-inset/portrait-2-adaptation.svg |
fee2e361ac203df0d7274f35045e675bfeb9eec2741b584457ebc376cd52fa8f |
art/character-title-inset/portrait-2-default.svg |
c221aebb58d462fb3f95e3958e43b972978a7990792910b8609994ed8d6e1bce |
art/character-title-inset/portrait-3-adaptation.svg |
13ccfbcc44bcd7b1579cc0928d795b257a0f06308cf16cfbc92cd74e6b11fd4a |
art/character-title-inset/portrait-3-default.svg |
2e66a95129c276339d90d62b2495a2baf4b08019e7ec585e04933f179320ecab |
art/character-title-inset/portrait-4-adaptation.svg |
8816aa46b46965dff7f68595bcae5f63521d19f61e22f223cc9f3a723a78fdd2 |
art/character-title-inset/portrait-4-default.svg |
425b3b1902da5bb0f72a0ce917a9375460b02ab5d7ef5d0465ad85e68e7327d2 |
art/character-title-inset/portrait-5-adaptation.svg |
a1affe50a2a2b01b05706bd58e4341db6fbbba514b802479ce5ea247c644336a |
art/character-title-inset/portrait-5-default.svg |
a45eb0f7a652d92b751d57269d7e14b027342d5e573e5142316f74b003d4e786 |
art/character-title-inset/portrait-6-adaptation.svg |
a373c0f1c2b03fe16154583bcbda0f852904aeae4ecb22e048ecabb4bd900b3c |
art/character-title-inset/portrait-6-default.svg |
fee2772313e676a6f29d75e2793b03ead8a5e774a67334e52baf287bad8ddb32 |
art/character-title-inset/portrait-7-adaptation.svg |
87938baed6ec0308b9c249314eb09cb57d2667c4335ad921b81536c648444cac |
art/character-title-inset/portrait-7-default.svg |
9c373e9e9b23ba1960fde1504c21f7536d87602312689283ce54507481320a27 |
Checkpoints and regression limits
| Local | Source | Required condition |
|---|---|---|
| 0 | 72 | Single original context frame. |
| 1 | 73 | Blank white. |
| 2 | 74 | Blank white. |
| 3 | 75 | First title line. |
| 4 | 76 | Second title line. |
| 5 | 77 | Third title line. |
| 63 | 135 | Last title-only frame. |
| 64 | 136 | First portrait above middle word. |
| 67 | 139 | Second portrait. |
| 70 | 142 | Third portrait. |
| 72 | 144 | Only initial bottom word remains. |
| 73 | 145 | All initial title gone; portraits persist. |
| 74 | 146 | Portrait without title. |
| 75 | 147 | New top heading. |
| 78 | 150 | New bottom heading. |
| 100 | 172 | Stack overlaps more title area. |
| 112 | 184 | Another hard portrait replacement. |
| 130 | 202 | Penultimate portrait content. |
| 133 | 205 | Final front portrait. |
| 143 | 215 | Last sample still enlarges and occludes type. |
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: Original vector bird/robot studies replace diverse rendered cat styles and the live-action context frame. Exact material variation, subtle card offsets and scale acceleration remain unresolved; the final enlargement is intentionally truncated.
- Original vector bird/robot studies replace diverse rendered cat styles and the live-action context frame. Exact material variation, subtle card offsets and scale acceleration remain unresolved; the final enlargement is intentionally truncated.
- 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. Absolute source PTS are unavailable.
- 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.