When you want to create, adapt, or update a Claude Code skill in one of your sibling repos (list your own repos in ~/.config/makerskills/skillify/repos.yaml; defaults to makerskills). Routes to the right mode automatically. Modes — CREATE (from-chat / from-video / from-dump / from-scratch) turns a workflow, brief, recording, or fresh idea into a new skill. ADAPT ports an external skill (GitHub URL, agentskills.io, local disk) into your namespace with three-bucket classification (keep/adapt/add) + license check + attribution. UPDATE improves existing skills from learnings with cross-skill propagation, memory-vs-skill triage, and semver discipline. Defers to Anthropic's guidance (compound-engineering:create-agent-skill, compound-engineering:skill-creator, compound-engineering:heal-skill) for schema and best-practice depth. Triggers on "/skillify," "create a skill," "make this a skill," "skill from this chat," "extract a skill from what we've been doing," "adapt this skill," "port this skill," "fork this skill," "borrow this skill," "update X skill," "apply this to the relevant skills," "propagate this learning," "improve [skill]," "fix [skill]," "iterate on [skill]." Part of the -ify trifecta (skillify / toolify / loopify) for extending Claude Code.
npx skills add https://github.com/coreyhaines31/makerskills --skill skillify
One skill, three modes. Routes automatically to the right one based on input signal.
Consolidates and replaces the prior create-skill, adapt-skill, and update-skill (all merged as of v0.2.0 for vocabulary-moat consistency with the -ify trifecta).
Route by signal:
| Signal | Mode |
|---|---|
| Invoked mid-conversation with substantive recent workflow discussion | CREATE / from-chat (default) |
| /skillify from-video <url> OR /skillify + a video URL | CREATE / from-video |
| /skillify from-dump + pasted brief/transcript/notes | CREATE / from-dump |
| /skillify from-scratch <name> OR "make a new skill called X" with no context | CREATE / from-scratch |
| /skillify <github-url> OR "adapt this skill" / "port this skill" / "fork this skill" + external source | ADAPT |
| /skillify <existing-skill> <change> OR "update X skill" / "propagate this learning" | UPDATE / targeted |
| /skillify update (mid-conversation) | UPDATE / from-chat — scan recent chat for learnings |
| /skillify usage <skill> | UPDATE / usage — review recent runs, suggest improvements |
If ambiguous, ask before proceeding. Never guess between CREATE and ADAPT if there's an external URL involved.
Build a new skill from chat / video / dump / scratch.
| Sub-mode | What |
|---|---|
| from-chat (default) | Extract the skill from the workflow discussed in this conversation. Most common case. |
| from-video | User recorded a Loom / Zoom / screen-share. Calls watch-video in visual mode → transcript + key visual moments → SKILL.md. Best for visual/UI-heavy workflows. |
| from-dump | User pastes a brief, prior conversation transcript, exported chat, or notes. |
| from-scratch | Fresh idea with no source material — interactive Q&A. |
Don't reinvent SKILL.md format rules. For frontmatter, description-writing, references/ structure, and skill best practices:
compound-engineering:create-agent-skill (agent) — expert guidance for creating + editing Claude Code skillscompound-engineering:skill-creator (skill) — deeper guide for effective skillscompound-engineering:heal-skill (skill) — for fixing existing skillsCall those directly when in doubt about format. skillify orchestrates *your* workflow — which repo, which conventions, which cross-references. Format expertise lives upstream.
Load the user's sibling repo list from ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/skillify/repos.yaml if present. Otherwise default to makerskills (this repo). Example format:
# ~/.config/makerskills/skillify/repos.yaml
repos:
- name: makerskills
domain: Personal cross-cutting operator work
path: ~/code/makerskills
- name: marketingskills
domain: Generic marketing tactics
path: ~/code/marketingskills
Infer target if obvious from the skill's domain; ask if ambiguous.
from-chat:
from-dump:
from-video:
watch-video <url> visual — get transcript + key visual moments + summary.<workdir>/transcript.txt, <workdir>/moments.md, <workdir>/summary.md.second-brain as call-<slug>.md or note-<slug>.md.Heuristic: recording >10 minutes = process probably too big for one skill. Suggest splitting before drafting.
from-scratch:
Interactive Q&A:
watch-video, read-book, paste)---
name: <kebab-case>
description: <rich, trigger-rich, ~2–4 sentences. Lead with "When you want to..." Include 4–8 trigger phrases in quotes. Differentiate from adjacent skills.>
metadata:
version: 0.1.0
---
Description rules (load-bearing — Claude routes by description match):
For deeper description-writing guidance, consult compound-engineering:skill-creator.
<target-repo>/skills/<name>/
├── SKILL.md
└── references/
└── ...
Body follows existing skills' pattern (pm, decide, second-brain):
# /<name> — <one-line purpose>## Step N — <phase> sectionsAppend to target repo's README skill table:
| [`<name>`](./skills/<name>/SKILL.md) | <one-line purpose> |
Commit + push. Report new skill path, commit hash, and reminder that /plugin install or symlink may need a refresh.
compound-engineering:heal-skill for a quality pass?"*Port an external skill (GitHub URL, agentskills.io, local disk, or pasted SKILL.md) into your namespace.
Accept:
https://github.com/<owner>/<repo> or full path to SKILL.md)~/.claude/plugins/)# GitHub repo: clone shallow
git clone --depth 1 <url> /tmp/skillify-adapt-<short-id>/
# OR fetch a single file
gh api -H "Accept: application/vnd.github.raw" repos/<owner>/<repo>/contents/SKILL.md > /tmp/adapt-source.md
Capture the commit SHA so attribution can point at a stable revision.
Read source SKILL.md + any references/ it ships. Classify into three buckets per references/adapt-buckets.md:
| Bucket | What | Example |
|---|---|---|
| Keep verbatim | Format, schema, mechanic, scripts, frameworks | Question banks, ffmpeg flags, regex patterns, JSON schemas |
| Adapt | Tool defaults, paths, voice, naming, opinions | Their video tool → your watch-video, their kanban → your pm, their voice → your voice |
| Add | Cross-references to your existing skills, composition notes, your conventions | "Composes with decide," "Saves to second-brain raw/," "Uses MLX-Whisper local" |
Output classification as a table for approval before writing anything. Don't silently rewrite — surface the changes.
Read the source's LICENSE. Per references/adapt-license-check.md:
| License | Action |
|---|---|
| MIT / Apache-2.0 / BSD / ISC / CC0 | ✅ Green — proceed |
| MPL-2.0 / LGPL | 🟡 Yellow — adapt OK; warn about file-level reciprocity |
| GPL-2.0 / GPL-3.0 / AGPL | ❌ Red — contagion risk. Surface before proceeding. |
| Proprietary / no license | ❌ Red — stop. No legal basis to copy. |
| Unclear | 🟡 Yellow — ask, default to skip if uncertain |
For permissive licenses, attribution is the only requirement — handled in Step 6.
Same table as CREATE Step 3.
Keep verbatim: copy as-is; add <!-- from <source> --> marker if helpful.
Adapt:
watch-video, read-book, paste)pm, their video tool → watch-video, their note system → second-brain, their decision framework → decide~/outputs/ → your ~/Documents/<skill>-<...>/ convention; their config → your references/ patternAdd:
Write references/attribution.md:
# Attribution
- **Source**: <original SKILL.md URL>
- **Repository**: <repo URL>
- **Author**: <name + handle>
- **Commit SHA**: <SHA at time of adapt>
- **License**: <license name + URL>
- **Adapted**: <YYYY-MM-DD>
## What was kept verbatim
- ...
## What was adapted
- <old> → <new>
## What was added
- ...
## License compliance
<upstream LICENSE text if MIT/BSD/Apache requires it, OR reference where in this repo it lives>
## Upgrade path
Run `git ls-remote <repo-url> HEAD`. If SHA differs from above, re-run `/skillify <same-url>` for a 3-way merge.
For MIT / Apache / BSD, LICENSE text either gets copied into this file or the source LICENSE file gets copied to the skill dir.
Same as CREATE Steps 6–7. Commit message: "Adapt <name> skill from <source-name>".
compound-engineering:heal-skill for a QA pass?"*loopify?"*Improve existing skill(s) from learnings.
| Sub-mode | When |
|---|---|
| from-chat (default) | Scan recent conversation for learnings, identify affected skill(s) |
| from-dump | User provides a brief, feedback, transcript, postmortem |
| targeted | User names the skill + change directly. Skip discovery. |
| usage | Review recent runs of the named skill, identify gaps |
Default when invoked mid-conversation with substantive recent activity: from-chat.
For from-chat / from-dump / usage: look for change-worthy signals (full taxonomy in references/update-change-types.md):
Output: a clear list of *N learnings*, each phrased as a single change.
For targeted: skip extraction — user already named the change.
For each learning, search across all SKILL.md + references/ in the current repo (and optionally all sibling repos from your repos.yaml with --cross-repo):
grep -rln "<key terms>" ~/code/makerskills/skills/ --include="*.md"
# Across all sibling repos (list yours in $MAKERSKILLS_CONFIG/skillify/repos.yaml):
config="${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/skillify/repos.yaml"
for raw in $(yq -r '.repos[].path' "$config"); do
repo="${raw/#\~/$HOME}" # expand leading ~ to $HOME so grep resolves the real path
grep -rln "<terms>" "$repo/skills/" --include="*.md" 2>/dev/null
done
Classify by confidence:
| Confidence | What | Action |
|---|---|---|
| High | Direct keyword match + clearly same topic | Propose change |
| Medium | Adjacent topic — rule *might* apply | Surface for explicit approval |
| Low | Tangential — rule could be stretched | Mention but don't propose |
See references/update-propagation.md for the cross-skill propagation playbook.
For each learning: is this skill-specific or a broader principle?
| Type | Where it goes |
|---|---|
| Skill-specific rule | Edit the SKILL.md / references file directly |
| Cross-cutting principle | ~/.claude/memory/feedback_<topic>.md |
| Both | Write the memory file AND update the skill(s) that immediately apply |
Example: *"links go in first comments, not body"* → applies to jab-hook AND is a broader social principle → both update jab-hook AND save feedback_social_link_placement.md.
Offer the memory write explicitly: *"This looks like a principle, not just a skill rule. Save to memory as feedback_<slug>.md?"*
For each affected file, show change as before/after or unified diff:
### `skills/<skill>/SKILL.md` — proposed change
**Before** (lines NN–NN):
> <existing text>
**After**:
> <new text>
**Why**: <one-line rationale>
**Version bump**: 0.2.0 → 0.2.1 (PATCH — clarification)
**Approve / edit / skip?**
Per-file approval. Don't batch — small changes are easy to OK; bundling forces all-or-nothing.
See references/update-versioning.md for semver rules.
Edit to apply the exact changemetadata.version per the suggested levelBatch multiple file changes within one skill into a single commit.
Group by skill. Examples:
"slide-deck: emphasize spoken-aloud voice (write for the ear, not the page)""jab-hook, marketingskills:social: link placement (no inline URLs)"Show:
compound-engineering:heal-skill would be a useful QA passDon't add ceremony to surgical edits. If the user says "add this one bullet to X.md," just Edit. UPDATE mode earns its keep when:
For one-line updates with no cross-skill implications: just Edit.
watch-video — load-bearing for CREATE / from-video. Visual-mode output (transcript + key visual moments + summary) is the input for skill synthesis. Always call in visual mode for process recordings — UI state matters as much as words.second-brain — optionally capture source video/dump as raw/call-<slug>.md or raw/note-<slug>.md so the source artifact lives alongside the skill it produced.toolify — sibling in the -ify trifecta. Use toolify when the goal is adding an integration/MCP/API, not authoring a skill.loopify — sibling in the -ify trifecta. Use loopify for agent-loop setup rather than a skill.compound-engineering:create-agent-skill (agent) — call for format and best-practices expertisecompound-engineering:skill-creator (skill) — deeper best-practices referencecompound-engineering:heal-skill (skill) — QA pass after any modewatch-video, read-book, paste). Single-word noun names are fine for distinctive concepts (decide, pm, paste, skillify).references/attribution.md.agent-im 会话技能 - 通过 liblib.tv 的 AI 能力生成和编辑图片/视频。覆盖场景包括:生成(文生图、文生视频、图生视频、做动画、画一个xxx、来段xxx)、编辑修改(把xxx换成yyy、去掉xxx、加上xxx、改成xxx、调整xxx、局部修改、改镜头)、风格转换(风格迁移、转绘、换风格)、视频续写延长、复刻视频/TVC/宣传片、短剧/短漫剧生成、音乐MV生成、产品广告/展示片制作、分镜/故事板设计、教育视频/短视频制作。当用户提到 liblib、libtv、上传参考图/视频、查看生成进度时也应触发。关键判断:只要用户的请求涉及 AI 图片或视频的创作、生成、编辑、修改,无论措辞如何(如"画只猫"、"做个海报"、"把纸船换成爱心"、"这个视频帮我改一下"、"帮我复刻这段视频"、"用这首歌做个MV"、"一句话生成短剧"),都必须触发此技能。
This skill should be used when the user asks to "generate video prompts", "create Seedance prompts", "write video descriptions", mentions "Seedance", "seedance", "即梦", "即梦平台", "视频提示词", "视频生成", "AI视频", "短剧", "广告视频", "视频延长", or discusses video prompt engineering, AI video generation, or Seedance 2.0 workflows.
Best practices and techniques for writing effective AI video generation prompts. Covers: Veo, Seedance, Wan, Grok, Kling, Runway, Pika, Sora prompting strategies. Learn: shot types, camera movements, lighting, pacing, style keywords, negative prompts. Use for: improving video quality, getting consistent results, professional video prompts. Triggers: video prompt, how to prompt video, veo prompts, video generation tips, better ai video, video prompt engineering, video prompt guide, video prompt template, ai video tips, video prompt best practices, video prompt examples, cinematography prompts
This skill is a practical, 'use-it-while-debugging' reference for getting a LiveKit + Letta voice agent working reliably.
Download screenshot baselines from the latest CI run and commit them. Use when asked to update, accept, or refresh component screenshot baselines from CI, or after the screenshot-test GitHub Action reports differences. This skill should be run as a subagent.
| Turn vague taste, screenshots, URLs, product notes, or "make it feel like this" references into a grounded DESIGN.md plus an implementation handoff. Use it before prototypes, decks, redesigns, or image remix work when the user needs a reusable visual direction rather than a one-off prompt.
>- Upload local assets (images, mockups, extracted HTML, design markdown) to a Stitch project. ALWAYS use this skill when you need to upload visual assets, HTML pages, or design docs to Stitch, particularly when direct MCP tool calls fail or truncate due to base64 token limits.
This skill helps users automatically extract channel-level and video detail data from a specific YouTube channel via BrowserAct API. Agent should proactively apply this skill when users express needs like extracting channel video data, getting latest or popular videos from a YouTube channel, tracking competitor channel content, extracting video metrics such as views likes comments, retrieving subscriber count and channel info, monitoring posting cadence of a YouTube channel, gathering video data for content strategy analysis, getting earliest videos of a YouTube creator, analyzing engagement signals across a full channel, and downloading structured YouTube video details without manual scraping.
Take coreyhaines31/skillify from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.