refactor(skills): consolidate 15 skills into 3 - #211
Conversation
…iability Merge 9 GSAP skills (core, timeline, scrolltrigger, plugins, utils, react, frameworks, performance, effects) and 6 HyperFrames skills (compose, captions, tts, audio-reactive, marker-highlight, cli) into 3 consolidated skills: - `gsap` — core API + timelines + performance in SKILL.md; scrolltrigger, plugins, utils, react, frameworks, effects in references/ - `hyperframes` — composition authoring rules in SKILL.md; captions, tts, audio-reactive, marker-highlight in references/ - `hyperframes-cli` — CLI commands (init, lint, preview, render, etc.) Why: With 15 separate skills, agents must correctly trigger the right subset for any task. "Create an animated video with captions" needed 6+ skills to fire — each with ~90% trigger accuracy means ~53% chance of getting all of them. With 3 skills, that same task needs just `hyperframes` + `gsap` (~90% both fire). Progressive disclosure still works via references/ files loaded on demand. Also fixes: CLAUDE.md referenced `window.__GSAP_TIMELINE` (incorrect) — corrected to `window.__timelines`. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Allow skipping the AI coding skills installation prompt during `hyperframes init` with `--skip-skills`. Useful when skills are already installed or when the user wants to scaffold without them. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
vanceingalls
left a comment
There was a problem hiding this comment.
Code Review
Architecture: Solid
The consolidation from 15 → 3 skills is well-motivated. The references/ subdirectory pattern is clean — progressive disclosure within a skill rather than between skills. The --skip-skills CLI flag is implemented correctly.
Critical (must fix)
1. overflow: hidden regression in captions
skills/hyperframes/references/captions.md line ~90 says:
CSS safety nets: `max-width`, `overflow: hidden`, `position: absolute`, explicit `height`.
The old skill explicitly warned against this:
overflow: visible— notoverflow: hidden. Hidden clips scaled emphasis words and their glow effects. Rely onfitTextFontSizewith reducedmaxWidthinstead.
This will cause rendering bugs — scaled per-word emphasis and glow effects will be clipped. Must revert to overflow: visible.
2. Audio-reactive reference lost its most important operational content
skills/hyperframes/references/audio-reactive.md dropped two critical sections:
-
Sampling Frequency — the pattern showing you must sample at 100-200ms intervals with a
forloop, not one tween per element. The old skill had a side-by-side ✓/✗ comparison. Without this, agents produce single-tween "audio-reactive" compositions that don't actually react to audio. -
textShadow on Containers — hard-won debugging insight:
textShadowon a parent with semi-transparent children (e.g., inactive caption words atrgba(255,255,255,0.3)) renders a visible glow rectangle behind all children instead of per-word glow. Fix: applyscaleto container,textShadowto individual active words only.
Important (should fix)
3. gsap/references/effects.md over-compressed (65% reduction)
Typewriter section lost:
- Word rotation full code example (type → hold → backspace → next with cursor state management)
- Appending words pattern (building a sentence word-by-word into the same element)
- Spacing with static text (margin-left wrapper, why flex gap breaks cursor positioning)
- Multi-line cursor handoff pattern (hide previous → blink new → pause → solid when typing)
Audio visualizer section lost:
- Spatial mapping conventions (bass left/bottom, treble right/top)
- Fetch vs inline loading patterns with the critical note about wrapping timeline setup inside the fetch callback
- WebGL/Three.js and DOM Elements rendering approaches
- Layering pattern (multiple canvases with z-index)
4. Captions reference lost key patterns
- Caption layer full-width container pattern and explicit warning against
left: 50%; transform: translateX(-50%)(causes clipping at composition edges) - Scale headroom formula:
maxWidth = safeWidth / maxScalewhen per-word styling uses scale > 1.0 - Self-lint placement guidance ("before
window.__timelines[id] = tl")
5. Multi-Scene Compositions deleted, not relocated
Removed from house-style.md:
- Hard visibility kills after scene exit tweens
- Vertical zones (bottom 280px reserved for captions)
- Scene overlap prevention during scrubbing
This prevents real rendering bugs. Should be restored to house-style.md or moved to patterns.md.
6. --strict-all dropped from CLI skill
The old hyperframes-cli/SKILL.md documented --strict-all (fail on errors AND warnings) in the render flags table. If this flag still exists in the CLI, it needs documentation.
Minor
- Script path in effects.md —
scripts/extract-audio-data.pyis ambiguous from project root; consider full pathskills/gsap/scripts/extract-audio-data.py - CLAUDE.md — still references
class="clip"which doesn't appear in any skill; may be stale data-duration="auto"in TTS reference is not documented in the main SKILL.md attributes table- "Approach" section removed from compose SKILL.md — useful structural framing for agents tackling complex compositions
Restore content lost during over-compression: - captions: fix overflow to `visible` (not hidden — clips glow effects), add container pattern warning, scale headroom formula, and self-lint placement guidance - audio-reactive: restore sampling frequency pattern (per-frame tl.call loop vs single tween) and textShadow-on-container gotcha - effects/typewriter: restore word rotation, appending words, spacing with static text, and multi-line cursor handoff patterns - effects/audio-visualizer: restore spatial mapping conventions, fetch vs inline loading, WebGL/DOM rendering approaches, and canvas layering - hyperframes-cli: restore --strict-all flag in render flags table Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Thanks for the thorough review @vanceingalls! Addressed all findings in 07ede4b: Critical — fixed1. 2. Audio-reactive lost content — Restored both sections:
Important — fixed3. effects.md over-compressed — Restored all lost typewriter patterns:
And audio visualizer patterns:
4. Captions lost patterns — Restored container pattern warning, scale headroom formula, and self-lint placement guidance ("before 5. Multi-scene compositions — These were not deleted. 6. Minor
|
- build:copy: reference skills/hyperframes, skills/hyperframes-cli, skills/gsap instead of the old 15 skill directory names - _shared/CLAUDE.md template: update skill table to consolidated names Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move transitions from a standalone skill (4th top-level) into hyperframes/references/transitions/, aligning with the consolidation in #211 that reduced 15 skills to 3. Fewer standalone skills means higher trigger reliability for multi-skill tasks. Also removes stale text-burn-dom.html reference from css-destruction.md. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
) * feat(skills): add WebGL shader transitions and restructure catalog Add 14 WebGL fragment shader transitions to the transitions skill: domain warp dissolve, ridged burn, whip pan, SDF iris, ripple waves, gravitational lens, cinematic zoom, chromatic radial split, glitch, swirl vortex, thermal distortion, flash through white, cross-warp morph, and light leak (shader). Restructure catalog.md from a 1045-line monolith into a 105-line routing layer with 15 reference files. SKILL.md loads at 101 lines, catalog.md loads at 105 lines — reference files loaded on demand only for the transition type being implemented. Key additions: - Full WebGL setup boilerplate with media capture (images, video, object-fit: cover, live video re-upload during transitions) - Hard rules for shader transitions capturing all bugs found during development (Y-flip, preserveDrawingBuffer, fwidth, boomerang, tween proxy reuse, tl.call vs onComplete) - CSS vs Shader decision guide in SKILL.md - Visual pattern warning against repeating geometric patterns - Shader transitions slotted into mood/energy mapping tables - Noise libraries: quintic C2, ridged, erosion FBM, cosine palette Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor(skills): fold transitions into hyperframes skill Move transitions from a standalone skill (4th top-level) into hyperframes/references/transitions/, aligning with the consolidation in #211 that reduced 15 skills to 3. Fewer standalone skills means higher trigger reliability for multi-skill tasks. Also removes stale text-burn-dom.html reference from css-destruction.md. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move transitions from a standalone skill (4th top-level) into hyperframes/references/transitions/, aligning with the consolidation in heygen-com#211 that reduced 15 skills to 3. Fewer standalone skills means higher trigger reliability for multi-skill tasks. Also removes stale text-burn-dom.html reference from css-destruction.md.
* refactor(skills): consolidate 15 skills into 3 for better trigger reliability Merge 9 GSAP skills (core, timeline, scrolltrigger, plugins, utils, react, frameworks, performance, effects) and 6 HyperFrames skills (compose, captions, tts, audio-reactive, marker-highlight, cli) into 3 consolidated skills: - `gsap` — core API + timelines + performance in SKILL.md; scrolltrigger, plugins, utils, react, frameworks, effects in references/ - `hyperframes` — composition authoring rules in SKILL.md; captions, tts, audio-reactive, marker-highlight in references/ - `hyperframes-cli` — CLI commands (init, lint, preview, render, etc.) Why: With 15 separate skills, agents must correctly trigger the right subset for any task. "Create an animated video with captions" needed 6+ skills to fire — each with ~90% trigger accuracy means ~53% chance of getting all of them. With 3 skills, that same task needs just `hyperframes` + `gsap` (~90% both fire). Progressive disclosure still works via references/ files loaded on demand. Also fixes: CLAUDE.md referenced `window.__GSAP_TIMELINE` (incorrect) — corrected to `window.__timelines`. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(cli): add --skip-skills flag to init command Allow skipping the AI coding skills installation prompt during `hyperframes init` with `--skip-skills`. Useful when skills are already installed or when the user wants to scaffold without them. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(skills): address code review feedback on consolidation Restore content lost during over-compression: - captions: fix overflow to `visible` (not hidden — clips glow effects), add container pattern warning, scale headroom formula, and self-lint placement guidance - audio-reactive: restore sampling frequency pattern (per-frame tl.call loop vs single tween) and textShadow-on-container gotcha - effects/typewriter: restore word rotation, appending words, spacing with static text, and multi-line cursor handoff patterns - effects/audio-visualizer: restore spatial mapping conventions, fetch vs inline loading, WebGL/DOM rendering approaches, and canvas layering - hyperframes-cli: restore --strict-all flag in render flags table Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): update build:copy and template for consolidated skill names - build:copy: reference skills/hyperframes, skills/hyperframes-cli, skills/gsap instead of the old 15 skill directory names - _shared/CLAUDE.md template: update skill table to consolidated names Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…eygen-com#213) * feat(skills): add WebGL shader transitions and restructure catalog Add 14 WebGL fragment shader transitions to the transitions skill: domain warp dissolve, ridged burn, whip pan, SDF iris, ripple waves, gravitational lens, cinematic zoom, chromatic radial split, glitch, swirl vortex, thermal distortion, flash through white, cross-warp morph, and light leak (shader). Restructure catalog.md from a 1045-line monolith into a 105-line routing layer with 15 reference files. SKILL.md loads at 101 lines, catalog.md loads at 105 lines — reference files loaded on demand only for the transition type being implemented. Key additions: - Full WebGL setup boilerplate with media capture (images, video, object-fit: cover, live video re-upload during transitions) - Hard rules for shader transitions capturing all bugs found during development (Y-flip, preserveDrawingBuffer, fwidth, boomerang, tween proxy reuse, tl.call vs onComplete) - CSS vs Shader decision guide in SKILL.md - Visual pattern warning against repeating geometric patterns - Shader transitions slotted into mood/energy mapping tables - Noise libraries: quintic C2, ridged, erosion FBM, cosine palette Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor(skills): fold transitions into hyperframes skill Move transitions from a standalone skill (4th top-level) into hyperframes/references/transitions/, aligning with the consolidation in heygen-com#211 that reduced 15 skills to 3. Fewer standalone skills means higher trigger reliability for multi-skill tasks. Also removes stale text-burn-dom.html reference from css-destruction.md. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
gsap,hyperframes, andhyperframes-cliwindow.__GSAP_TIMELINEreference in CLAUDE.md (should bewindow.__timelines)--skip-skillsflag tohyperframes initto skip skills installation promptMotivation
With 15 separate skills, agents must correctly trigger the right subset for any task. A task like "create an animated video with captions" needed 6+ skills to fire — each with ~90% trigger accuracy means ~53% chance of getting all of them. With 3 skills, that same task needs just
hyperframes+gsap(~90% both fire).The key insight: progressive disclosure should happen within a skill (SKILL.md → references/) not between skills. Between-skill progressive disclosure relies on triggering, which is the weakest link. Within-skill progressive disclosure relies on Claude reading a file and following a reference link, which it does reliably.
New structure
CLI change
Added
--skip-skillsflag tohyperframes init:hyperframes init my-video --skip-skills # scaffold without skills installation promptTest plan
/gsap— verify it loads the consolidated GSAP skill with core + timelines + performance/hyperframes— verify it loads composition authoring rules/hyperframes-cli— verify CLI commands skill loads independentlyhyperframesandgsaptrigger without needing to invoke 6+ separate skillshyperframes init test --skip-skills— verify skills prompt is skippedhyperframes init test— verify skills prompt still appears by default🤖 Generated with Claude Code