mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-04 07:19:52 +00:00
feat(skills): hyperframes-registry skill (#261)
## What
New skill `hyperframes-registry` that teaches AI coding agents how to install and wire registry blocks and components into HyperFrames compositions.
### Skill structure
```
skills/hyperframes-registry/
SKILL.md — triggers, overview, quick reference
references/
install-locations.md — default paths, hyperframes.json config
wiring-blocks.md — iframe inclusion, data attributes, positioning
wiring-components.md — snippet merging (HTML, CSS, JS, timeline)
discovery.md — manifest reading, item fields, available items table
demo-html-pattern.md — why components ship demo.html, structure conventions
examples/
add-block.md — worked example: data-chart block install + wiring
add-component.md — worked example: shimmer-sweep component install + wiring
```
## Why
Phase B of the catalog plan (PR 10). Without this skill, agents using `hyperframes add` have to guess how to wire installed items into compositions. The skill encodes the iframe/snippet patterns so agents get it right on the first attempt.
## How
- SKILL.md frontmatter triggers on: `hyperframes add`, "block", "component", `hyperframes.json`
- References cover every step: discovery, install, wiring blocks (iframe), wiring components (snippet merge), and the demo.html convention
- Two worked examples walk through complete install-to-preview workflows
- Updated CLAUDE.md skills table + trigger rules, README.md skills table, docs/packages/cli.mdx
## Test plan
- [x] `scripts/lint-skills.ts` passes (checked 4 skill files, no issues)
- [x] `oxfmt --check` passes on all markdown files
- [x] SKILL.md frontmatter has valid `name` and `description`
- [x] All reference links in SKILL.md resolve to existing files
- [x] CLAUDE.md, README.md, and docs CLI page updated with new skill
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
---
|
||||
name: hyperframes-registry
|
||||
description: Install and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add, installing a block or component, wiring an installed item into index.html, or working with hyperframes.json. Covers the add command, install locations, block iframe wiring, component snippet merging, and registry discovery.
|
||||
---
|
||||
|
||||
# HyperFrames Registry
|
||||
|
||||
The registry provides reusable blocks and components installable via `hyperframes add <name>`.
|
||||
|
||||
- **Blocks** — standalone sub-compositions (own dimensions, duration, timeline). Included via `<iframe>` in a host composition.
|
||||
- **Components** — effect snippets (no own dimensions). Pasted directly into a host composition's HTML.
|
||||
|
||||
## When to use this skill
|
||||
|
||||
- User mentions `hyperframes add`, "block", "component", or `hyperframes.json`
|
||||
- Output from `hyperframes add` appears in the session (file paths, clipboard snippet)
|
||||
- You need to wire an installed item into an existing composition
|
||||
- You want to discover what's available in the registry
|
||||
|
||||
## Quick reference
|
||||
|
||||
```bash
|
||||
hyperframes add data-chart # install a block
|
||||
hyperframes add grain-overlay # install a component
|
||||
hyperframes add shimmer-sweep --dir . # target a specific project
|
||||
hyperframes add data-chart --json # machine-readable output
|
||||
hyperframes add data-chart --no-clipboard # skip clipboard (CI/headless)
|
||||
```
|
||||
|
||||
After install, the CLI prints which files were written and a snippet to paste into your host composition. The snippet is a starting point — you'll need to add `data-start` and `data-track-index` attributes when wiring blocks.
|
||||
|
||||
Note: `hyperframes add` only works for blocks and components. For examples, use `hyperframes init <dir> --example <name>` instead.
|
||||
|
||||
## Install locations
|
||||
|
||||
Blocks install to `compositions/<name>.html` by default.
|
||||
Components install to `compositions/components/<name>.html` by default.
|
||||
|
||||
These paths are configurable in `hyperframes.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"registry": "https://raw.githubusercontent.com/heygen-com/hyperframes/main/registry",
|
||||
"paths": {
|
||||
"blocks": "compositions",
|
||||
"components": "compositions/components",
|
||||
"assets": "assets"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
See [install-locations.md](./references/install-locations.md) for full details.
|
||||
|
||||
## Wiring blocks
|
||||
|
||||
Blocks are standalone compositions — include them via `data-composition-src` in your host `index.html`:
|
||||
|
||||
```html
|
||||
<div
|
||||
data-composition-id="data-chart"
|
||||
data-composition-src="compositions/data-chart.html"
|
||||
data-start="2"
|
||||
data-duration="15"
|
||||
data-track-index="1"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
></div>
|
||||
```
|
||||
|
||||
Key attributes:
|
||||
|
||||
- `data-composition-src` — path to the block HTML file
|
||||
- `data-composition-id` — must match the block's internal ID
|
||||
- `data-start` — when the block appears in the host timeline (seconds)
|
||||
- `data-duration` — how long the block plays
|
||||
- `data-width` / `data-height` — block canvas dimensions
|
||||
- `data-track-index` — layer ordering (higher = in front)
|
||||
|
||||
See [wiring-blocks.md](./references/wiring-blocks.md) for full details.
|
||||
|
||||
## Wiring components
|
||||
|
||||
Components are snippets — paste their HTML into your composition's markup, their CSS into your style block, and their JS into your script (if any):
|
||||
|
||||
1. Read the installed file (e.g., `compositions/components/grain-overlay.html`)
|
||||
2. Copy the HTML elements into your composition's `<div data-composition-id="...">`
|
||||
3. Copy the `<style>` block into your composition's styles
|
||||
4. Copy any `<script>` content into your composition's script (before your timeline code)
|
||||
5. If the component exposes GSAP timeline integration (see the comment block in the snippet), add those calls to your timeline
|
||||
|
||||
See [wiring-components.md](./references/wiring-components.md) for full details.
|
||||
|
||||
## Discovery
|
||||
|
||||
Browse available items:
|
||||
|
||||
```bash
|
||||
# Read the registry manifest
|
||||
curl -s https://raw.githubusercontent.com/heygen-com/hyperframes/main/registry/registry.json
|
||||
```
|
||||
|
||||
Each item's `registry-item.json` contains: name, type, title, description, tags, dimensions (blocks only), duration (blocks only), and file list.
|
||||
|
||||
See [discovery.md](./references/discovery.md) for details on filtering by type and tags.
|
||||
Reference in New Issue
Block a user