agent-skill-creator

Guide for creating effective, portable skills that extend Claude's capabilities with specialized knowledge, workflows, and tool integrations. Use when: (1) Creating a new skill from scratch, (2) Updating or improving an existing skill, (3) Structuring skill content for progressive disclosure, (4) Writing skill descriptions and triggers, (5) Packaging a skill for distribution. Triggers on: "create a skill", "build a skill", "new skill", "update this skill", "improve skill description", "skill structure", "skill triggers".

11 stars

Best use case

agent-skill-creator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Guide for creating effective, portable skills that extend Claude's capabilities with specialized knowledge, workflows, and tool integrations. Use when: (1) Creating a new skill from scratch, (2) Updating or improving an existing skill, (3) Structuring skill content for progressive disclosure, (4) Writing skill descriptions and triggers, (5) Packaging a skill for distribution. Triggers on: "create a skill", "build a skill", "new skill", "update this skill", "improve skill description", "skill structure", "skill triggers".

Teams using agent-skill-creator should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/agent-skill-creator/SKILL.md --create-dirs "https://raw.githubusercontent.com/ravnhq/ai-toolkit/main/.claude-plugin/plugins/agent-skill-creator/skills/agent-skill-creator/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/agent-skill-creator/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How agent-skill-creator Compares

Feature / Agentagent-skill-creatorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Guide for creating effective, portable skills that extend Claude's capabilities with specialized knowledge, workflows, and tool integrations. Use when: (1) Creating a new skill from scratch, (2) Updating or improving an existing skill, (3) Structuring skill content for progressive disclosure, (4) Writing skill descriptions and triggers, (5) Packaging a skill for distribution. Triggers on: "create a skill", "build a skill", "new skill", "update this skill", "improve skill description", "skill structure", "skill triggers".

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Skill Creator

Create effective, portable skills that work across Claude.ai, Claude Code, and the API. A skill is a folderized instruction set that encodes a reusable workflow once, then applies it consistently.

## Skill Structure

```
skill-name/
├── SKILL.md              # Required: YAML frontmatter + markdown instructions
├── scripts/              # Optional: executable code for deterministic tasks
├── references/           # Optional: docs loaded into context as needed
└── assets/               # Optional: files used in output (templates, images, fonts)
```

### SKILL.md

Two parts:

1. **Frontmatter** (YAML) — `name` and `description` fields. Always in context. Determines when the skill triggers.
2. **Body** (Markdown) — Instructions, workflows, and pointers to bundled resources. Loaded only after triggering.

### Bundled Resources

| Directory | Purpose | Loaded into context? |
|-----------|---------|---------------------|
| `scripts/` | Executable code (Python/Bash) for deterministic operations | Only when Claude reads them |
| `references/` | Documentation Claude consults while working | On demand |
| `assets/` | Files used in output (templates, images, fonts) | Never — used directly in output |

Do not include README.md, CHANGELOG.md, or any auxiliary documentation files.

## Core Principles

### Context Budget

The context window is shared. Only include what Claude does not already know. Prefer concise examples over verbose explanations. Every paragraph must justify its token cost — remove paragraphs that do not.

**Hard limit**: Keep SKILL.md body under 5,000 words. Move detailed content to `references/`.

### Degrees of Freedom

Match specificity to the task's fragility:

- **High freedom** (text guidance) — multiple valid approaches, context-dependent
- **Medium freedom** (pseudocode/parameterized scripts) — preferred pattern, some variation ok
- **Low freedom** (exact scripts) — fragile operations, consistency critical

### Progressive Disclosure

Three-layer loading minimizes context usage:

1. **Frontmatter** (under 100 words) — always in context
2. **SKILL.md body** (under 5,000 words) — loaded when skill triggers
3. **Bundled resources** (unlimited) — loaded as needed

Keep SKILL.md lean. Split into reference files when exceeding 300 lines. Always reference split files from SKILL.md with clear descriptions of when to read them.

### Composability and Portability

- Skills must coexist without conflicting instructions
- Skills must work across Claude.ai, Claude Code, and the API
- Do not hard-depend on environment-specific tooling

## Workflow

### 1. Understand

Gather concrete use cases before building anything.

**Entry**: User request to create or improve a skill.

**Actions**:
- Identify 2-3 concrete examples of how the skill will be used
- For each example: what triggers it, what steps run, what the end result looks like
- Ask targeted questions — avoid overwhelming the user with too many at once

**Exit**: Clear understanding of the skill's scope, triggers, and expected outputs.

### 2. Plan

Determine what reusable resources the skill needs.

**Entry**: Concrete use cases from Step 1.

**Actions**:
- For each use case: what gets rewritten every time? That belongs in the skill.
- Categorize resources:
  - Code rewritten repeatedly → `scripts/`
  - Knowledge referenced repeatedly → `references/`
  - Templates/assets used in output → `assets/`
- Decide SKILL.md structure — see `references/workflows.md` for common patterns.

**Exit**: List of resources to create and SKILL.md outline.

### 3. Build

Create the skill folder and write its contents.

**Entry**: Resource list and SKILL.md outline from Step 2.

**Actions**:

1. **Create the skill folder** following the structure above. If `scripts/init_skill.py` is available in the environment, use it as a scaffolding accelerator:
   ```bash
   scripts/init_skill.py <skill-name> --path <output-directory>
   ```
   Otherwise, create the folder and SKILL.md manually.

2. **Write bundled resources first** — scripts, references, assets. Test scripts by running them. Delete any scaffolding files not needed.

3. **Write SKILL.md**:
   - **Frontmatter**: Follow `references/description-authoring.md` for the description formula
   - **Body**: Use imperative/infinitive form. Structure by workflow steps or task categories.
   - Keep the body lean — point to references for depth
   - Validate against `references/validation-checklist.md` to ensure the skill meets all structural requirements

4. **Delete unused scaffolding** — remove example files and empty directories.

**Exit**: Complete skill folder with all resources and SKILL.md.

### 4. Test

Validate triggering and output quality.

**Entry**: Complete skill from Step 3.

**Actions**:
- Run triggering tests (positive and negative prompts)
- Run functional tests on real tasks
- Compare results against baseline (no skill)

See `references/testing-iteration.md` for detailed testing methodology and success criteria.

**Exit**: Skill triggers on 9 out of 10 relevant prompts and produces consistent output.

### 5. Iterate

Refine based on real usage.

**Entry**: Test results or user feedback.

**Actions**:
- Diagnose issues: undertriggering, overtriggering, or execution failures
- Apply targeted fixes per `references/testing-iteration.md`
- Re-test affected areas

**Exit**: Skill meets success criteria across real-world usage.

## Packaging

Package a finished skill as a `.skill` file (zip with `.skill` extension). If `scripts/package_skill.py` is available, use it — it validates and packages automatically:

```bash
scripts/package_skill.py <path/to/skill-folder> [output-directory]
```

Otherwise, zip the skill folder manually ensuring SKILL.md is at the root of the archive.

## Reference Guides

Consult these based on the skill's needs:

- **Description and triggers**: `references/description-authoring.md` — formula, trigger phrases, negative triggers, hard constraints
- **Workflow patterns**: `references/workflows.md` — sequential, multi-service, iterative, context-aware, domain intelligence
- **Output patterns**: `references/output-patterns.md` — templates and example-based output guidance
- **Testing and iteration**: `references/testing-iteration.md` — triggering tests, functional tests, performance metrics, diagnostics
- **Validation checklist**: `references/validation-checklist.md` — structural requirements every skill must meet
- **Troubleshooting**: `references/troubleshooting.md` — common failures and resolution paths

## Examples

### Positive Trigger

User: "Create a new skill for converting PDFs to markdown with reusable scripts."

Expected behavior: Follow this skill's workflow — understand use cases, plan resources, build the skill.

### Non-Trigger

User: "Find and fix a TypeScript type error in src/api/client.ts."

Expected behavior: Do not use this skill. Choose a more relevant skill or proceed directly.

## Troubleshooting

### Created Skill Does Not Trigger

- Error: The skill is not selected when expected.
- Cause: Description lacks specific trigger phrases or is too vague.
- Solution: Rewrite description following `references/description-authoring.md`.

### Created Skill Is Too Verbose

- Error: SKILL.md exceeds 5,000 words or fills excessive context.
- Cause: Detailed content belongs in references, not the body.
- Solution: Move detailed content to `references/` files. Keep SKILL.md as a lean workflow guide.

### Output Is Inconsistent Across Sessions

- Error: Skill produces different quality results each time.
- Cause: Instructions are ambiguous or lack explicit validation steps.
- Solution: Add concrete examples, exact commands, and verification steps. See `references/troubleshooting.md`.

Related Skills

agent-pr-creator

11
from ravnhq/ai-toolkit

Analyzes git diffs and commit history to intelligently fill PR templates and create pull requests via gh CLI. Use when: creating a PR, needing PR description help, saying 'create a pull request', 'fill PR template', 'make a PR', 'open a pull request'. Triggers on: create PR, open pull request, make a PR, fill template.

agent-skills-manager

11
from ravnhq/ai-toolkit

Manage AI skills from the Ravn AI Toolkit via corvus CLI — install, update, remove, search, and configure skills for any project. Use when: (1) Installing AI skills into a project, (2) Updating installed skills to latest versions, (3) Browsing or searching available skills, (4) Configuring global or per-project skill sets, (5) Troubleshooting corvus setup. Triggers on: "install skills", "add skills", "update skills", "corvus", "skill manager", "browse skills", "set up AI rules".

type-system-audit

11
from ravnhq/ai-toolkit

Audit a repository for type-system weaknesses using recent bug-fix commits as hard evidence. Produces prioritized findings tied to specific commits showing which types allowed real bugs. Use when: reviewing type safety, auditing types, analyzing type bugs. Triggers on: type audit, type system review, audit types, type safety audit.

ts-linter

11
from ravnhq/ai-toolkit

Set up and enforce a strict, production-grade ESLint configuration for TypeScript projects, then systematically fix all linting issues. Use this skill whenever the user asks to add a linter or ESLint, enforce code quality rules, fix linting errors, clean up code style, or add type-aware linting. Trigger on: "lint", "eslint", "code quality", "static analysis", "strict linting", "make it stricter", "make the code stricter", "add better rules", "clean up the codebase", "enforce standards", "fix all the warnings", or "ShadCN lint errors". Handles detection, config generation, dependency installation, auto-fix, and manual remediation. Do NOT use for Biome or Rome projects, Prettier-only formatting, non-TypeScript/JavaScript projects, writing custom ESLint rules or plugins, husky/lint-staged/pre-commit hook setup, or when the user just wants to run an existing linter without changing its configuration.

transcript-notes

11
from ravnhq/ai-toolkit

Convert meeting transcript .txt files into structured .md notes with metadata, TL;DR, key topics, action items, and quotes. Use when processing raw transcripts into formatted notes. Triggers on: "process transcript", "generate notes from transcript", "transcript to notes", "/transcript-notes".

test-plan-gen

11
from ravnhq/ai-toolkit

Generate professional QA Test Plan documents (.docx or .pdf) from a structured interview. Trigger on "create/write a test plan", "I need a test plan", "prepare QA documentation", /testplan, or when a user uploads a PRD/requirements and wants a test plan generated.

test-case-gen

11
from ravnhq/ai-toolkit

Generate, evaluate, audit, and normalize QA test cases to RAVN standards. Trigger on "generate/write/create test cases", "evaluate/score my test cases", "audit my test suite", "review test coverage", "normalize/reformat test cases", or when a user wants test design help. Also triggered by /testcases.

tech-react

11
from ravnhq/ai-toolkit

React 19 patterns for components, hooks, Server Components, and data fetching. Use when writing React components, managing state with hooks, implementing Suspense boundaries, optimizing renders with proper memoization, or building Server/Client component hierarchies.

tech-drizzle

11
from ravnhq/ai-toolkit

Drizzle ORM typesafe schema design, relational queries, prepared statements, migrations, and transactions. Use when working with Drizzle ORM, writing database queries, managing migrations, or optimizing query performance with prepared statements.

tech-android

11
from ravnhq/ai-toolkit

Android and Kotlin development patterns — Compose, architecture, coroutines, Room, navigation, Hilt. Use when building Android apps, writing Jetpack Compose UI, or reviewing Android-specific code.

swift-concurrency

11
from ravnhq/ai-toolkit

Swift Concurrency patterns — async/await, actors, tasks, Sendable conformance. Use when writing async/await code, implementing actors, working with structured concurrency, or ensuring data race safety.

rewrite-commit-history

11
from ravnhq/ai-toolkit

Rewrite a feature branch's commit history into clean conventional commits that tell a progressive, linear story. Handles backup, soft reset, and atomic recommit. Use when: (1) Cleaning up messy WIP commits before PR, (2) Reorganizing commits into logical units, (3) Converting commits to conventional commit format. Triggers on: "rewrite history", "clean up commits", "rewrite commits", "conventional commits", "squash and rewrite", "reorganize commits".