Skill Builder
Unified, security-first skill builder.
This skill is intentionally opinionated:
- Prefer no new skill if a simpler change works.
- When you do create a skill, make it boring, testable, and hard to misuse.
- Keep one clear router and avoid overlapping descriptions across skills.
- Stay model-agnostic and harness-agnostic unless the target environment explicitly requires otherwise.
Operation Router
| User intent |
Operation |
Output |
| create/build/make/new skill |
CREATE |
new skill folder + SKILL.md + only the companion files actually needed |
| update/modify/improve skill |
UPDATE |
minimal diff, keep scope stable |
| delete/remove skill |
DELETE |
remove skill + update any dependent references |
| add content/route/workflow to skill |
ADD |
new router row + minimal supporting procedure |
| validate skill |
VALIDATE |
evidence-backed validation report + fixes |
| rename skill |
RENAME |
safe rename + reference updates |
Operation Selection Rules
Use the smallest operation that solves the request:
- CREATE — new user-facing capability or clearly distinct intent/description domain.
- UPDATE — improve an existing skill without changing its core scope.
- ADD — add one new route, example, or sub-workflow inside the current scope.
- RENAME — change identity/path/name while preserving mostly the same behavior.
- DELETE — remove obsolete capability because it is superseded, merged, or no longer useful.
- VALIDATE — inspect correctness without broadening scope.
If uncertain, default to UPDATE rather than CREATE.
What "Correct" Means
This skill treats "correct" as:
- Conforms to the Agent Skills spec where the spec is explicit.
- Uses progressive disclosure: concise
SKILL.md, deeper docs only when needed.
- Has unambiguous activation: specific description + non-overlapping neighboring skills.
- Is safe: no secrets, no default-destructive commands, explicit confirmation boundaries.
- Produces validation evidence instead of relying on vibes.
Phase 0: First-Principles Check (Mandatory)
Run this before any CREATE or UPDATE:
- QUESTION: what problem, for who, measured how?
- DELETE: can an existing skill, README section, script, or template solve it?
- SIMPLIFY: what is the smallest change that works?
- ACCELERATE: only after (2) and (3)
- AUTOMATE: create a new skill only if it will be reused
If the answer is "no skill", propose:
- a README section
- a small script
- a usage snippet users can copy
- a targeted update to an existing skill
Phase 1: Detect Target + Name
Required by the Agent Skills spec
- Skill directory contains
SKILL.md.
SKILL.md starts with valid YAML frontmatter.
name matches the parent directory name.
description explains what the skill does and when to use it.
Recommended by this skill
- Keep
SKILL.md focused on router + core rules.
- Add
references/, scripts/, assets/, or README.md only when they add real value.
- Keep references one level deep from
SKILL.md.
- Put nonstandard metadata under
metadata instead of inventing new top-level fields.
Naming
- Use kebab-case (
my-skill-name).
- Avoid generic names (
tools, helper).
- Prefer names that describe a distinct job to be done.
Description design
The description field is the primary discovery surface.
Write it to cover:
- what the skill does
- when to use it
- likely user wording, domain terms, and near-synonyms
Do not depend on a custom top-level triggers field for portability. If you want trigger examples, keep them in the body, metadata, or eval fixtures.
Confirmation Boundary
Safe without confirmation:
- read-only inspection
- drafting content
- local validation
- proposing diffs
Require confirmation before:
- deleting files or folders
- renaming skill folders
- overwriting user-authored content
- changing trigger semantics in ways that may alter discovery behavior
- editing repo indexes or catalogs
- installing dependencies or using networked side effects
Phase 2: CREATE Flow
Inputs (minimum)
- Name
- Goal + non-goals
- Description draft that covers what + when
- Optional capability constraints if the target client supports them
CREATE Steps
- Discover existing conventions in the target repo.
- Draft a micro-spec: goal, non-goals, router, safety boundary.
- Create
/<skill-name>/SKILL.md with:
- frontmatter (
name, description, optional spec-supported fields)
- router table
- safety and confirmation rules
- short workflows or links to
references/
- Add companion files only if justified:
README.md for human-facing install/overview
references/ for deep workflows
scripts/ for executable helpers
assets/ for templates/resources
- Validate using the evidence rules below.
- If the repo maintains an index, update it.
Output Contract (CREATE)
Always return:
- files created/edited
- description added or changed
- whether optional fields like
compatibility, metadata, or allowed-tools were used
- one minimal smoke-test prompt
- validation report: pass/fail + evidence + remaining risks
Phase 3: UPDATE Flow
- Read the current skill.
- Identify the actual user goal.
- Apply the smallest diff that solves it.
- Re-run validation.
- Keep scope and description stable unless a broader change is explicitly requested.
Output Contract (UPDATE)
Return:
- files changed
- behavior changed
- description change: yes/no
- validation report
- risks or follow-ups
Phase 4: DELETE Flow
- Confirm the target skill folder.
- Identify dependents: indexes, references, sibling skills.
- Remove the skill and update references.
- Provide rollback instructions.
Output Contract (DELETE)
Return:
- removed paths
- references updated
- rollback note
- validation/report of any remaining broken links
Phase 5: ADD Content to a Skill
Rules for skill growth:
- Never duplicate description intent across multiple skills in the same install.
- Route by intent first, then load deeper sections.
- Keep
SKILL.md readable: short tables, stable templates, deep detail in references/.
Add steps:
- Add one new router row or one tightly scoped section.
- Add the minimal new procedure.
- If it grows, split into
references/<topic>.md.
- Add or update examples.
- Re-check neighboring skills for overlap.
Phase 6: RENAME Flow
- Confirm old and new names.
- Rename the folder and update frontmatter
name.
- Update internal and repo-level references.
- Validate links, name/path parity, and discovery wording.
Output Contract (RENAME)
Return:
- old name → new name
- moved paths
- references updated
- validation report
Validation
Validation Requirements
A skill is not validated until you produce evidence for all three layers:
- Spec validation — structure and YAML correctness
- Trigger validation — the description should trigger when it should, and not trigger on near-misses
- Output validation — the skill improves or constrains the resulting work on realistic tasks
Skill Validation Checklist
- Frontmatter includes valid
name and description.
- Frontmatter is valid YAML, not just visually plausible Markdown metadata.
name matches the parent directory.
- Description clearly states what + when.
- Any extra frontmatter stays within spec-supported fields unless the target environment explicitly supports more.
- Router is present.
- Confirmation boundary is explicit.
- No secrets; no private paths unless the target repo is intentionally private.
- No unscoped destructive instructions.
- Progressive disclosure is respected.
- Trigger hygiene has been checked against neighboring skills.
Spec Validation (Recommended)
If available:
skills-ref validate ./<skill-name>
If not available, validate manually using the rules in references/validation.md.
Capability Safety
- Prefer the least-privileged capability that can complete the task.
- Inspect/search before executing commands.
- If command execution is needed, scope it tightly.
- Never recommend
rm -rf, git reset --hard, or push --force as defaults.
Templates
Skill Frontmatter
---
name: my-skill
description: Use this skill when you need to do X, Y, or Z. It handles A and B and is relevant when the user asks for C.
compatibility: Optional. Mention required runtimes, system tools, or environment assumptions.
metadata:
version: "0.1"
allowed-tools: Optional experimental field. Only include it when the target client supports it and the skill benefits from a constrained tool list.
---
Minimum Viable Portable Skill
- Frontmatter
- One-paragraph purpose/activation guidance
- Router table
- Safety + confirmation rules
- Short workflows
- Optional
references/ only when needed
References
references/checklist.md (authoring checklist)
references/templates.md (copy/paste templates)
references/validation.md (spec, trigger, and output validation)
What This Skill Is For (Practical Examples)
- "Create a skill that scaffolds new skills" → CREATE.
- "Make this skill more portable across agent products" → UPDATE.
- "Rename this skill without breaking references" → RENAME.
- "Check whether this skill will trigger reliably" → VALIDATE.
- "Make skills consistent across repos" → UPDATE or ADD, depending on scope.
1---2name: skill-builder3description: Build correct, consistent Agent Skills for any compatible agent product. Use when creating, updating, renaming, deleting, or validating a skill, or when improving skill descriptions, structure, safety rules, progressive disclosure, or trigger reliability.4license: MIT5---67# Skill Builder89Unified, security-first skill builder.1011This skill is intentionally opinionated:12- Prefer no new skill if a simpler change works.13- When you do create a skill, make it boring, testable, and hard to misuse.14- Keep one clear router and avoid overlapping descriptions across skills.15- Stay model-agnostic and harness-agnostic unless the target environment explicitly requires otherwise.1617## Operation Router1819| User intent | Operation | Output |20|---|---|---|21| create/build/make/new skill | CREATE | new skill folder + `SKILL.md` + only the companion files actually needed |22| update/modify/improve skill | UPDATE | minimal diff, keep scope stable |23| delete/remove skill | DELETE | remove skill + update any dependent references |24| add content/route/workflow to skill | ADD | new router row + minimal supporting procedure |25| validate skill | VALIDATE | evidence-backed validation report + fixes |26| rename skill | RENAME | safe rename + reference updates |2728## Operation Selection Rules2930Use the smallest operation that solves the request:3132- **CREATE** — new user-facing capability or clearly distinct intent/description domain.33- **UPDATE** — improve an existing skill without changing its core scope.34- **ADD** — add one new route, example, or sub-workflow inside the current scope.35- **RENAME** — change identity/path/name while preserving mostly the same behavior.36- **DELETE** — remove obsolete capability because it is superseded, merged, or no longer useful.37- **VALIDATE** — inspect correctness without broadening scope.3839If uncertain, default to **UPDATE** rather than CREATE.4041## What "Correct" Means4243This skill treats "correct" as:4445- Conforms to the Agent Skills spec where the spec is explicit.46- Uses progressive disclosure: concise `SKILL.md`, deeper docs only when needed.47- Has unambiguous activation: specific description + non-overlapping neighboring skills.48- Is safe: no secrets, no default-destructive commands, explicit confirmation boundaries.49- Produces validation evidence instead of relying on vibes.5051## Phase 0: First-Principles Check (Mandatory)5253Run this before any CREATE or UPDATE:54551. QUESTION: what problem, for who, measured how?562. DELETE: can an existing skill, README section, script, or template solve it?573. SIMPLIFY: what is the smallest change that works?584. ACCELERATE: only after (2) and (3)595. AUTOMATE: create a new skill only if it will be reused6061If the answer is "no skill", propose:62- a README section63- a small script64- a usage snippet users can copy65- a targeted update to an existing skill6667## Phase 1: Detect Target + Name6869### Required by the Agent Skills spec7071- Skill directory contains `SKILL.md`.72- `SKILL.md` starts with valid YAML frontmatter.73- `name` matches the parent directory name.74- `description` explains what the skill does and when to use it.7576### Recommended by this skill7778- Keep `SKILL.md` focused on router + core rules.79- Add `references/`, `scripts/`, `assets/`, or `README.md` only when they add real value.80- Keep references one level deep from `SKILL.md`.81- Put nonstandard metadata under `metadata` instead of inventing new top-level fields.8283### Naming8485- Use kebab-case (`my-skill-name`).86- Avoid generic names (`tools`, `helper`).87- Prefer names that describe a distinct job to be done.8889### Description design9091The `description` field is the primary discovery surface.9293Write it to cover:94- **what** the skill does95- **when** to use it96- likely user wording, domain terms, and near-synonyms9798Do not depend on a custom top-level `triggers` field for portability. If you want trigger examples, keep them in the body, `metadata`, or eval fixtures.99100## Confirmation Boundary101102Safe without confirmation:103- read-only inspection104- drafting content105- local validation106- proposing diffs107108Require confirmation before:109- deleting files or folders110- renaming skill folders111- overwriting user-authored content112- changing trigger semantics in ways that may alter discovery behavior113- editing repo indexes or catalogs114- installing dependencies or using networked side effects115116## Phase 2: CREATE Flow117118### Inputs (minimum)119120- Name121- Goal + non-goals122- Description draft that covers what + when123- Optional capability constraints if the target client supports them124125### CREATE Steps1261271. Discover existing conventions in the target repo.1282. Draft a micro-spec: goal, non-goals, router, safety boundary.1293. Create `/<skill-name>/SKILL.md` with:130 - frontmatter (`name`, `description`, optional spec-supported fields)131 - router table132 - safety and confirmation rules133 - short workflows or links to `references/`1344. Add companion files only if justified:135 - `README.md` for human-facing install/overview136 - `references/` for deep workflows137 - `scripts/` for executable helpers138 - `assets/` for templates/resources1395. Validate using the evidence rules below.1406. If the repo maintains an index, update it.141142### Output Contract (CREATE)143144Always return:145- files created/edited146- description added or changed147- whether optional fields like `compatibility`, `metadata`, or `allowed-tools` were used148- one minimal smoke-test prompt149- validation report: pass/fail + evidence + remaining risks150151## Phase 3: UPDATE Flow1521531. Read the current skill.1542. Identify the actual user goal.1553. Apply the smallest diff that solves it.1564. Re-run validation.1575. Keep scope and description stable unless a broader change is explicitly requested.158159### Output Contract (UPDATE)160161Return:162- files changed163- behavior changed164- description change: yes/no165- validation report166- risks or follow-ups167168## Phase 4: DELETE Flow1691701. Confirm the target skill folder.1712. Identify dependents: indexes, references, sibling skills.1723. Remove the skill and update references.1734. Provide rollback instructions.174175### Output Contract (DELETE)176177Return:178- removed paths179- references updated180- rollback note181- validation/report of any remaining broken links182183## Phase 5: ADD Content to a Skill184185Rules for skill growth:186- Never duplicate description intent across multiple skills in the same install.187- Route by intent first, then load deeper sections.188- Keep `SKILL.md` readable: short tables, stable templates, deep detail in `references/`.189190Add steps:1911. Add one new router row or one tightly scoped section.1922. Add the minimal new procedure.1933. If it grows, split into `references/<topic>.md`.1944. Add or update examples.1955. Re-check neighboring skills for overlap.196197## Phase 6: RENAME Flow1981991. Confirm old and new names.2002. Rename the folder and update frontmatter `name`.2013. Update internal and repo-level references.2024. Validate links, name/path parity, and discovery wording.203204### Output Contract (RENAME)205206Return:207- old name → new name208- moved paths209- references updated210- validation report211212## Validation213214### Validation Requirements215216A skill is not validated until you produce evidence for all three layers:2172181. **Spec validation** — structure and YAML correctness2192. **Trigger validation** — the description should trigger when it should, and not trigger on near-misses2203. **Output validation** — the skill improves or constrains the resulting work on realistic tasks221222### Skill Validation Checklist223224- Frontmatter includes valid `name` and `description`.225- Frontmatter is valid YAML, not just visually plausible Markdown metadata.226- `name` matches the parent directory.227- Description clearly states what + when.228- Any extra frontmatter stays within spec-supported fields unless the target environment explicitly supports more.229- Router is present.230- Confirmation boundary is explicit.231- No secrets; no private paths unless the target repo is intentionally private.232- No unscoped destructive instructions.233- Progressive disclosure is respected.234- Trigger hygiene has been checked against neighboring skills.235236### Spec Validation (Recommended)237238If available:239240```bash241skills-ref validate ./<skill-name>242```243244If not available, validate manually using the rules in `references/validation.md`.245246### Capability Safety247248- Prefer the least-privileged capability that can complete the task.249- Inspect/search before executing commands.250- If command execution is needed, scope it tightly.251- Never recommend `rm -rf`, `git reset --hard`, or `push --force` as defaults.252253## Templates254255### Skill Frontmatter256257```yaml258---259name: my-skill260description: Use this skill when you need to do X, Y, or Z. It handles A and B and is relevant when the user asks for C.261compatibility: Optional. Mention required runtimes, system tools, or environment assumptions.262metadata:263 version: "0.1"264allowed-tools: Optional experimental field. Only include it when the target client supports it and the skill benefits from a constrained tool list.265---266```267268### Minimum Viable Portable Skill2692701. Frontmatter2712. One-paragraph purpose/activation guidance2723. Router table2734. Safety + confirmation rules2745. Short workflows2756. Optional `references/` only when needed276277## References278279- `references/checklist.md` (authoring checklist)280- `references/templates.md` (copy/paste templates)281- `references/validation.md` (spec, trigger, and output validation)282283## What This Skill Is For (Practical Examples)284285- "Create a skill that scaffolds new skills" → CREATE.286- "Make this skill more portable across agent products" → UPDATE.287- "Rename this skill without breaking references" → RENAME.288- "Check whether this skill will trigger reliably" → VALIDATE.289- "Make skills consistent across repos" → UPDATE or ADD, depending on scope.