Agent skill

create-agent-skills

This skill provides expert guidance for creating, writing, building, and refining Claude Code Skills. It should be used when working with SKILL.md files, authoring new skills, improving existing skills, or understanding skill structure and best practices.

Stars 1
Forks 1

Install this agent skill to your Project

npx add-skill https://github.com/nbbaier/compound-engineering-amp/tree/main/skills/create-agent-skills

SKILL.md

<essential_principles>

How Skills Work

Skills are modular, filesystem-based capabilities that provide domain expertise on demand. This skill teaches how to create effective skills.

1. Skills Are Prompts

All prompting best practices apply. Be clear, be direct, use XML structure. Assume Claude is smart - only add context Claude doesn't have.

2. SKILL.md Is Always Loaded

When a skill is invoked, Claude reads SKILL.md. Use this guarantee:

  • Essential principles go in SKILL.md (can't be skipped)
  • Workflow-specific content goes in workflows/
  • Reusable knowledge goes in references/

3. Router Pattern for Complex Skills

skill-name/
├── SKILL.md              # Router + principles
├── workflows/            # Step-by-step procedures (FOLLOW)
├── references/           # Domain knowledge (READ)
├── templates/            # Output structures (COPY + FILL)
└── scripts/              # Reusable code (EXECUTE)

SKILL.md asks "what do you want to do?" → routes to workflow → workflow specifies which references to read.

When to use each folder:

  • workflows/ - Multi-step procedures Claude follows
  • references/ - Domain knowledge Claude reads for context
  • templates/ - Consistent output structures Claude copies and fills (plans, specs, configs)
  • scripts/ - Executable code Claude runs as-is (deploy, setup, API calls)

4. Pure XML Structure

No markdown headings (#, ##, ###) in skill body. Use semantic XML tags:

xml
<objective>...</objective>
<process>...</process>
<success_criteria>...</success_criteria>

Keep markdown formatting within content (bold, lists, code blocks).

5. Progressive Disclosure

SKILL.md under 500 lines. Split detailed content into reference files. Load only what's needed for the current workflow. </essential_principles>

  1. Create new skill
  2. Audit/modify existing skill
  3. Add component (workflow/reference/template/script)
  4. Get guidance

Wait for response before proceeding.

Progressive disclosure for option 1 (create):

  • If user selects "Task-execution skill" → workflows/create-new-skill.md
  • If user selects "Domain expertise skill" → workflows/create-domain-expertise-skill.md

Progressive disclosure for option 3 (add component):

  • If user specifies workflow → workflows/add-workflow.md
  • If user specifies reference → workflows/add-reference.md
  • If user specifies template → workflows/add-template.md
  • If user specifies script → workflows/add-script.md

Intent-based routing (if user provides clear intent without selecting menu):

  • "audit this skill", "check skill", "review" → workflows/audit-skill.md
  • "verify content", "check if current" → workflows/verify-skill.md
  • "create domain expertise", "exhaustive knowledge base" → workflows/create-domain-expertise-skill.md
  • "create skill for X", "build new skill" → workflows/create-new-skill.md
  • "add workflow", "add reference", etc. → workflows/add-{type}.md
  • "upgrade to router" → workflows/upgrade-to-router.md

After reading the workflow, follow it exactly.

<quick_reference>

Skill Structure Quick Reference

Simple skill (single file):

yaml
---
name: skill-name
description: What it does and when to use it.
---

<objective>What this skill does</objective>
<quick_start>Immediate actionable guidance</quick_start>
<process>Step-by-step procedure</process>
<success_criteria>How to know it worked</success_criteria>

Complex skill (router pattern):

SKILL.md:
  <essential_principles> - Always applies
  <intake> - Question to ask
  <routing> - Maps answers to workflows

workflows/:
  <required_reading> - Which refs to load
  <process> - Steps
  <success_criteria> - Done when...

references/:
  Domain knowledge, patterns, examples

templates/:
  Output structures Claude copies and fills
  (plans, specs, configs, documents)

scripts/:
  Executable code Claude runs as-is
  (deploy, setup, API calls, data processing)

</quick_reference>

<reference_index>

Domain Knowledge

All in references/:

  • Structure: recommended-structure.md, skill-structure.md
  • Principles: core-principles.md, be-clear-and-direct.md, use-xml-tags.md
  • Patterns: common-patterns.md, workflows-and-validation.md
  • Assets: using-templates.md, using-scripts.md
  • Advanced: executable-code.md, api-security.md, iteration-and-testing.md </reference_index>

<workflows_index>

Workflows

All in workflows/:

Workflow Purpose
create-new-skill.md Build a skill from scratch
create-domain-expertise-skill.md Build exhaustive domain knowledge base for build/
audit-skill.md Analyze skill against best practices
verify-skill.md Check if content is still accurate
add-workflow.md Add a workflow to existing skill
add-reference.md Add a reference to existing skill
add-template.md Add a template to existing skill
add-script.md Add a script to existing skill
upgrade-to-router.md Convert simple skill to router pattern
get-guidance.md Help decide what kind of skill to build
</workflows_index>

<yaml_requirements>

YAML Frontmatter

Required fields:

yaml
---
name: skill-name          # lowercase-with-hyphens, matches directory
description: ...          # What it does AND when to use it (third person)
---

Name conventions: create-*, manage-*, setup-*, generate-*, build-* </yaml_requirements>

<success_criteria> A well-structured skill:

  • Has valid YAML frontmatter
  • Uses pure XML structure (no markdown headings in body)
  • Has essential principles inline in SKILL.md
  • Routes directly to appropriate workflows based on user intent
  • Keeps SKILL.md under 500 lines
  • Asks minimal clarifying questions only when truly needed
  • Has been tested with real usage </success_criteria>

Expand your agent's capabilities with these related and highly-rated skills.

nbbaier/compound-engineering-amp

every-style-editor

This skill should be used when reviewing or editing copy to ensure adherence to Every's style guide. It provides a systematic line-by-line review process for grammar, punctuation, mechanics, and style guide compliance.

1 1
Explore
nbbaier/compound-engineering-amp

compound-docs

Capture solved problems as categorized documentation with YAML frontmatter for fast lookup

1 1
Explore
nbbaier/compound-engineering-amp

file-todos

This skill should be used when managing the file-based todo tracking system in the todos/ directory. It provides workflows for creating todos, managing status and dependencies, conducting triage, and integrating with slash commands and code review processes.

1 1
Explore
nbbaier/compound-engineering-amp

dspy-ruby

This skill should be used when working with DSPy.rb, a Ruby framework for building type-safe, composable LLM applications. Use this when implementing predictable AI features, creating LLM signatures and modules, configuring language model providers (OpenAI, Anthropic, Gemini, Ollama), building agent systems with tools, optimizing prompts, or testing LLM-powered functionality in Ruby applications.

1 1
Explore
nbbaier/compound-engineering-amp

git-worktree

This skill manages Git worktrees for isolated parallel development. It handles creating, listing, switching, and cleaning up worktrees with a simple interactive interface, following KISS principles.

1 1
Explore
nbbaier/compound-engineering-amp

andrew-kane-gem-writer

This skill should be used when writing Ruby gems following Andrew Kane's proven patterns and philosophy. It applies when creating new Ruby gems, refactoring existing gems, designing gem APIs, or when clean, minimal, production-ready Ruby library code is needed. Triggers on requests like "create a gem", "write a Ruby library", "design a gem API", or mentions of Andrew Kane's style.

1 1
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results