Claude Code Skills: install an existing skill and create your own
Neaptide · September 20, 2026 · 8 min read
Install Claude Code Skills from folders or plugins, write SKILL.md and evaluate the result using a form-review example.
On this page

Repeated tasks develop a familiar sequence: read relevant files, check conditions and return a clear result. If you regularly ask Claude Code to review forms, draft change descriptions or investigate build errors, that sequence can become a skill.
A Skill is a folder containing instructions in SKILL.md and optional supporting material. It packages a repeatable procedure with examples and other files. See the Agent Skills specification.
This guide covers local Claude Code installation and a sample enquiry-form review skill. Commands were checked against documentation; the example is not a report of testing on a live website.
Choose a task for a Skill
Choose a procedure you can already explain: “Before handing over a form, inspect required fields, error messages and submission behavior, then report problems.”
That is a better first scope than “build quality websites.” A form review has inputs, steps and an assessable output.
| Task | What to preserve | Expected output |
|---|---|---|
| Form review | Input scenarios and inspection order | Issues and unchecked conditions |
| Change description | Structure and detail-selection criteria | Draft matching the actual diff |
| Build failure analysis | Log-reading and diagnostic sequence | Supported cause or remaining hypotheses |
| Article preparation | Editorial criteria and link checks | Specific revisions |
Start with one row. A skill that builds a site, writes advertisements, configures servers and publishes everything is difficult to diagnose.
Install a skill from a folder
Personal skills live in `~/.claude/skills/`; project skills live in `.claude/skills/` inside the repository. Each has its own folder and SKILL.md. Personal skills work across projects on that machine; project skills can travel with the code. Skill locations.
project/
└── .claude/
└── skills/
└── form-review/
├── SKILL.md
└── references/
└── checklist.mdIf you downloaded a collection, find the intended skill and copy its entire folder. Copying SKILL.md alone can break references to supporting files.
Check for accidental extra nesting:
.claude/skills/form-review/form-review/SKILL.mdThe intended location is:
.claude/skills/form-review/SKILL.mdBefore copying, check whether that name already exists. Compare versions first so you preserve your own changes.
Install skills through a plugin
For plugin distribution, follow the author's instructions. The official Anthropic repository uses these commands inside Claude Code:
/plugin marketplace add anthropics/skills
/plugin install example-skills@anthropic-agent-skillsThe first adds the marketplace; the second installs example skills. The repository also lists `document-skills@anthropic-agent-skills` for document work. anthropics/skills README.
A folder and a plugin are different distribution methods. Do not turn an arbitrary SKILL.md found on GitHub into a `/plugin install` command; first check whether a marketplace package exists.
Read Claude Code's installation response. If activation is needed, run `/reload-plugins`; errors are available in `/plugin`. Installation scope determines whether it is personal, shared with the project or local to you in that project. Plugin installation.
Inspect someone else's skill
Read SKILL.md and bundled scripts before the first run. Compare behavior with the task: a form review should not require unexplained transmission of the repository to an external server.
Record the source, version and your modifications. These provide a comparison point if an update changes the result.
Check prerequisites too. The author may assume a particular framework, command set or browser tool. Replace assumptions that do not hold in your project instead of promising universal compatibility.
Create a form-review Skill
This example reads the implementation and reports findings. It does not fix code or submit enquiries, making review separate from repair.
Create `.claude/skills/form-review/` in your editor, or on macOS, Linux or WSL:
mkdir -p .claude/skills/form-reviewCreate SKILL.md with this original learning example and adapt it to your project:
---
name: form-review
description: Reviews an enquiry form implementation and reports on validation, messages and submission. Use for form review before release.
disable-model-invocation: true
---
# Enquiry form review
## Goal
Find implementation problems and identify remaining checks.
Read files only. Do not change code, submit the form
or contact external services.
## Inputs
A form path or user journey name is required.
If several forms match, ask which one to review.
## Procedure
1. Read the form component, handler and related tests.
2. Find required fields and validation rules.
3. Inspect handling of empty input and invalid email in the code.
4. Trace submitting, success and error states.
5. Check that repeated clicks during submission are handled explicitly;
if unclear, describe the uncertainty.
6. Compare findings with tests. A test's existence does not mean
it was executed or passed.
## Report
For each issue, provide:
- file and code location;
- conditions that trigger it;
- possible user impact;
- suggested verification or correction.
List separately behavior that requires running the application.
If no clear issues were found, say so without claiming
the form was fully tested.Metadata goes between the opening `---` lines; the procedure follows. The open specification requires `name` and `description`, with the name matching the directory. This example uses lowercase Latin letters and a hyphen. SKILL.md format.
`disable-model-invocation: true` is Claude Code's setting for manual invocation. Here it makes starting the review explicit. Read-only wording describes behavior; technical permissions are separate. Invocation control, permissions.
Invoke it and check the result
Open the project in Claude Code:
/form-review Review the enquiry form in src/components/LeadForm.tsxReplace the illustrative path with an existing file. Direct invocation uses `/skill-name`. Invoking Skills.
Choose a form with a known behavior, such as an error message disappearing immediately after another click. Check whether the agent notices it and identifies the cause in code.
Assess four things:
- Existing files and specific implementation locations are cited.
- Each finding states its triggering condition.
- Assumptions are separate from code-supported conclusions.
- Reading tests is not presented as successfully running them.
If the report is generic advice, strengthen the evidence requirement: “Do not include a recommendation without identifying the relevant implementation.” Repeat on the same form.
Change one substantial instruction at a time to see what improved the answer. This is a proposed editing method; no skill-test results are claimed here.
Write a description for automatic selection
For automatic selection, describe both action and occasion. Compare:
Helps develop applications.
With:
Reviews enquiry forms before release: field validation, error messages and submission states. Use for form-review requests, not general architecture reviews.
The second makes boundaries clear. The specification recommends describing what the skill does and when it should be used. Description requirements.
Automatic selection is disabled in our example. If you enable it, try an appropriate request, a nearby topic and an unrelated request. Observation is more useful than judging wording alone.
If the Skill is missing or does not trigger
Check the path, exact SKILL.md filename and YAML opening: `---` must be the first line. If you created the top-level `.claude/skills/` after the session started, restart Claude Code. Editing and loading.
Distinguish installation from selection. If direct invocation fails, check installation. If manual invocation works but automatic selection does not, check the invocation mode and description.
When personal and project skills share a name, Claude Code prefers the personal one. Inspect both locations if results are unexpected. Name collisions.