← Back to catalog

concept

Agent Skills — Reusable Workflow Cheatsheet

Practical guide to agent skills: structure reusable instructions, install and invoke skills, package resources safely, and maintain them as workflows evolve.

  • 2026-09-25 (3 weeks ago)
  • 5 steps
  • ~55 min total
  • agent-skills
  • skills
  • workflows
  • instructions
  • safety
  • reuse

Agent Skills — Reusable Workflow Cheatsheet

One-line: Agent skills package reusable instructions, metadata, scripts, and resources so an AI agent can load specialized workflows on demand instead of rediscovering them in every conversation.

Installation

Agent skills are usually filesystem packages rather than standalone apps. In Claude Code, create a skill directory with a SKILL.md file, then invoke it by name or let the agent select it when relevant.

mkdir -p .claude/skills/release-notes
cat > .claude/skills/release-notes/SKILL.md <<'EOF'
---
name: release-notes
description: Draft release notes from merged PRs and changelog entries.
---

Use this skill when the user asks for release notes.
1. Gather merged PRs.
2. Group changes by user impact.
3. Flag breaking changes and migration steps.
EOF

First-run checklist:

  1. Keep the skill name short, kebab-case, and task-oriented.
  2. Describe when the agent should use it.
  3. Include only the files, scripts, and templates the skill needs.
  4. Test with a realistic task before sharing across projects.

Step-by-Step Setup & Optimization

Step 1 — Decide whether a skill is warranted

Goal: A clear yes/no on whether a workflow deserves a skillTime: ~5 minLevel: beginner

Use a skill when a workflow repeats and has stable steps.

Use a skill forKeep as a prompt for
Release notes, PR review, triage, report generation.One-off brainstorming or exploratory debugging.
Procedures with templates, examples, or scripts.Tasks where requirements change every time.
Domain rules that should travel between sessions.Temporary issue-specific context.
Your workflow sits in the “Use a skill for” column — it repeats and has stable steps.

Step 2 — Write the trigger and scope

Goal: A description that routes the skill without over-triggeringTime: ~10 minLevel: beginner

The description is the routing contract. Make it specific enough that the agent knows when to load the skill.

---
name: api-review
description: Review API changes for compatibility, auth, error shape, and docs updates.
---

Avoid vague descriptions such as “helps with coding” because they cause over-triggering.

Your description says what the skill does and when to load it — no vague “helps with coding” phrasing.

Step 3 — Package resources safely

Goal: A packaged skill directory whose scripts are documented and safeTime: ~15 minLevel: intermediate

Skills can include instructions, templates, scripts, sample outputs, and checklists. Keep executable scripts small and reviewable.

skill-name/
  SKILL.md
  templates/
    report.md
  scripts/
    collect-inputs.sh

Document every script input and side effect. Prefer read-only scripts unless the skill’s purpose is explicitly to write files.

Every script in the package lists its inputs and side effects, and scripts are read-only unless writing is the point.

Step 4 — Test invocation paths

Goal: Proof the skill triggers only when it shouldTime: ~15 minLevel: intermediate

Run three checks:

  1. Direct invocation: ask for /skill-name or the platform equivalent.
  2. Natural trigger: ask for the task without naming the skill.
  3. Negative trigger: ask for a nearby task that should not load the skill.
All three checks pass — /skill-name loads it, an unnamed request loads it, and a nearby task does not.

Step 5 — Maintain a skill library

Goal: A skill library that stays current as processes changeTime: ~10 minLevel: intermediate

Review skills periodically. Archive unused skills, merge duplicates, and update examples after process changes. Treat skills like docs plus code: version them, review them, and test them.

Unused skills are archived, duplicates merged, and each skill is versioned and reviewed like docs plus code.

Best Practices

Do

  • ✅ Use clear name and description metadata.
  • ✅ Keep SKILL.md concise; link or include resources only when needed.
  • ✅ Add examples of good output and common edge cases.
  • ✅ Document script side effects and required tools.
  • ✅ Prefer project-local skills for project-specific workflows.
  • ✅ Review skills after failures and turn lessons into better checks.

Don’t

  • ❌ Put secrets, tokens, or private data in skill packages.
  • ❌ Create a skill for every prompt; wait for repeatability.
  • ❌ Use broad triggers that load on unrelated tasks.
  • ❌ Hide destructive commands inside helper scripts.
  • ❌ Let stale skills override current project conventions.

Quick Command Reference

Command or fileUse
.claude/skills/<name>/SKILL.mdProject-local Claude Code skill package.
~/.claude/skills/<name>/SKILL.mdUser-level skill package when supported.
/skill-nameDirectly invoke a skill by name in supporting agents.
nameStable metadata identifier for the skill.
descriptionRouting hint that tells the agent when to load the skill.
templates/Optional reusable output or input templates.
scripts/Optional helper scripts; keep side effects explicit.

Expected Outcomes

After setup, you should have:

  • A reusable skill with a clear trigger, scope, and owner.
  • A small package layout containing only necessary instructions and resources.
  • Tested direct, natural, and negative invocation behavior.
  • Documented safety boundaries for scripts and generated outputs.
  • A maintenance rhythm for pruning and improving skills over time.

Reference

Sources & deeper reading