MANDATORY tool for creating SKILLs - MUST be invoked IMMEDIATELY when user wants to create/add any skill. Do NOT use for editing existing skills or publishin...
---
name: "skill-creator"
slug: "skill-creator-ai"
displayName: "Skill Creator"
description: "MANDATORY tool for creating SKILLs - MUST be invoked IMMEDIATELY when user wants to create/add any skill. Do NOT use for editing existing skills or publishing to platforms."
version: "3.2.0"
license: "MIT-0"
summary: "Adaptive multi-round interview + self-validation pipeline for creating high-quality SKILLs that auto-trigger reliably."
allowed-tools: "Read, Write, Edit, Glob, Grep, LS, AskUserQuestion"
metadata:
openclaw:
skillKey: "skill-creator"
emoji: "🔨"
homepage: "https://github.com/EdwardWason/skill-creator"
os: ["windows", "macos", "linux"]
requires:
bins: []
env: []
primaryEnv: ""
envVars: []
always: false
---
# Skill Creator v3.2
Creates high-quality SKILLs that auto-trigger reliably and produce stable, structured output. v3.2 aligns with 5 撰写原则 + full frontmatter compliance (no more "医生不自医").
## When to Use
**CRITICAL: You MUST invoke this skill IMMEDIATELY as your FIRST action when:**
- User wants to create a new skill / add a custom skill / set up a skill template
- User asks "how to create a skill" / mentions creating/adding/making any skill
**DO NOT:**
- Just explain how to create a skill without invoking this tool
- Defer the skill creation to later steps
## 撰写原则(5 大原则,必读)
完整 5 大原则详见 [`references/authoring-principles.md`](references/authoring-principles.md) — 创建 Skill 前必读,作为"声明-行为一致性"的硬门控。
| 原则 | 一句话 | 创建期应用 |
|------|--------|-----------|
| 1. 声明-行为一致性 | name/description/metadata/行为四者对齐 | 写完 frontmatter 让人预测行为,对比正文 |
| 2. 权力比例适当 | 副作用强度 ≤ 用户预期 + 披露程度 | "格式转换"不要悄悄"推送" |
| 3. 最小权限 | allowed-tools 只列实际需要的工具 | 只读 Skill 不含 Write/Edit/Bash |
| 4. 渐进式披露 | SKILL.md ≤200 行,细节下沉 references/ | 5 分钟读完知道做什么 |
| 5. 用户知情 | 有副作用必须 README 警告 + 关闭方式 | 中英文同步 |
## SKILL Structure & Format
- **Directory**: `.trae/skills/<skill-name>/`,主入口 `SKILL.md`,可选 `references/`(keep SKILL.md lean)
- **frontmatter 字段**: name / description / version / license / allowed-tools / metadata.openclaw(见下方示例)
- **4-module body**: 任务 / 输出格式 / 规则 / 示例(外加可选 故障排除)
### SKILL.md Format (完整 frontmatter 示例)
```markdown
---
name: "<skill-name>"
slug: "<skill-name>-ai"
displayName: "<Skill Name>"
description: "<what it does + when to trigger + Do NOT scope. Core keywords in first 200 chars>"
version: "<MAJOR.MINOR.PATCH>"
license: "MIT-0"
summary: "<one-line summary>"
allowed-tools: "<Read, Write, Edit, ...>"
metadata:
openclaw:
skillKey: "<skill-name>"
emoji: "<emoji>"
homepage: "<https://github.com/...>"
os: ["windows", "macos", "linux"]
requires:
bins: []
env: []
primaryEnv: ""
envVars: []
always: false
---
# <Skill Title>
## 任务
<One sentence: only does X, does NOT do Y or Z>
## 输出格式
<Fixed output structure. Every field format must be concrete, never "organize clearly">
## 规则
<3-5 hard rules. Each must be directly actionable by an intern. Delete all defaults>
## 示例
<One complete input-output pair covering edge cases>
```
---
## Phase 0: Intent Recognition & Adaptive Interview
**Before writing anything, determine whether you have enough information to create a high-quality Skill.**
### Step 0.1: Element Check
Scan the current conversation context for these 5 essential elements:
| # | Element | How to judge it's ready |
|---|---------|------------------------|
| 1 | **Single scenario** | User said "only do X" or equivalent |
| 2 | **Trigger condition** | User described specific trigger scenarios |
| 3 | **Output format** | User gave format, template, or example |
| 4 | **Scope boundary** | User explicitly stated in-scope and out-of-scope |
| 5 | **Hard constraints** | User mentioned key constraints or edge cases |
**Decision**: ≥4 elements ready → Skip to Phase 1 (briefly confirm). <4 → Enter Adaptive Interview.
### Step 0.2: Adaptive Multi-Round Interview
**Goal**: Recursively narrow down intent through structured questions + behavioral probing + recursive search until all 5 elements are clear.
**Full methodology**: See [`references/interview-methods.md`](references/interview-methods.md). Summary below.
#### Interview Rules (apply EVERY round)
| Rule | Description |
|------|------------|
| **B1: Behavioral probing** | Ask "tell me about the last time you did X, step by step" — not "what do you want?" |
| **B2: Why × 1-2** | After each answer, ask "why?" or "then what?" 1-2 times until hitting concrete behavior |
| **B3: Bias detection** | Scan answers for "I should / I plan to / generally" → redirect to "what actually happened last time?" |
| **B4: Contradiction writeback** | If answers contradict, quote both and let user choose — never decide for them |
| **B5: Option-first** | Use AskUserQuestion with 3 strong options + Other |
| **B6: Creative option probe** | If user picks a creative/unusual option → ask "do you really want this, or just find it interesting?" |
#### Interview Rounds (one question per round, max 5 rounds)
| Round | Goal | Search depth |
|-------|------|-------------|
| R1 Scenario Discovery | What does it do? When? | Broad: `"<domain> best practices"` |
| R2 Behavioral Deep-Dive | Last time you did this? Pain points? | Deepen: `"<domain> <direction> 方法"` |
| R3 Boundary Lock | What it must NOT do? | Precision: `"<domain> <output> template"` |
| R4 Output Lock | Expected output? Quality criteria? | Verify (optional) |
| R5 Safety Net | Fill remaining gaps with AI-inferred completions | — |
**Convergence Check** (after each round): ≥4 elements clear → stop interviewing. **Hard limit**: 5 rounds max.
**Search rules**: Max 2 searches per round. Extract only actionable insights. Feed results into next round's question design. Don't dump raw search results into the Skill.
---
## Phase 1: Creation
### Step 1: Write Description FIRST
**Most important step.** Bad description = dead Skill.
**Format**: `"<What it does>. Invoke when <specific user actions/phrases>. Do NOT use for <exclusions>."`
**Truncation**: Core trigger keywords MUST be in first 200 chars. Tail gets cut at ~250.
| | Description | Why |
|---|---|---|
| BAD | "会议记录整理工具" | Vague. No trigger, no keywords. |
| BAD | "A tool that helps organize and summarize meeting notes, extract action items, and format them nicely for team review and follow-up tracking" | Too long, trigger buried. |
| GOOD | "Extracts action items, decisions, and pending questions from meeting transcripts. Invoke when user sends meeting notes, transcript, or asks to extract action items. Do NOT use for original writing or translation." | Function + trigger + Do NOT, keywords upfront. |
**Language**: Match user's context. Default English for mixed environments.
### Step 2: Write 4-module content
**任务**: Lock down boundary. State both DOES and DOES NOT. Use interview insights for precision.
**输出格式**: Fix output structure based on interview + search results. Every field must have concrete format. Never write vague instructions.
**规则**: 3-5 rules only. Must pass **Intern Test**: if an intern can't directly execute it, delete it.
Delete these useless rules (AI does them by default):
- "语言简洁" / "保持客观" / "排版整齐"
- "代码清晰" / "遵循最佳实践" / "注意可读性"
- "确保输出准确" / "仔细分析" / "全面考虑"
**示例**: One complete input-output pair. Input MUST cover edge cases identified during interview.
### Step 3: Create directory and file
```bash
mkdir -p .trae/skills/<skill-name>
```
### Step 4: Self-Validation Pipeline
**Step 4a: Schema Check** (mechanical, must 100% pass) — full 10-item pre-publish checklist at [`references/authoring-principles.md`](references/authoring-principles.md) §六. Summary:
- [ ] Frontmatter has all required fields (name/description/version/license/allowed-tools/metadata.openclaw)
- [ ] Description ≤200 chars, trigger keywords in first half, contains Do NOT + 行为范围声明
- [ ] Content has all 4 modules: 任务 / 输出格式 / 规则 / 示例
- [ ] Rules pass Intern Test — no vague/default rules
- [ ] Total under 200 lines (excluding code blocks in examples)
- [ ] Example covers at least one edge case from interview
- [ ] allowed-tools matches actual SKILL.md usage (原则 3: 最小权限)
- [ ] Lethal Trifecta self-check passes (原则 1+2)
- [ ] No hardcoded credentials / no local paths / no YARA trigger words
- [ ] CHANGELOG version = frontmatter version = plugin.json version
**Step 4b: Trigger Test** (AI self-test)
AI generates 3 positive + 3 negative fake user questions:
- 3 pos: questions that SHOULD trigger this Skill (using trigger keywords from interview)
- 3 neg: questions that should NOT trigger (using "Do NOT" scope from interview)
For each question, AI asks: "Looking at the description, would this trigger the Skill?"
- Pos question not triggering → add trigger keywords to description
- Neg question triggering → add "Do NOT use for..." to description
**Step 4c: Dogfood Simulation**
AI takes the example's input, runs it through the Skill's rules and output format, generates simulated output, then compares with the example's expected output:
| Dimension | Check | Pass standard |
|-----------|-------|---------------|
| Format match | Simulated output follows the fixed format | Structure matches |
| Rules compliance | No rule violations in simulated output | 0 violations |
| Edge case handling | Edge cases from interview are handled correctly | All addressed |
**If any step fails → fix and re-run from Step 4a. Max 3 iterations. After 3, suggest "ship V1 and iterate based on real usage."**
---
## Complete Example
See [`references/meeting-action-extractor-example.md`](references/meeting-action-extractor-example.md) for a full example of a well-crafted Skill.
don't have the plugin yet? install it then click "run inline in claude" again.