skill-creator
The skill-creator enables users to design, build, test, and deploy reusable AI skills through a structured workflow of intent capture, planning, implementation, evaluation, and optimization. Use this skill when users request skill creation from scratch, modification of existing skills, performance testing via evals, skill packaging, or skill library uploads, or when they ask to formalize a workflow as a reusable skill.
git clone --depth 1 https://github.com/dtyq/magic /tmp/skill-creator && cp -r /tmp/skill-creator/backend/super-magic/agents/skills/skill-creator ~/.claude/skills/skill-creatorSKILL.md
# Skill Creator
Helps users design, build, evaluate, and persist Skills. Your core job is not "doing the task" but "teaching AI how to do a class of tasks".
High-level workflow: Capture Intent → Interview → Plan (write `<skill>_plan.md` + show in chat, wait for confirm) → **Check Conflicts** → Write SKILL.md → Test → Iterate → Optimize → Package.
Assess where the user is and jump in from there.
---
## Language Awareness
- Always use the language the user is currently speaking in, unless the user explicitly requests a different language
- Generate skill content (SKILL.md body, comments, examples) in the same language as the current conversation
- Default to single-language skill content. If the user explicitly requests multiple languages, write ordinary multilingual sections and do not use HTML comment annotations in SKILL.md.
- Keep `description` in English (triggering relies on English semantics)
---
## Tool Call Format in SKILL.md
Tools in SKILL.md fall into two categories with different formats:
1. **Tools listed in `references/system-tools.md`**: These run inside Python code snippets (via `run_sdk_snippet`) and must be shown as Python code:
```python
from sdk.tool import tool
result = tool.call('tool_name', {
"param1": "value1",
"param2": "value2"
})
if result.ok and result.data:
output = result.data['field_name']
```
2. **Basic tools** (e.g. `read_files`, `read_skills`, `shell_exec`, `run_python_snippet`): Call them directly, no need to wrap in Python code:
```
read_files(files=[{"file_path": "path/to/file.md"}])
```
Before specifying tools in the skill, read the reference file `references/system-tools.md` for the full list of available tools and usage examples.
Common tool categories — quick reference (see `references/system-tools.md` for details and examples):
- Web search & fetch: `web_search`, `read_webpages_as_markdown`; external file downloads use the `download` skill with `run_sdk_snippet`
- Vision: `visual_understanding`, `visual_understanding_webpage`, `video_understanding`
- Code execution: `shell_exec`, `run_python_snippet`
- Image generation & search: `generate_images`, `image_search`
---
## Full Skill Creation Workflow
### Phase 1: Capture Intent
Understand what the user wants. If the conversation already contains a workflow (e.g., "turn this into a skill"), extract from history: tools used, step sequence, corrections made, input/output formats.
Then confirm:
1. What should this skill enable AI to do?
2. When should it trigger? (what user phrases/contexts)
3. **What is the final output form?** (see "Output Form Decision" below — must be decided here)
4. Should we set up test cases?
### Output Form Decision (Required in Capture Intent Phase)
This is critical for high-quality skills. Determine the output form and write it explicitly into the generated SKILL.md.
| Scenario | Recommended Output Form |
|---------|------------|
| Multi-section content: itineraries, reports, analysis | Write file (Markdown / HTML) |
| Charts, visualizations | Write HTML file (ECharts) |
| Multiple generated resources | Write files to a dedicated directory |
| Short reply, status confirmation | Direct conversation output |
| User explicitly says "just tell me" | Direct conversation output |
Example: a "travel planning skill" should clearly produce an HTML itinerary report, not dump text into the chat.
Ask and confirm during the interview, then write an explicit "Output Spec" section in the generated SKILL.md.
```markdown
## Output Spec
The final output of this skill is an HTML itinerary report saved to `.workspace/<project_name>/itinerary.html`.
Do not output content directly into the conversation, even if it is short.
```
---
### Phase 2: Interview & Research
Proactively ask about edge cases, input/output formats, example files, success criteria, dependencies.
Use `web_search` and `read_webpages_as_markdown` to research best practices and API docs.
Wait until the interview is done before writing test cases.
**Note**: This environment has no browser, but `web_search` and `read_webpages_as_markdown` are available.
Use them to research best practices, tool docs, and description patterns for similar skills.
---
### Phase 3: Output Plan Document
After the interview, write the plan to `<workspace-skills-dir>/<skill-name>_plan.md` (at the root of `<workspace-skills-dir>/`, not inside the skill subdirectory — this avoids pre-creating the skill directory). Also present the plan in chat for the user to read.
Plan document contents:
- Skill scope and boundaries (what it can/cannot do)
- Tool list with selection rationale (with code format examples)
- Expected SKILL.md structure outline
- Whether `scripts/`, `references/`, `assets/` subdirectories are needed
- Final output form (from Phase 1 decision)
- Evaluation plan (test prompts, expected outputs)
**Wait for user confirmation before proceeding to Phase 4.**
---
### Phase 4: Check Conflicts and Write Files
After user confirms the plan, **check for name conflicts first**, then create files.
**Conflict check** — look at the `<available_skills>` block already in the system prompt to see if a skill with the same name already exists. No tool call or shell command is needed for this step.
**Conflict rules:**
- Same name is a built-in skill (system level, `can_override: false`): **Cannot overwrite**.
- Ask the user to pick a **new** name, re-confirm, then write to `skills/<new-name>/`.
- Same name already exists at `<workspace-skills-dir>/<name>/`: Ask user for confirmation.
- If confirmed: delete the entire directory first, then recreate from scratch (do not edit in place).
- No conflict: proceed to write files directly.
**Writing SKILL.md:**
SKILL.md **must** start with YAML frontmatter — the packaging validator rejects files without it.
```markdown
---
name: skill_name
description: "One sentence on what this skill does. Use when [specific trigger conditions — what the user is trying to accomplishQuery the list of all agents (employees) available to the current user. Use when generating code that requires a real agentId, or when the user asks "which agents/employees do I have".
|
Migrate existing antd-style CSS-in-JS (createStyles) components to Tailwind CSS utility classes with full dark mode support, following the project's style system transition strategy. Use when the user asks to migrate, convert, or rewrite antd-style components to Tailwind, or when working on new components in files that already use antd-style.
Open and operate webpages in a real browser: navigate, read rendered content, inspect interactive elements, click, type, submit forms, press keys, select options, check boxes, hover, scroll, upload files, wait for page changes, manage pages, take and save screenshots, analyze visual layout, and inspect page errors and network activity.
Core canvas design skill covering project management, multimedia principles, AI image generation, web image search, and design marker processing. Load for any canvas design task. CRITICAL - When user message contains [@design_canvas_project:...] or [@design_marker:...] mentions, or when the user wants to generate video/animation/clip on a canvas project, you MUST load this skill first before any operations.
Use when details may have been lost after context compaction, or when the Agent needs to inspect earlier compacted messages or previously created sub-agents.
Manage persistence for user-installed third-party CLI tools in the Super Magic sandbox. Use when the user wants to install, configure, adopt, restore, inspect, or remove a CLI, or when an external skill, webpage, or installer asks to run CLI install commands such as curl|sh, npm install -g, pipx install, uv tool install, go install, cargo install, or brew install. Do not persist runtime-provided CLIs.
Expert code review of current git changes with a senior engineer lens. Detects SOLID violations, security risks, and proposes actionable improvements.