creating-skills
Skill976 starsChanged 6 months agoMITView on GitHub
Create custom agent capabilities when discovering novel tools, receiving task-agnostic tips from reviewers, or after researching specialized workflows not covered in existing instructions. Teaches structure, YAML optimization for LLM discoverability, and token efficiency.
30 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- RiccardoGrin/skillstheir own version, first seen Nov 8, 2026
- myths-labs/musetheir own version, first seen Nov 6, 2026
- JustYannicc/skillstheir own version, first seen Nov 1, 2026
- vstlmkh/creating-skillstheir own version, first seen Nov 1, 2026
- jaktestowac/awesome-copilot-for-testerstheir own version, first seen Nov 1, 2026
- osmontero/opencode-skillstheir own version, first seen Oct 27, 2026
Used with
Projects with it also use building-chatgpt-apps, building-chat-interfaces 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.
mjunaidcaSkillbuilding-chatgpt-apps
Guides creation of ChatGPT Apps with interactive widgets using OpenAI Apps SDK and MCP servers. Use when building ChatGPT custom apps with visual UI components, embedded widgets, or rich interactive experiences. Covers widget architecture, MCP server setup with FastMCP, response metadata, and Developer Mode configuration. NOT when building standard MCP servers without widgets (use building-mcp-servers skill instead).
Also in 4 projects that use this
mjunaidcaSkillbuilding-chat-interfaces
Build AI chat interfaces with custom backends, authentication, and context injection. Use when integrating chat UI with AI agents, adding auth to chat, injecting user/page context, or implementing httpOnly cookie proxies. Covers ChatKitServer, useChatKit, and MCP auth patterns. NOT when building simple chatbots without persistence or custom agent integration.
Also in 4 projects that use this
- +10 more from mjunaidca
Other versions30 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- dotnet/fsharp★ 4.3k100% same
Wrote their own version · 29
- NangoHQ/nango★ 13ksame name
- microsoft/FluidFramework★ 4.9ksame name
- AgentWorkforce/relay★ 1.1ksame name
- redai-infra/Relax★ 675same name
- pr-pm/prpm★ 124same name
- jaktestowac/awesome-copilot-for-testers★ 118same name
- microsoft/upgrade-agent-plugins★ 46same name
- myths-labs/muse★ 38same name
- mjunaidca/mjs-agent-skills★ 27same name
- osmontero/opencode-skills★ 15same name
19 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 repository7 other files it gives its agents.
- AGENTS.mdAGENTS.md
- eng/common/AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- expert-reviewingSkill
- trx-analysisSkill
- validate-skillsSkill
- vstest-build-testSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
22 rules. 0 are common, 21 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 28 edited versions we read keep these.
21
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
Read existing skill frontmatter and content
- Distinctive: line 17
If semantically similar skill exists, STOP
- Distinctive: line 20
If frontmatter semantically matches your use case → Update existing skill's description
- Distinctive: line 21
Add keywords to improve discoverability rather than creating duplicate
- Distinctive: line 24
If frontmatter matches but content incomplete → Add section to existing skill
- Distinctive: line 26
Update frontmatter only if significantly broadening scope
- Distinctive: line 29
No semantic overlap with existing skills
- Very specific: line 44
Every skill directory must contain a SKILL.md file (case-sensitive) with:
- Distinctive: line 65
Must match the directory name
- Distinctive: line 66
Should be descriptive but concise
- Distinctive: line 96
Keep instructions focused and relevant
- Distinctive: line 97
Use bullet points and numbered lists
- Distinctive: line 116
Use imperative mood ("Run the test", not "You should run the test")
- Distinctive: line 119
Use code blocks with language identifiers
- Distinctive: line 125
Always include concrete examples:
- Distinctive: line 133
After creating a skill:
- Distinctive: line 135
Verify the file structure:
- Distinctive: line 142
Ensure proper YAML syntax
- Distinctive: line 147
Ask Copilot a question that should trigger the skill
- Distinctive: line 148
Verify the skill is loaded (check response for skill-specific guidance)
- Distinctive: line 149
Ensure instructions are clear and actionable
- Distinctive: line 154
Update instructions based on feedback
“Common” is measured: kept by at least 6 in 10 of the 28 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
Creating GitHub Copilot Agent Skills
This skill teaches you how to create effective GitHub Copilot Agent Skills for this repository.
Pre-Check: Avoid Duplication
STOP and check before creating a new skill:
- Does it exist already?
- List all skills:
ls -la .github/skills/ - Read existing skill frontmatter and content
- If semantically similar skill exists, STOP
- List all skills:
- Should an existing skill be expanded?
- If frontmatter semantically matches your use case → Update existing skill's description
- Add keywords to improve discoverability rather than creating duplicate
- Should existing skill content change?
- If frontmatter matches but content incomplete → Add section to existing skill
- Enhance with additional examples, procedures, or troubleshooting
- Update frontmatter only if significantly broadening scope
Only create new skill if:
- No semantic overlap with existing skills
- Addresses distinct problem domain
- Has unique triggering conditions
Skill Structure
Directory Placement
Skills should be placed in .github/skills/ directory:
- Project skills (repository-specific):
.github/skills/skill-name/
Each skill must have its own subdirectory with a lowercase, hyphenated name that matches the name field in the frontmatter.
File Requirements
Every skill directory must contain a SKILL.md file (case-sensitive) with:
- YAML Frontmatter (required):
- Markdown Body with clear instructions, examples, procedures, guidelines, and references
Additional Resources
Skills can include:
- Scripts (e.g.,
.sh,.fsx,.ps1) - Example files
- Templates
- Reference documentation
YAML Frontmatter Best Practices
The frontmatter is critical for skill discoverability and token efficiency:
Required Fields
- name (string): Unique identifier, lowercase with hyphens
- Must match the directory name
- Should be descriptive but concise
- Example:
hypothesis-driven-debugging,github-actions-failure-debugging
- description (string): When and why to use this skill
- Should be 1-2 sentences
- Include trigger keywords that help the AI recognize when to load the skill
- Example: "Guide for debugging failing GitHub Actions workflows. Use this when asked to debug failing GitHub Actions workflows."
- SEO-like optimization for LLMs: Include key terms that would appear in user requests
Optional Fields
- license (string): License for the skill (e.g., MIT, Apache-2.0)
Description Guidelines
The description is crucial for skill discoverability. Think of it like SEO for LLMs:
✅ Good descriptions (specific, actionable, keyword-rich):
- "Guide for debugging failing GitHub Actions workflows. Use this when asked to debug failing GitHub Actions workflows."
- "Systematic approach to investigating F# compiler performance issues using traces, dumps, and benchmarks."
- "Step-by-step process for analyzing test failures using hypothesis-driven debugging."
❌ Poor descriptions (vague, generic):
- "Helps with debugging"
- "Tool for testing"
- "Useful utility"
Token Efficiency
Skills should be concise to avoid wasting context tokens:
- Keep instructions focused and relevant
- Use bullet points and numbered lists
- Avoid redundant information
- Reference external resources rather than duplicating content
- The agent will only load skills when relevant, so clear descriptions help prevent unnecessary loading
Skill Content Best Practices
Structure
- Title and Overview: Brief introduction
- When to Use: Clear triggering conditions
- Prerequisites: Required tools, setup, or knowledge
- Step-by-Step Instructions: Numbered procedures
- Examples: Concrete use cases
- Troubleshooting: Common issues
- References: Links to related documentation
Writing Style
- Use imperative mood ("Run the test", not "You should run the test")
- Be specific and actionable
- Include command examples with expected output
- Use code blocks with language identifiers
- Highlight warnings and critical information
- Reference tools and APIs that the agent has access to
Examples
Always include concrete examples:
- Command invocations with flags and arguments
- Expected output and how to interpret it
- Common variations and edge cases
- Links to real-world usage in the repository
Testing Your Skill
After creating a skill:
- Verify the file structure:
ls -la .github/skills/your-skill-name/ # Should show SKILL.md and any additional resources - Validate YAML frontmatter:
- Ensure proper YAML syntax
- Required fields are present
- Name matches directory name
- Test skill invocation:
- Ask Copilot a question that should trigger the skill
- Verify the skill is loaded (check response for skill-specific guidance)
- Ensure instructions are clear and actionable
- Iterate based on usage:
- Monitor how often the skill is used
- Refine description for better discoverability
- Update instructions based on feedback
Examples from This Repository
See existing skills in .github/skills/ for reference:
hypothesis-driven-debugging: Systematic failure investigation- Additional skills may be added over time
References
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.

