mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-03 04:38:33 +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>
182 lines
4.6 KiB
Plaintext
182 lines
4.6 KiB
Plaintext
# Dependencies
|
|
node_modules/
|
|
|
|
# Build output
|
|
dist/
|
|
*.tsbuildinfo
|
|
|
|
# Environment
|
|
.env
|
|
.env.local
|
|
.env.*.local
|
|
|
|
# Lefthook per-developer overrides (not shared; see lefthook.yml for shared hooks)
|
|
lefthook-local.yml
|
|
|
|
# OS
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Docs media — served from CDN, not committed.
|
|
# Regenerate with scripts/generate-{catalog,template}-previews.ts then upload
|
|
# with `bun run upload:docs-images`. Add explicit negations below for any
|
|
# non-generated assets (logos, svgs) that should stay in the repo.
|
|
docs/images/
|
|
|
|
videos/
|
|
|
|
# IDE
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
|
|
# Test
|
|
coverage/
|
|
.debug/
|
|
|
|
# Producer regression test failures (generated debugging artifacts).
|
|
# RECURSIVE (`**`) so a failures/ dump at ANY fixture depth is ignored — the
|
|
# old non-recursive `tests/*/failures/` + `tests/distributed/*/failures/` rules
|
|
# only matched one level deep, so a nested fixture like
|
|
# `tests/hdr-regression/hdr-pq/failures/` could still get committed.
|
|
packages/producer/tests/**/failures/
|
|
packages/producer/tests/parity/fixtures/hyperframe.runtime.iife.js
|
|
|
|
# Player perf test results (generated each run, attached as CI artifact)
|
|
packages/player/tests/perf/results/
|
|
|
|
# Rendered output (not test fixtures — those use git LFS)
|
|
output/
|
|
renders/
|
|
!packages/producer/tests/*/output/
|
|
!packages/producer/tests/distributed/*/output/
|
|
# Source dir that the renders/ output rule accidentally shadows (its files are
|
|
# tracked; without this, pre-commit's format re-stage fails on them).
|
|
!packages/studio/src/components/renders/
|
|
|
|
# Composition source media (large binaries)
|
|
compositions/**/*.mp4
|
|
compositions/**/*.mov
|
|
compositions/**/*.MOV
|
|
|
|
# npm pack artifacts
|
|
*.tgz
|
|
|
|
# Logs
|
|
*.log
|
|
npm-debug.log*
|
|
|
|
# Temporary
|
|
tmp/
|
|
.tmp/
|
|
|
|
# Generated files
|
|
packages/core/src/generated/*
|
|
!packages/core/src/generated/position-edits-render-inline.ts
|
|
!packages/core/src/generated/position-edits-render-inline.test.ts
|
|
packages/producer/src/services/fontData.generated.ts
|
|
|
|
# Plan documents (working artifacts, not committed)
|
|
docs/plans/
|
|
|
|
# Local proof / test artifacts
|
|
qa-artifacts/
|
|
my-video/
|
|
# Studio project state (hf-id backups, per-file state) — always runtime-generated,
|
|
# never committed. Broadened from .hyperframes/backup/ after preview-generated state
|
|
# leaked into a fixture commit.
|
|
.hyperframes/
|
|
examples/*
|
|
# Tracked OSS examples — negations override the blanket `examples/*` ignore.
|
|
!examples/aws-lambda
|
|
!examples/aws-lambda/**
|
|
!examples/k8s-jobs
|
|
!examples/k8s-jobs/**
|
|
!examples/gcp-cloud-run
|
|
!examples/gcp-cloud-run/**
|
|
# …but never the local smoke run's build/render artifacts.
|
|
examples/gcp-cloud-run/scripts/gcp-smoke-artifacts/
|
|
packages/studio/data/
|
|
|
|
.desloppify/
|
|
.worktrees/
|
|
|
|
# Playwright MCP browser cache
|
|
.playwright-mcp/
|
|
|
|
# Installed skills (user-specific — agent-installed during sessions).
|
|
# .claude/ = Claude Code, .agents/ = Codex CLI (both auto-discover their project skills
|
|
# from these dirs). The two mirror each other and both need the same "ignore agent-installed
|
|
# skills; keep the six repo-native ones" recipe. See .claude/skills/README.md for the
|
|
# packaging notes.
|
|
|
|
.claude/*
|
|
!.claude/settings.json
|
|
!.claude/skills
|
|
.claude/skills/*
|
|
!.claude/skills/README.md
|
|
!.claude/skills/changelog-video
|
|
!.claude/skills/motion-doctrine
|
|
!.claude/skills/cut-the-curve
|
|
!.claude/skills/seam-craft
|
|
!.claude/skills/captions-overlay
|
|
!.claude/skills/oversized-cursor
|
|
|
|
.agents/*
|
|
!.agents/skills
|
|
.agents/skills/*
|
|
!.agents/skills/README.md
|
|
!.agents/skills/changelog-video
|
|
!.agents/skills/motion-doctrine
|
|
!.agents/skills/cut-the-curve
|
|
!.agents/skills/seam-craft
|
|
!.agents/skills/captions-overlay
|
|
!.agents/skills/oversized-cursor
|
|
skills-lock.json
|
|
|
|
# Skills from other PRs (not managed here)
|
|
skills/hyperframes-animation-map/
|
|
skills/hyperframes-contrast/
|
|
|
|
# Capture outputs
|
|
captures/
|
|
# Legacy test captures at repo root (use captures/ instead)
|
|
*-capture/
|
|
*-demo/
|
|
*-ad/
|
|
*-tour/
|
|
*-brand/
|
|
|
|
# Local regression-test and video project scratch directories.
|
|
# These hold per-site captures, compositions, narration audio, rendered MP4s.
|
|
cursor-tests/
|
|
basecamp-video/
|
|
launch-video*/
|
|
!skills/launch-video/
|
|
ab-test/
|
|
compositions/
|
|
video-6-2-patched/
|
|
claude-design-hyperframes-video/
|
|
# Per-site video work at the repo root (huly-*, raycast-*, etc.)
|
|
# Anything under videos/ is already covered above, but agents sometimes write
|
|
# project dirs to the repo root when iterating. Catch the common per-brand
|
|
# patterns and any *-demo-N variants the *-demo/ rule above misses.
|
|
huly-*/
|
|
raycast-*/
|
|
*-demo-*/
|
|
test-runs/
|
|
test-outputs/
|
|
|
|
# Superpowers docs (Claude Code worktrees + local state are handled above by
|
|
# the blanket .claude/ rule and its re-inclusions)
|
|
docs/superpowers/
|
|
.worktrees
|
|
hyperframes-bench/
|
|
tmp/
|
|
# Studio-generated preview thumbnails
|
|
.thumbnails/
|
|
|
|
# Local editor settings
|
|
.zed/
|