@grimoire-cc/cli 0.6.3 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +2 -2
- package/dist/commands/logs.js.map +1 -1
- package/dist/static/log-viewer.html +946 -690
- package/dist/static/static/log-viewer.html +946 -690
- package/package.json +1 -1
- package/packs/dev-pack/agents/gr.code-reviewer.md +286 -0
- package/packs/dev-pack/agents/gr.tdd-specialist.md +44 -0
- package/packs/dev-pack/grimoire.json +55 -0
- package/packs/dev-pack/skills/gr.tdd-specialist/SKILL.md +247 -0
- package/packs/dev-pack/skills/gr.tdd-specialist/reference/anti-patterns.md +166 -0
- package/packs/dev-pack/skills/gr.tdd-specialist/reference/language-frameworks.md +388 -0
- package/packs/dev-pack/skills/gr.tdd-specialist/reference/tdd-workflow-patterns.md +135 -0
- package/packs/docs-pack/grimoire.json +30 -0
- package/packs/docs-pack/skills/gr.business-logic-docs/SKILL.md +278 -0
- package/packs/docs-pack/skills/gr.business-logic-docs/references/audit-checklist.md +48 -0
- package/packs/docs-pack/skills/gr.business-logic-docs/references/tier2-template.md +129 -0
- package/packs/essentials-pack/agents/gr.fact-checker.md +202 -0
- package/packs/essentials-pack/grimoire.json +12 -0
- package/packs/meta-pack/grimoire.json +72 -0
- package/packs/meta-pack/skills/gr.context-file-guide/SKILL.md +201 -0
- package/packs/meta-pack/skills/gr.context-file-guide/scripts/validate-context-file.sh +29 -0
- package/packs/meta-pack/skills/gr.readme-guide/SKILL.md +362 -0
- package/packs/meta-pack/skills/gr.skill-developer/SKILL.md +321 -0
- package/packs/meta-pack/skills/gr.skill-developer/examples/brand-guidelines.md +94 -0
- package/packs/meta-pack/skills/gr.skill-developer/examples/financial-analysis.md +85 -0
- package/packs/meta-pack/skills/gr.skill-developer/reference/best-practices.md +410 -0
- package/packs/meta-pack/skills/gr.skill-developer/reference/file-organization.md +452 -0
- package/packs/meta-pack/skills/gr.skill-developer/reference/patterns.md +459 -0
- package/packs/meta-pack/skills/gr.skill-developer/reference/yaml-spec.md +214 -0
- package/packs/meta-pack/skills/gr.skill-developer/scripts/create-skill.sh +210 -0
- package/packs/meta-pack/skills/gr.skill-developer/scripts/validate-skill.py +520 -0
- package/packs/meta-pack/skills/gr.skill-developer/templates/basic-skill.md +94 -0
- package/packs/meta-pack/skills/gr.skill-developer/templates/domain-skill.md +108 -0
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grimoire:readme-guide
|
|
3
|
+
description: "Create and review README files following industry best practices. Use for writing new READMEs, improving existing ones, checking README quality, or adding badges. Triggers: readme, documentation, project docs, repository documentation, getting started guide, shields badges."
|
|
4
|
+
user_invocable: true
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# README Guide
|
|
9
|
+
|
|
10
|
+
Create professional README files that help users understand, install, and use your project. This skill synthesizes best practices from [Make a README](https://www.makeareadme.com/), [Standard Readme](https://github.com/RichardLitt/standard-readme), [Google's Style Guide](https://google.github.io/styleguide/docguide/READMEs.html), and community standards.
|
|
11
|
+
|
|
12
|
+
## Capabilities
|
|
13
|
+
|
|
14
|
+
- **Create READMEs**: Generate complete README files for any project type
|
|
15
|
+
- **Review READMEs**: Analyze existing READMEs against best practices
|
|
16
|
+
- **Section guidance**: Recommend sections based on project type
|
|
17
|
+
- **Badge selection**: Suggest appropriate badges using Shields.io
|
|
18
|
+
- **Format optimization**: Ensure proper markdown structure
|
|
19
|
+
|
|
20
|
+
## File Requirements
|
|
21
|
+
|
|
22
|
+
Per [Google's Style Guide](https://google.github.io/styleguide/docguide/READMEs.html):
|
|
23
|
+
- File must be named `README.md` (case-sensitive)
|
|
24
|
+
- Place in top-level directory of your codebase
|
|
25
|
+
- Every package directory should have an up-to-date README
|
|
26
|
+
|
|
27
|
+
## Section Structure
|
|
28
|
+
|
|
29
|
+
Based on [Standard Readme specification](https://github.com/RichardLitt/standard-readme/blob/main/spec.md), sections must appear in this order:
|
|
30
|
+
|
|
31
|
+
### Required Sections
|
|
32
|
+
|
|
33
|
+
| Section | Requirements |
|
|
34
|
+
|---------|-------------|
|
|
35
|
+
| **Title** | Must match repository/package name |
|
|
36
|
+
| **Description** | 1-3 sentences, under 120 characters for short version |
|
|
37
|
+
| **Installation** | Code block showing install command |
|
|
38
|
+
| **Usage** | Basic example with expected output |
|
|
39
|
+
| **License** | SPDX identifier, owner, link to LICENSE file |
|
|
40
|
+
|
|
41
|
+
### Recommended Sections
|
|
42
|
+
|
|
43
|
+
| Section | When to Include |
|
|
44
|
+
|---------|-----------------|
|
|
45
|
+
| **Badges** | Always for public projects |
|
|
46
|
+
| **Table of Contents** | Required if README exceeds 100 lines |
|
|
47
|
+
| **Features/Highlights** | When project has multiple capabilities |
|
|
48
|
+
| **Prerequisites** | When dependencies exist beyond package manager |
|
|
49
|
+
| **Configuration** | When env vars or config files needed |
|
|
50
|
+
| **API Reference** | For libraries, or link to full docs |
|
|
51
|
+
| **Contributing** | For open source projects |
|
|
52
|
+
| **Changelog** | Link to CHANGELOG.md |
|
|
53
|
+
| **Acknowledgments** | Credits for contributors, inspiration |
|
|
54
|
+
|
|
55
|
+
## How to Use
|
|
56
|
+
|
|
57
|
+
### Creating a New README
|
|
58
|
+
|
|
59
|
+
1. **Provide project details**:
|
|
60
|
+
- Project name and purpose
|
|
61
|
+
- Target audience
|
|
62
|
+
- Language/framework
|
|
63
|
+
- Installation method
|
|
64
|
+
- Basic usage example
|
|
65
|
+
|
|
66
|
+
2. **I'll generate a README with**:
|
|
67
|
+
- Appropriate sections for your project type
|
|
68
|
+
- Proper markdown formatting
|
|
69
|
+
- Placeholder badges you can customize
|
|
70
|
+
- Code blocks with syntax highlighting
|
|
71
|
+
|
|
72
|
+
### Reviewing an Existing README
|
|
73
|
+
|
|
74
|
+
1. Share your README content or file path
|
|
75
|
+
2. I'll analyze against this checklist:
|
|
76
|
+
- [ ] Clear, accurate title matching repo name
|
|
77
|
+
- [ ] Description explains what AND why
|
|
78
|
+
- [ ] Installation instructions are complete
|
|
79
|
+
- [ ] Usage example is runnable
|
|
80
|
+
- [ ] All code examples tested
|
|
81
|
+
- [ ] License specified
|
|
82
|
+
- [ ] Links all work
|
|
83
|
+
- [ ] No placeholder text remaining
|
|
84
|
+
- [ ] TOC present if >100 lines
|
|
85
|
+
|
|
86
|
+
## Badge Guidelines
|
|
87
|
+
|
|
88
|
+
Based on [Shields.io best practices](https://daily.dev/blog/readme-badges-github-best-practices):
|
|
89
|
+
|
|
90
|
+
### Quantity & Placement
|
|
91
|
+
- Use **2-4 key badges** at top of README
|
|
92
|
+
- Place less critical badges lower or in tables
|
|
93
|
+
- Avoid "badge saturation"
|
|
94
|
+
|
|
95
|
+
### Recommended Badges
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
[](...)
|
|
99
|
+
[](...)
|
|
100
|
+
[](...)
|
|
101
|
+
[](LICENSE)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Badge Categories
|
|
105
|
+
|
|
106
|
+
| Category | Examples |
|
|
107
|
+
|----------|----------|
|
|
108
|
+
| **CI/Build** | GitHub Actions, CircleCI, Travis |
|
|
109
|
+
| **Quality** | Codecov, Code Climate, SonarCloud |
|
|
110
|
+
| **Package** | npm, PyPI, crates.io version |
|
|
111
|
+
| **License** | MIT, Apache 2.0, GPL |
|
|
112
|
+
| **Activity** | Last commit, contributors, stars |
|
|
113
|
+
|
|
114
|
+
### Best Practices
|
|
115
|
+
- Get all badges from [Shields.io](https://shields.io/) for consistent styling
|
|
116
|
+
- Keep badges current and accurate
|
|
117
|
+
- Remove badges when they no longer apply
|
|
118
|
+
- Use GitHub Actions to auto-update badges
|
|
119
|
+
|
|
120
|
+
## Project-Type Templates
|
|
121
|
+
|
|
122
|
+
### Library/Package
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
# package-name
|
|
126
|
+
|
|
127
|
+
[](...)
|
|
128
|
+
[](...)
|
|
129
|
+
[](LICENSE)
|
|
130
|
+
|
|
131
|
+
Brief description of what this library does.
|
|
132
|
+
|
|
133
|
+
## Installation
|
|
134
|
+
|
|
135
|
+
npm install package-name
|
|
136
|
+
|
|
137
|
+
## Usage
|
|
138
|
+
|
|
139
|
+
import { feature } from 'package-name';
|
|
140
|
+
|
|
141
|
+
const result = feature.process(data);
|
|
142
|
+
console.log(result);
|
|
143
|
+
|
|
144
|
+
## API
|
|
145
|
+
|
|
146
|
+
### `functionName(param: Type): ReturnType`
|
|
147
|
+
|
|
148
|
+
Description of what it does.
|
|
149
|
+
|
|
150
|
+
## Contributing
|
|
151
|
+
|
|
152
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
153
|
+
|
|
154
|
+
## License
|
|
155
|
+
|
|
156
|
+
MIT - see [LICENSE](LICENSE)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### CLI Tool
|
|
160
|
+
|
|
161
|
+
```markdown
|
|
162
|
+
# tool-name
|
|
163
|
+
|
|
164
|
+
One-line description of the CLI.
|
|
165
|
+
|
|
166
|
+
## Installation
|
|
167
|
+
|
|
168
|
+
brew install tool-name
|
|
169
|
+
# or
|
|
170
|
+
npm install -g tool-name
|
|
171
|
+
|
|
172
|
+
## Usage
|
|
173
|
+
|
|
174
|
+
tool-name <command> [options]
|
|
175
|
+
|
|
176
|
+
### Commands
|
|
177
|
+
|
|
178
|
+
| Command | Description |
|
|
179
|
+
|---------|-------------|
|
|
180
|
+
| `init` | Initialize new project |
|
|
181
|
+
| `build` | Build for production |
|
|
182
|
+
| `deploy` | Deploy to server |
|
|
183
|
+
|
|
184
|
+
### Examples
|
|
185
|
+
|
|
186
|
+
# Initialize with defaults
|
|
187
|
+
tool-name init my-project
|
|
188
|
+
|
|
189
|
+
# Build with verbose output
|
|
190
|
+
tool-name build --verbose
|
|
191
|
+
|
|
192
|
+
## Configuration
|
|
193
|
+
|
|
194
|
+
Create `.toolrc` in project root:
|
|
195
|
+
|
|
196
|
+
{
|
|
197
|
+
"outputDir": "dist",
|
|
198
|
+
"minify": true
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
## License
|
|
202
|
+
|
|
203
|
+
MIT
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Web Application
|
|
207
|
+
|
|
208
|
+
```markdown
|
|
209
|
+
# App Name
|
|
210
|
+
|
|
211
|
+
Brief description and what problem it solves.
|
|
212
|
+
|
|
213
|
+

|
|
214
|
+
|
|
215
|
+
## Features
|
|
216
|
+
|
|
217
|
+
- Feature one with brief explanation
|
|
218
|
+
- Feature two with brief explanation
|
|
219
|
+
- Feature three with brief explanation
|
|
220
|
+
|
|
221
|
+
## Getting Started
|
|
222
|
+
|
|
223
|
+
### Prerequisites
|
|
224
|
+
|
|
225
|
+
- Node.js 18+
|
|
226
|
+
- PostgreSQL 14+
|
|
227
|
+
|
|
228
|
+
### Installation
|
|
229
|
+
|
|
230
|
+
git clone https://github.com/user/repo.git
|
|
231
|
+
cd repo
|
|
232
|
+
npm install
|
|
233
|
+
cp .env.example .env
|
|
234
|
+
npm run dev
|
|
235
|
+
|
|
236
|
+
Open http://localhost:3000
|
|
237
|
+
|
|
238
|
+
## Environment Variables
|
|
239
|
+
|
|
240
|
+
| Variable | Description | Required |
|
|
241
|
+
|----------|-------------|----------|
|
|
242
|
+
| `DATABASE_URL` | PostgreSQL connection | Yes |
|
|
243
|
+
| `JWT_SECRET` | Auth token secret | Yes |
|
|
244
|
+
| `PORT` | Server port | No (default: 3000) |
|
|
245
|
+
|
|
246
|
+
## Deployment
|
|
247
|
+
|
|
248
|
+
See [deployment guide](docs/deployment.md).
|
|
249
|
+
|
|
250
|
+
## Contributing
|
|
251
|
+
|
|
252
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
253
|
+
|
|
254
|
+
## License
|
|
255
|
+
|
|
256
|
+
MIT
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
## Writing Guidelines
|
|
260
|
+
|
|
261
|
+
### Title & Description
|
|
262
|
+
|
|
263
|
+
Per [Make a README](https://www.makeareadme.com/):
|
|
264
|
+
- Title should be self-explanatory
|
|
265
|
+
- Description explains what it does AND provides context
|
|
266
|
+
- Keep short description under 120 characters
|
|
267
|
+
|
|
268
|
+
**Good:**
|
|
269
|
+
```markdown
|
|
270
|
+
# fast-csv
|
|
271
|
+
|
|
272
|
+
Fast CSV parser and formatter for Node.js.
|
|
273
|
+
|
|
274
|
+
Stream-based CSV processing for large datasets without loading everything into memory. Supports custom delimiters, headers, and transformations.
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
**Avoid:**
|
|
278
|
+
```markdown
|
|
279
|
+
# My Project
|
|
280
|
+
|
|
281
|
+
A project that does stuff.
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Code Examples
|
|
285
|
+
|
|
286
|
+
- Always use syntax highlighting (```js, ```python)
|
|
287
|
+
- Show complete, runnable examples
|
|
288
|
+
- Include expected output when helpful
|
|
289
|
+
- Start simple, then show advanced usage
|
|
290
|
+
|
|
291
|
+
### Installation Section
|
|
292
|
+
|
|
293
|
+
Per [Standard Readme](https://github.com/RichardLitt/standard-readme):
|
|
294
|
+
- Show one-liner using relevant package manager
|
|
295
|
+
- Include prerequisites if any
|
|
296
|
+
- Platform-specific instructions when needed
|
|
297
|
+
|
|
298
|
+
### Table of Contents
|
|
299
|
+
|
|
300
|
+
Required when README exceeds 100 lines. Must link to all sections:
|
|
301
|
+
|
|
302
|
+
```markdown
|
|
303
|
+
## Table of Contents
|
|
304
|
+
|
|
305
|
+
- [Installation](#installation)
|
|
306
|
+
- [Usage](#usage)
|
|
307
|
+
- [API](#api)
|
|
308
|
+
- [Contributing](#contributing)
|
|
309
|
+
- [License](#license)
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
## Common Mistakes
|
|
313
|
+
|
|
314
|
+
From [community guidelines](https://tilburgsciencehub.com/topics/collaborate-share/share-your-work/content-creation/readme-best-practices/):
|
|
315
|
+
|
|
316
|
+
- **Walls of text**: Break up with headers, bullets, spacing
|
|
317
|
+
- **Missing install steps**: If someone can't run it, they leave
|
|
318
|
+
- **Inconsistent formatting**: Same style for all code blocks
|
|
319
|
+
- **Outdated info**: Old scripts/commands cause confusion
|
|
320
|
+
- **No formatting**: Raw text looks unprofessional
|
|
321
|
+
- **Jumping heading levels**: Don't go from ## to #####
|
|
322
|
+
|
|
323
|
+
## Key Principles
|
|
324
|
+
|
|
325
|
+
1. **Lead with value** - Users should understand what they get in 10 seconds
|
|
326
|
+
2. **Show, don't tell** - Code examples > descriptions
|
|
327
|
+
3. **Test your examples** - Run every code snippet before publishing
|
|
328
|
+
4. **Too long > too short** - Link to detailed docs rather than cutting content
|
|
329
|
+
5. **Keep it current** - Outdated docs are worse than no docs
|
|
330
|
+
6. **Progressive disclosure** - Overview in README, details in linked docs
|
|
331
|
+
|
|
332
|
+
## Example Usage
|
|
333
|
+
|
|
334
|
+
**Creating:**
|
|
335
|
+
- "Create a README for my Python CLI that converts images to ASCII"
|
|
336
|
+
- "I need a README for my React component library"
|
|
337
|
+
- "Help me write documentation for my REST API"
|
|
338
|
+
|
|
339
|
+
**Reviewing:**
|
|
340
|
+
- "Review my README and suggest improvements"
|
|
341
|
+
- "What sections am I missing?"
|
|
342
|
+
- "Is my installation section clear enough?"
|
|
343
|
+
|
|
344
|
+
**Badges:**
|
|
345
|
+
- "What badges should I add to my npm package?"
|
|
346
|
+
- "Help me set up CI badges for my GitHub Actions workflow"
|
|
347
|
+
|
|
348
|
+
## Limitations
|
|
349
|
+
|
|
350
|
+
- Cannot verify if installation instructions actually work
|
|
351
|
+
- Badge URLs require your specific repo/package info
|
|
352
|
+
- Cannot auto-generate code examples without understanding your codebase
|
|
353
|
+
- Screenshots/GIFs must be provided by you
|
|
354
|
+
|
|
355
|
+
## Sources
|
|
356
|
+
|
|
357
|
+
- [Make a README](https://www.makeareadme.com/) - Comprehensive README guide
|
|
358
|
+
- [Standard Readme](https://github.com/RichardLitt/standard-readme) - Formal specification
|
|
359
|
+
- [Google Style Guide](https://google.github.io/styleguide/docguide/READMEs.html) - Corporate standards
|
|
360
|
+
- [Best-README-Template](https://github.com/othneildrew/Best-README-Template) - Popular template
|
|
361
|
+
- [Shields.io](https://shields.io/) - Badge generation
|
|
362
|
+
- [PyOpenSci Guide](https://www.pyopensci.org/python-package-guide/documentation/repository-files/readme-file-best-practices.html) - Python-specific practices
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grimoire:skill-developer
|
|
3
|
+
description: Create and maintain custom skills for Claude Code following official Anthropic patterns. Use when creating new skills, updating existing skills, or organizing skill documentation.
|
|
4
|
+
user_invocable: true
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Skill Developer
|
|
9
|
+
|
|
10
|
+
This meta-skill teaches you how to create effective custom skills for Claude Code, following official Anthropic documentation and the progressive disclosure architecture.
|
|
11
|
+
|
|
12
|
+
## What Are Skills?
|
|
13
|
+
|
|
14
|
+
Skills are specialized knowledge modules that Claude loads when working on specific tasks. They provide:
|
|
15
|
+
|
|
16
|
+
- **Instruction sets:** Domain-specific guidance and patterns
|
|
17
|
+
- **Automatic activation:** Based on description keywords
|
|
18
|
+
- **Progressive disclosure:** Supporting files loaded on-demand
|
|
19
|
+
- **Context efficiency:** Only relevant content in context window
|
|
20
|
+
|
|
21
|
+
Skills live in `.claude/skills/{skill-name}/SKILL.md` with optional supporting files.
|
|
22
|
+
|
|
23
|
+
## When to Create a Skill
|
|
24
|
+
|
|
25
|
+
Create a skill when you need:
|
|
26
|
+
|
|
27
|
+
- **Consistent patterns** across multiple tasks (code style, financial analysis)
|
|
28
|
+
- **Domain expertise** captured in one place (industry standards, calculations)
|
|
29
|
+
- **Reference material** easily accessible (formulas, specifications)
|
|
30
|
+
- **Specialized workflows** for specific domains (multi-step processes)
|
|
31
|
+
|
|
32
|
+
**Don't create a skill when:**
|
|
33
|
+
|
|
34
|
+
- You need task execution (create an agent instead)
|
|
35
|
+
- It's a one-time task or simple query
|
|
36
|
+
- The domain is too broad or unfocused
|
|
37
|
+
|
|
38
|
+
## YAML Frontmatter Requirements
|
|
39
|
+
|
|
40
|
+
Every SKILL.md must start with YAML frontmatter:
|
|
41
|
+
|
|
42
|
+
```yaml
|
|
43
|
+
---
|
|
44
|
+
name: your-skill-name
|
|
45
|
+
description: "What this skill does and when to use it with trigger keywords"
|
|
46
|
+
---
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Quick Requirements
|
|
50
|
+
|
|
51
|
+
**`name` field:**
|
|
52
|
+
|
|
53
|
+
- Maximum 64 characters
|
|
54
|
+
- Lowercase letters, numbers, hyphens only
|
|
55
|
+
- Must match directory name exactly
|
|
56
|
+
- Cannot contain "anthropic" or "claude"
|
|
57
|
+
|
|
58
|
+
**`description` field:**
|
|
59
|
+
|
|
60
|
+
- Maximum 1024 characters
|
|
61
|
+
- Must include WHAT the skill does
|
|
62
|
+
- Must include WHEN to use it (trigger keywords)
|
|
63
|
+
|
|
64
|
+
**For detailed specifications:** See [reference/yaml-spec.md](reference/yaml-spec.md)
|
|
65
|
+
|
|
66
|
+
## Official Size and Structure Requirements
|
|
67
|
+
|
|
68
|
+
Every skill must comply with these official Anthropic requirements:
|
|
69
|
+
|
|
70
|
+
- **SKILL.md body:** Maximum 500 lines (excluding YAML frontmatter)
|
|
71
|
+
- **Total bundle size:** Maximum 8MB (all files combined)
|
|
72
|
+
- **Skills per request:** Maximum 8 skills can be loaded
|
|
73
|
+
- **Reference files >100 lines:** Must include table of contents at top
|
|
74
|
+
- **Reference file linking:** Keep all references one level deep from SKILL.md
|
|
75
|
+
|
|
76
|
+
These limits are enforced by the validation script and ensure optimal performance.
|
|
77
|
+
|
|
78
|
+
**For detailed file organization guidance:** See [reference/file-organization.md](reference/file-organization.md)
|
|
79
|
+
|
|
80
|
+
## File Structure Options
|
|
81
|
+
|
|
82
|
+
**Minimal (single file):**
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
.claude/skills/skill-name/
|
|
86
|
+
└── SKILL.md
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Complete (progressive disclosure):**
|
|
90
|
+
|
|
91
|
+
```text
|
|
92
|
+
.claude/skills/skill-name/
|
|
93
|
+
├── SKILL.md # Core instructions (<500 lines)
|
|
94
|
+
├── templates/ # Skill templates
|
|
95
|
+
├── examples/ # Full skill examples
|
|
96
|
+
├── reference/ # Detailed specifications
|
|
97
|
+
└── scripts/ # Automation (Python, Bash)
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Claude loads supporting files only when relevant - **files don't consume context until accessed**. This means you can include dozens of reference files without penalty, as they're only loaded when Claude needs them.
|
|
101
|
+
|
|
102
|
+
## Content Structure Pattern
|
|
103
|
+
|
|
104
|
+
Follow this structure for SKILL.md:
|
|
105
|
+
|
|
106
|
+
1. **YAML Frontmatter** - Required (name, description)
|
|
107
|
+
2. **Title & Introduction** - What this skill does
|
|
108
|
+
3. **Capabilities** - What it can help with
|
|
109
|
+
4. **How to Use** - Step-by-step instructions
|
|
110
|
+
5. **Input/Output Format** - What goes in, what comes out
|
|
111
|
+
6. **Example Usage** - Concrete user queries
|
|
112
|
+
7. **Scripts** - Supporting automation (optional)
|
|
113
|
+
8. **Best Practices** - How to use well
|
|
114
|
+
9. **Limitations** - Boundaries and constraints
|
|
115
|
+
|
|
116
|
+
**Keep SKILL.md body under 500 lines.** Move detailed content to supporting files to stay within limits.
|
|
117
|
+
|
|
118
|
+
## Skill Creation Workflow
|
|
119
|
+
|
|
120
|
+
### 1. Define Scope
|
|
121
|
+
|
|
122
|
+
Answer before writing:
|
|
123
|
+
|
|
124
|
+
- What domain or task?
|
|
125
|
+
- What specific capabilities?
|
|
126
|
+
- What triggers activation (keywords)?
|
|
127
|
+
- What input does it need?
|
|
128
|
+
- What output does it produce?
|
|
129
|
+
|
|
130
|
+
### 2. Choose Template
|
|
131
|
+
|
|
132
|
+
Use `scripts/create-skill.sh` to scaffold from a template:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# Basic skill (single-purpose)
|
|
136
|
+
./scripts/create-skill.sh my-skill --template basic
|
|
137
|
+
|
|
138
|
+
# Domain skill (specialized expertise)
|
|
139
|
+
./scripts/create-skill.sh financial-analysis --template domain
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Templates:** See [templates/](templates/) directory
|
|
143
|
+
|
|
144
|
+
### 3. Write Content
|
|
145
|
+
|
|
146
|
+
Follow the content structure pattern:
|
|
147
|
+
|
|
148
|
+
- Be specific and actionable
|
|
149
|
+
- Use concrete examples
|
|
150
|
+
- Define terminology
|
|
151
|
+
- Keep it concise
|
|
152
|
+
|
|
153
|
+
**Best practices:** See [reference/best-practices.md](reference/best-practices.md)
|
|
154
|
+
|
|
155
|
+
### 4. Add Supporting Materials
|
|
156
|
+
|
|
157
|
+
**When to add scripts:**
|
|
158
|
+
|
|
159
|
+
- Complex calculations
|
|
160
|
+
- Formatting automation
|
|
161
|
+
- Data transformation
|
|
162
|
+
- Validation checks
|
|
163
|
+
|
|
164
|
+
**Progressive disclosure:**
|
|
165
|
+
|
|
166
|
+
- Detailed specs → `reference/`
|
|
167
|
+
- Full examples → `examples/`
|
|
168
|
+
- Templates → `templates/`
|
|
169
|
+
- Scripts → `scripts/`
|
|
170
|
+
|
|
171
|
+
### 5. Validate
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
./scripts/validate-skill.py .claude/skills/my-skill/SKILL.md
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Checks:
|
|
178
|
+
|
|
179
|
+
- YAML frontmatter format
|
|
180
|
+
- Name requirements
|
|
181
|
+
- Description requirements
|
|
182
|
+
- Directory name matching
|
|
183
|
+
|
|
184
|
+
### 6. Test Activation
|
|
185
|
+
|
|
186
|
+
Ask questions with your description keywords:
|
|
187
|
+
|
|
188
|
+
- Should activate for relevant queries
|
|
189
|
+
- Should NOT activate for unrelated queries
|
|
190
|
+
|
|
191
|
+
### 7. Refine
|
|
192
|
+
|
|
193
|
+
Adjust based on:
|
|
194
|
+
|
|
195
|
+
- Does it activate when expected?
|
|
196
|
+
- Are instructions clear?
|
|
197
|
+
- Do examples work?
|
|
198
|
+
|
|
199
|
+
## Examples
|
|
200
|
+
|
|
201
|
+
**Complete skill examples:**
|
|
202
|
+
|
|
203
|
+
- [examples/financial-analysis.md](examples/financial-analysis.md) - Financial ratio calculator
|
|
204
|
+
- [examples/brand-guidelines.md](examples/brand-guidelines.md) - Corporate branding standards
|
|
205
|
+
|
|
206
|
+
**Common patterns:**
|
|
207
|
+
|
|
208
|
+
- [reference/patterns.md](reference/patterns.md) - Structured data, standards enforcement, workflows
|
|
209
|
+
|
|
210
|
+
## Quick Start
|
|
211
|
+
|
|
212
|
+
Create a new skill in 5 steps:
|
|
213
|
+
|
|
214
|
+
**1. Use scaffolding script:**
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
cd .claude/skills/skill-developer/scripts
|
|
218
|
+
./create-skill.sh my-new-skill
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**2. Edit the generated SKILL.md:**
|
|
222
|
+
|
|
223
|
+
- Add capabilities
|
|
224
|
+
- Write "How to Use" instructions
|
|
225
|
+
- Include example usage
|
|
226
|
+
- Add best practices and limitations
|
|
227
|
+
|
|
228
|
+
**3. Validate:**
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
./validate-skill.py ../my-new-skill/SKILL.md
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**4. Test:**
|
|
235
|
+
Ask Claude questions matching your keywords
|
|
236
|
+
|
|
237
|
+
**5. Refine:**
|
|
238
|
+
Adjust description and content based on activation accuracy
|
|
239
|
+
|
|
240
|
+
## Automation Scripts
|
|
241
|
+
|
|
242
|
+
**Create new skill:**
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
scripts/create-skill.sh <skill-name> [--template basic|domain]
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Scaffolds directory structure and SKILL.md from template
|
|
249
|
+
|
|
250
|
+
**Validate skill:**
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
scripts/validate-skill.py <path-to-SKILL.md>
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Validates YAML frontmatter and requirements
|
|
257
|
+
|
|
258
|
+
## Best Practices Summary
|
|
259
|
+
|
|
260
|
+
**Discoverability:**
|
|
261
|
+
|
|
262
|
+
- Rich descriptions with action verbs
|
|
263
|
+
- Include domain terms and use cases
|
|
264
|
+
- Multiple trigger keywords
|
|
265
|
+
|
|
266
|
+
**Content Quality:**
|
|
267
|
+
|
|
268
|
+
- Specific, actionable instructions
|
|
269
|
+
- Concrete examples
|
|
270
|
+
- Defined terminology
|
|
271
|
+
|
|
272
|
+
**Organization:**
|
|
273
|
+
|
|
274
|
+
- Clear heading hierarchy
|
|
275
|
+
- Logical flow (what → how → examples → practices)
|
|
276
|
+
- Scannable formatting (bullets, bold, code blocks)
|
|
277
|
+
|
|
278
|
+
**Progressive Disclosure:**
|
|
279
|
+
|
|
280
|
+
- Keep SKILL.md body <500 lines, total bundle <8MB
|
|
281
|
+
- Move detailed content to supporting files
|
|
282
|
+
- Files don't consume context until accessed
|
|
283
|
+
- Scripts execute without entering context
|
|
284
|
+
|
|
285
|
+
**For comprehensive guidelines:** See [reference/best-practices.md](reference/best-practices.md)
|
|
286
|
+
|
|
287
|
+
## Common Patterns
|
|
288
|
+
|
|
289
|
+
Skills typically follow one of these patterns:
|
|
290
|
+
|
|
291
|
+
- **Structured Data Processing** - Analysis, calculations, transformations
|
|
292
|
+
- **Standards Enforcement** - Branding, style guides, compliance
|
|
293
|
+
- **Multi-Step Workflows** - Guided processes with phases
|
|
294
|
+
- **Reference and Lookup** - Quick access to specifications
|
|
295
|
+
|
|
296
|
+
**Pattern details:** See [reference/patterns.md](reference/patterns.md)
|
|
297
|
+
|
|
298
|
+
## Resources
|
|
299
|
+
|
|
300
|
+
### Official Documentation
|
|
301
|
+
|
|
302
|
+
- [Agent Skills Overview](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview)
|
|
303
|
+
- [Skills Best Practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)
|
|
304
|
+
|
|
305
|
+
### Official Examples
|
|
306
|
+
|
|
307
|
+
- [Claude Cookbooks - Custom Skills](https://github.com/anthropics/claude-cookbooks/tree/main/skills/custom_skills)
|
|
308
|
+
|
|
309
|
+
### This Skill's Resources
|
|
310
|
+
|
|
311
|
+
- [templates/](templates/) - Basic and domain-specific templates
|
|
312
|
+
- [examples/](examples/) - Complete skill examples
|
|
313
|
+
- [reference/](reference/) - Detailed specifications and best practices
|
|
314
|
+
- [scripts/](scripts/) - Automation tools
|
|
315
|
+
|
|
316
|
+
## Limitations
|
|
317
|
+
|
|
318
|
+
- Skills don't execute tasks (they provide guidance to Claude)
|
|
319
|
+
- Custom skills don't sync across Claude surfaces (Code, API, claude.ai)
|
|
320
|
+
- Activation depends on keyword matching in description
|
|
321
|
+
- Skills load at startup (Level 1 metadata ~100 tokens per skill)
|