Skills with Claude Code
Claude Code is a strong environment for skill development because it combines:
- local filesystem access
- shell/tool execution
- iterative editing in-repo
- agent/subagent workflows
CLAUDE.md vs Skills
Section titled “CLAUDE.md vs Skills”Use both, but for different scopes:
CLAUDE.md: always-loaded project memory (architecture, stack, global conventions)SKILL.md: task-specific procedural playbooks loaded when relevant
Use /init to bootstrap project CLAUDE.md, then keep repeatable workflows in .claude/skills/.
Practical Workflow
Section titled “Practical Workflow”- Add or install the skill collection you want to use (for example from
anthropic/skills). - Verify available skills from inside Claude Code.
- Trigger the skill with a clear task prompt.
- Review generated file diffs and script outputs.
- Refine
SKILL.mddescription/body until activation and output quality are stable.
Typical Local Paths
Section titled “Typical Local Paths”- Project-scoped:
.claude/skills/<skill-name>/SKILL.md - User-scoped:
~/.claude/skills/<skill-name>/SKILL.md
Project skills are ideal for team conventions and should be checked into git.
Reload Behavior
Section titled “Reload Behavior”- Skills are loaded from disk when Claude Code starts.
- If you create or edit skills while a session is running, restart Claude Code to pick up changes.
High-Value Claude Code Patterns
Section titled “High-Value Claude Code Patterns”- Use
skill-creatorto bootstrap structure quickly. - Keep deterministic logic in scripts; keep orchestration logic in
SKILL.md. - Use subagents in parallel to evaluate multiple skills against the same checklist.
- Treat skill reviews like code reviews (activation quality, edge cases, output contracts).
Pattern: Build + Review + Test Skills
Section titled “Pattern: Build + Review + Test Skills”A robust development loop in Claude Code:
- Use an implementation skill (for example “adding CLI command”)
- Use a review skill to check conventions and regressions
- Use a test-generation skill to add coverage and run tests
This creates a predictable pipeline for feature work, not just one-off prompting.
Subagents + Skills in Claude Code
Section titled “Subagents + Skills in Claude Code”Subagents are useful when you want isolated context and parallel workstreams.
- Configure subagents with
/agents(name, description, tools, model, prompt) - Assign skills per subagent via the subagent
skillsfield - Subagents do not inherit parent conversation skills
- In subagents, configured skills are preloaded (full skill content is injected at startup)
This makes subagents ideal for dedicated reviewer/tester roles while the main agent focuses on implementation.
Tool Scoping for Subagents
Section titled “Tool Scoping for Subagents”Use least privilege:
- Reviewer subagent: read/search + optional bash
- Test runner subagent: read/search + edit/write + bash
- Keep destructive tools restricted unless explicitly needed
Constrained tool access improves safety and keeps delegated behavior focused.
Example Prompt Pattern
Section titled “Example Prompt Pattern”Use the skill-creator skill to evaluate these two skills against best practices:1) generating-practice-questions2) analyzing-time-series
Run evaluations in parallel subagents and produce a short scorecard:- metadata quality- workflow clarity- edge-case handling- output predictabilityCommon Pitfalls in Claude Code
Section titled “Common Pitfalls in Claude Code”- Installing a skill but forgetting to enable/reload it
- Over-trusting generated scaffolding without domain constraints
- Leaving script dependencies implicit
- Validating only happy paths
- Putting project-wide conventions only in skills instead of
CLAUDE.md - Assuming subagents inherit parent skills automatically