mirror of
https://github.com/hanzoai/frames.git
synced 2026-10-30 14:44:26 +00:00
Every SKILL.md already declared the new name — name: frames, frames-cli, frames-core, and so on — but the directories were never moved, so the tree carried frames-* in content and hyperframes-* on disk. Everything that resolves a skill by path missed: the core-skill list, the plugin marketplace pin, and the docs the CLI reads at runtime. Eight tests failed on main because the files they open do not exist. The directories now match what the files say they are, and the guide the claude-design contract reads takes the name that contract already used.
30 lines
2.0 KiB
JSON
30 lines
2.0 KiB
JSON
{
|
|
"tier": 2,
|
|
"name": "title-image-outro",
|
|
"composition_id": "MultiScene",
|
|
"description": "Three-scene composition exercising Sequence, spring, interpolate, Audio, Img, and staticFile. Title scene uses Remotion's spring (translated to GSAP back.out as an approximation). Image scene scales an Img (from staticFile) with linear interpolate. Outro scene fades text in linearly. A silent WAV plays throughout at volume 0.5.",
|
|
"duration_seconds": 6,
|
|
"fps": 30,
|
|
"width": 1280,
|
|
"height": 720,
|
|
"ssim_threshold": 0.95,
|
|
"validation": {
|
|
"measured_mean_ssim": 0.985,
|
|
"measured_min_ssim": 0.963,
|
|
"measured_p05_ssim": 0.966,
|
|
"measured_p95_ssim": 0.999,
|
|
"measured_at": "2026-04-27",
|
|
"measured_against": "[email protected] (PNG output, BT.709) vs [email protected]",
|
|
"notes": "Spring → back.out(1.4) translation came out cleaner than expected; mean 0.985 leaves substantial headroom over 0.95."
|
|
},
|
|
"translation_notes": [
|
|
"spring({damping:12, stiffness:100, mass:1}) → back.out(1.4) over 0.7s. Spring overshoot+settle and back.out's overshoot+settle have similar shape; budget ~0.02 SSIM for the late-tail curvature mismatch (validated lower than predicted in spec; original notes overestimated drift).",
|
|
"<Sequence from durationInFrames> → wrapping div with data-start/data-duration in seconds and explicit gsap.set(opacity, 0/1) at scene boundaries to crossfade in/out cleanly",
|
|
"<Audio src volume> → <audio data-start data-duration data-volume>",
|
|
"<Img src={staticFile('x')}> → <img src='assets/x'>; setup.sh copies the asset into both fixture trees",
|
|
"interpolate with default linear easing → ease:'none' in GSAP",
|
|
"Fonts again rely on system Helvetica/Arial; ~0.015 SSIM cost from AA differences"
|
|
],
|
|
"rationale": "Threshold 0.95 sits ~0.015 below measured p05 (0.966). T2 actually validated cleaner than T1 because the lower title fontWeight (140px vs T1's 160px) shows less of the system-font fallback divergence."
|
|
}
|