| name | skill-creator |
| description | Create new Skills, modify existing Skills, save the current conversation workflow
as a reusable Skill, guide users to install Skills from the marketplace,
and understand directory structure.
Trigger words: create skill, modify skill, save as skill, save this,
turn into a skill, solidify workflow, remember this approach, want to do this again,
install skill, download skill, skill marketplace, manage skill,
create skill, save as skill, turn this into a skill,
make this reusable, update skill, install skill, setup skill.
Also trigger when the user reviews a completed creative output and expresses intent
to repeat the same process with different inputs.
|
| guide-prompt | 帮我使用它来创建一个新的技能。首先询问我这个技能应该做什么。 |
| guide-prompt-en | Help me use it to create a new skill. First ask me what this skill should do. |
Skill Creator & Manager
Create, modify, install, and manage Skills. This application has one orchestrator (media-agent)
and multiple sub-agents: image, video, audio, editing.
Most Skills coordinate these agents to produce creative outputs.
Directory Structure
| Directory | Purpose | Managed By |
|---|
~/.hub/skills/ | Market-installed Skills | Automatically managed by the app; do not modify manually |
~/Movies/Hub/skills/ | User-created/edited Skills | Full user control |
The user directory has higher priority: when Skills share the same name, the user directory version takes effect.
Installing Skills from the Marketplace
Guide users through the in-app Skill Plaza page:
- Open the app → go to the "Skill Plaza" page
- Browse available Skills in the Market tab
- Click the "Install" button
- Enable the Skill in the Skill list after installation
Installed Skills are stored in ~/.hub/skills/, managed by the app, with automatic updates.
Skill Creation Workflow
1. Capture Intent -- Understand the workflow
2. Write SKILL.md -- Author the Skill
3. Review & Iterate -- User feedback loop
4. Validate -- Trigger tests + workflow walkthrough
5. Save & Reload -- Save to user directory + trigger reload
6. Iterate (optional) -- Improve based on actual usage
Three Usage Scenarios
Scenario A: Save Current Conversation Workflow
A workflow has already been completed in the conversation, and the user wants to solidify it as a Skill for reuse.
→ Extract the workflow from conversation history, proceed to STEP 1.
Scenario B: Create a New Skill from Scratch
The user has an idea but hasn't executed it yet, and wants to create a Skill directly.
→ Understand requirements through Q&A, proceed to STEP 1 (create-from-scratch branch).
Scenario C: Modify an Existing Skill
The user wants to adjust an existing Skill (change steps, parameters, trigger words, etc.).
→ Read the existing SKILL.md, understand modification intent, jump directly to STEP 2.
What's Worth Saving as a Skill
Not every workflow is worth saving. Recommend saving only when at least two of the following apply:
- Complexity: More than 3 steps, involves multiple agents, or has branching logic
- Reusability: The user may repeat the same process with different inputs
- Tacit knowledge: Contains non-obvious techniques — model selection, parameter tuning, failure recovery strategies, creative techniques
- Error correction history: The user made corrections during the process that apply to future executions
If the workflow is a simple one-off operation (e.g., "generate one image"), suggest the user just describe it again next time.
STEP 1: Capture Intent
Scenario A: Extract from Conversation History
The conversation likely already contains the complete workflow. Extract from conversation history first; don't ask questions that already have answers.
Obtaining Conversation History
If the current context doesn't contain the complete workflow (it happened in a previous session),
use the agent's own conversation history capability to query previous session records.
Skill Nesting: Skills cannot nest-call other Skills. If the conversation history contains Skill invocations,
directly read the referenced Skill's SKILL.md to understand what it did — don't attempt to re-invoke it.
Extract from Conversation History:
- What happened: Which capabilities were used, in what order
- Media flow: Input (audio, images, text) → intermediate artifacts → final output
- Creative purpose: Core intent
- Key decisions the user made: Model selection, parameter adjustments, style direction
- Where things went wrong and were corrected: Failures, retries, parameter changes — these are the most valuable knowledge
- What the user didn't change: Default values working correctly is also information, indicating these parameters can remain flexible
Confirm Understanding
"Here's what I extracted from the conversation: [summary]. Is this correct?"
If the user corrects or provides their own description, defer to the user's version.
Scenario B: Create from Scratch
If there's no existing workflow, understand requirements through Q&A:
- What are the inputs? What's the final output?
- Rough sequence of steps?
- Any specific model or technical requirements?
- Any constraints (aspect ratio, duration, resolution, style consistency)?
- What's the hardest part — where does the agent tend to make mistakes?
Scenario C: Modify an Existing Skill
- Read the target Skill's SKILL.md
- Understand what the user wants to modify
- Jump directly to STEP 2 to make modifications
STEP 2: Write the SKILL.md
Directory Structure
skill-name/
├── SKILL.md (required — Skill definition: name + description + system prompt)
├── meta.yaml (required — display metadata: display-name-zh / version / tag / summary / desc)
├── scripts/ (optional — reusable scripts)
└── references/ (optional — reference docs loaded on demand)
Three-Layer Loading Mechanism
- Metadata (name + description) — always in agent context, used for trigger matching
- SKILL.md body — loaded after Skill is triggered, keep under 500 lines
- Attached resources — loaded on demand. Large docs go in
references/, executable scripts in scripts/
SKILL.md Frontmatter
SKILL.md only retains fields essential for agent runtime:
---
name: my-skill
description: |
Detailed description, first line is the summary.
Includes trigger words for agent matching.
Trigger words: keyword1, keyword2.
trigger-words: [keyword1, keyword2, keyword3, keyword4]
---
| Field | Required | Description |
|---|
name | ✅ | kebab-case, matches directory name |
description | ✅ | Detailed description + trigger words (200-500 characters) |
trigger-words | Optional | Trigger word list |
allowed-tools | Optional | Required MCP tool names |
Description Writing Guidelines
- Length: 200-500 characters
- Tone: Describe user intent, not implementation details
- Coverage: Include multiple phrasings (formal/colloquial/bilingual)
- Boundaries: Add brief disambiguation when similar Skills could be confused
- Anti-pattern: Don't write implementation steps in the description
meta.yaml
Display metadata goes in a separate meta.yaml:
display-name-zh: My Skill
version: 0.1.0
tag-en: "Visual Production / Image Generation"
tag-cn: "视觉创作 / 图像生成"
summary-en: "English UI summary, up to thirty words"
summary-cn: "中文摘要,不超过二十五个汉字"
desc-en: "English detailed description, 50-80 words..."
desc-cn: "中文详细描述,80-150 个汉字..."
| Field | Required | Description |
|---|
display-name-zh | ✅ | Chinese display name (≤10 characters) |
version | ✅ | Semantic version MAJOR.MINOR.PATCH |
tag-en | ✅ | English category tag, format "Domain / Stage" |
tag-cn | ✅ | Chinese category tag, format "Domain / Stage" |
summary-en | ✅ | English UI summary (≤30 English words) |
summary-cn | ✅ | Chinese UI summary (≤25 Chinese characters) |
desc-en | ✅ | English detailed description (50-80 English words) |
desc-cn | ✅ | Chinese detailed description (80-150 Chinese characters) |
Tags must be within a closed enum. Domains: Advertising / E-Commerce / Short Drama / Music Video / Documentary / Audio Content / Visual Production. Stages: Idea & Concept / Script Writing / Image Generation / Video Generation / Audio Generation / Post-Production / Prompt Engineering. Special: Platform Tooling (no stage).
Body Structure
# Skill Name — Title
- Introduction paragraph — when to use, what media types are involved
- Step-by-step —
## STEP N: Step Name
Use references/SKILL-TEMPLATE.md as a starting template.
Writing Principles
Describe Tasks, Not Routing
- Good: "Generate a 16:9 protagonist portrait — young woman in red dress, cinematic lighting"
- Bad: "Call image agent, use nano_banana model to generate..."
Only Mention Models When the User Explicitly Specifies
If the user says "use Kling for video generation," record it. Don't hardcode default values that the agent selects automatically.
Explain the Reasoning Behind Constraints
- Good: "Remove the audio track from lip-sync clips before final compositing, because the compositing step adds the original song and duplicate tracks cause audio overlap"
- Bad: "Must use the
-an flag"
Capture the Creative Process, Not Implementation Details
- Good: "Analyze the music's emotional shifts, rhythm transitions, and vocal sections"
- Bad: "Call
read_media, set the question parameter to..."
Batch Process, Don't Alternate
- Good: "Generate all scene images at once, then generate all videos at once"
- Bad: "For each segment: generate image first, then video, then move to the next"
Add User Confirmation at Creative Decision Points
Add confirmation steps before high-cost operations (video generation, final compositing). Don't confirm at every small step.
Encode User Error Corrections, Not Just the Happy Path
Retries and corrections are the most valuable knowledge.
Generalize from the Specific
- Good: "Analyze audio to determine section boundaries" (generic)
- Bad: "Split at 0:45, 1:30, 2:15" (file-specific)
All Outputs Go to the Session Project Directory
Don't hardcode output paths. Use file paths returned by tools for subsequent operations.
Keep Body Under 500 Lines
Move excess content to references/, extract executable patterns to scripts/.
STEP 3: Review & Iterate
Present the complete SKILL.md to the user:
"Here's the Skill I've written — anything you'd like to adjust?"
Common modifications: adjust step order, change model selection, tune parameter flexibility, add edge case handling, change trigger words, remove overly specific instructions.
STEP 4: Validate
4a: Trigger Test
- Write 6 test queries — 3 that should trigger, 3 that should not
- Self-test: Looking only at name and description, ask yourself "would this trigger?"
- Show the user: Present test queries and expected results
4b: Workflow Walkthrough
Using a hypothetical scenario different from the original conversation, walk through step by step:
STEP 5: Save & Reload
After user confirmation, save to the user Skill directory:
1. Create Directory and Write Files
mkdir -p ~/Movies/Hub/skills/<skill-name>
Save SKILL.md to ~/Movies/Hub/skills/<skill-name>/SKILL.md.
Save meta.yaml to ~/Movies/Hub/skills/<skill-name>/meta.yaml.
If there are references or scripts, create corresponding subdirectories.
2. Verify Reference Integrity
After saving, confirm all files referenced in SKILL.md exist:
grep -oE '(references|scripts)/[^\s`"]+' ~/Movies/Hub/skills/<skill-name>/SKILL.md | \
while read f; do
[ -f ~/Movies/Hub/skills/<skill-name>/"$f" ] || echo "MISSING: $f"
done
3. Trigger Skill Reload
After saving, call hub_reload_skills to trigger a reload of the Skill list.
If there's an active session, the user will see a notification bar prompting to confirm restart; if there's no active session, the reload completes silently.
4. Inform the User
- Skill has been saved to
~/Movies/Hub/skills/<skill-name>/
- Reload has been triggered; the new Skill is available in the current or next session
- List the 3 trigger test queries from Step 4a as examples
STEP 6: Iterate & Improve (Optional)
The first version of a Skill is rarely the best. Come back to improve after actual usage.
Observation Signals
| Signal | Meaning | Fix |
|---|
| Agent doesn't trigger the Skill | Description is missing the user's phrasing | Expand trigger words |
| Triggers but executes poorly | Instructions unclear or ambiguous | Clarify steps, add examples |
| Triggers when it shouldn't | Description too broad | Add boundary descriptions |
| Agent writes similar scripts each time | Repeated work not packaged | Extract to scripts/ |
| User always modifies the same step | Constraints too loose | Add explicit guidance with reasoning |
| Agent does unnecessary work | Instructions cause wasted effort | Remove or simplify |
Improvement Process
- Collect evidence from 2-3 usage sessions
- Diagnose: trigger issue (description), execution issue (body), or missing resource?
- Targeted fix: only change what's broken
- Re-validate (run Step 4 checklist)
- After modification, also call
hub_reload_skills to trigger reload