Acquire Skill
You are the engineering-manager. When an agent encounters a capability gap — a task they can't complete because no skill exists for it — use this skill to research the domain, write a complete SKILL.md, and register it so agents can use it going forward.
When to Use
- •An agent reports "I don't know how to do X"
- •The EM identifies a missing skill during sprint planning
- •A new technology, service, or workflow needs to be integrated
- •The team wants to codify a manual process into a repeatable skill
Step 1: Define the Skill Gap
- •Parse
$ARGUMENTSto identify the capability needed - •Check if a skill already exists:
bash
ls .claude/skills/ grep -rl "$TOPIC" .claude/skills/ 2>/dev/null
- •If existing skill found → offer to enhance it instead
- •Determine:
- •Skill name — short, kebab-case (e.g.,
azure-iac,local-build) - •User-invocable? — does a human trigger it via
/command, or is it agent-only? - •Which agents will use this skill?
- •What triggers this skill's invocation?
- •Skill name — short, kebab-case (e.g.,
Step 2: Research the Domain
Gather comprehensive information to write an authoritative skill definition:
- •Official documentation — WebFetch from official docs
- •Web search — WebSearch for best practices, tutorials, common pitfalls
- •Codebase patterns — Grep/Glob for any existing usage or related code
- •Existing skills — Read similar skills for structural patterns
- •Template — Read
.claude/skills/_templates/SKILL.md.templatefor required structure
Record all sources with URLs and key findings.
Step 3: Draft the Skill Definition
Create .claude/skills/<skill-name>/SKILL.md following the template structure.
Required Sections
Every skill must have:
- •
Frontmatter — YAML between
---delimiters:yaml--- name: <skill-name> description: <one-line description> argument-hint: <usage hint> ---
- •
Context — Why this skill exists and when to use it
- •
Workflow — Numbered steps the agent follows. Each step must be:
- •Atomic (one clear action)
- •Testable (you can verify it happened)
- •Include expected outputs
- •
Inputs — Parameters table with required/optional, types, defaults
- •
Outputs — Artifacts produced (files, GH objects, notifications)
- •
Error Handling — Failure modes and recovery actions
Quality Criteria
- •Steps reference specific commands, file paths, or API calls
- •No vague instructions like "configure as needed" — be specific
- •Include concrete examples with realistic values
- •Error handling covers the top 3 most likely failures
- •Follows conventions from existing skills (read 2-3 for style)
Step 4: Create Companion Reference (if needed)
If the skill requires extensive reference data (API docs, config options, decision trees):
- •Create
.claude/skills/<skill-name>/reference.mdusing the reference template - •Link it from the SKILL.md: "For detailed reference, see
reference.md" - •Keep the SKILL.md focused on workflow; put lookup data in the reference
Step 5: Register the Skill
5a. Update CLAUDE.md
Add the skill to the appropriate table in the project's CLAUDE.md:
If user-invocable (has a /command), add to the "Commands" table:
| `/command` | `.claude/skills/<name>/SKILL.md` | Description |
If agent-only, add to the "Skills" table:
| **Skill Name** | `.claude/skills/<name>/SKILL.md` | Description |
5b. Update Agent Definitions
For each agent that will use this skill:
- •Read
.claude/agents/<agent>.md - •Add the skill to the agent's
skills:frontmatter list - •Add a reference in the agent's Quick Reference section
5c. Commit
git add .claude/skills/<skill-name>/ git commit --no-gpg-sign -m "acquire-skill: Add <skill-name> skill definition"
Step 6: Validate
Run a quick validation:
- •Frontmatter check — name, description, argument-hint all present
- •Section completeness — Context, Workflow, Inputs, Outputs, Error Handling exist
- •No placeholders — no unresolved template tokens remain (except project-level ones like
{{PROJECT_NAME}}) - •File exists —
.claude/skills/<name>/SKILL.mdcommitted
Step 7: Summary
Skill acquired: <skill-name> - File: .claude/skills/<skill-name>/SKILL.md - Reference: .claude/skills/<skill-name>/reference.md (if created) - Invocable: /command (or agent-only) - Agents: <list of agents> - Registered in: CLAUDE.md - Sources: N consulted Next: Test the skill by running /<command> or delegating to an agent.
Inputs
| Parameter | Required | Type | Description |
|---|---|---|---|
$ARGUMENTS | Yes | string | Skill name or capability description |
Outputs
| Output | Type | Description |
|---|---|---|
| SKILL.md | .md file | Complete skill definition |
| reference.md | .md file | Companion reference (if needed) |
| CLAUDE.md update | edit | Skill registered in project docs |
| Agent updates | edit | Skill added to agent definitions |
| Git commit | commit | All artifacts committed |
Error Handling
| Error | Action |
|---|---|
| Skill already exists | Offer to enhance the existing skill instead |
| Insufficient documentation available | Create a minimal skill with TODOs, flag for manual completion |
| Topic too broad for one skill | Propose splitting into multiple focused skills |
| Cannot determine which agents need it | Ask user which agents should have access |
Examples
User invocation
/acquire-skill azure-blob-storage
From EM during sprint
The mobile-engineer reports they don't know how to configure EAS submissions. Running /acquire-skill eas-submit to create the skill.