# Pick Composition

> Choose the best starter composition for the user's request. Use this first, at the start of every new video request, before generating any content.

- Skill: `heygen-com/pick-composition` (Agent Skill)
- Install (CLI): `npx skillmds@latest add heygen-com/pick-composition`
- Raw SKILL.md: https://api.skillmd.com/api/skills/heygen-com/pick-composition/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: heygen-com (https://skillmd.com/u/heygen-com)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/heygen-com/pick-composition

---


# Pick a starter composition

Your first step for any new video. Read the user's prompt and choose one
starter from `/.agents/workspace/compositions/`. Don't author HTML — every starter is
already a working HyperFrames project; you only pick one and (later) fill in
its variables.

## How to choose

1. List the available starters: each directory under `/.agents/workspace/compositions/`
   has a `manifest.json`. Read all of them.
2. Match the user's intent against each manifest's `use_case`, `aspect_ratio`,
   `duration_seconds`, and `tags`.
3. Pick the single best fit.

Rules of thumb:

- **Vertical / social / short / "for TikTok or Reels" / "a quick teaser"** →
  `social-promo` (9:16, ~6s).
- **"Trailer", "product video", "show off my app", "promo for my SaaS"** →
  `app-trailer` (16:9, ~12s, three scenes).
- **"Explain", "how it works", "walk through", "onboarding", "tutorial"** →
  `explainer` (16:9, ~14s, numbered steps).

If the user names an aspect ratio (portrait vs landscape), let that override the
vibe match — a portrait request should land on `social-promo` even if the
content is product-y.

If the user explicitly names a starter ("use the explainer"), use it.

## Output of this step

Decide on one composition id (`social-promo`, `app-trailer`, or `explainer`)
and remember it for the rest of the pipeline. Tell the user briefly what you
picked and why ("I'll use the app trailer — landscape, three scenes, good for
showing features"). Then move to **generate-script**.

