Files
hyperframes/packages/studio/src/captions/index.ts
T
Vance Ingalls d36c1785b9 feat(captions): energy-based technique selection and mandatory quality checks (#176)
## Summary

- Rewrite script-to-style mapping as an energy detection table (high → low) with mandatory animation requirements: karaoke baseline, 2+ highlight techniques, kinetic exits
- Replace `tl.call()` per-frame audio-reactive pattern with group-level GSAP tweens — read peak bass/treble for each group's time range and modulate entrance intensity at build time, no per-frame callbacks needed
- Add transcript quality check with automatic retry rules (>20% music tokens = retry with larger model)
- Add caption word structure lint rule (`.caption-group` + `<span>`) for studio editor compatibility
- Add multilingual model guidance and decision tree for model selection

## Test plan

- [ ] Skill files render correctly as markdown
- [ ] Cross-references between SKILL.md, dynamic-techniques.md, and transcript-guide.md resolve correctly
- [ ] `dynamic-techniques.md` audio-reactive section uses `tl.to()`/`tl.set()` only, no `tl.call()` loops

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-04-02 00:47:43 -07:00

11 lines
595 B
TypeScript

export { useCaptionStore } from "./store";
export { parseCaptionComposition, extractTranscript, buildCaptionModel } from "./parser";
export type { TranscriptWord } from "./parser";
export { generateCaptionHtml } from "./generator";
export { CaptionOverlay } from "./components/CaptionOverlay";
export { CaptionPropertyPanel } from "./components/CaptionPropertyPanel";
export { CaptionAnimationPanel } from "./components/CaptionAnimationPanel";
export { CaptionTimeline } from "./components/CaptionTimeline";
export { useCaptionSync } from "./hooks/useCaptionSync";
export type * from "./types";