Skip to content

Commit 04736b2

Browse files
authored
Merge pull request #3540 from cuipinghuo/EC-2039
docs(EC-2039): document expected skill format in AGENTS.md
2 parents bf7fe73 + bec5496 commit 04736b2

1 file changed

Lines changed: 62 additions & 0 deletions

File tree

AGENTS.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,68 @@ Read these before modifying the corresponding areas:
9292
- [internal/validate/vsa/DESIGN.md](internal/validate/vsa/DESIGN.md) — VSA: storage backends, DSSE signing rationale, expiration model
9393
- [acceptance/README.md](acceptance/README.md) — acceptance test framework, Testcontainers, WireMock, snapshot testing
9494

95+
## Claude Code Skills
96+
97+
Skills live in `.claude/skills/<name>/SKILL.md`. They are **step-by-step executable workflows**
98+
that Claude Code follows to complete a task — not reference documentation, how-to guides, or
99+
API descriptions.
100+
101+
### Format
102+
103+
Every skill file has three parts:
104+
105+
**1. YAML frontmatter** with `name` (kebab-case, matches directory name) and `description`
106+
(multi-line string listing trigger phrases so Claude Code knows when to invoke the skill):
107+
108+
```yaml
109+
---
110+
name: my-skill
111+
description: >
112+
Short description. Use when users ask "trigger phrase 1", "trigger phrase 2",
113+
or need help with <topic>.
114+
---
115+
```
116+
117+
**2. Title and summary** — an `# H1` heading describing the skill's purpose, followed by a
118+
one-line description of what the skill does:
119+
120+
````markdown
121+
# Do the Thing
122+
123+
Determine what to do, execute it, and report results.
124+
````
125+
126+
**3. Numbered step sections** — each `## Step N: Action` contains a brief explanation and,
127+
typically, fenced code blocks (usually `bash`) with the concrete commands to run. The final step is always
128+
`## Step N: Report [<topic>]`, describing what to summarize to the user:
129+
130+
````markdown
131+
## Step 1: Do the first thing
132+
133+
Explanation of what this step accomplishes.
134+
135+
```bash
136+
make build
137+
```
138+
139+
## Step 2: Report results
140+
141+
Summarize:
142+
- What happened
143+
- Pass/fail status
144+
- What needs attention
145+
````
146+
147+
### Anti-patterns
148+
149+
- **How-to guides or reference docs:** Skills are not documentation — they are runbooks.
150+
"Here's how you could run tests" is wrong; "Run these tests and report the results" is right.
151+
- **Missing trigger phrases:** Without them, Claude Code won't know when to invoke the skill.
152+
- **Prose-only steps:** Action steps should generally include concrete commands, not just prose.
153+
Brief prose-only steps are acceptable when they establish context (e.g., classifying inputs).
154+
155+
See [.claude/skills/run-tests/SKILL.md](.claude/skills/run-tests/SKILL.md) as the canonical example.
156+
95157
## Troubleshooting
96158

97159
System-level issues that surface in acceptance tests:

0 commit comments

Comments
 (0)