mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-04 16:42:27 +00:00
Packages Jake Moran's changelog-video pipeline (v1, validated end-to-end
by Home on the Jun 23-29 range) as a repo-native skill set that Claude
Code (.claude/skills/) and Codex CLI (.agents/skills/) auto-discover the
moment the repo is opened. No install step; run the skill against a
changelog markdown for a given git range and it produces a lint-clean,
seam-gate-green 1080x1080 MP4 (~45-60s, Annie VO, mock-UI visualizations,
caption rail) end-to-end.
Six skills added byte-identical in both mirror dirs:
- changelog-video (pipeline entry point)
- motion-doctrine (carries seam-stamp.mjs + seam-gate.mjs)
- cut-the-curve, captions-overlay, seam-craft, oversized-cursor
Layout:
- .claude/skills/ - Claude Code project-local auto-discover
- .agents/skills/ - Codex CLI project-local auto-discover (verified via
Magi's clean-home Codex 0.144.3 repro; NOT .codex/skills/)
Fonts, animated background (12 MB), house BGM (5 MB), lexicon, and
align-captions ship inside the skill dirs. .gitattributes routes only
.claude/skills/**/*.{mp4,mp3} + .agents/skills/**/*.{mp4,mp3} through
LFS — narrowly scoped so unrelated Player, Studio, registry, and
marketplace media stay put. HeyGen CLI auth is the one credential the
skill needs; Node >= 22, ffmpeg, and headless Chrome are documented
alongside in both READMEs.
.gitignore: rewrites .claude/ and .agents/ blocks to keep agent-installed
skill hygiene while re-including the six repo-native skill dirs plus
README.md.
CI:
- Extends changes.skills filter to match .claude/skills/**,
.agents/skills/**, scripts/lint-skills.ts, and scripts/check-skill-mirror.mjs.
- New 'Skills: project-native lint + mirror' job runs the extended
lint-skills.ts (schema-driven; required { name, description } + optional
{ license, allowed-tools, metadata }, name pattern check, description
length check) plus a new check-skill-mirror.mjs byte-integrity script
(24 mirrored files must match; README.md deliberately per-CLI).
- Wired into 'bun run lint' locally.
Frontmatter validator:
- Rejects unsupported top-level keys (catches category:-style drift).
- Requires name + description.
- Validates name pattern (^[a-z][a-z0-9-]{0,63}$) and description shape
(non-empty, <=1024 chars).
- Missing frontmatter block itself is a first-class error.
Also strips unsupported top-level 'category:' frontmatter from Jake's
motion-doctrine and cut-the-curve SKILL.mds (both mirrors), rewrites the
TTS invocation from ~/.claude/skills/media-use/... to the tracked
skills/hyperframes-media/scripts/heygen-tts.mjs, swaps npx hyperframes@latest
for the repo-local CLI in the gate step, and fixes a lint issue in Jake's
seam-gate.mjs (ternary-for-side-effect -> if/else).
Validated end-to-end by Home on Jun 23-29 (MP4 posted in C0ACCNHLG3U
thread 1784181166.041319). Independently reviewed R1/R2/R3 by Magi.
Co-authored-by: Jake Moran <jake@heygen.com>
67 lines
1.6 KiB
JSON
67 lines
1.6 KiB
JSON
{
|
|
"_readme": "display → spoken. Plain-text phonetics for HeyGen TTS (no SSML). Grow this file; never guess a missing term — ask, add, then listen to the generated line. Slash commands: caption /name, speak 'slash <name>'.",
|
|
"/figma": "slash Figma",
|
|
"/hyperframes": "slash hyper-frames",
|
|
"JSON": "jay-sawn",
|
|
"GSAP": "jee-sap",
|
|
"CLI": "C L I",
|
|
"CDP": "C D P",
|
|
"API": "A P I",
|
|
"SDK": "S D K",
|
|
"UI": "U I",
|
|
"UX": "U X",
|
|
"CSS": "C S S",
|
|
"HTML": "H T M L",
|
|
"SVG": "S V G",
|
|
"URL": "U R L",
|
|
"TTS": "T T S",
|
|
"ASR": "A S R",
|
|
"MCP": "M C P",
|
|
"LRU": "L R U",
|
|
"GC": "G C",
|
|
"VFR": "V F R",
|
|
"CFR": "C F R",
|
|
"SDR": "S D R",
|
|
"HDR": "H D R",
|
|
"GPU": "G P U",
|
|
"CPU": "C P U",
|
|
"PNG": "P N G",
|
|
"MP4": "em pee four",
|
|
"MP3": "em pee three",
|
|
"WebM": "web em",
|
|
"WebGL": "web G L",
|
|
"wav": "wave",
|
|
"ffmpeg": "ff-mpeg",
|
|
"ffprobe": "ff-probe",
|
|
"OAuth": "oh-auth",
|
|
"SSML": "S S M L",
|
|
"OOM": "out of memory",
|
|
"e2e": "end to end",
|
|
"DX": "developer experience",
|
|
"QA": "Q A",
|
|
"npm": "N P M",
|
|
"npx": "N P X",
|
|
"regen": "ree-jen",
|
|
"repo": "repo",
|
|
"HeyGen": "hey-jen",
|
|
"heygen.com": "hey-jen dot com",
|
|
"hyperframes.heygen.com": "hyperframes dot hey-jen dot com",
|
|
"MusicGen": "music-jen",
|
|
"Kokoro": "koh-koh-roh",
|
|
"Figma": "Figma",
|
|
"drawElement": "draw element",
|
|
"DrawElement": "draw element",
|
|
"moveElement": "move element",
|
|
"storyboard": "storyboard",
|
|
"keyframes": "key-frames",
|
|
"sub-compositions": "sub compositions",
|
|
"WSL": "W S L",
|
|
"Linux": "linnucks",
|
|
"symlink": "sim-link",
|
|
"lint": "lint",
|
|
"toast": "toast",
|
|
"vite": "veet",
|
|
"Chromium": "chromium",
|
|
"headless": "headless"
|
|
}
|