Skip to content

refactor(skills): restructure product-launch-video into references + sub-agents#1597

Open
WaterrrForever wants to merge 2 commits into
mainfrom
refactor/product-launch-video-skill
Open

refactor(skills): restructure product-launch-video into references + sub-agents#1597
WaterrrForever wants to merge 2 commits into
mainfrom
refactor/product-launch-video-skill

Conversation

@WaterrrForever

Copy link
Copy Markdown
Collaborator

What

Restructure the product-launch-video skill from a phase/style-preset-heavy
layout into a leaner one (references/ + scripts/ + sub-agents/), and extend
the shared hyperframes-core / -creative / -media skills with the formats and
presets the new layout depends on.

Net: 349 files, +3,721 / −41,964 — mostly deleting the old phases/, agents/,
bundled SFX assets, and oversized scripts.

Why

The old skill carried a large, drift-prone surface: per-phase guides, design/motion
rules duplicated between the skill and the shared references, ~20 bundled SFX files,
and multi-thousand-line scripts (validate/verify/prep/hoist). Consolidating the
rules into shared references + a single frame-worker sub-agent removes the
duplication and shrinks the skill to what the orchestrator actually needs.

How

product-launch-video skill

  • Replace phases/ + agents/ with references/ (composition, motion-language,
    story-design, visual-design) and sub-agents/frame-worker.md.
  • Slim the scripts to audio / captions / transitions / assemble-index (+ lib
    helpers); drop validate/verify/prep/hoist and the bundled assets/sfx/.

Shared skills

  • hyperframes-core: add references/script-format.md + storyboard-format.md.
  • hyperframes-creative: add references/design-spec.md and frame-presets/
    (blockframe, capsule) with showcase HTML.
  • hyperframes-media: extend the bgm/sfx references.
  • hyperframes / general-video: update routing copy.

CLI

  • contentExtractor.ts: surface downloaded video clips first, tagged [video],
    sourced from video-manifest.json — hero motion clips are the strongest product
    material and downstream planners key off the [video] marker.

Test plan

  • bun run build
  • npx hyperframes lint / npx hyperframes validate on a sample composition
  • Smoke-run /product-launch-video end-to-end on a sample product URL

WaterrrForever and others added 2 commits June 20, 2026 01:39
…-video

Collapse the phase/style-preset-heavy product-launch-video skill into a
leaner product-lunch-video layout (references + scripts + sub-agents), and
extend the hyperframes core/creative/media skills with new format and
preset references.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…unch-video

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rmSync(td, { recursive: true, force: true });
} catch {}
return r;
writeFileSync(storyboardPath, lines.join("\n"));
: { bgm: null, voices: [], sfx: [] };
meta.sfx = sfx;
mkdirSync(dirname(audioMetaPath), { recursive: true });
writeFileSync(audioMetaPath, JSON.stringify(meta, null, 2));
mkdirSync(dirname(outPath), { recursive: true });
writeFileSync(outPath, html);
// ── write caption-overrides.json shim ──
if (!existsSync(overridesPath)) writeFileSync(overridesPath, "[]\n");
function transcodeToWav(mp3Bytes, destWav, die) {
const td = mkdtempSync(join(tmpdir(), "pl-audio-"));
const tmp = join(td, "a.mp3");
writeFileSync(tmp, mp3Bytes);
if (!res.ok) throw new Error(`download HTTP ${res.status}: ${String(url).slice(0, 80)}`);
const bytes = Buffer.from(await res.arrayBuffer());
mkdirSync(dirname(destPath), { recursive: true });
writeFileSync(destPath, bytes);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants