skill-builder
Skill2 starsChanged 6 months agoMITView on GitHub
Create new skills, improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, turn a conversation into a reusable skill, update or optimize an existing skill, run evals to test a skill, or benchmark skill performance with variance analysis. Trigger on phrases like "build a skill", "make a skill", "create a skill for", "turn this into a skill", "improve my skill", "test my skill", "evaluate this skill", "skill performance", "skill benchmark", or any mention of SKILL.md, skill folders, or skill development workflow.
74 other projects use a version of this.
Adopted by
Most recently taken up by
- Kikobazz123/lordgen-skill-buildertheir own version, first seen Nov 8, 2026
- AsiaOstrich/EngramGraphtheir own version, first seen Nov 8, 2026
- shetengteng/skillix-hubtheir own version, first seen Nov 8, 2026
- davidgfolch/AI-job-searchtheir own version, first seen Nov 8, 2026
- RKelln/hermes_skillstheir own version, first seen Nov 7, 2026
- beCyborg/jadlis-skill-buildertheir own version, first seen Nov 6, 2026
Used with
Projects with it also use contract-test, literature-research and 9 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.
squall-chuaSkillcontract-test
Test a running API against its own contract — OpenAPI, GraphQL, protobuf, or AsyncAPI — from the outside, and report every drift between what the contract promises and what the API does.
Also in 3 projects that use this
nickjwellsSkillliterature-research
Search academic literature and perform deep research reviews. Use when user asks to search PubMed, find academic papers, or do literature reviews.
Also in 3 projects that use this
nopandererSkillcommit-and-push
Automatically analyze git changes, generate Conventional Commits compliant commit messages, commit changes, and push to remote in a single automated workflow. Use when the user invokes /commit-and-push or explicitly requests to automatically commit and push changes following Conventional Commits format (feat:, fix:, docs:, etc.). This skill provides a fully automated git workflow without manual intervention.
Also in 3 projects that use this
MicrosoftSkillskill-reviewer
Review skill PRs with structured severity-rated feedback covering token budgets, routing conflicts, and repo conventions. WHEN: \"review skill\", \"review skill PR\", \"review skill changes\", \"check skill quality\", \"skill PR feedback\".
Also in 3 projects that use this
SkillPilotCHSkilllevel-up
Eine Automatisierung pro Woche finden, scopen, shippen. Output landet als proposed-Eintrag in cadence.md mit konkreten Implementations-Schritten.
Also in 3 projects that use this
MicrosoftSkillexcalidraw-diagram
Create Excalidraw diagram JSON files that make visual arguments. Use when the user wants to visualize workflows, architectures, or concepts.
Also in 4 projects that use this
Other versions74 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 74
- yusufkaraaslan/Skill_Seekers★ 15ksame name
- block/berd★ 1ksame name
- boshu2/agentops★ 453same name
- metaskills/skill-builder★ 112same name
- AsiaOstrich/universal-dev-standards★ 84same name
- Amazon-Quick/Amazon-Quick-official-catalog★ 50same name
- nateherkai/a-bunch-of-skills★ 41same name
- clasen/Skills★ 40same name
- sanqi-cd/Sanqi-Skills★ 28same name
- arctan303/creator.skill★ 19same name
64 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 repository13 other files it gives its agents.
- and-or-plannerSkill
- beyond-obviousSkill
- beyond-the-summarySkill
- farnsworth-rhetoricSkill
- great-demoSkill
- humanizerSkill
- human-narrativeSkill
- intelligence-flow-architectureSkill
- markdown-fetchSkill
- source-checkSkill
- split-pdfSkill
- start-with-whySkill
- strategic-persuasion-writingSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
42 rules. 0 are common, 30 are distinctive, and 12 are very specific to this project.
0
Common
Most of the 65 edited versions we read keep these.
30
Distinctive
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 25
Write a draft of the skill
- Distinctive: line 26
Create a few test prompts and run Claude-with-access-to-the-skill on them
- Distinctive: line 60
Check whether you can spawn subagents (independent agents that execute tasks in parallel).
- Distinctive: line 63
Without subagents: Read agent reference files and follow procedures inline, sequentially.
- Very specific: line 69
Before writing anything, read references/skill-authoring-guide.md for best practices on structure, descriptions, instructions, and common …
- Distinctive: line 73
Start by understanding what the user needs.
- Distinctive: line 78
When should this skill trigger?
- Distinctive: line 81
Should we set up test cases?
- Distinctive: line 100
Run the initialization script:
- Very specific: line 124
Version is required: Every new skill must include metadata: version: 1.0.0 in the frontmatter.
- Distinctive: line 128
Must match the folder name
- Distinctive: line 132
Must include both WHAT and WHEN (trigger conditions)
- Distinctive: line 137
Add negative triggers if needed to prevent overtriggering
- Distinctive: line 145
Write the skill body in Markdown using imperative form.
- Very specific: line 147
Progressive disclosure: Keep SKILL.md under 500 lines.
- Distinctive: line 167
Include error handling: Document common failures and how to recover.
- Very specific: line 171
No README.md: All documentation goes in SKILL.md or references/.
- Very specific: line 175
Before presenting the skill, run through references/quality-checklist.md to catch common issues.
- Distinctive: line 177
Run the quick validation script:
- Distinctive: line 188
Manual testing in Claude.ai: Run queries directly and observe behavior.
- Distinctive: line 194
Always have something cooking: Every time the user adds an example or input:
- Distinctive: line 197
Run first tests in main agent loop (not subagent) so user sees the transcript
- Very specific: line 200
If the user wants formal evals, create evals/evals.json:
- Very specific: line 224
Check whether you have access to the present_files tool.
- Very specific: line 236
After creating or improving any skill, update the skill's changelog.
- Distinctive: line 250
Use the same semver convention: patch (x.x.1) for small fixes, minor (x.1.0) for new capabilities, major (x.0.0) for rewrites.
- Distinctive: line 256
When the user asks to improve a skill, ask:
- Distinctive: line 272
Keep the prompt lean: Read transcripts, not just outputs -- if the skill makes Claude waste time on unproductive steps, cut the parts …
- Distinctive: line 274
Understand the user's intent: If feedback is terse or frustrated, work to understand what they actually need and encode that reasoning into …
- Very specific: line 278
Read references/improve-mode.md for the full setup, iteration loop, comparison protocol, and final report procedures.
- Very specific: line 280
Read references/schemas.md for JSON output structures used in grading, history, comparison, and analysis.
- Distinctive: line 286
Run individual evals to test skill performance and grade expectations.
- Very specific: line 288
Read references/eval-mode.md and references/schemas.md before running evals.
- Distinctive: line 290
Use Eval mode when:
- Very specific: line 305
Read references/benchmark-mode.md and references/schemas.md before running benchmarks.
- Distinctive: line 307
Use Benchmark mode when:
- Distinctive: line 340
Create tasks per eval run and update stages as work progresses.
- Distinctive: line 347
Create mode exception: Run examples in main loop so user sees the transcript (interactive feedback matters more than consistency).
- Distinctive: line 349
Track progress with tasks: Create tasks, update stages, mark complete.
- Distinctive: line 352
Parallelize independent work: when subagents are available.
- Distinctive: line 364
Without subagents: Read the agent reference file and follow the procedure directly in your main loop.
- Distinctive: line 376
When in doubt, err toward clarity over precision.
“Common” is measured: kept by at least 6 in 10 of the 65 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 Builder
Build, test, and improve skills through an iterative workflow.
Core Workflow
The skill development process:
- Define what you want the skill to do and roughly how it should do it
- Write a draft of the skill
- Create a few test prompts and run Claude-with-access-to-the-skill on them
- Evaluate the results (automated evals or human review -- both are valid)
- Rewrite the skill based on evaluation feedback
- Repeat until satisfied
- Expand the test set and try again at larger scale
Your job is to figure out where the user is in this process and help them move forward. Maybe they want to start from scratch, or maybe they already have a draft and need the eval/iterate loop. Be flexible -- if the user says "just vibe with me," do that instead of running formal evals.
Building Blocks
The skill-builder operates on composable building blocks:
| Building Block | Input | Output | Agent |
| Eval Run | skill + eval prompt + files | transcript, outputs, metrics | agents/executor.md |
| Grade Expectations | outputs + expectations | pass/fail per expectation | agents/grader.md |
| Blind Compare | output A, output B, eval prompt | winner + reasoning | agents/comparator.md |
| Post-hoc Analysis | winner + skills + transcripts | improvement suggestions | agents/analyzer.md |
These blocks combine into four modes:
| Mode | Purpose | Workflow |
| Create | Interactive skill development | Interview > Research > Draft > Run > Refine |
| Improve | Iteratively optimize skill | Executor > Grader > Comparator > Analyzer > Apply |
| Eval | Test skill performance | Executor > Grader > Results |
| Benchmark | Standardized measurement (requires subagents) | 3x runs per config > Aggregate > Analyze |
See references/mode-diagrams.md for visual workflow diagrams.
Environment Capabilities
Check whether you can spawn subagents (independent agents that execute tasks in parallel). This determines how modes execute:
- With subagents: Delegate to executor, grader, comparator, analyzer agents in parallel when tasks are independent.
- Without subagents: Read agent reference files and follow procedures inline, sequentially. Acknowledge reduced rigor since the same context that executes also grades.
Creating a Skill
Before writing anything, read references/skill-authoring-guide.md for best practices on structure, descriptions, instructions, and common patterns.
Step 1: Capture Intent
Start by understanding what the user needs. The current conversation might already contain a workflow to capture (e.g., "turn this into a skill"). If so, extract answers from conversation history first: the tools used, step sequence, corrections the user made, input/output formats observed.
Gather these answers (confirm with user before proceeding):
- What should this skill enable Claude to do?
- When should this skill trigger? (specific user phrases and contexts)
- What's the expected output format?
- Are there 2-3 concrete use cases this skill should handle?
- Should we set up test cases? (suggest the appropriate default based on whether outputs are objectively verifiable vs. subjective)
For each use case, define it concretely:
Use Case: [Name]
Trigger: User says "[phrase1]" or "[phrase2]"
Steps:
1. [First action]
2. [Second action]
Result: [What success looks like]Step 2: Interview and Research
Proactively ask about edge cases, input/output formats, example files, success criteria, and dependencies. Check available MCPs for research (docs, similar skills, best practices). Come prepared with context to reduce burden on the user.
Step 3: Initialize
Run the initialization script:
scripts/init_skill.py <skill-name> --path <output-directory>This creates SKILL.md with frontmatter, plus scripts/, references/, and assets/ directories.
Step 4: Write Frontmatter
The frontmatter is how Claude decides whether to load a skill. This is the single most important part to get right.
---
name: skill-name-in-kebab-case
description: >
[What it does]. [When to use it with specific trigger phrases].
Use when user mentions [phrase1], [phrase2], [phrase3], or asks
to [action1] or [action2]. Do NOT use for [negative triggers].
metadata:
version: 1.0.0
---Version is required. Every new skill must include metadata: version: 1.0.0 in the frontmatter. Do not create a skill without it. This is not optional.
Rules for the name field:
- Kebab-case only, no spaces, no capitals
- Must match the folder name
- Cannot contain "claude" or "anthropic" (reserved)
Rules for the description field:
- Must include both WHAT and WHEN (trigger conditions)
- Under 1024 characters, no XML angle brackets (< >)
- Include specific phrases users would actually say
- Mention relevant file types if applicable
- Lean slightly "pushy" -- Claude tends to undertrigger, so be generous with trigger conditions
- Add negative triggers if needed to prevent overtriggering
Optional fields: license, compatibility, allowed-tools, metadata (author, version, mcp-server). See references/skill-authoring-guide.md for details on each.
See references/skill-authoring-guide.md for good/bad description examples.
Step 5: Write Instructions
Write the skill body in Markdown using imperative form. Follow these principles:
Progressive disclosure: Keep SKILL.md under 500 lines. Move detailed reference material to references/ and link clearly with guidance on when to read each file. The three levels are:
- Metadata (name + description) -- always in context (~100 words)
- SKILL.md body -- loaded when skill triggers (<500 lines)
- Bundled resources (references/, scripts/, assets/) -- loaded as needed
Be specific and actionable: Tell Claude exactly what to run, what to check, and what success looks like. Prefer code over vague language.
# Good
Run `python scripts/validate.py --input {filename}` to check format.
If validation fails, common issues:
- Missing required fields (add them to the CSV)
- Invalid date formats (use YYYY-MM-DD)
# Bad
Validate the data before proceeding.Explain the why: Today's LLMs are smart. They have good theory of mind and can go beyond rote instructions when they understand the reasoning. If you find yourself writing ALWAYS or NEVER in all caps or using rigid structures, reframe and explain why the thing matters. That's more effective than shouting.
Include error handling: Document common failures and how to recover. For critical validations, consider bundling a script that performs checks programmatically -- code is deterministic; language interpretation isn't.
Use examples: Show input/output pairs for the most common scenarios. This grounds Claude's understanding of what "good" looks like.
No README.md: All documentation goes in SKILL.md or references/. Don't include README.md, INSTALLATION_GUIDE.md, CHANGELOG.md, or similar files. Skills are for AI agents, not human onboarding.
Step 6: Validate
Before presenting the skill, run through references/quality-checklist.md to catch common issues.
Run the quick validation script:
scripts/quick_validate.py <path/to/skill-folder>Step 7: Test
Pro Tip: Iterate on a single task before expanding. The most effective skill creators iterate on a single challenging task until Claude succeeds, then extract the winning approach into the skill. This leverages in-context learning and provides faster signal than broad testing. Once you have a working foundation, expand to multiple test cases for coverage.
Skills can be tested at three levels of rigor -- pick what matches your needs:
- Manual testing in Claude.ai: Run queries directly and observe behavior. Fast iteration, no setup.
- Scripted testing in Claude Code: Automate test cases for repeatable validation across changes.
- Programmatic testing via skills API: Build evaluation suites that run systematically against defined test sets.
Come up with 2-3 realistic test prompts -- the kind of thing a real user would say. Share them with the user for confirmation, then run them.
Always have something cooking. Every time the user adds an example or input:
- Immediately start running it -- don't wait for full specification
- Show outputs in workspace -- tell user: "The output is at X, take a look"
- Run first tests in main agent loop (not subagent) so user sees the transcript
- Seeing what Claude does helps the user understand and refine requirements
If the user wants formal evals, create evals/evals.json:
{
"skill_name": "example-skill",
"evals": [
{
"id": 1,
"prompt": "User's task prompt",
"expected_output": "Description of expected result",
"files": [],
"assertions": [
"The output includes X",
"The skill correctly handles Y"
]
}
]
}Initialize with scripts/init_json.py evals evals/evals.json and validate with scripts/validate_json.py evals/evals.json. See references/schemas.md for the full schema.
Step 8: Package and Present
Check whether you have access to the present_files tool. If you do:
scripts/package_skill.py <path/to/skill-folder>Direct the user to the resulting .skill file path so they can install it. If you don't have present_files, skip this step.
For distribution beyond personal use: host on GitHub with a clear README (at the repo level, not inside the skill folder), include example usage and screenshots, and if the skill enhances an MCP integration, link to it from your MCP documentation. When positioning the skill, focus on outcomes ("set up project workspaces in seconds") rather than implementation details ("folder containing YAML frontmatter").
Step 9: Update the Changelog
After creating or improving any skill, update the skill's changelog. This is required, not optional. The per-skill changelog plus the version field in frontmatter are the record of a skill's state, so no separate inventory file is needed.
Update the skill changelog by appending to references/changelog.md inside the skill folder (create it if it doesn't exist):
## [version] - YYYY-MM-DD
### Changed
- [What was changed and why]
## [previous version] - YYYY-MM-DD
### Added
- [Initial release notes]Use the same semver convention: patch (x.x.1) for small fixes, minor (x.1.0) for new capabilities, major (x.0.0) for rewrites.
Improving a Skill
When the user asks to improve a skill, ask:
- Which skill? Identify the skill to improve.
- How much time? How long can Claude spend iterating?
- What's the goal? Target quality level, specific issues, or general improvement.
Then autonomously iterate using the building blocks (run, grade, compare, analyze). When improvements are finalized, you must:
- Increment the version in the skill's frontmatter metadata. This is required — do not finalize improvements without updating the version. Convention: patch (x.x.1) for small fixes or wording tweaks, minor (x.1.0) for new capabilities or meaningful additions, major (x.0.0) for structural rewrites.
- Update
references/changelog.mdinside the skill folder with what changed and why (create the file if it doesn't exist). The changelog and version field are the skill's record of state; no separate inventory file is required.
Writing Philosophy for Improvements
The authoring guide (references/skill-authoring-guide.md) covers general writing principles. During improvements specifically, keep these priorities in mind:
- Generalize from feedback. The goal is skills that work across many prompts, not just the test set. If you're making fiddly, overfitting changes, try branching out with different metaphors or working patterns.
- Keep the prompt lean. Read transcripts, not just outputs -- if the skill makes Claude waste time on unproductive steps, cut the parts causing that.
- Understand the user's intent. If feedback is terse or frustrated, work to understand what they actually need and encode that reasoning into the skill. ALL-CAPS directives are a yellow flag -- reframe with reasoning instead.
Detailed Iteration Workflow
Read references/improve-mode.md for the full setup, iteration loop, comparison protocol, and final report procedures.
Read references/schemas.md for JSON output structures used in grading, history, comparison, and analysis.
Eval Mode
Run individual evals to test skill performance and grade expectations.
Read references/eval-mode.md and references/schemas.md before running evals.
Use Eval mode when:
- Testing a specific eval case
- Comparing with/without skill on a single task
- Quick validation during development
The workflow: Setup > Check Dependencies > Prepare > Execute > Grade > Display Results
Without subagents, execute and grade sequentially. Read the agent reference files (agents/executor.md, agents/grader.md) and follow procedures directly.
Benchmark Mode
Standardized performance measurement with variance analysis. Requires subagents.
Read references/benchmark-mode.md and references/schemas.md before running benchmarks.
Use Benchmark mode when:
- Understanding overall skill performance
- Comparing across models
- Tracking performance over time
- Validating whether a skill adds value
Key differences from Eval: runs all evals, 3 times each per configuration, always includes no-skill baseline, uses most capable model for analysis.
Workspace Structure
Workspaces are created as sibling directories to the skill being worked on. See references/improve-mode.md for the full directory layout including eval, improve, and benchmark structures.
Key output files:
transcript.md- Execution log from executoruser_notes.md- Uncertainties and workarounds flagged by executormetrics.json- Tool calls, output size, step countgrading.json- Assertion pass/fail, notes, user_notes summarycomparison-N.json- Blind rubric-based comparisonhistory.json- Version progression with pass rates and winners
Task Tracking
Each eval run becomes a task with stage progression:
pending > planning > implementing > reviewing > verifying > completed
(prep) (executor) (grader) (validate)Create tasks per eval run and update stages as work progresses. For comparison tasks, stages map to: gathering outputs > spawning comparators > tallying votes > handling ties > declaring winner.
Coordinator Responsibilities
- Delegate to subagents when available; execute inline otherwise. In Improve, Eval, and Benchmark modes, use subagents for executor/grader work when possible.
- Create mode exception: Run examples in main loop so user sees the transcript (interactive feedback matters more than consistency).
- Use independent grading when possible. Without subagents, grade inline but acknowledge the limitation.
- Track progress with tasks. Create tasks, update stages, mark complete.
- Track best version -- the best performer, not the latest iteration.
- Run multiple times for variance -- 3 runs per config with subagents; 1 run otherwise.
- Parallelize independent work when subagents are available.
- Report results clearly with evidence and metrics.
- Review user_notes for issues that passed expectations might miss.
- Capture execution metrics in Benchmark mode.
- Use most capable model for analysis.
Delegating Work
With subagents: Spawn an independent agent with the reference file instructions. Include the reference file path in the prompt. When tasks are independent (like 3 runs of the same version), spawn all subagents in the same turn for parallelism.
Without subagents: Read the agent reference file and follow the procedure directly in your main loop. Execute each step sequentially.
Communicating with the User
The skill-builder attracts users across a wide range of technical familiarity. The power of Claude is inspiring people who have never opened a terminal to start building things, alongside experienced developers. Pay attention to context cues to calibrate your language:
- "evaluation" and "benchmark" are borderline but OK for most users
- "JSON" and "assertion" -- wait for cues that the user knows these terms before using them without explanation
- Briefly explain terms if you're in doubt
When in doubt, err toward clarity over precision. A user who feels respected and understood will iterate further than one who feels talked down to or lost.
Reference Index
| File | When to read |
references/skill-authoring-guide.md | Before creating or reviewing any skill |
references/quality-checklist.md | Before finalizing a skill for upload |
references/improve-mode.md | When running Improve mode workflows |
references/eval-mode.md | When running Eval mode |
references/benchmark-mode.md | When running Benchmark mode |
references/schemas.md | When working with JSON output structures |
references/mode-diagrams.md | For visual workflow diagrams |
agents/executor.md | When executing skill runs |
agents/grader.md | When grading expectations |
agents/comparator.md | When doing blind A/B comparisons |
agents/analyzer.md | When analyzing comparison results |
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.

