coven / heygen-skills
CLAUDE.md75 starsChanged 4 months agoMITView on GitHub
The HeyGen Skills. Two skills that chain together: heygen-avatar (identity → avatar → voice) and heygen-video (idea → script → video). SKILL.md at root routes between them. Each SKILL.md must stay under 300 lines. Skill files are injected into EVERY prompt turn. What stays in SKILL.md: - Frontmatter (name, description, triggers, env requirements) - Stage flow overview (what stages exist, when to enter each) - Decision trees (mode detection, avatar path selection, style selection) - Critical rules that apply EVERY…
- Pipes a download into a shell
- Reads credentials
In this repository59 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- 1passwordSkill
- ask-curlSkill
- boardSkill
- cleanup-unused-filesSkill
- codeflow-maintainerSkill
- codex-session-managerSkill
- coven-astraSkill
- coven-board-entrySkill
- coven-charmSkill
- coven-cloud-maintainerSkill
- coven-codySkill
- coven-echoSkill
- coven-identity-canonSkill
- coven-kittySkill
- coven-parallel-workSkill
- coven-sageSkill
- coven-task-managerSkill
- daily-dev-agenticSkill
- discrawlSkill
- disk-space-optimizerSkill
- epubSkill
- familiar-board-stewardshipSkill
- heygen-avatarSkill
- heygen-videoSkill
- heygen-skillsSkill
- higgsfield-generateSkill
- higgsfieldSkill
- linear-issue-managementSkill
- lit-ui-designerSkill
- lobsterSkill
- maintainer-barSkill
- memory-recallSkill
- memory-timeline-managerSkill
- ml-engineerSkill
- nodriverSkill
- ocrSkill
- openclaw-devSkill
- openclaw-trustSkill
- opencoven-designSkill
- OpenCoven Role Creation ProcessSkill
- pr-agentSkill
- project-managerSkill
- prompt-engineerSkill
- prompt-vaultSkill
- research-ingestionSkill
- ritual-dapp-frontendSkill
- rollcallSkill
- security-agentSkill
- skill-scannerSkill
- slidev-deck-pipelineSkill
- tauri-apple-releaseSkill
- threejs-animationSkill
- tinyfish-agent-runSkill
- tinyfish-browserSkill
- tinyfish-fetchSkill
- tinyfish-searchSkill
- tinyfishSkill
The file
We split this CLAUDE.md into the rules it gives an agent
9 rules. About 0 are common, 6 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 55
The test: If removing a section from SKILL.md would NOT break the agent's ability to decide what to do next, it belongs in references/.
- Distinctive: line 101
Timeout: No API call within 3 min = something is wrong.
- Very specific: line 103
One Notion batch: All results in one notion-create-pages call at the end.
- Distinctive: line 109
All properties TEXT except: Frame Check Fired (CHECKBOX), Status/Avatar Type/Ken Verdict (SELECT)
- Very specific: line 113
After any SKILL.md refactor:
- Distinctive: line 114
Run standard 10-scenario suite from most recent round
- Distinctive: line 127
Trust Video Agent for duration pacing: No padding multipliers.
- Distinctive: line 129
Dry-run before API: Always offer.
- Distinctive: line 131
video_avatar type has a known backend bug: Document in troubleshooting.
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CLAUDE.md — HeyGen Skills
What This Is
The HeyGen Skills. Two skills that chain together: heygen-avatar (identity → avatar → voice) and heygen-video (idea → script → video). SKILL.md at root routes between them.
Architecture
heygen-skills/
├── SKILL.md # Router: detects intent, dispatches to sub-skill
├── CLAUDE.md # This file. Structure, rules, conventions.
├── INSTALL.md # Installation instructions
├── README.md # Public-facing description
├── CONTRIBUTING.md # PR workflow
├── LICENSE
├── heygen-avatar/
│ └── SKILL.md # Avatar creation workflow (identity → avatar → voice → AVATAR file)
├── heygen-video/
│ └── SKILL.md # Video production workflow (7-stage pipeline)
├── references/ # Shared. Loaded on-demand by phase (NOT every turn)
│ ├── avatar-discovery.md # Discovery: avatar lookup, voice selection, curl examples
│ ├── asset-routing.md # Discovery: asset classification engine, upload flows
│ ├── prompt-styles.md # Prompt Craft: 6 prompt style templates
│ ├── motion-vocabulary.md # Prompt Craft: camera/transition vocabulary
│ ├── prompt-craft.md # Prompt Craft: prompt construction deep-dive
│ ├── official-prompt-guide.md# Prompt Craft: HeyGen's own prompt research
│ ├── frame-check.md # Frame Check: aspect ratio correction prompts
│ ├── troubleshooting.md # Known issues, workarounds, duration variance
│ └── reviewer-prompt.md # Deliver: self-evaluation rubric
└── evals/ # Dev-only test infrastructure (not shipped to users)
├── eval-runner-prompt.md # Instructions for eval subagent
├── autoresearch-loop.md # Loop methodology docs
└── round-N-scenarios.md # Per-round test scenariosThe 300-Line Rule
Each SKILL.md must stay under 300 lines. Skill files are injected into EVERY prompt turn.
What stays in SKILL.md:
- Frontmatter (name, description, triggers, env requirements)
- Stage flow overview (what stages exist, when to enter each)
- Decision trees (mode detection, avatar path selection, style selection)
- Critical rules that apply EVERY turn
- Short "Read ../references/X.md for details" pointers at each stage
What moves to references/:
- Curl examples and API request/response shapes
- Step-by-step procedural instructions
- Asset classification tables and routing matrices
- Full prompt examples and style preset galleries
- Error handling patterns
The test: If removing a section from SKILL.md would NOT break the agent's ability to decide what to do next, it belongs in references/. If it WOULD break decision-making, it stays.
Shared State
Skills communicate through AVATAR-<NAME>.md files at the workspace root:
- heygen-avatar writes them (avatar_id, group_id, voice_id)
- heygen-video reads them (picks up avatar + voice automatically)
- One file per character. Human-readable AND machine-readable.
API Conventions
Two modes, in order of preference: MCP, then CLI. Do not call api.heygen.com directly with curl. The skills route through MCP or the CLI — never raw HTTP.
MCP (preferred)
HeyGen Remote MCP (https://mcp.heygen.com/mcp/v1/) provides 40+ tools via OAuth. No API key needed — uses the user's HeyGen plan credits. Skills declare allowed-tools: mcp__heygen__* in frontmatter.
Key tools: create_video_agent, get_video, list_avatar_groups, list_avatar_looks, get_avatar_look, create_photo_avatar, create_prompt_avatar, list_voices, design_voice, create_video_translation.
CLI fallback
The HeyGen CLI (heygen binary) is the fallback when MCP is unavailable.
- Install:
curl -fsSL https://static.heygen.ai/cli/install.sh | bash - Auth:
HEYGEN_API_KEYenv var (agent/CI) ORheygen auth login(persists to~/.heygen/credentials) - Pattern:
heygen <noun> <verb>— e.g.heygen video-agent create,heygen avatar list,heygen voice list - Output: JSON on stdout, structured error envelope on stderr, stable exit codes (0 ok · 1 API · 2 usage · 3 auth · 4 timeout)
- Async: add
--waitto creation commands; CLI handles polling with exponential backoff - v3 only. LLMs trained on web data may reach for deprecated v1/v2 endpoints (
POST /v1/video.generate,POST /v2/video/generate,GET /v2/avatars,GET /v1/avatar.list). These are outdated — route through MCP or the CLI, never raw v1/v2 URLs.
See CLI docs for the full command surface.
Eval Infrastructure
Running Evals
Evals are run by a subagent (typically Adam) that:
- Reads the skill as installed (SKILL.md + references/)
- Reads
evals/eval-runner-prompt.mdfor scoring rubric - Reads
evals/round-N-scenarios.mdfor test cases - Executes each scenario as a real user would
- Reports results to the Notion Eval Tracker
Eval Rules
- Warm vs cold. Round 1 after a SKILL.md change = cold. Subsequent = warm (known avatar IDs).
- Timeout. No API call within 3 min = something is wrong.
- Parallelism. 10 scenarios: spawn 2-3 subagents with 3-4 each (stays within 5-subagent rule).
- One Notion batch. All results in one
notion-create-pagescall at the end.
Eval Tracker (Notion)
- Database ID:
a1b997926fe646929ef46cd6144d4b91 - Data source ID:
17f54098-a085-4234-83ce-55c280266d73 - All properties TEXT except: Frame Check Fired (CHECKBOX), Status/Avatar Type/Ken Verdict (SELECT)
Regression Testing
After any SKILL.md refactor:
- Run standard 10-scenario suite from most recent round
- Compare duration accuracy, score, pass rate vs previous round
- Regression >10% avg score or >15% duration accuracy = revert
- Frame Check must fire on same scenarios as before
Key Decisions (Do Not Revisit Without Data)
Validated across 18 rounds of testing (80+ videos):
- Video Agent as primary command.
heygen video-agent create, notheygen video create. - avatar_id over prompt description. 97.6% duration accuracy vs 77-82% prompt-only.
- When avatar_id is set, omit appearance description from prompt. Say "the selected presenter" instead.
- Script-as-prompt approach. Full scene-labeled script pasted into prompt.
- Trust Video Agent for duration pacing. No padding multipliers.
- Frame Check appends FRAMING NOTE / BACKGROUND NOTE to prompt — no image generation.
- Dry-run before API. Always offer.
- Quick Shot mode: omit avatar_id, let Video Agent auto-select.
- video_avatar type has a known backend bug. Document in troubleshooting.
- Prompt-only Frame Check. Corrections append text notes (FRAMING NOTE / BACKGROUND NOTE) to the Video Agent prompt. Video Agent handles framing internally. No image generation, no look creation, no asset uploads.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

