unifai 2.0.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/LICENSE +21 -0
- package/README.md +106 -0
- package/dist/adapters/antigravity.d.ts +24 -0
- package/dist/adapters/antigravity.d.ts.map +1 -0
- package/dist/adapters/base.d.ts +60 -0
- package/dist/adapters/base.d.ts.map +1 -0
- package/dist/adapters/claude.d.ts +25 -0
- package/dist/adapters/claude.d.ts.map +1 -0
- package/dist/adapters/copilot.d.ts +25 -0
- package/dist/adapters/copilot.d.ts.map +1 -0
- package/dist/adapters/cursor.d.ts +30 -0
- package/dist/adapters/cursor.d.ts.map +1 -0
- package/dist/adapters/index.d.ts +39 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/opencode.d.ts +25 -0
- package/dist/adapters/opencode.d.ts.map +1 -0
- package/dist/chunk-63EFN7CX.js +450 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +14908 -0
- package/dist/cli.js.map +97 -0
- package/dist/commands/agent.d.ts +34 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/init.d.ts +16 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/install.d.ts +8 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/list.d.ts +8 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/mcp.d.ts +40 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/remove.d.ts +8 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/sync.d.ts +19 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/tui.d.ts +14 -0
- package/dist/commands/tui.d.ts.map +1 -0
- package/dist/data/prompts.d.ts +36 -0
- package/dist/data/prompts.d.ts.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10648 -0
- package/dist/index.js.map +82 -0
- package/dist/openskill-ai.exe +0 -0
- package/dist/registry.d.ts +38 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/types/config.d.ts +103 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types.d.ts +23 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/agents.d.ts +15 -0
- package/dist/utils/agents.d.ts.map +1 -0
- package/dist/utils/fs-helpers.d.ts +29 -0
- package/dist/utils/fs-helpers.d.ts.map +1 -0
- package/dist/utils/git.d.ts +23 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/installer.d.ts +37 -0
- package/dist/utils/installer.d.ts.map +1 -0
- package/dist/utils/project-detector.d.ts +23 -0
- package/dist/utils/project-detector.d.ts.map +1 -0
- package/dist/utils/readme-generator.d.ts +9 -0
- package/dist/utils/readme-generator.d.ts.map +1 -0
- package/dist/utils/skills.d.ts +11 -0
- package/dist/utils/skills.d.ts.map +1 -0
- package/package.json +78 -0
- package/skills/skill-writer-skills/AGENTS.md +637 -0
- package/skills/skill-writer-skills/README.md +49 -0
- package/skills/skill-writer-skills/SKILL.md +97 -0
- package/skills/skill-writer-skills/metadata.json +17 -0
- package/skills/skill-writer-skills/references/common-pitfalls.md +291 -0
- package/skills/skill-writer-skills/references/core-principles.md +147 -0
- package/skills/skill-writer-skills/references/creation-process.md +250 -0
- package/skills/skill-writer-skills/references/design-patterns.md +300 -0
- package/skills/skill-writer-skills/references/skill-anatomy.md +174 -0
- package/skills/skill-writer-skills/references/validation-checklist.md +194 -0
|
@@ -0,0 +1,637 @@
|
|
|
1
|
+
# Complete Guide to Creating Agent Skills
|
|
2
|
+
|
|
3
|
+
Comprehensive guide for AI agents to create high-quality Skills for any technology, language, or domain.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Table of Contents
|
|
8
|
+
|
|
9
|
+
1. [Understanding Skills](#1-understanding-skills)
|
|
10
|
+
2. [Core Principles](#2-core-principles)
|
|
11
|
+
3. [Skill Anatomy](#3-skill-anatomy)
|
|
12
|
+
4. [The 6-Step Creation Process](#4-the-6-step-creation-process)
|
|
13
|
+
5. [Design Patterns](#5-design-patterns)
|
|
14
|
+
6. [Common Pitfalls](#6-common-pitfalls)
|
|
15
|
+
7. [Validation Checklist](#7-validation-checklist)
|
|
16
|
+
8. [Complete Examples](#8-complete-examples)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 1. Understanding Skills
|
|
21
|
+
|
|
22
|
+
### What Skills Are
|
|
23
|
+
|
|
24
|
+
Skills are modular, self-contained packages that extend AI capabilities by providing:
|
|
25
|
+
|
|
26
|
+
- **Specialized workflows** - Multi-step procedures for specific domains
|
|
27
|
+
- **Tool integrations** - Instructions for working with file formats or APIs
|
|
28
|
+
- **Domain expertise** - Schemas, business logic, conventions
|
|
29
|
+
- **Bundled resources** - Scripts, references, assets for complex tasks
|
|
30
|
+
|
|
31
|
+
Think of skills as "onboarding guides" for specific domains—they transform a general-purpose AI into a specialized agent equipped with procedural knowledge.
|
|
32
|
+
|
|
33
|
+
### What Skills Are NOT
|
|
34
|
+
|
|
35
|
+
Skills themselves are **not tools**. They are orchestrators/knowledge bases that:
|
|
36
|
+
|
|
37
|
+
- Guide AI on HOW to use tools
|
|
38
|
+
- Provide specialized knowledge and workflows
|
|
39
|
+
- Define best practices for specific domains
|
|
40
|
+
- Bundle reusable resources
|
|
41
|
+
|
|
42
|
+
For skills to be useful, they need actual tools/data/APIs to work with.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 2. Core Principles
|
|
47
|
+
|
|
48
|
+
### Principle 1: Concise is Key
|
|
49
|
+
|
|
50
|
+
**The context window is a public good.** Skills share context with:
|
|
51
|
+
- System prompt
|
|
52
|
+
- Conversation history
|
|
53
|
+
- Other skills' metadata
|
|
54
|
+
- The actual user request
|
|
55
|
+
|
|
56
|
+
**Default assumption:** Claude is already very smart. Only add context Claude doesn't already have.
|
|
57
|
+
|
|
58
|
+
**Challenge each piece of information:**
|
|
59
|
+
- "Does Claude really need this explanation?"
|
|
60
|
+
- "Does this paragraph justify its token cost?"
|
|
61
|
+
- "Can I show this with an example instead of explaining it?"
|
|
62
|
+
|
|
63
|
+
**Prefer examples over explanations:**
|
|
64
|
+
|
|
65
|
+
❌ Verbose:
|
|
66
|
+
```markdown
|
|
67
|
+
When processing user data, you should validate each field according
|
|
68
|
+
to the schema. The validation process involves checking that required
|
|
69
|
+
fields are present, that data types match the expected types, and that
|
|
70
|
+
values fall within acceptable ranges.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
✓ Concise:
|
|
74
|
+
```markdown
|
|
75
|
+
Validate fields against schema:
|
|
76
|
+
- Required fields present
|
|
77
|
+
- Types match
|
|
78
|
+
- Values in range
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Principle 2: Degrees of Freedom
|
|
82
|
+
|
|
83
|
+
Match the level of specificity to the task's fragility and variability.
|
|
84
|
+
|
|
85
|
+
| Freedom Level | Use When | Example |
|
|
86
|
+
|--------------|----------|---------|
|
|
87
|
+
| **High** (text) | Multiple approaches valid, context-dependent | "Analyze data and choose appropriate visualization" |
|
|
88
|
+
| **Medium** (pseudocode) | Preferred pattern exists, some variation OK | "Query data, apply template, format as [PDF\|HTML\|MD]" |
|
|
89
|
+
| **Low** (scripts) | Fragile operations, consistency critical | "Run validate.py, then transform.py, then output.py" |
|
|
90
|
+
|
|
91
|
+
**Mental model:** Think of Claude exploring a path:
|
|
92
|
+
- Narrow bridge with cliffs → Specific guardrails (low freedom)
|
|
93
|
+
- Open field → Many valid routes (high freedom)
|
|
94
|
+
|
|
95
|
+
### Principle 3: Progressive Disclosure
|
|
96
|
+
|
|
97
|
+
Skills use a three-level loading system:
|
|
98
|
+
|
|
99
|
+
| Level | Content | Loaded | Purpose |
|
|
100
|
+
|-------|---------|--------|---------|
|
|
101
|
+
| 1. Metadata | name + description (~100 words) | Always | Determines when skill triggers |
|
|
102
|
+
| 2. SKILL.md body | Instructions (<5k words) | When triggered | Core workflow, navigation |
|
|
103
|
+
| 3. Bundled resources | Scripts, refs, assets | As needed | Detailed information |
|
|
104
|
+
|
|
105
|
+
**Guidelines:**
|
|
106
|
+
- Keep SKILL.md under 500 lines
|
|
107
|
+
- Move details to references/ when approaching limit
|
|
108
|
+
- Core workflow in SKILL.md, specifics in references
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 3. Skill Anatomy
|
|
113
|
+
|
|
114
|
+
### Directory Structure
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
skill-name/
|
|
118
|
+
├── SKILL.md (REQUIRED)
|
|
119
|
+
│ ├── YAML frontmatter (REQUIRED)
|
|
120
|
+
│ │ ├── name: (REQUIRED)
|
|
121
|
+
│ │ └── description: (REQUIRED)
|
|
122
|
+
│ └── Markdown instructions (REQUIRED)
|
|
123
|
+
└── Bundled Resources (OPTIONAL)
|
|
124
|
+
├── scripts/ - Executable code
|
|
125
|
+
├── references/ - Documentation
|
|
126
|
+
└── assets/ - Files for output
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### SKILL.md
|
|
130
|
+
|
|
131
|
+
Every SKILL.md has two parts:
|
|
132
|
+
|
|
133
|
+
#### 1. Frontmatter (YAML)
|
|
134
|
+
|
|
135
|
+
```yaml
|
|
136
|
+
---
|
|
137
|
+
name: skill-name
|
|
138
|
+
description: What it does and when to use it.
|
|
139
|
+
---
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Name field:**
|
|
143
|
+
- Lowercase letters, numbers, hyphens only
|
|
144
|
+
- Must match directory name
|
|
145
|
+
- Max 64 characters
|
|
146
|
+
|
|
147
|
+
✓ Good: `pdf-processor`, `git-commit-helper`
|
|
148
|
+
❌ Bad: `PDF_Processor`, `Git Commits!`
|
|
149
|
+
|
|
150
|
+
**Description field:**
|
|
151
|
+
- Include BOTH what the skill does AND when to trigger
|
|
152
|
+
- Max 1024 characters
|
|
153
|
+
- This is the PRIMARY triggering mechanism
|
|
154
|
+
|
|
155
|
+
✓ Good:
|
|
156
|
+
```yaml
|
|
157
|
+
description: Extract text and tables from PDF files, fill forms,
|
|
158
|
+
merge documents. Use when working with PDF files or when the user
|
|
159
|
+
mentions PDFs, forms, document extraction, or .pdf files.
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
❌ Bad:
|
|
163
|
+
```yaml
|
|
164
|
+
description: Helps with documents
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
#### 2. Body (Markdown)
|
|
168
|
+
|
|
169
|
+
- Only loaded AFTER skill triggers
|
|
170
|
+
- Keep under 500 lines
|
|
171
|
+
- Use imperative form
|
|
172
|
+
- Reference bundled resources clearly
|
|
173
|
+
|
|
174
|
+
### Bundled Resources
|
|
175
|
+
|
|
176
|
+
#### scripts/ Directory
|
|
177
|
+
|
|
178
|
+
**Purpose:** Executable code for deterministic tasks.
|
|
179
|
+
|
|
180
|
+
**When to include:**
|
|
181
|
+
- Same code rewritten repeatedly
|
|
182
|
+
- Deterministic reliability needed
|
|
183
|
+
- Complex, error-prone operations
|
|
184
|
+
|
|
185
|
+
**Examples:** `validate_data.py`, `rotate_pdf.py`, `transform.sh`
|
|
186
|
+
|
|
187
|
+
**Benefits:**
|
|
188
|
+
- Token efficient (execute without loading)
|
|
189
|
+
- Deterministic results
|
|
190
|
+
- Reusable across invocations
|
|
191
|
+
|
|
192
|
+
#### references/ Directory
|
|
193
|
+
|
|
194
|
+
**Purpose:** Documentation Claude should reference while working.
|
|
195
|
+
|
|
196
|
+
**When to include:**
|
|
197
|
+
- Large documentation that shouldn't bloat SKILL.md
|
|
198
|
+
- Domain-specific knowledge
|
|
199
|
+
- Detailed guides for specific features
|
|
200
|
+
|
|
201
|
+
**Examples:** `schema.md`, `api_docs.md`, `policies.md`
|
|
202
|
+
|
|
203
|
+
**Best practices:**
|
|
204
|
+
- For large files (>10k words), include search patterns in SKILL.md
|
|
205
|
+
- Info lives in EITHER SKILL.md OR references, not both
|
|
206
|
+
|
|
207
|
+
#### assets/ Directory
|
|
208
|
+
|
|
209
|
+
**Purpose:** Files used in output, not loaded into context.
|
|
210
|
+
|
|
211
|
+
**When to include:**
|
|
212
|
+
- Files for final output
|
|
213
|
+
- Templates to copy or modify
|
|
214
|
+
- Binary files (images, fonts)
|
|
215
|
+
|
|
216
|
+
**Examples:** `logo.png`, `template.pptx`, `frontend-template/`
|
|
217
|
+
|
|
218
|
+
### Resource Selection Guide
|
|
219
|
+
|
|
220
|
+
| Scenario | Resource | Example |
|
|
221
|
+
|----------|----------|---------|
|
|
222
|
+
| Same code repeated | scripts/ | `rotate_pdf.py` |
|
|
223
|
+
| Need determinism | scripts/ | `validate.py` |
|
|
224
|
+
| Reference docs | references/ | `api_docs.md` |
|
|
225
|
+
| Large schemas | references/ | `database.md` |
|
|
226
|
+
| Images for output | assets/ | `logo.png` |
|
|
227
|
+
| File templates | assets/ | `report.docx` |
|
|
228
|
+
|
|
229
|
+
### What NOT to Include
|
|
230
|
+
|
|
231
|
+
Do NOT create:
|
|
232
|
+
- README.md
|
|
233
|
+
- CHANGELOG.md
|
|
234
|
+
- INSTALLATION.md
|
|
235
|
+
- CONTRIBUTING.md
|
|
236
|
+
- Test files
|
|
237
|
+
|
|
238
|
+
**Only include what AI needs to do the job.**
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## 4. The 6-Step Creation Process
|
|
243
|
+
|
|
244
|
+
### Step 1: Understanding with Concrete Examples
|
|
245
|
+
|
|
246
|
+
**Goal:** Understand concrete examples of skill usage.
|
|
247
|
+
|
|
248
|
+
**Process:**
|
|
249
|
+
1. Gather concrete examples
|
|
250
|
+
2. Ask clarifying questions:
|
|
251
|
+
- "What functionality should it support?"
|
|
252
|
+
- "How would it be used?"
|
|
253
|
+
- "What triggers it?"
|
|
254
|
+
|
|
255
|
+
**Conclude when:** Clear sense of required functionality.
|
|
256
|
+
|
|
257
|
+
### Step 2: Planning Reusable Contents
|
|
258
|
+
|
|
259
|
+
**Goal:** Identify helpful reusable resources.
|
|
260
|
+
|
|
261
|
+
**For each example, analyze:**
|
|
262
|
+
- How to execute from scratch
|
|
263
|
+
- What scripts/references/assets would help
|
|
264
|
+
|
|
265
|
+
**Example analyses:**
|
|
266
|
+
|
|
267
|
+
| Query | Analysis | Resource |
|
|
268
|
+
|-------|----------|----------|
|
|
269
|
+
| "Rotate this PDF" | Same code each time | `scripts/rotate.py` |
|
|
270
|
+
| "Build me a todo app" | Same boilerplate needed | `assets/template/` |
|
|
271
|
+
| "Query user logins" | Need table schemas | `references/schema.md` |
|
|
272
|
+
|
|
273
|
+
**Outcome:** List of resources to include.
|
|
274
|
+
|
|
275
|
+
### Step 3: Initializing the Skill
|
|
276
|
+
|
|
277
|
+
**Goal:** Create directory structure.
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
mkdir skill-name
|
|
281
|
+
mkdir skill-name/scripts
|
|
282
|
+
mkdir skill-name/references
|
|
283
|
+
mkdir skill-name/assets
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Create SKILL.md template:
|
|
287
|
+
```yaml
|
|
288
|
+
---
|
|
289
|
+
name: skill-name
|
|
290
|
+
description: [TODO: What + when]
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
# Skill Name
|
|
294
|
+
|
|
295
|
+
## Overview
|
|
296
|
+
[TODO]
|
|
297
|
+
|
|
298
|
+
## Usage
|
|
299
|
+
[TODO]
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### Step 4: Editing the Skill
|
|
303
|
+
|
|
304
|
+
**Mindset:** Create for another AI to use. Include non-obvious, beneficial information.
|
|
305
|
+
|
|
306
|
+
#### Step 4A: Implement Resources
|
|
307
|
+
|
|
308
|
+
**scripts/:** Write and test executable code
|
|
309
|
+
**references/:** Write documentation organized by domain
|
|
310
|
+
**assets/:** Gather/create files for output
|
|
311
|
+
|
|
312
|
+
**Important:** Test all scripts. Delete unused files.
|
|
313
|
+
|
|
314
|
+
#### Step 4B: Write SKILL.md
|
|
315
|
+
|
|
316
|
+
**Frontmatter:**
|
|
317
|
+
```yaml
|
|
318
|
+
---
|
|
319
|
+
name: lowercase-hyphenated
|
|
320
|
+
description: WHAT + WHEN with specific triggers
|
|
321
|
+
---
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
**Body - Multi-step processes:**
|
|
325
|
+
```markdown
|
|
326
|
+
Process involves these steps:
|
|
327
|
+
1. Validate input (run validate.py)
|
|
328
|
+
2. Transform data (run transform.py)
|
|
329
|
+
3. Generate output (run output.py)
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
**Body - Conditional workflows:**
|
|
333
|
+
```markdown
|
|
334
|
+
1. Determine type:
|
|
335
|
+
**Creating?** → Creation workflow
|
|
336
|
+
**Editing?** → Editing workflow
|
|
337
|
+
|
|
338
|
+
## Creation Workflow
|
|
339
|
+
[steps]
|
|
340
|
+
|
|
341
|
+
## Editing Workflow
|
|
342
|
+
[steps]
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### Step 5: Packaging
|
|
346
|
+
|
|
347
|
+
**Validate before packaging:**
|
|
348
|
+
- [ ] Frontmatter valid
|
|
349
|
+
- [ ] Description includes WHAT and WHEN
|
|
350
|
+
- [ ] SKILL.md under 500 lines
|
|
351
|
+
- [ ] All scripts tested
|
|
352
|
+
- [ ] No unnecessary files
|
|
353
|
+
- [ ] No duplication
|
|
354
|
+
|
|
355
|
+
### Step 6: Iterate
|
|
356
|
+
|
|
357
|
+
**Workflow:**
|
|
358
|
+
1. Use on real tasks
|
|
359
|
+
2. Notice struggles
|
|
360
|
+
3. Identify improvements
|
|
361
|
+
4. Implement changes
|
|
362
|
+
5. Test again
|
|
363
|
+
|
|
364
|
+
**Common iterations:**
|
|
365
|
+
- Users need more examples → Add to references/
|
|
366
|
+
- Scripts fail → Update error handling
|
|
367
|
+
- Wrong triggers → Refine description
|
|
368
|
+
- SKILL.md too long → Move to references/
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## 5. Design Patterns
|
|
373
|
+
|
|
374
|
+
### Workflow Patterns
|
|
375
|
+
|
|
376
|
+
#### Sequential Workflow
|
|
377
|
+
|
|
378
|
+
```markdown
|
|
379
|
+
## Process
|
|
380
|
+
|
|
381
|
+
1. Validate input (run validate.py)
|
|
382
|
+
2. Query database (run query.py)
|
|
383
|
+
3. Generate report (run report.py)
|
|
384
|
+
4. Export PDF (run export.py)
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
#### Conditional Workflow
|
|
388
|
+
|
|
389
|
+
```markdown
|
|
390
|
+
## Process
|
|
391
|
+
|
|
392
|
+
1. Determine task type:
|
|
393
|
+
- **Creating?** → Creation Workflow
|
|
394
|
+
- **Editing?** → Editing Workflow
|
|
395
|
+
|
|
396
|
+
## Creation Workflow
|
|
397
|
+
1. Initialize template
|
|
398
|
+
2. Fill sections
|
|
399
|
+
3. Validate and save
|
|
400
|
+
|
|
401
|
+
## Editing Workflow
|
|
402
|
+
1. Load document
|
|
403
|
+
2. Apply changes
|
|
404
|
+
3. Validate and save
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
### Output Patterns
|
|
408
|
+
|
|
409
|
+
#### Template Pattern (Strict)
|
|
410
|
+
|
|
411
|
+
```markdown
|
|
412
|
+
## Report Structure
|
|
413
|
+
|
|
414
|
+
ALWAYS use this template:
|
|
415
|
+
|
|
416
|
+
# [Title]
|
|
417
|
+
|
|
418
|
+
## Executive Summary
|
|
419
|
+
[Overview paragraph]
|
|
420
|
+
|
|
421
|
+
## Key Findings
|
|
422
|
+
- Finding 1
|
|
423
|
+
- Finding 2
|
|
424
|
+
|
|
425
|
+
## Recommendations
|
|
426
|
+
1. Recommendation 1
|
|
427
|
+
2. Recommendation 2
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
#### Examples Pattern (Flexible)
|
|
431
|
+
|
|
432
|
+
```markdown
|
|
433
|
+
## Commit Messages
|
|
434
|
+
|
|
435
|
+
Follow these examples:
|
|
436
|
+
|
|
437
|
+
**Example 1:**
|
|
438
|
+
Input: Added authentication
|
|
439
|
+
Output:
|
|
440
|
+
feat(auth): implement JWT authentication
|
|
441
|
+
Add login endpoint and token validation
|
|
442
|
+
|
|
443
|
+
**Example 2:**
|
|
444
|
+
Input: Fixed date bug
|
|
445
|
+
Output:
|
|
446
|
+
fix(reports): correct date formatting
|
|
447
|
+
Use UTC timestamps consistently
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
### Progressive Disclosure Pattern
|
|
451
|
+
|
|
452
|
+
**In SKILL.md:**
|
|
453
|
+
```markdown
|
|
454
|
+
## Quick Start
|
|
455
|
+
[Brief example]
|
|
456
|
+
|
|
457
|
+
## Advanced
|
|
458
|
+
- Feature A: See [refs/a.md](refs/a.md)
|
|
459
|
+
- Feature B: See [refs/b.md](refs/b.md)
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
**In references/:**
|
|
463
|
+
```markdown
|
|
464
|
+
# Complete Feature A Guide
|
|
465
|
+
[Detailed documentation]
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
---
|
|
469
|
+
|
|
470
|
+
## 6. Common Pitfalls
|
|
471
|
+
|
|
472
|
+
| Pitfall | Problem | Solution |
|
|
473
|
+
|---------|---------|----------|
|
|
474
|
+
| Verbose SKILL.md | Info Claude knows | Challenge each sentence |
|
|
475
|
+
| "When to use" in body | Body loads AFTER trigger | Put in description |
|
|
476
|
+
| Untested scripts | Scripts fail | Always test |
|
|
477
|
+
| Unnecessary files | README, CHANGELOG | Only include essentials |
|
|
478
|
+
| Duplicated info | Same in SKILL.md and refs | Pick one location |
|
|
479
|
+
| Over-specifying | Rigid for flexible tasks | Match specificity to fragility |
|
|
480
|
+
| No progressive disclosure | SKILL.md too long | Split to references |
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
484
|
+
## 7. Validation Checklist
|
|
485
|
+
|
|
486
|
+
### Frontmatter
|
|
487
|
+
- [ ] name: lowercase, hyphenated, matches directory
|
|
488
|
+
- [ ] description: WHAT + WHEN + triggers
|
|
489
|
+
- [ ] No extra fields
|
|
490
|
+
|
|
491
|
+
### SKILL.md
|
|
492
|
+
- [ ] Under 500 lines
|
|
493
|
+
- [ ] Only essential info
|
|
494
|
+
- [ ] Imperative form
|
|
495
|
+
- [ ] Clear resource references
|
|
496
|
+
|
|
497
|
+
### Resources
|
|
498
|
+
- [ ] scripts/ tested and working
|
|
499
|
+
- [ ] references/ no duplication
|
|
500
|
+
- [ ] assets/ only output files
|
|
501
|
+
|
|
502
|
+
### Structure
|
|
503
|
+
- [ ] No README, CHANGELOG, etc.
|
|
504
|
+
- [ ] No duplicated information
|
|
505
|
+
- [ ] Appropriate freedom levels
|
|
506
|
+
|
|
507
|
+
---
|
|
508
|
+
|
|
509
|
+
## 8. Complete Examples
|
|
510
|
+
|
|
511
|
+
### Example: Data Validator Skill
|
|
512
|
+
|
|
513
|
+
```yaml
|
|
514
|
+
---
|
|
515
|
+
name: data-validator
|
|
516
|
+
description: Validate JSON, CSV, and XML data against schemas. Use when
|
|
517
|
+
validating data files, checking data quality, or ensuring data conforms
|
|
518
|
+
to specifications. Triggers on validation requests, schema checking,
|
|
519
|
+
or data quality analysis.
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
# Data Validator
|
|
523
|
+
|
|
524
|
+
## Quick Start
|
|
525
|
+
|
|
526
|
+
Validate JSON against schema:
|
|
527
|
+
```bash
|
|
528
|
+
python scripts/validate.py data.json --schema schema.json
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
## Supported Formats
|
|
532
|
+
|
|
533
|
+
| Format | Script | Schema Format |
|
|
534
|
+
|--------|--------|---------------|
|
|
535
|
+
| JSON | validate.py | JSON Schema |
|
|
536
|
+
| CSV | validate_csv.py | CSV Schema |
|
|
537
|
+
| XML | validate_xml.py | XSD |
|
|
538
|
+
|
|
539
|
+
## Validation Options
|
|
540
|
+
|
|
541
|
+
```bash
|
|
542
|
+
# Strict mode (fail on first error)
|
|
543
|
+
python scripts/validate.py data.json --strict
|
|
544
|
+
|
|
545
|
+
# Report mode (collect all errors)
|
|
546
|
+
python scripts/validate.py data.json --report errors.json
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
## Custom Rules
|
|
550
|
+
|
|
551
|
+
For custom validation rules, see [references/custom-rules.md](references/custom-rules.md).
|
|
552
|
+
|
|
553
|
+
## Common Schemas
|
|
554
|
+
|
|
555
|
+
Pre-built schemas available in assets/schemas/:
|
|
556
|
+
- `user.json` - User data
|
|
557
|
+
- `product.json` - Product catalog
|
|
558
|
+
- `order.json` - Order data
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
**Structure:**
|
|
562
|
+
```
|
|
563
|
+
data-validator/
|
|
564
|
+
├── SKILL.md
|
|
565
|
+
├── scripts/
|
|
566
|
+
│ ├── validate.py
|
|
567
|
+
│ ├── validate_csv.py
|
|
568
|
+
│ └── validate_xml.py
|
|
569
|
+
├── references/
|
|
570
|
+
│ └── custom-rules.md
|
|
571
|
+
└── assets/
|
|
572
|
+
└── schemas/
|
|
573
|
+
├── user.json
|
|
574
|
+
├── product.json
|
|
575
|
+
└── order.json
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
---
|
|
579
|
+
|
|
580
|
+
### Example: Report Generator Skill
|
|
581
|
+
|
|
582
|
+
```yaml
|
|
583
|
+
---
|
|
584
|
+
name: report-generator
|
|
585
|
+
description: Generate professional reports including quarterly summaries,
|
|
586
|
+
financial analysis, and executive dashboards. Use when creating business
|
|
587
|
+
reports, data visualizations, or executive summaries. Triggers on Q1/Q2/Q3/Q4
|
|
588
|
+
reports, metrics dashboards, financial documentation, or report requests.
|
|
589
|
+
---
|
|
590
|
+
|
|
591
|
+
# Report Generator
|
|
592
|
+
|
|
593
|
+
## Quick Start
|
|
594
|
+
|
|
595
|
+
Generate a quarterly report:
|
|
596
|
+
```bash
|
|
597
|
+
python scripts/generate.py --quarter Q3 --year 2024 --output report.pdf
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
## Report Types
|
|
601
|
+
|
|
602
|
+
| Type | Template | See |
|
|
603
|
+
|------|----------|-----|
|
|
604
|
+
| Quarterly | quarterly.md | [refs/quarterly.md](refs/quarterly.md) |
|
|
605
|
+
| Financial | financial.md | [refs/financial.md](refs/financial.md) |
|
|
606
|
+
| Executive | executive.md | [refs/executive.md](refs/executive.md) |
|
|
607
|
+
|
|
608
|
+
## Process
|
|
609
|
+
|
|
610
|
+
1. Select report type
|
|
611
|
+
2. Gather data (run gather_data.py)
|
|
612
|
+
3. Generate visualizations (run charts.py)
|
|
613
|
+
4. Compile report (run compile.py)
|
|
614
|
+
5. Export to PDF (run export.py)
|
|
615
|
+
|
|
616
|
+
## Customization
|
|
617
|
+
|
|
618
|
+
For custom report templates, see [references/custom-templates.md](references/custom-templates.md).
|
|
619
|
+
```
|
|
620
|
+
|
|
621
|
+
---
|
|
622
|
+
|
|
623
|
+
## Summary
|
|
624
|
+
|
|
625
|
+
Creating effective skills requires:
|
|
626
|
+
|
|
627
|
+
1. **Understanding** concrete use cases
|
|
628
|
+
2. **Planning** reusable resources
|
|
629
|
+
3. **Following** the three core principles:
|
|
630
|
+
- Concise is key
|
|
631
|
+
- Appropriate degrees of freedom
|
|
632
|
+
- Progressive disclosure
|
|
633
|
+
4. **Structuring** with proper anatomy
|
|
634
|
+
5. **Validating** before distribution
|
|
635
|
+
6. **Iterating** based on real usage
|
|
636
|
+
|
|
637
|
+
Skills are orchestrators, not tools. They guide AI on how to use tools, APIs, and data to accomplish specialized tasks effectively.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Skill Writer
|
|
2
|
+
|
|
3
|
+
A universal meta-skill that guides AI agents to create high-quality Skills for any technology, language, or domain.
|
|
4
|
+
|
|
5
|
+
## What This Skill Does
|
|
6
|
+
|
|
7
|
+
When an AI agent uses this skill, it learns:
|
|
8
|
+
- **Core principles** for effective skill design
|
|
9
|
+
- **Skill anatomy** - directory structure and file types
|
|
10
|
+
- **6-step creation process** from concept to packaging
|
|
11
|
+
- **Design patterns** for workflows and outputs
|
|
12
|
+
- **Common pitfalls** and how to avoid them
|
|
13
|
+
|
|
14
|
+
## Structure
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
skill-writer/
|
|
18
|
+
├── SKILL.md # Main skill (triggers + overview)
|
|
19
|
+
├── AGENTS.md # Full compiled guide
|
|
20
|
+
├── metadata.json # Version and references
|
|
21
|
+
├── README.md # This file
|
|
22
|
+
└── references/
|
|
23
|
+
├── core-principles.md
|
|
24
|
+
├── skill-anatomy.md
|
|
25
|
+
├── creation-process.md
|
|
26
|
+
├── design-patterns.md
|
|
27
|
+
├── common-pitfalls.md
|
|
28
|
+
└── validation-checklist.md
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
The skill activates when users ask to:
|
|
34
|
+
- Create a new skill
|
|
35
|
+
- Write or update SKILL.md files
|
|
36
|
+
- Structure skills with scripts/references/assets
|
|
37
|
+
- Package or validate skills
|
|
38
|
+
- Convert workflows into reusable skills
|
|
39
|
+
|
|
40
|
+
## Key Principles
|
|
41
|
+
|
|
42
|
+
1. **Concise is Key** - Context window is shared; every token costs
|
|
43
|
+
2. **Degrees of Freedom** - Match specificity to task fragility
|
|
44
|
+
3. **Progressive Disclosure** - Load details only when needed
|
|
45
|
+
|
|
46
|
+
## References
|
|
47
|
+
|
|
48
|
+
- [Claude Skills Documentation](https://claude.ai/docs/skills)
|
|
49
|
+
- [Vercel Agent Skills](https://github.com/vercel-labs/agent-skills)
|