Awesome-omni-skill skill-authoring

Create or update Claude Agent Skills. Use this when users want to build a new skill, scaffold a skill folder, improve an existing skill, or validate structure.

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tools/skill-authoring" ~/.claude/skills/diegosouzapw-awesome-omni-skill-skill-authoring-e046e1 && rm -rf "$T"
manifest: skills/tools/skill-authoring/SKILL.md
source content

About Skills

Skills are modular, self-contained packages that extend Claude's capabilities with specialized knowledge, workflows, and tools. They transform Claude from a general-purpose agent into a specialized agent equipped with procedural knowledge.

What Skills Provide

  1. Specialized workflows - Multi-step procedures for specific domains
  2. Tool integrations - Instructions for working with specific file formats or APIs
  3. Domain expertise - Company-specific knowledge, schemas, business logic
  4. Bundled resources - Scripts, references, and assets for complex tasks

When to use

  • "Build me a new skill for X"
  • "Create a skill that does Y"
  • "Validate my skill structure"
  • "Improve this existing skill"
  • "What sections should a skill have?"

When NOT to use

  • General coding tasks (use other skills or direct Claude)
  • Questions about Claude Code itself (use claude-code-guide)
  • Simple file operations that don't need a skill workflow

Core Principles

Concise is Key

The context window is a public good. Challenge each piece of information: "Does Claude really need this?" Prefer concise examples over verbose explanations.

Degrees of Freedom

Match specificity to task fragility:

LevelUse When
High freedomMultiple valid approaches, context-dependent decisions
Medium freedomPreferred pattern exists, some variation acceptable
Low freedomFragile operations, consistency critical

Think of Claude exploring a path: a narrow bridge needs guardrails (low freedom), an open field allows many routes (high freedom).

Anatomy of a Skill

skill-name/
├── SKILL.md (required)
│   ├── YAML frontmatter (name + description)
│   └── Markdown instructions
├── scripts/     - Executable code (Python/Bash)
├── references/  - Documentation loaded as needed
└── assets/      - Templates, binaries for output

SKILL.md Frontmatter

Only two required fields:

  • name
    : The skill identifier (lowercase, hyphens)
  • `description**: Triggers + purpose. Include "Use this when..." with specific conditions.

Do not add

license
or other fields.

When to Use Each Resource Type

  • scripts/: Deterministic operations, repeatedly rewritten code
  • references/: Long docs, schemas, APIs, patterns Claude references
  • assets/: Templates, icons, boilerplate copied to output

Progressive Disclosure

Keep SKILL.md under 500 lines. Move details to references:

# Quick start
[essential workflow]

# Advanced
- Feature A: See [REFERENCES/A.md](REFERENCES/A.md)
- Feature B: See [REFERENCES/B.md](REFERENCES/B.md)

Skill Creation Workflow

Step 1 — Capture Requirements

See SKILLSPEC.md for the format.

Step 2 — Plan Resources

For each example, determine:

  • Does it need a script? (deterministic, repeated)
  • Does it need a reference? (long docs, schemas)
  • Does it need assets? (templates, boilerplate)

Step 3 — Initialize

python "{baseDir}/scripts/init_skill.py" <skill-name> --path <output-dir>

Step 4 — Fill In

  1. Replace generated SKILL.md with final version
  2. Add scripts to
    scripts/
  3. Add docs to
    references/
  4. Add assets to
    assets/
  5. Delete unused sample files

Step 5 — Gap Analysis

Verify all sections exist:

SectionRequired
DescriptionStates when to use
When to use3-8 triggers
When NOT to useRecommended
WorkflowNumbered steps
Tool usageScripts + references documented
Failure handlingExplicit table/list
ExamplesConcrete walkthroughs
Acceptance tests5+ test cases

Use CHECKLIST.md for full validation.

Step 6 — Precision Analysis

Check trigger quality:

  • Overlap: Do triggers match other common skills?
  • Specificity: Are triggers specific enough?
  • Differentiation: Document distinctions if overlap exists

Step 7 — Validate

python "{baseDir}/scripts/quick_validate.py" <skill-dir>

Updating Existing Skills

  1. Run gap analysis against CHECKLIST.md
  2. Run precision analysis on triggers
  3. Apply fixes:
    • Improve description/triggers
    • Add missing failure handling
    • Add "When NOT to use"
    • Move long content to references/
    • Add scripts for repeated steps
  4. Re-validate

Failure Modes

FailureResponse
Missing
name
or
description
Validation fails; add required fields
Invalid skill name formatUse lowercase, 2-64 chars,
a-z0-9_-
Placeholders (TODO) in SKILL.mdReplace with actual content before validating
{baseDir} reference not foundVerify path exists relative to skill folder
Validation errorsFix all ERRORs before validating

Examples

Creating a New Skill

User: "Build me a skill to rotate PDFs"

Assistant uses this workflow:

  1. Captures requirements (rotate PDF, 3 triggers)
  2. Plans resources (scripts/rotate_pdf.py)
  3. Runs init_skill.py
  4. Fills in SKILL.md with PDF-specific workflow
  5. Adds rotate_pdf.py script
  6. Validates

Updating an Existing Skill

User: "This skill is missing failure handling"

Assistant:

  1. Runs gap analysis → finds missing "Failure handling"
  2. Adds failure modes table
  3. Re-validates

Acceptance Tests

PromptExpected Behavior
"Build a new skill called pdf-editor"Creates skill scaffold, runs init script
"Create a skill for image processing"Follows full workflow, validates skill
"Validate my skill at /path/to/skill"Runs quick_validate.py, reports issues
"What sections should a skill have?"References checklist.md
"Help me improve my existing skill"Runs gap analysis, suggests fixes
"Show me the skill spec format"References skill_spec.md
"Why isn't my skill triggering?"Checks trigger specificity, suggests improvements