Pillar 4 · Knowledge · Intro

Agent Skills: Reusable Prompts in Claude Code.

Skills are reusable markdown files that teach Claude Code how to handle specific tasks automatically, so you stop repeating the same instructions every conversation. Each skill is a directory with a SKILL.md declaring name + description, and Claude semantically matches incoming requests against descriptions to load the right skill on demand. The course walks through creating a skill, advanced configuration (allowed-tools, multi-file progressive disclosure), how skills relate to CLAUDE.md, subagents, hooks, and MCP, plus how to share and troubleshoot them.

6 Skilljar lessons·~90 min on Skilljar·D1 + D2

Mirrors Anthropic's Introduction to Agent Skills course on Skilljar.

Original course6 lessons · ~90 min
Introduction to Agent Skills
Take it on Anthropic Skilljar ↗
Agent Skills: Reusable Prompts in Claude Code, painterly hero showing the course's central concept with the Loop mascot as guide.
01 · What you'll learn

You'll walk away with

  1. What a skill is, where it lives (personal ~/.claude/skills vs project .claude/skills), and how Claude Code matches one to a request
  2. How to author a SKILL.md with name, description, and instructions that reliably trigger when the task comes up
  3. Advanced fields: allowed-tools for restricting capabilities and model for routing to a specific Claude model
  4. Progressive disclosure: keeping SKILL.md under 500 lines and linking to supporting files Claude reads only when needed
  5. When to use skills versus CLAUDE.md, subagents, hooks, or MCP, and how they complement each other
  6. How to share skills via repo commits, plugins, or enterprise managed settings, and how to troubleshoot when one does not trigger
02 · Prerequisites

Read these first

03 · The course mirror

Lesson outline

Every lesson from Introduction to Agent Skills with our one-line simplification. The Skilljar course is the source; we summarize.

#Skilljar lessonOur simplification
1What are skills?Skills are folders of instructions Claude Code discovers and applies automatically; if you find yourself repeating instructions, that is a skill waiting to be written.
2Creating your first skillCreate a SKILL.md with name + description frontmatter, drop it in ~/.claude/skills/<name>/, restart Claude Code to pick it up.
3Configuration and multi-file skillsAdd allowed-tools for capability restriction, use progressive disclosure to keep SKILL.md small and link to supporting files.
4Skills vs. other Claude Code featuresSkills are on-demand and request-driven; CLAUDE.md is always-on, subagents are isolated execution, hooks are event-driven, MCP is external tools.
5Sharing skillsPersonal in ~/.claude/skills, project (committed) in .claude/skills, plugins for distribution, managed settings for enterprise rollout.
6Troubleshooting skillsUse the skills validator first; if it does not trigger, fix the description; if it does not load, check SKILL.md is in a named directory.
04 · Our simplification

The course in 7 paragraphs

Skills exist because every Claude Code user eventually notices they are typing the same instructions over and over. Every PR review, you re-describe how you want feedback structured. Every commit, you remind Claude of your message format. Skills fix this by letting you write a markdown file once that Claude applies automatically the next time the task comes up. The mental model is npm install for Claude's task-specific knowledge: scoped, on-demand, version-controlled.

Mechanically a skill is a directory containing a SKILL.md. The file has YAML frontmatter declaring at minimum name and description, then markdown instructions below. The description is load-bearing: at startup Claude Code loads only the names and descriptions of every available skill (cheap, no token cost). When you make a request, Claude semantically matches your phrasing against those descriptions and loads the full body of the matching skill into context. You see a confirmation prompt before the load. Skills are inert until they match.

Skills live in two places: personal at ~/.claude/skills/<skill-name>/ (follows you across all projects on your machine) and project at .claude/skills/<skill-name>/ inside a repo (committed to git, shared with everyone who clones). When names conflict, the priority hierarchy is Enterprise → Personal → Project → Plugins. Use personal for your own commit-message style or PR-review preferences; use project for team standards like coding conventions, brand guidelines, or framework-specific debugging checklists. Restart Claude Code after creating or editing a skill so it picks up the change.

Advanced configuration unlocks the production-grade use cases. `allowed-tools` restricts which tools Claude can use while the skill is active; set [Read, Grep, Glob] for a code-review skill so the reviewer cannot edit files even if the prompt drifts. `model` lets a skill request a specific Claude model. Progressive disclosure is the technique that keeps skills efficient: keep SKILL.md under 500 lines, and put deep references, scripts, and assets in sibling files that Claude reads on demand. The trick: Claude can execute a script and consume only its output, never the script's source, so a 2,000-line tax-rules-by-state lookup costs zero context tokens until the output lands.

Skills versus everything else is the question every team asks and the exam loves to test. CLAUDE.md loads into every conversation; use it for project-wide always-on standards (TypeScript strict mode, never modify the schema). Skills load on demand; use them for task-specific expertise that would clutter every conversation if it lived in CLAUDE.md. Subagents run in an isolated context with their own tool access; use them when you want delegation, not knowledge injection. Hooks fire on events (file save, tool call); use them for automation, not reasoning. MCP provides external tools; a different category entirely from skills. The right setup combines all of them.

Sharing scales the value. A personal skill stays on your machine. A project skill gets committed alongside the code; the next teammate who clones the repo gets it free. Plugins package a set of related skills (plus optional commands and config) for distribution outside a single repo. Managed settings let an enterprise admin push a skill set to every user's Claude Code installation, with the highest priority in the hierarchy. The shape that emerges is: personal skills are your habits, project skills are your team's standards, plugin skills are community contributions, enterprise skills are policy.

Troubleshooting follows a predictable pattern. Run the skills validator first; it catches structural problems (missing frontmatter, wrong filename, directory shape) faster than any other technique. If a skill does not trigger, the description is almost always the cause; add the trigger phrases users actually type. If it does not load, check that SKILL.md lives inside a named directory and that the filename is exactly SKILL.md (case-sensitive). If the wrong skill activates, two descriptions are too similar; disambiguate. For runtime errors in skill scripts, check dependencies, file permissions (chmod +x), and use forward slashes in paths. The exam treats skills as a recognition problem more than a creation problem. You will see scenarios describing team pain (a brand-guidelines doc Claude keeps missing, a PR-review style that drifts) and be asked which Claude Code feature solves it. Skill is the right answer when the knowledge is task-specific and on-demand; CLAUDE.md when it should always apply; subagent when you want isolation; hook when an event triggers automation; MCP when you need an external system.

05 · Listicle pattern

Skills vs CLAUDE.md vs subagents vs hooks vs MCP

The single most-tested skills concept is which feature fits which job. Memorize the load model and the trigger.

  1. CLAUDE.md: always-on standards

    Loads into every conversation. Use for project-wide constraints (TypeScript strict, never modify schema, framework preferences). Token cost on every turn, so keep it tight.

    Concept: claude-md-hierarchy
  2. Skills: on-demand, request-driven

    Loads only when Claude matches a request to the skill's description. Use for task-specific expertise (PR review style, commit format, debugging checklists). Cost is zero until activated.

    Concept: skills
  3. Subagents: isolated execution

    Runs in a separate context window with its own tool access; returns only a summary. Use for delegation, not knowledge injection. Cleaner parent context, less debuggability.

    Concept: subagents
  4. Hooks: event-driven automation

    Fires on events (file save, tool call). Use for side effects: linters, validators, telemetry. Not for reasoning. Configured in settings.json, not markdown.

    Concept: hooks
  5. MCP: external tools

    Provides callable capabilities from a separate server. Use for connecting Claude to systems outside the conversation. A different category entirely; complement skills, do not replace them.

    Concept: mcp
06 · Key takeaways

6 takeaways with cross-pillar bridges

Skills are markdown files that Claude Code loads on demand when your request matches their description, so they cost zero context tokens until activated.

Personal skills go in ~/.claude/skills, project skills go in .claude/skills (committed to git), and the priority hierarchy is Enterprise > Personal > Project > Plugins.

The description field is the load-bearing decision input; write it to answer two questions: what does the skill do, and when should Claude use it.

Use allowed-tools to restrict capabilities while a skill is active and use progressive disclosure (sub-500-line SKILL.md plus linked support files) to keep large skills efficient.

Skills are knowledge-injection; subagents are isolated execution; hooks are event-driven automation; CLAUDE.md is always-on standards; MCP is external tools, and each handles its own specialty.

When a skill does not trigger, the description is almost always the cause; add the trigger phrases users actually type and run the skills validator first when debugging.

07 · Exam mapping

How this maps to the CCA-F exam

Domains
D1 Agentic Architectures · D2 Tool Design + Integration
Blueprint
27% (D1) + 18% (D2)
What it advances
Direct prep for D1 task statements on Claude Code customization features and D2 questions on choosing the right primitive for the job. Skills appear in agent-skills-for-enterprise-km, agent-skills-for-developer-tooling, and agent-skills-with-code-execution scenarios.
08 · Curated supplementary sources

2 hand-picked extras

These amplify the Skilljar course beyond what the course itself covers. Each was picked for a specific reason.

09 · Concepts wired

Concepts in this course

10 · Scenarios in play

Where you'll see this in production

11 · Sibling Knowledge

Other course mirrors you may want next

12 · AEO FAQ

8 questions answered

Phrased as the way real students search. Tagged by intent so you can scan to what you actually need.

ComparisonWhat are agent skills in Claude Code and how are they different from CLAUDE.md?
Skills are reusable markdown files that Claude Code loads on demand when your request matches the skill's description. CLAUDE.md loads into every conversation always. Use CLAUDE.md for project-wide standards that always apply (TypeScript strict mode); use skills for task-specific expertise that would clutter every conversation if it lived in CLAUDE.md.
How-toHow do I create my first skill in Claude Code?
Create a directory at ~/.claude/skills/<skill-name>/ (personal) or .claude/skills/<skill-name>/ (project). Inside, create a SKILL.md with YAML frontmatter declaring name and description, then write the instructions below the frontmatter. Restart Claude Code so it discovers the new skill. Verify it loads by making a request that should trigger it; you will see a confirmation prompt.
TroubleshootWhy is my skill not triggering when I make a request?
The cause is almost always the description. Claude matches your request semantically against skill descriptions, so vague or generic descriptions miss real-world phrasings. Add the trigger phrases users actually type ('use when reviewing PRs', 'use when writing commit messages'). Also run the skills validator first; it catches structural issues (missing frontmatter, wrong filename, wrong directory shape) before you waste time on the description.
DefinitionWhere do skills live and how does Claude Code find them?
Personal skills go in ~/.claude/skills/<skill-name>/ and follow you across every project on your machine. Project skills go in .claude/skills/<skill-name>/ inside a repo and are committed to version control so the team shares them. At startup Claude Code loads only the names and descriptions of every skill it finds; the full body loads on demand when a request matches.
DefinitionWhat is progressive disclosure in agent skills?
Progressive disclosure is the technique of keeping `SKILL.md` small (under 500 lines) and linking to supporting files Claude reads only when needed. The trick: Claude can execute a script and consume only its output, not the script's source. A 2,000-line lookup table costs zero context tokens until the output lands. Use this pattern for any skill that would otherwise bloat the context window.
ComparisonWhen should I use a skill versus a subagent versus a hook?
Use a skill when you want to inject task-specific knowledge into the current conversation. Use a subagent when you want to delegate work to a separate context with its own tool access (returns only a summary). Use a hook when you want automated side effects on events (file save, tool call). Skills inform reasoning; subagents do work; hooks do automation. They are complementary, not alternatives.
How-toHow do I share a skill with my team?
Put the skill directory in .claude/skills/<skill-name>/ inside the repo and commit it. Anyone who clones the repo gets the skill automatically. For broader distribution, package related skills as a plugin. For enterprise-wide rollout, use managed settings to push skills to every user's Claude Code installation; managed-setting skills sit at the top of the priority hierarchy.
ScopeCan I restrict which tools a skill is allowed to use?
Yes. Add an allowed-tools field to the skill's frontmatter listing only the tools Claude can use while the skill is active. For a code-review skill, set allowed-tools: [Read, Grep, Glob] so the reviewer cannot edit files even if the prompt drifts. The whitelist is your safety contract; relying on prompt-only constraints is the canonical anti-pattern.
Last reviewed: 2026-05-06·Refresh cadence: 60 days; faster when Claude Code ships changes to the skill discovery, allowed-tools, or managed-settings surfaces·View on Skilljar ↗
K · Intro · D1 · Agentic Architectures

Agent Skills: Reusable Prompts in Claude Code, complete.

You've covered the full ten-section breakdown for this primitive, definition, mechanics, code, false positives, comparison, decision tree, exam patterns, and FAQ. One technical primitive down on the path to CCA-F.

Share your win →