What you need to know
Where they live decides who gets them
| Project (shared) | Personal | |
|---|---|---|
| Slash commands | .claude/commands/ | ~/.claude/commands/ |
| Skills | .claude/skills/<name>/SKILL.md | ~/.claude/skills/<name>/SKILL.md |
A command in the project folder is version-controlled and available to every developer on clone. A personal command lives in your home directory and nobody else sees it. If you want a personal variant of a team skill, create it under ~/.claude/skills/ with a different name so you do not affect teammates.
Skill frontmatter
---
name: analyze-architecture
description: Map the modules, entry points and dependencies of this codebase
context: fork
allowed-tools: Read, Grep, Glob
argument-hint: [package-name]
---
Analyse the architecture of $ARGUMENTS and return a one-page summary...
| Field | What it does | Use it for |
|---|---|---|
context: fork | Runs the skill in an isolated sub-agent; only its final result returns to the main conversation | Verbose output (codebase analysis) or exploratory work (brainstorming alternatives) that would clutter the session |
allowed-tools | Limits the tools used while the skill runs | Keeping a skill to safe operations, such as file writes but no shell commands |
argument-hint | Shows the expected arguments when the skill is invoked | Prompting for a required parameter |
Skill or CLAUDE.md?
| Skill | CLAUDE.md | |
|---|---|---|
| Loaded | On demand, when invoked or relevant | Always, every session |
| Good for | Task-specific workflows: release checklist, scaffolding, architecture analysis | Universal standards: style, testing conventions |
Putting a 200-line release procedure in CLAUDE.md costs context in every session; putting coding standards in a skill means they apply only when someone remembers to invoke it.
In the exam
Expect: a command teammates cannot see (wrong scope) or one they should not see (also wrong scope), a skill whose output floods the conversation (context: fork), a skill that must not run shell commands (allowed-tools), a skill invoked without its parameter (argument-hint), and skill-versus-CLAUDE.md choices.
Check your understanding
A /deploy-checklist command must be available to every developer on clone. Where does it go?
Show answer
Answer: D. The project commands folder is version-controlled, so everyone gets the command when they clone.
A codebase analysis skill dumps thousands of lines into the conversation. Which frontmatter option fixes this?
Show answer
Answer: A. context: fork runs the skill in an isolated sub-agent; only the distilled result reaches the main session.
Which TWO belong in a skill rather than in CLAUDE.md? Select TWO.
Show answer
Answer: A, C. Skills are for task-specific workflows invoked on demand. Conventions and the basic test command apply to every session, so they belong in CLAUDE.md.
Apply it: Harbor Lane's shared skills
Each Harbor Lane team keeps its own copy of a release-checklist prompt in a wiki, and one engineer wants an architecture-analysis skill. Design both.
- Turn the release checklist into a shared skill. Give its location and frontmatter.
- Write the architecture-analysis skill's frontmatter so its output does not flood the session and it cannot change files.
Why: analysis should be read-only. - Make the checklist prompt for the target environment when invoked without one.
- Say what stays in CLAUDE.md instead of a skill.
Show model answer
1. Release skill. .claude/skills/release-checklist/SKILL.md, committed:
---
name: release-checklist
description: Run Harbor Lane's pre-release checks for a service
argument-hint: [environment]
---
2. Analysis skill
---
name: analyze-architecture
description: Summarise modules, entry points and dependencies of a package
context: fork
allowed-tools: Read, Grep, Glob
argument-hint: [package]
---
context: fork keeps the long exploration out of the main session. allowed-tools lists read-only tools (for the exam, this restricts the skill; in current releases also add deny rules for Write, Edit and Bash during analysis if it must be guaranteed).
3. Prompting. argument-hint: [environment] shows the expected argument; the skill body also says "If no environment was given, ask: staging or production?"
4. CLAUDE.md. The coding and testing conventions every session needs. The checklist and the analysis are on-demand workflows, so they are skills.