---
name: copy-reframe
description: Make a short editorial film that visibly retires one phrase and lands its replacement.
version: 1.0.2
category: video
delivery: download-only
---

# Copy Reframe

Use this parameterized renderer for a short copy revision: a readable initial strip, a drawn strike, a rejection mark, a tilted fall, then a new strip and an approval mark. The final phrase rests long enough to read. No presenter, images or account is required.

Write a UTF-8 JSON brief with `retired`, `preferred`, and optional `context`, `palette`, `seconds`. Supply new wording for both phrases. Keep each phrase within 72 Unicode characters; CJK phrases use at most 40. Avoid long unbroken words. The four palette IDs are `tide`, `peat`, `porcelain`, and `graphite`. Duration accepts 6.4–12 seconds and scales all beats together. English is the default; Chinese uses the same locally bundled Noto Sans SC variable face.

Generate an editable project:

```sh
node scripts/compose.mjs brief.json /absolute/project
```

Install Node.js 20+, FFmpeg and the pinned HyperFrames CLI. Run `npm install` in this Skill directory if the CLI is unavailable. Render from the generated project with:

```sh
npx --yes hyperframes@0.8.30 render /absolute/project --fps 30 --workers 1 --quality high --strict --output /absolute/project/film.mp4
```

Read `references/authoring.md` for pacing, editing and review. The project contains its resolved brief, local scripts/font, and an explicit `timeline.json`. Edit the brief and regenerate to change copy; edit the generated HTML to direct a custom scene. This renderer handles one correction per film, not arbitrary narrative generation. Outputs are silent. Add a licensed soundtrack in an editor if the brief needs one; record the edited audio timeline and inspect the final mix separately.

Inspect the actual encoded start, strike, falling strip, incoming strip and settled hold. Check native-size text and deterministic backward/forward seeking, then watch at normal speed. A successful render does not establish aesthetic or user acceptance. Keep demo media outside this reusable package.
