skill-creator
Skill0 starsChanged 4 months agoMITView on GitHub
**WORKFLOW SKILL** — Create complete, well-structured Copilot skills from scratch. USE FOR: scaffolding new SKILL.md files, writing effective agent instructions, configuring frontmatter fields, setting up directory structure (references, FEEDBACK.md), optimizing description for discoverability, applying progressive disclosure. DO NOT USE FOR: managing/syncing existing skills (use skill-manager-guide), general coding, VS Code extension development.
189 other projects use a version of this.
Adopted by
Most recently taken up by
- SebastienDegodez/copilot-instructionstheir own version, first seen Nov 8, 2026
- idavidov13/agentic-playwrighttheir own version, first seen Nov 8, 2026
- HughYau/AcademicForgetheir own version, first seen Nov 8, 2026
- Ar9av/obsidian-wikitheir own version, first seen Nov 8, 2026
- rvdbreemen/OTGW-firmwaretheir own version, first seen Nov 8, 2026
- scenario-labs/skillstheir own version, first seen Nov 7, 2026
Used with
Projects with it also use taskflow-inbox-triage, mermaid-diagram-generator and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
AtomicBot-aiSkilltaskflow-inbox-triage
Also in 6 projects that use this
shalombSkillmermaid-diagram-generator
Guide on creating and editing Mermaid charts safely. Use when asked to draw a diagram, flowchart, or architecture chart. Triggers on: 'mermaid', 'diagram', 'flowchart', 'visualize'.
Also in 5 projects that use this
naman10parikhSkillecosystem-reference
Quick-access directory of Claude Code ecosystem repos, skills, plugins, MCPs, and patterns. Use when improving the harness.
Also in 5 projects that use this
naman10parikhSkillfractal-delegation
Also in 5 projects that use this
Liang-MHSkillstock_analysis
获取 A 股、基金和港股的实时行情和技术分析数据
Also in 5 projects that use this
nicepkgSkillcommunity-led-growth
Expert in community-led growth (CLG) - leveraging user communities to drive acquisition, retention, and expansion. Covers building developer communities, user groups, ambassador programs, and turning customers into advocates. Knows the difference between community as a feature vs community as a growth engine, and how to measure community ROI. Use when "community-led, CLG, ambassador program, champion program, user community, developer community, word of mouth, user group, " mentioned.
Also in 5 projects that use this
- +6 more from naman10parikh
Other versions189 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 189
- moltbot/clawdbot★ 394ksame name
- steipete/warelay★ 394ksame name
- steipete/clawdis★ 394ksame name
- moltbot/moltbot★ 394ksame name
- clawdbot/clawdbot★ 394ksame name
- openclaw/openclaw★ 394ksame name
- molt-bot/clawdbot★ 391ksame name
- anthropics/skills★ 189ksame name
- openai/codex★ 134ksame name
- google-gemini/gemini-cli★ 109ksame name
179 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository11 other files it gives its agents.
- agent-creatorSkill
- contextacaoSkill
- doc-to-markdownSkill
- error-learningSkill
- hooks-creatorSkill
- markdown-to-documentSkill
- safety-checkSkill
- skill-benchmarkSkill
- skill-manager-guideSkill
- task-intentSkill
- task-mapSkill
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 5 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 185 edited versions we read keep these.
5
Distinctive
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 20
Every skill is a folder. The minimum is a SKILL.md, but a complete skill includes:
- Very specific: line 37
Must match the name field in frontmatter
- Distinctive: line 107
Every description should start with a type tag in bold, followed by a one-line summary, use cases, and exclusions:
- Distinctive: line 166
Use tables for lookups (commands, options, mappings).
- Very specific: line 196
Don't overload the main SKILL.md.
- Distinctive: line 239
Instead of plain text rules, use visual markers for common mistakes.
- Distinctive: line 383
Use the template from the FEEDBACK.md section above.
- Distinctive: line 396
Before considering a skill complete, verify:
“Common” is measured: kept by at least 6 in 10 of the 185 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill Creator — Complete Guide to Building Copilot Skills
You are an expert at creating high-quality skills for GitHub Copilot. When the user asks you to create a skill, follow this guide to produce a complete, well-structured result.
What is a Skill?
A skill is a SKILL.md file that injects domain-specific knowledge into the AI agent's context. Skills live in directories and can be distributed via Git repositories.
The agent receives the skill's content as system-level instructions — everything you write in the body of SKILL.md becomes part of the agent's working knowledge for that session.
Directory Structure
Every skill is a folder. The minimum is a SKILL.md, but a complete skill includes:
skills/
<skill-name>/
SKILL.md ← REQUIRED: frontmatter + instructions
FEEDBACK.md ← RECOMMENDED: feedback protocol
.skillconfig.json ← OPTIONAL: per-skill settings (e.g. forceGlobal)
references/ ← OPTIONAL: on-demand deep-dive docs
api-reference.md
examples.md
troubleshooting.mdNaming Convention
- Folder name = skill identifier (kebab-case, lowercase)
- Must match the
namefield in frontmatter - Examples:
react-testing,docker-compose,git-workflow
SKILL.md — Anatomy
1. Frontmatter (YAML)
The frontmatter is a YAML block delimited by --- at the top of the file. It controls how the skill is discovered and invoked.
---
name: my-skill
description: "Clear, specific description of what this skill teaches"
argument-hint: What the user should type when invoking this skill
user-invocable: true
disable-model-invocation: false
compatibility:
- copilot-chat
license: MIT
metadata:
author: your-name
tags:
- category
- domain
---Field Reference
| Field | Required | Type | Purpose |
name | Yes | string | Unique identifier. Must match folder name. kebab-case. |
description | Yes | string | What the skill teaches. Used for discovery — the agent reads this to decide if the skill is relevant. |
argument-hint | No | string | Hint shown to users when invoking via slash command. Guides what context to provide. |
user-invocable | No | boolean | If true, user can invoke directly via /skill-name. Default: true. |
disable-model-invocation | No | boolean | If true, the model won't auto-invoke this skill. User must invoke explicitly. Default: false. |
compatibility | No | string[] | Which Copilot surfaces support this skill (e.g. copilot-chat). |
license | No | string | SPDX license identifier. |
metadata | No | object | Free-form metadata: author, tags, version, etc. |
2. Body (Markdown)
The body is the actual knowledge injected into the agent. This is where you write the instructions.
Structure Template
# <Skill Name> — <Short Subtitle>
<Opening paragraph: establish the agent's role and the skill's purpose>
## <Section 1: Core Concepts>
...
## <Section 2: Step-by-Step Workflows>
...
## <Section 3: Reference Tables>
...
## <Section N: When the User Asks for Help>
<Map common questions to specific answers>Writing the Description — The Most Important Field
The description field is the single most critical element for skill discoverability. The agent reads descriptions to decide which skills to activate. A bad description means the skill never gets used.
Pattern: Type Tag + USE FOR + DO NOT USE
Every description should start with a type tag in bold, followed by a one-line summary, use cases, and exclusions:
description: "**<TYPE> SKILL** — <one-line summary>. USE FOR: <comma-separated use cases>. DO NOT USE FOR: <explicit exclusions to prevent false matches>."Common type tags:
| Tag | When to use |
**WORKFLOW SKILL** | Guides a multi-step process or workflow |
**ENFORCEMENT SKILL** | Enforces rules, checks, or constraints |
**CONVERSION SKILL** | Converts between formats or representations |
**MEASUREMENT SKILL** | Measures, benchmarks, or evaluates |
**GUIDE SKILL** | Teaches how to use a tool or extension |
**REFERENCE SKILL** | Provides domain knowledge or lookup tables |
Choose the tag that best describes the skill's primary purpose. If none fits, create a descriptive one.
Pattern: Knowledge Skill Description
For skills that provide domain knowledge (alternative to type-tag pattern):
description: "**REFERENCE SKILL** — <Domain> knowledge covering <specific topics>. Includes <key features like examples, tables, commands>."Rules for Good Descriptions
- Be specific — "React testing" is vague. "Testing React components with React Testing Library and Jest, including async patterns and custom hooks" is specific.
- Include action verbs — "Create, configure, debug, troubleshoot" tells the agent when to activate.
- List explicit exclusions — "DO NOT USE FOR: runtime debugging" prevents false activations.
- Front-load keywords — The most relevant terms should appear early.
- Aim for ~300 chars — The hard limit is 1024, but ~300 chars is the sweet spot for LLM attention. Beyond that, the model may not weigh all keywords equally during discovery. If your description needs 400+ chars to cover all use cases, consider whether the skill should be split into two focused skills — each with a tight, discoverable description.
Writing the Body — Effective Instructions
Principle 1: Write for the Agent, Not the Human
The reader is an AI agent. Write clear, unambiguous instructions it can follow mechanically.
Bad:
Docker Compose is a nice tool for multi-container apps.
Good:
You are helping a developer work with Docker Compose. When asked to create a compose file, always use version
3.8+syntax and include health checks.
Principle 2: Use Imperative Voice
Tell the agent what to DO, not what things ARE.
Bad:
The
--watchflag enables file watching.
Good:
When the user wants live reload, add the
--watchflag to the command.
Principle 3: Tables for Reference, Prose for Logic
Use tables for lookups (commands, options, mappings). Use prose for conditional logic and workflows.
## Commands
| Command | Purpose |
|---------|---------|
| `npm test` | Run all tests |
| `npm test -- --watch` | Watch mode |
## When to Use Watch Mode
If the user is actively developing and running tests repeatedly,
suggest watch mode. If they're running tests in CI, never suggest watch mode.Principle 4: Map User Questions to Answers
Include a "When the User Asks..." section that covers common scenarios:
## When the User Asks for Help
- **"How do I X?"** → Step-by-step instructions for X
- **"Why is Y failing?"** → Common causes of Y failure and fixes
- **"What's the best way to Z?"** → Recommended approach with trade-offsPrinciple 5: Progressive Disclosure with References
Don't overload the main SKILL.md. Put deep-dive content in references/:
- SKILL.md — Core instructions, workflows, quick-reference tables (aim for < 500 lines)
- references/ — API docs, extended examples, troubleshooting guides, migration paths
The agent will read references on-demand when it needs more detail, keeping the base context lightweight.
Principle 6: One Skill, One Domain
A skill should cover one coherent domain. If you find yourself writing unrelated sections, split into multiple skills.
Good scope: "React Testing" — covers RTL, Jest, async testing, hooks testing, snapshot testing Bad scope: "React" — too broad, mixes routing, state management, testing, styling
Advanced Body Techniques
These patterns improve agent navigation and scannability. Use them when the skill's complexity warrants it — not every skill needs all of them.
Technique: Decision Trees
For skills that involve triage, routing, or conditional workflows, provide an ASCII decision tree the agent can follow mechanically. This reduces reasoning errors by making the decision path explicit.
#### Triage Flow
\```
New request arrives
│
├─ Condition A?
│ └─ ✅ Action A
│
├─ Condition B?
│ └─ ⚠️ Action B (with caveat)
│
└─ Condition C?
└─ 🔴 Escalate / ask the user
\```When to use: Escalation logic, complexity triage, tool selection cascades, error diagnosis flows.
Technique: ❌/✅ Pitfall Markers
Instead of plain text rules, use visual markers for common mistakes. This format is more scannable than prose and communicates do/don't at a glance.
### Common Pitfalls
| | Pitfall | Consequence |
|---|---------|-------------|
| ❌ | Doing X without checking Y | Z breaks silently |
| ❌ | Assuming A is true | B fails in production |
| ✅ | Checking Y before doing X | Z works reliably |
| ✅ | Verifying A with tool | B is built on solid ground |When to use: Rules sections, anti-patterns, common mistakes. Especially effective when the skill has 5+ rules — visual markers prevent "wall of NEVER" fatigue.
Technique: Quick Reference Table
A task-oriented lookup table at the end of the skill. Maps common user intents to the right section and key decision. Gives the agent a fast-path before reading the full skill.
## Quick Reference
| I need to... | Go to section | Key decision |
|-------------|---------------|-------------|
| Do X | Section Y | Choose between A or B |
| Debug Z | Troubleshooting | Check W first |When to use: Skills with many sections (5+ headings), tool/command skills, reference-heavy skills.
Technique: Black-Box Script Instructions
For skills that bundle executable scripts in scripts/, instruct the agent to treat them as black boxes — run --help to learn usage, never read the source code.
> **⚠️ IMPORTANT: Treat scripts as black boxes.** Run `python scripts/<script>.py --help`
> to learn usage. Do **NOT** read the source code — it pollutes the context window with
> implementation details you don't need.When to use: Any skill that includes bundled scripts, CLI tools, or executable utilities. Prevents the agent from wasting context on implementation details.
FEEDBACK.md — Enabling the Improvement Loop
A FEEDBACK.md enables users to submit improvements to the skill via PR.
Template
---
threshold: 5
---
## Feedback Protocol — <skill-name>
### When to Log a Review
Log a review whenever you help a user and:
- The instructions in SKILL.md were insufficient or unclear
- You had to improvise an answer not covered by the skill
- A command, API, or tool changed and the skill is outdated
### Review Format
Create a JSON file in `.vscode/skill-reviews/<skill-name>/`:
\```json
{
"date": "YYYY-MM-DD",
"author": "dev-name",
"type": "improvement | correction | addition",
"section": "Section Name",
"suggestion": "What should change",
"context": "What prompted this feedback"
}
\```
### Consolidation
When threshold reviews accumulate, summarize them into a single
actionable improvement for the skill maintainer.The threshold in frontmatter defines how many reviews trigger consolidation.
.skillconfig.json — Per-Skill Settings
{
"forceGlobal": false
}| Field | Type | Purpose |
forceGlobal | boolean | If true, this skill is always installed globally (~/.copilot/skills/) regardless of context. Use for universal skills. |
Complete Example — Creating a "Docker Compose" Skill
Step 1: Create the directory
skills/docker-compose/Step 2: Write SKILL.md
---
name: docker-compose
description: "Docker Compose workflows — create, debug, and optimize multi-container setups. Covers v2 CLI, health checks, networking, volumes, and production profiles."
argument-hint: Describe what you want to do with Docker Compose
---
# Docker Compose — Agent Guide
You are helping a developer work with Docker Compose. Follow these
instructions to provide accurate, production-ready guidance.
## Creating a Compose File
When asked to create a new compose file:
1. Use the `compose.yaml` filename (not `docker-compose.yml`)
2. Target Compose Specification (no `version` field needed)
3. Always include `restart: unless-stopped` for services
4. Add health checks for services that accept connections
## Common Services Table
| Service | Image | Default Port |
|---------|-------|-------------|
| PostgreSQL | postgres:16-alpine | 5432 |
| Redis | redis:7-alpine | 6379 |
| Nginx | nginx:alpine | 80/443 |
## When the User Asks for Help
- **"Create a compose file for X"** → Scaffold with best practices above
- **"My container won't start"** → Check logs: `docker compose logs <service>`
- **"How do I add a database?"** → Add service from table, include volume + healthcheckStep 3: Add FEEDBACK.md
Use the template from the FEEDBACK.md section above.
Step 4: Add references/ (if needed)
references/
networking.md ← Deep dive on Docker networking
production.md ← Production deployment patterns
troubleshooting.md ← Common errors and fixesQuality Checklist
Before considering a skill complete, verify:
namematches folder name (kebab-case)descriptionis specific, keyword-rich, ideally ~300 chars (max 1024; if >400, consider splitting the skill)licensefield present in frontmatter- Body opens with role context — "You are helping a developer with..."
- Imperative voice — instructs the agent what to do
- Tables for reference data, prose for workflows
- "When the User Asks" section covers 3+ common scenarios
- SKILL.md under 500 lines — heavy content goes to
references/ - FEEDBACK.md included with review format
- No unrelated topics — one skill, one domain
- Decision tree included if the skill has triage/routing logic (optional)
- ❌/✅ pitfalls used instead of plain text rules when 5+ rules exist (optional)
- Quick Reference table at the end for complex skills with 5+ sections (optional)
- Black-box script instruction present if skill bundles scripts in
scripts/(optional) - Tested — invoke the skill in Copilot Chat and verify it guides correctly
Anti-Patterns to Avoid
| Anti-Pattern | Why It's Bad | Fix |
| Vague description | Agent can't match it to user intent | Use specific keywords + USE FOR/DO NOT USE FOR |
| Wall of text | Agent loses focus | Break into sections with headers |
| Passive voice | Agent doesn't know what to do | Use imperative: "When X, do Y" |
| Too broad scope | Diluted knowledge, conflicts with other skills | Split into focused skills |
| Everything in SKILL.md | Bloats context window | Move deep-dives to references/ |
| No examples | Agent generates inconsistent output | Add input/output examples |
| Human-oriented prose | Agent processes instructions, not explanations | Write for the agent as the reader |
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.

