opencodekit 0.14.6 → 0.15.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/README.md +2 -2
- package/dist/index.js +435 -57
- package/dist/template/.opencode/.env.example +1 -0
- package/dist/template/.opencode/AGENTS.md +13 -24
- package/dist/template/.opencode/README.md +8 -119
- package/dist/template/.opencode/agent/explore.md +2 -3
- package/dist/template/.opencode/agent/general.md +56 -0
- package/dist/template/.opencode/agent/plan.md +54 -0
- package/dist/template/.opencode/agent/scout.md +15 -5
- package/dist/template/.opencode/command/analyze-project.md +2 -2
- package/dist/template/.opencode/command/brainstorm.md +1 -1
- package/dist/template/.opencode/command/design-audit.md +4 -5
- package/dist/template/.opencode/command/design.md +4 -13
- package/dist/template/.opencode/command/generate-pattern.md +2 -9
- package/dist/template/.opencode/command/implement.md +4 -4
- package/dist/template/.opencode/command/init.md +1 -1
- package/dist/template/.opencode/command/new-feature.md +2 -3
- package/dist/template/.opencode/command/plan.md +1 -1
- package/dist/template/.opencode/command/pr.md +0 -1
- package/dist/template/.opencode/command/research.md +20 -6
- package/dist/template/.opencode/command/restore-image.md +1 -9
- package/dist/template/.opencode/command/revert-feature.md +1 -1
- package/dist/template/.opencode/command/review-codebase.md +4 -4
- package/dist/template/.opencode/command/status.md +1 -2
- package/dist/template/.opencode/command/summarize.md +1 -2
- package/dist/template/.opencode/command/triage.md +4 -32
- package/dist/template/.opencode/dcp.jsonc +68 -68
- package/dist/template/.opencode/memory/_templates/README.md +35 -0
- package/dist/template/.opencode/memory/_templates/project/architecture.md +60 -0
- package/dist/template/.opencode/memory/_templates/project/commands.md +72 -0
- package/dist/template/.opencode/memory/_templates/project/conventions.md +68 -0
- package/dist/template/.opencode/memory/_templates/project/gotchas.md +41 -0
- package/dist/template/.opencode/memory/beads-workflow.md +30 -29
- package/dist/template/.opencode/memory/project/architecture.md +31 -50
- package/dist/template/.opencode/memory/project/commands.md +41 -22
- package/dist/template/.opencode/memory/project/conventions.md +39 -177
- package/dist/template/.opencode/memory/project/gotchas.md +21 -177
- package/dist/template/.opencode/memory/user.example.md +5 -0
- package/dist/template/.opencode/opencode.json +628 -579
- package/dist/template/.opencode/package.json +18 -21
- package/dist/template/.opencode/plugin/compaction.ts +79 -85
- package/dist/template/.opencode/plugin/env-ctx.ts +19 -19
- package/dist/template/.opencode/plugin/lib/notify.ts +41 -45
- package/dist/template/.opencode/plugin/lsp.ts +197 -200
- package/dist/template/.opencode/plugin/memory.ts +14 -112
- package/dist/template/.opencode/plugin/package.json +5 -5
- package/dist/template/.opencode/plugin/sessions.ts +1 -1
- package/dist/template/.opencode/plugin/skill-mcp.ts +486 -521
- package/dist/template/.opencode/plugin/truncator.ts +47 -50
- package/dist/template/.opencode/plugin/tsconfig.json +14 -14
- package/dist/template/.opencode/skill/chrome-devtools/mcp.json +17 -17
- package/dist/template/.opencode/skill/condition-based-waiting/SKILL.md +17 -12
- package/dist/template/.opencode/skill/condition-based-waiting/example.ts +63 -69
- package/dist/template/.opencode/skill/defense-in-depth/SKILL.md +14 -8
- package/dist/template/.opencode/skill/dispatching-parallel-agents/SKILL.md +14 -3
- package/dist/template/.opencode/skill/playwright/mcp.json +14 -14
- package/dist/template/.opencode/skill/receiving-code-review/SKILL.md +21 -8
- package/dist/template/.opencode/skill/requesting-code-review/review.md +14 -0
- package/dist/template/.opencode/skill/root-cause-tracing/SKILL.md +18 -4
- package/dist/template/.opencode/skill/source-code-research/SKILL.md +9 -7
- package/dist/template/.opencode/skill/test-driven-development/SKILL.md +49 -32
- package/dist/template/.opencode/skill/testing-anti-patterns/SKILL.md +40 -22
- package/dist/template/.opencode/skill/testing-skills-with-subagents/SKILL.md +46 -26
- package/dist/template/.opencode/skill/tool-priority/SKILL.md +117 -44
- package/dist/template/.opencode/skill/v0/SKILL.md +1 -7
- package/dist/template/.opencode/skill/verification-before-completion/SKILL.md +27 -19
- package/dist/template/.opencode/skill/writing-skills/anthropic-best-practices.md +171 -148
- package/dist/template/.opencode/skill/writing-skills/persuasion-principles.md +39 -6
- package/dist/template/.opencode/tool/memory-read.ts +44 -56
- package/dist/template/.opencode/tool/memory-search.ts +8 -291
- package/dist/template/.opencode/tool/memory-update.ts +47 -51
- package/dist/template/.opencode/tool/observation.ts +6 -180
- package/dist/template/.opencode/tsconfig.json +19 -19
- package/package.json +19 -15
- package/dist/template/.opencode/.background-tasks.json +0 -114
- package/dist/template/.opencode/.ralph-state.json +0 -12
- package/dist/template/.opencode/agent/build.md +0 -327
- package/dist/template/.opencode/agent/ninja.md +0 -351
- package/dist/template/.opencode/agent/planner.md +0 -281
- package/dist/template/.opencode/agent/rush.md +0 -223
- package/dist/template/.opencode/memory/handoffs/README.md +0 -83
- package/dist/template/.opencode/memory/observations/.gitkeep +0 -0
- package/dist/template/.opencode/memory/observations/2026-01-09-pattern-ampcode-mcp-json-includetools-pattern.md +0 -42
- package/dist/template/.opencode/memory/vector_db/memories.lance/_transactions/0-0d25ba80-ba3b-4209-9046-b45d6093b4da.txn +0 -0
- package/dist/template/.opencode/memory/vector_db/memories.lance/_versions/1.manifest +0 -0
- package/dist/template/.opencode/memory/vector_db/memories.lance/data/1111100101010101011010004a9ef34df6b29f36a9a53a2892.lance +0 -0
- package/dist/template/.opencode/tool/ast-grep.ts +0 -245
- package/dist/template/.opencode/tool/background.ts +0 -509
- package/dist/template/.opencode/tool/bd-inbox.ts +0 -110
- package/dist/template/.opencode/tool/bd-msg.ts +0 -62
- package/dist/template/.opencode/tool/bd-release.ts +0 -71
- package/dist/template/.opencode/tool/bd-reserve.ts +0 -121
- package/dist/template/.opencode/tool/memory-embed.ts +0 -183
- package/dist/template/.opencode/tool/memory-index.ts +0 -769
- package/dist/template/.opencode/tool/repo-map.ts +0 -451
|
@@ -12,10 +12,10 @@ For conceptual background on how Skills work, see the [Skills overview](/en/docs
|
|
|
12
12
|
|
|
13
13
|
The [context window](/en/docs/build-with-claude/context-windows) is a public good. Your Skill shares the context window with everything else Claude needs to know, including:
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
- The system prompt
|
|
16
|
+
- Conversation history
|
|
17
|
+
- Other Skills' metadata
|
|
18
|
+
- Your actual request
|
|
19
19
|
|
|
20
20
|
Not every token in your Skill has an immediate cost. At startup, only the metadata (name and description) from all Skills is pre-loaded. Claude reads SKILL.md only when the Skill becomes relevant, and reads additional files only as needed. However, being concise in SKILL.md still matters: once Claude loads it, every token competes with conversation history and other context.
|
|
21
21
|
|
|
@@ -23,13 +23,13 @@ Not every token in your Skill has an immediate cost. At startup, only the metada
|
|
|
23
23
|
|
|
24
24
|
Only add context Claude doesn't already have. Challenge each piece of information:
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
- "Does Claude really need this explanation?"
|
|
27
|
+
- "Can I assume Claude knows this?"
|
|
28
|
+
- "Does this paragraph justify its token cost?"
|
|
29
29
|
|
|
30
30
|
**Good example: Concise** (approximately 50 tokens):
|
|
31
31
|
|
|
32
|
-
````markdown
|
|
32
|
+
````markdown theme={null}
|
|
33
33
|
## Extract PDF text
|
|
34
34
|
|
|
35
35
|
Use pdfplumber for text extraction:
|
|
@@ -44,7 +44,7 @@ with pdfplumber.open("file.pdf") as pdf:
|
|
|
44
44
|
|
|
45
45
|
**Bad example: Too verbose** (approximately 150 tokens):
|
|
46
46
|
|
|
47
|
-
```markdown
|
|
47
|
+
```markdown theme={null}
|
|
48
48
|
## Extract PDF text
|
|
49
49
|
|
|
50
50
|
PDF (Portable Document Format) files are a common file format that contains
|
|
@@ -64,13 +64,13 @@ Match the level of specificity to the task's fragility and variability.
|
|
|
64
64
|
|
|
65
65
|
Use when:
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
- Multiple approaches are valid
|
|
68
|
+
- Decisions depend on context
|
|
69
|
+
- Heuristics guide the approach
|
|
70
70
|
|
|
71
71
|
Example:
|
|
72
72
|
|
|
73
|
-
```markdown
|
|
73
|
+
```markdown theme={null}
|
|
74
74
|
## Code review process
|
|
75
75
|
|
|
76
76
|
1. Analyze the code structure and organization
|
|
@@ -83,13 +83,13 @@ Example:
|
|
|
83
83
|
|
|
84
84
|
Use when:
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
- A preferred pattern exists
|
|
87
|
+
- Some variation is acceptable
|
|
88
|
+
- Configuration affects behavior
|
|
89
89
|
|
|
90
90
|
Example:
|
|
91
91
|
|
|
92
|
-
````markdown
|
|
92
|
+
````markdown theme={null}
|
|
93
93
|
## Generate report
|
|
94
94
|
|
|
95
95
|
Use this template and customize as needed:
|
|
@@ -106,13 +106,13 @@ def generate_report(data, format="markdown", include_charts=True):
|
|
|
106
106
|
|
|
107
107
|
Use when:
|
|
108
108
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
- Operations are fragile and error-prone
|
|
110
|
+
- Consistency is critical
|
|
111
|
+
- A specific sequence must be followed
|
|
112
112
|
|
|
113
113
|
Example:
|
|
114
114
|
|
|
115
|
-
````markdown
|
|
115
|
+
````markdown theme={null}
|
|
116
116
|
## Database migration
|
|
117
117
|
|
|
118
118
|
Run exactly this script:
|
|
@@ -126,8 +126,8 @@ Do not modify the command or add additional flags.
|
|
|
126
126
|
|
|
127
127
|
**Analogy**: Think of Claude as a robot exploring a path:
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
- **Narrow bridge with cliffs on both sides**: There's only one safe way forward. Provide specific guardrails and exact instructions (low freedom). Example: database migrations that must run in exact sequence.
|
|
130
|
+
- **Open field with no hazards**: Many paths lead to success. Give general direction and trust Claude to find the best route (high freedom). Example: code reviews where context determines the best approach.
|
|
131
131
|
|
|
132
132
|
### Test with all models you plan to use
|
|
133
133
|
|
|
@@ -135,9 +135,9 @@ Skills act as additions to models, so effectiveness depends on the underlying mo
|
|
|
135
135
|
|
|
136
136
|
**Testing considerations by model**:
|
|
137
137
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
138
|
+
- **Claude Haiku** (fast, economical): Does the Skill provide enough guidance?
|
|
139
|
+
- **Claude Sonnet** (balanced): Is the Skill clear and efficient?
|
|
140
|
+
- **Claude Opus** (powerful reasoning): Does the Skill avoid over-explaining?
|
|
141
141
|
|
|
142
142
|
What works perfectly for Opus might need more detail for Haiku. If you plan to use your Skill across multiple models, aim for instructions that work well with all of them.
|
|
143
143
|
|
|
@@ -146,10 +146,10 @@ What works perfectly for Opus might need more detail for Haiku. If you plan to u
|
|
|
146
146
|
<Note>
|
|
147
147
|
**YAML Frontmatter**: The SKILL.md frontmatter supports two fields:
|
|
148
148
|
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
- `name` - Human-readable name of the Skill (64 characters maximum)
|
|
150
|
+
- `description` - One-line description of what the Skill does and when to use it (1024 characters maximum)
|
|
151
151
|
|
|
152
|
-
|
|
152
|
+
For complete Skill structure details, see the [Skills overview](/en/docs/agents-and-tools/agent-skills/overview#skill-structure).
|
|
153
153
|
</Note>
|
|
154
154
|
|
|
155
155
|
### Naming conventions
|
|
@@ -158,29 +158,29 @@ Use consistent naming patterns to make Skills easier to reference and discuss. W
|
|
|
158
158
|
|
|
159
159
|
**Good naming examples (gerund form)**:
|
|
160
160
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
161
|
+
- "Processing PDFs"
|
|
162
|
+
- "Analyzing spreadsheets"
|
|
163
|
+
- "Managing databases"
|
|
164
|
+
- "Testing code"
|
|
165
|
+
- "Writing documentation"
|
|
166
166
|
|
|
167
167
|
**Acceptable alternatives**:
|
|
168
168
|
|
|
169
|
-
|
|
170
|
-
|
|
169
|
+
- Noun phrases: "PDF Processing", "Spreadsheet Analysis"
|
|
170
|
+
- Action-oriented: "Process PDFs", "Analyze Spreadsheets"
|
|
171
171
|
|
|
172
172
|
**Avoid**:
|
|
173
173
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
174
|
+
- Vague names: "Helper", "Utils", "Tools"
|
|
175
|
+
- Overly generic: "Documents", "Data", "Files"
|
|
176
|
+
- Inconsistent patterns within your skill collection
|
|
177
177
|
|
|
178
178
|
Consistent naming makes it easier to:
|
|
179
179
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
180
|
+
- Reference Skills in documentation and conversations
|
|
181
|
+
- Understand what a Skill does at a glance
|
|
182
|
+
- Organize and search through multiple Skills
|
|
183
|
+
- Maintain a professional, cohesive skill library
|
|
184
184
|
|
|
185
185
|
### Writing effective descriptions
|
|
186
186
|
|
|
@@ -189,10 +189,10 @@ The `description` field enables Skill discovery and should include both what the
|
|
|
189
189
|
<Warning>
|
|
190
190
|
**Always write in third person**. The description is injected into the system prompt, and inconsistent point-of-view can cause discovery problems.
|
|
191
191
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
</Warning>
|
|
192
|
+
- **Good:** "Processes Excel files and generates reports"
|
|
193
|
+
- **Avoid:** "I can help you process Excel files"
|
|
194
|
+
- **Avoid:** "You can use this to process Excel files"
|
|
195
|
+
</Warning>
|
|
196
196
|
|
|
197
197
|
**Be specific and include key terms**. Include both what the Skill does and specific triggers/contexts for when to use it.
|
|
198
198
|
|
|
@@ -202,33 +202,33 @@ Effective examples:
|
|
|
202
202
|
|
|
203
203
|
**PDF Processing skill:**
|
|
204
204
|
|
|
205
|
-
```yaml
|
|
205
|
+
```yaml theme={null}
|
|
206
206
|
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
|
|
207
207
|
```
|
|
208
208
|
|
|
209
209
|
**Excel Analysis skill:**
|
|
210
210
|
|
|
211
|
-
```yaml
|
|
211
|
+
```yaml theme={null}
|
|
212
212
|
description: Analyze Excel spreadsheets, create pivot tables, generate charts. Use when analyzing Excel files, spreadsheets, tabular data, or .xlsx files.
|
|
213
213
|
```
|
|
214
214
|
|
|
215
215
|
**Git Commit Helper skill:**
|
|
216
216
|
|
|
217
|
-
```yaml
|
|
217
|
+
```yaml theme={null}
|
|
218
218
|
description: Generate descriptive commit messages by analyzing git diffs. Use when the user asks for help writing commit messages or reviewing staged changes.
|
|
219
219
|
```
|
|
220
220
|
|
|
221
221
|
Avoid vague descriptions like these:
|
|
222
222
|
|
|
223
|
-
```yaml
|
|
223
|
+
```yaml theme={null}
|
|
224
224
|
description: Helps with documents
|
|
225
225
|
```
|
|
226
226
|
|
|
227
|
-
```yaml
|
|
227
|
+
```yaml theme={null}
|
|
228
228
|
description: Processes data
|
|
229
229
|
```
|
|
230
230
|
|
|
231
|
-
```yaml
|
|
231
|
+
```yaml theme={null}
|
|
232
232
|
description: Does stuff with files
|
|
233
233
|
```
|
|
234
234
|
|
|
@@ -238,9 +238,9 @@ SKILL.md serves as an overview that points Claude to detailed materials as neede
|
|
|
238
238
|
|
|
239
239
|
**Practical guidance:**
|
|
240
240
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
241
|
+
- Keep SKILL.md body under 500 lines for optimal performance
|
|
242
|
+
- Split content into separate files when approaching this limit
|
|
243
|
+
- Use the patterns below to organize instructions, code, and resources effectively
|
|
244
244
|
|
|
245
245
|
#### Visual overview: From simple to complex
|
|
246
246
|
|
|
@@ -268,7 +268,7 @@ pdf/
|
|
|
268
268
|
|
|
269
269
|
#### Pattern 1: High-level guide with references
|
|
270
270
|
|
|
271
|
-
````markdown
|
|
271
|
+
````markdown theme={null}
|
|
272
272
|
---
|
|
273
273
|
name: PDF Processing
|
|
274
274
|
description: Extracts text and tables from PDF files, fills forms, and merges documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
|
|
@@ -279,6 +279,7 @@ description: Extracts text and tables from PDF files, fills forms, and merges do
|
|
|
279
279
|
## Quick start
|
|
280
280
|
|
|
281
281
|
Extract text with pdfplumber:
|
|
282
|
+
|
|
282
283
|
```python
|
|
283
284
|
import pdfplumber
|
|
284
285
|
with pdfplumber.open("file.pdf") as pdf:
|
|
@@ -333,7 +334,7 @@ grep -i "api usage" reference/product.md
|
|
|
333
334
|
|
|
334
335
|
Show basic content, link to advanced content:
|
|
335
336
|
|
|
336
|
-
```markdown
|
|
337
|
+
```markdown theme={null}
|
|
337
338
|
# DOCX Processing
|
|
338
339
|
|
|
339
340
|
## Creating documents
|
|
@@ -358,20 +359,23 @@ Claude may partially read files when they're referenced from other referenced fi
|
|
|
358
359
|
|
|
359
360
|
**Bad example: Too deep**:
|
|
360
361
|
|
|
361
|
-
```markdown
|
|
362
|
+
```markdown theme={null}
|
|
362
363
|
# SKILL.md
|
|
364
|
+
|
|
363
365
|
See [advanced.md](advanced.md)...
|
|
364
366
|
|
|
365
367
|
# advanced.md
|
|
368
|
+
|
|
366
369
|
See [details.md](details.md)...
|
|
367
370
|
|
|
368
371
|
# details.md
|
|
372
|
+
|
|
369
373
|
Here's the actual information...
|
|
370
374
|
```
|
|
371
375
|
|
|
372
376
|
**Good example: One level deep**:
|
|
373
377
|
|
|
374
|
-
```markdown
|
|
378
|
+
```markdown theme={null}
|
|
375
379
|
# SKILL.md
|
|
376
380
|
|
|
377
381
|
**Basic usage**: [instructions in SKILL.md]
|
|
@@ -386,10 +390,11 @@ For reference files longer than 100 lines, include a table of contents at the to
|
|
|
386
390
|
|
|
387
391
|
**Example**:
|
|
388
392
|
|
|
389
|
-
```markdown
|
|
393
|
+
```markdown theme={null}
|
|
390
394
|
# API Reference
|
|
391
395
|
|
|
392
396
|
## Contents
|
|
397
|
+
|
|
393
398
|
- Authentication and setup
|
|
394
399
|
- Core methods (create, read, update, delete)
|
|
395
400
|
- Advanced features (batch operations, webhooks)
|
|
@@ -397,9 +402,11 @@ For reference files longer than 100 lines, include a table of contents at the to
|
|
|
397
402
|
- Code examples
|
|
398
403
|
|
|
399
404
|
## Authentication and setup
|
|
405
|
+
|
|
400
406
|
...
|
|
401
407
|
|
|
402
408
|
## Core methods
|
|
409
|
+
|
|
403
410
|
...
|
|
404
411
|
```
|
|
405
412
|
|
|
@@ -415,7 +422,7 @@ Break complex operations into clear, sequential steps. For particularly complex
|
|
|
415
422
|
|
|
416
423
|
**Example 1: Research synthesis workflow** (for Skills without code):
|
|
417
424
|
|
|
418
|
-
````markdown
|
|
425
|
+
````markdown theme={null}
|
|
419
426
|
## Research synthesis workflow
|
|
420
427
|
|
|
421
428
|
Copy this checklist and track your progress:
|
|
@@ -444,6 +451,7 @@ For each major claim, verify it appears in the source material. Note which sourc
|
|
|
444
451
|
**Step 4: Create structured summary**
|
|
445
452
|
|
|
446
453
|
Organize findings by theme. Include:
|
|
454
|
+
|
|
447
455
|
- Main claim
|
|
448
456
|
- Supporting evidence from sources
|
|
449
457
|
- Conflicting viewpoints (if any)
|
|
@@ -457,7 +465,7 @@ This example shows how workflows apply to analysis tasks that don't require code
|
|
|
457
465
|
|
|
458
466
|
**Example 2: PDF form filling workflow** (for Skills with code):
|
|
459
467
|
|
|
460
|
-
````markdown
|
|
468
|
+
````markdown theme={null}
|
|
461
469
|
## PDF form filling workflow
|
|
462
470
|
|
|
463
471
|
Copy this checklist and check off items as you complete them:
|
|
@@ -508,7 +516,7 @@ This pattern greatly improves output quality.
|
|
|
508
516
|
|
|
509
517
|
**Example 1: Style guide compliance** (for Skills without code):
|
|
510
518
|
|
|
511
|
-
```markdown
|
|
519
|
+
```markdown theme={null}
|
|
512
520
|
## Content review process
|
|
513
521
|
|
|
514
522
|
1. Draft your content following the guidelines in STYLE_GUIDE.md
|
|
@@ -524,11 +532,11 @@ This pattern greatly improves output quality.
|
|
|
524
532
|
5. Finalize and save the document
|
|
525
533
|
```
|
|
526
534
|
|
|
527
|
-
This shows the validation loop pattern using reference documents instead of scripts. The "validator" is
|
|
535
|
+
This shows the validation loop pattern using reference documents instead of scripts. The "validator" is STYLE_GUIDE.md, and Claude performs the check by reading and comparing.
|
|
528
536
|
|
|
529
537
|
**Example 2: Document editing process** (for Skills with code):
|
|
530
538
|
|
|
531
|
-
```markdown
|
|
539
|
+
```markdown theme={null}
|
|
532
540
|
## Document editing process
|
|
533
541
|
|
|
534
542
|
1. Make your edits to `word/document.xml`
|
|
@@ -552,14 +560,14 @@ Don't include information that will become outdated:
|
|
|
552
560
|
|
|
553
561
|
**Bad example: Time-sensitive** (will become wrong):
|
|
554
562
|
|
|
555
|
-
```markdown
|
|
563
|
+
```markdown theme={null}
|
|
556
564
|
If you're doing this before August 2025, use the old API.
|
|
557
565
|
After August 2025, use the new API.
|
|
558
566
|
```
|
|
559
567
|
|
|
560
568
|
**Good example** (use "old patterns" section):
|
|
561
569
|
|
|
562
|
-
```markdown
|
|
570
|
+
```markdown theme={null}
|
|
563
571
|
## Current method
|
|
564
572
|
|
|
565
573
|
Use the v2 API endpoint: `api.example.com/v2/messages`
|
|
@@ -572,6 +580,7 @@ Use the v2 API endpoint: `api.example.com/v2/messages`
|
|
|
572
580
|
The v1 API used: `api.example.com/v1/messages`
|
|
573
581
|
|
|
574
582
|
This endpoint is no longer supported.
|
|
583
|
+
|
|
575
584
|
</details>
|
|
576
585
|
```
|
|
577
586
|
|
|
@@ -583,15 +592,15 @@ Choose one term and use it throughout the Skill:
|
|
|
583
592
|
|
|
584
593
|
**Good - Consistent**:
|
|
585
594
|
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
595
|
+
- Always "API endpoint"
|
|
596
|
+
- Always "field"
|
|
597
|
+
- Always "extract"
|
|
589
598
|
|
|
590
599
|
**Bad - Inconsistent**:
|
|
591
600
|
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
601
|
+
- Mix "API endpoint", "URL", "API route", "path"
|
|
602
|
+
- Mix "field", "box", "element", "control"
|
|
603
|
+
- Mix "extract", "pull", "get", "retrieve"
|
|
595
604
|
|
|
596
605
|
Consistency helps Claude understand and follow instructions.
|
|
597
606
|
|
|
@@ -603,7 +612,7 @@ Provide templates for output format. Match the level of strictness to your needs
|
|
|
603
612
|
|
|
604
613
|
**For strict requirements** (like API responses or data formats):
|
|
605
614
|
|
|
606
|
-
````markdown
|
|
615
|
+
````markdown theme={null}
|
|
607
616
|
## Report structure
|
|
608
617
|
|
|
609
618
|
ALWAYS use this exact template structure:
|
|
@@ -612,14 +621,17 @@ ALWAYS use this exact template structure:
|
|
|
612
621
|
# [Analysis Title]
|
|
613
622
|
|
|
614
623
|
## Executive summary
|
|
624
|
+
|
|
615
625
|
[One-paragraph overview of key findings]
|
|
616
626
|
|
|
617
627
|
## Key findings
|
|
628
|
+
|
|
618
629
|
- Finding 1 with supporting data
|
|
619
630
|
- Finding 2 with supporting data
|
|
620
631
|
- Finding 3 with supporting data
|
|
621
632
|
|
|
622
633
|
## Recommendations
|
|
634
|
+
|
|
623
635
|
1. Specific actionable recommendation
|
|
624
636
|
2. Specific actionable recommendation
|
|
625
637
|
```
|
|
@@ -627,7 +639,7 @@ ALWAYS use this exact template structure:
|
|
|
627
639
|
|
|
628
640
|
**For flexible guidance** (when adaptation is useful):
|
|
629
641
|
|
|
630
|
-
````markdown
|
|
642
|
+
````markdown theme={null}
|
|
631
643
|
## Report structure
|
|
632
644
|
|
|
633
645
|
Here is a sensible default format, but use your best judgment based on the analysis:
|
|
@@ -636,12 +648,15 @@ Here is a sensible default format, but use your best judgment based on the analy
|
|
|
636
648
|
# [Analysis Title]
|
|
637
649
|
|
|
638
650
|
## Executive summary
|
|
651
|
+
|
|
639
652
|
[Overview]
|
|
640
653
|
|
|
641
654
|
## Key findings
|
|
655
|
+
|
|
642
656
|
[Adapt sections based on what you discover]
|
|
643
657
|
|
|
644
658
|
## Recommendations
|
|
659
|
+
|
|
645
660
|
[Tailor to the specific context]
|
|
646
661
|
```
|
|
647
662
|
|
|
@@ -652,7 +667,7 @@ Adjust sections as needed for the specific analysis type.
|
|
|
652
667
|
|
|
653
668
|
For Skills where output quality depends on seeing examples, provide input/output pairs just like in regular prompting:
|
|
654
669
|
|
|
655
|
-
````markdown
|
|
670
|
+
````markdown theme={null}
|
|
656
671
|
## Commit message format
|
|
657
672
|
|
|
658
673
|
Generate commit messages following these examples:
|
|
@@ -660,6 +675,7 @@ Generate commit messages following these examples:
|
|
|
660
675
|
**Example 1:**
|
|
661
676
|
Input: Added user authentication with JWT tokens
|
|
662
677
|
Output:
|
|
678
|
+
|
|
663
679
|
```
|
|
664
680
|
feat(auth): implement JWT-based authentication
|
|
665
681
|
|
|
@@ -669,6 +685,7 @@ Add login endpoint and token validation middleware
|
|
|
669
685
|
**Example 2:**
|
|
670
686
|
Input: Fixed bug where dates displayed incorrectly in reports
|
|
671
687
|
Output:
|
|
688
|
+
|
|
672
689
|
```
|
|
673
690
|
fix(reports): correct date formatting in timezone conversion
|
|
674
691
|
|
|
@@ -678,6 +695,7 @@ Use UTC timestamps consistently across report generation
|
|
|
678
695
|
**Example 3:**
|
|
679
696
|
Input: Updated dependencies and refactored error handling
|
|
680
697
|
Output:
|
|
698
|
+
|
|
681
699
|
```
|
|
682
700
|
chore: update dependencies and refactor error handling
|
|
683
701
|
|
|
@@ -694,7 +712,7 @@ Examples help Claude understand the desired style and level of detail more clear
|
|
|
694
712
|
|
|
695
713
|
Guide Claude through decision points:
|
|
696
714
|
|
|
697
|
-
```markdown
|
|
715
|
+
```markdown theme={null}
|
|
698
716
|
## Document modification workflow
|
|
699
717
|
|
|
700
718
|
1. Determine the modification type:
|
|
@@ -736,7 +754,7 @@ This approach ensures you're solving actual problems rather than anticipating re
|
|
|
736
754
|
|
|
737
755
|
**Evaluation structure**:
|
|
738
756
|
|
|
739
|
-
```json
|
|
757
|
+
```json theme={null}
|
|
740
758
|
{
|
|
741
759
|
"skills": ["pdf-processing"],
|
|
742
760
|
"query": "Extract all text from this PDF file and save it to output.txt",
|
|
@@ -783,9 +801,9 @@ The most effective Skill development process involves Claude itself. Work with o
|
|
|
783
801
|
|
|
784
802
|
The same hierarchical pattern continues when improving Skills. You alternate between:
|
|
785
803
|
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
804
|
+
- **Working with Claude A** (the expert who helps refine the Skill)
|
|
805
|
+
- **Testing with Claude B** (the agent using the Skill to perform real work)
|
|
806
|
+
- **Observing Claude B's behavior** and bringing insights back to Claude A
|
|
789
807
|
|
|
790
808
|
1. **Use the Skill in real workflows**: Give Claude B (with the Skill loaded) actual tasks, not test scenarios
|
|
791
809
|
|
|
@@ -813,10 +831,10 @@ The same hierarchical pattern continues when improving Skills. You alternate bet
|
|
|
813
831
|
|
|
814
832
|
As you iterate on Skills, pay attention to how Claude actually uses them in practice. Watch for:
|
|
815
833
|
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
834
|
+
- **Unexpected exploration paths**: Does Claude read files in an order you didn't anticipate? This might indicate your structure isn't as intuitive as you thought
|
|
835
|
+
- **Missed connections**: Does Claude fail to follow references to important files? Your links might need to be more explicit or prominent
|
|
836
|
+
- **Overreliance on certain sections**: If Claude repeatedly reads the same file, consider whether that content should be in the main SKILL.md instead
|
|
837
|
+
- **Ignored content**: If Claude never accesses a bundled file, it might be unnecessary or poorly signaled in the main instructions
|
|
820
838
|
|
|
821
839
|
Iterate based on these observations rather than assumptions. The 'name' and 'description' in your Skill's metadata are particularly critical. Claude uses these when deciding whether to trigger the Skill in response to the current task. Make sure they clearly describe what the Skill does and when it should be used.
|
|
822
840
|
|
|
@@ -826,8 +844,8 @@ Iterate based on these observations rather than assumptions. The 'name' and 'des
|
|
|
826
844
|
|
|
827
845
|
Always use forward slashes in file paths, even on Windows:
|
|
828
846
|
|
|
829
|
-
|
|
830
|
-
|
|
847
|
+
- ✓ **Good**: `scripts/helper.py`, `reference/guide.md`
|
|
848
|
+
- ✗ **Avoid**: `scripts\helper.py`, `reference\guide.md`
|
|
831
849
|
|
|
832
850
|
Unix-style paths work across all platforms, while Windows-style paths cause errors on Unix systems.
|
|
833
851
|
|
|
@@ -835,12 +853,13 @@ Unix-style paths work across all platforms, while Windows-style paths cause erro
|
|
|
835
853
|
|
|
836
854
|
Don't present multiple approaches unless necessary:
|
|
837
855
|
|
|
838
|
-
````markdown
|
|
856
|
+
````markdown theme={null}
|
|
839
857
|
**Bad example: Too many choices** (confusing):
|
|
840
858
|
"You can use pypdf, or pdfplumber, or PyMuPDF, or pdf2image, or..."
|
|
841
859
|
|
|
842
860
|
**Good example: Provide a default** (with escape hatch):
|
|
843
861
|
"Use pdfplumber for text extraction:
|
|
862
|
+
|
|
844
863
|
```python
|
|
845
864
|
import pdfplumber
|
|
846
865
|
```
|
|
@@ -858,7 +877,7 @@ When writing scripts for Skills, handle error conditions rather than punting to
|
|
|
858
877
|
|
|
859
878
|
**Good example: Handle errors explicitly**:
|
|
860
879
|
|
|
861
|
-
```python
|
|
880
|
+
```python theme={null}
|
|
862
881
|
def process_file(path):
|
|
863
882
|
"""Process a file, creating it if it doesn't exist."""
|
|
864
883
|
try:
|
|
@@ -878,7 +897,7 @@ def process_file(path):
|
|
|
878
897
|
|
|
879
898
|
**Bad example: Punt to Claude**:
|
|
880
899
|
|
|
881
|
-
```python
|
|
900
|
+
```python theme={null}
|
|
882
901
|
def process_file(path):
|
|
883
902
|
# Just fail and let Claude figure it out
|
|
884
903
|
return open(path).read()
|
|
@@ -888,7 +907,7 @@ Configuration parameters should also be justified and documented to avoid "voodo
|
|
|
888
907
|
|
|
889
908
|
**Good example: Self-documenting**:
|
|
890
909
|
|
|
891
|
-
```python
|
|
910
|
+
```python theme={null}
|
|
892
911
|
# HTTP requests typically complete within 30 seconds
|
|
893
912
|
# Longer timeout accounts for slow connections
|
|
894
913
|
REQUEST_TIMEOUT = 30
|
|
@@ -900,7 +919,7 @@ MAX_RETRIES = 3
|
|
|
900
919
|
|
|
901
920
|
**Bad example: Magic numbers**:
|
|
902
921
|
|
|
903
|
-
```python
|
|
922
|
+
```python theme={null}
|
|
904
923
|
TIMEOUT = 47 # Why 47?
|
|
905
924
|
RETRIES = 5 # Why 5?
|
|
906
925
|
```
|
|
@@ -911,10 +930,10 @@ Even if Claude could write a script, pre-made scripts offer advantages:
|
|
|
911
930
|
|
|
912
931
|
**Benefits of utility scripts**:
|
|
913
932
|
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
933
|
+
- More reliable than generated code
|
|
934
|
+
- Save tokens (no need to include code in context)
|
|
935
|
+
- Save time (no code generation required)
|
|
936
|
+
- Ensure consistency across uses
|
|
918
937
|
|
|
919
938
|
<img src="https://mintcdn.com/anthropic-claude-docs/4Bny2bjzuGBK7o00/images/agent-skills-executable-scripts.png?fit=max&auto=format&n=4Bny2bjzuGBK7o00&q=85&s=4bbc45f2c2e0bee9f2f0d5da669bad00" alt="Bundling executable scripts alongside instruction files" data-og-width="2048" width="2048" data-og-height="1154" height="1154" data-path="images/agent-skills-executable-scripts.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/anthropic-claude-docs/4Bny2bjzuGBK7o00/images/agent-skills-executable-scripts.png?w=280&fit=max&auto=format&n=4Bny2bjzuGBK7o00&q=85&s=9a04e6535a8467bfeea492e517de389f 280w, https://mintcdn.com/anthropic-claude-docs/4Bny2bjzuGBK7o00/images/agent-skills-executable-scripts.png?w=560&fit=max&auto=format&n=4Bny2bjzuGBK7o00&q=85&s=e49333ad90141af17c0d7651cca7216b 560w, https://mintcdn.com/anthropic-claude-docs/4Bny2bjzuGBK7o00/images/agent-skills-executable-scripts.png?w=840&fit=max&auto=format&n=4Bny2bjzuGBK7o00&q=85&s=954265a5df52223d6572b6214168c428 840w, https://mintcdn.com/anthropic-claude-docs/4Bny2bjzuGBK7o00/images/agent-skills-executable-scripts.png?w=1100&fit=max&auto=format&n=4Bny2bjzuGBK7o00&q=85&s=2ff7a2d8f2a83ee8af132b29f10150fd 1100w, https://mintcdn.com/anthropic-claude-docs/4Bny2bjzuGBK7o00/images/agent-skills-executable-scripts.png?w=1650&fit=max&auto=format&n=4Bny2bjzuGBK7o00&q=85&s=48ab96245e04077f4d15e9170e081cfb 1650w, https://mintcdn.com/anthropic-claude-docs/4Bny2bjzuGBK7o00/images/agent-skills-executable-scripts.png?w=2500&fit=max&auto=format&n=4Bny2bjzuGBK7o00&q=85&s=0301a6c8b3ee879497cc5b5483177c90 2500w" />
|
|
920
939
|
|
|
@@ -922,14 +941,14 @@ The diagram above shows how executable scripts work alongside instruction files.
|
|
|
922
941
|
|
|
923
942
|
**Important distinction**: Make clear in your instructions whether Claude should:
|
|
924
943
|
|
|
925
|
-
|
|
926
|
-
|
|
944
|
+
- **Execute the script** (most common): "Run `analyze_form.py` to extract fields"
|
|
945
|
+
- **Read it as reference** (for complex logic): "See `analyze_form.py` for the field extraction algorithm"
|
|
927
946
|
|
|
928
947
|
For most utility scripts, execution is preferred because it's more reliable and efficient. See the [Runtime environment](#runtime-environment) section below for details on how script execution works.
|
|
929
948
|
|
|
930
949
|
**Example**:
|
|
931
950
|
|
|
932
|
-
````markdown
|
|
951
|
+
````markdown theme={null}
|
|
933
952
|
## Utility scripts
|
|
934
953
|
|
|
935
954
|
**analyze_form.py**: Extract all form fields from PDF
|
|
@@ -939,10 +958,11 @@ python scripts/analyze_form.py input.pdf > fields.json
|
|
|
939
958
|
```
|
|
940
959
|
|
|
941
960
|
Output format:
|
|
961
|
+
|
|
942
962
|
```json
|
|
943
963
|
{
|
|
944
|
-
"field_name": {"type": "text", "x": 100, "y": 200},
|
|
945
|
-
"signature": {"type": "sig", "x": 150, "y": 500}
|
|
964
|
+
"field_name": { "type": "text", "x": 100, "y": 200 },
|
|
965
|
+
"signature": { "type": "sig", "x": 150, "y": 500 }
|
|
946
966
|
}
|
|
947
967
|
```
|
|
948
968
|
|
|
@@ -964,10 +984,11 @@ python scripts/fill_form.py input.pdf fields.json output.pdf
|
|
|
964
984
|
|
|
965
985
|
When inputs can be rendered as images, have Claude analyze them:
|
|
966
986
|
|
|
967
|
-
````markdown
|
|
987
|
+
````markdown theme={null}
|
|
968
988
|
## Form layout analysis
|
|
969
989
|
|
|
970
990
|
1. Convert PDF to images:
|
|
991
|
+
|
|
971
992
|
```bash
|
|
972
993
|
python scripts/pdf_to_images.py form.pdf
|
|
973
994
|
```
|
|
@@ -992,21 +1013,21 @@ When Claude performs complex, open-ended tasks, it can make mistakes. The "plan-
|
|
|
992
1013
|
|
|
993
1014
|
**Why this pattern works:**
|
|
994
1015
|
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
1016
|
+
- **Catches errors early**: Validation finds problems before changes are applied
|
|
1017
|
+
- **Machine-verifiable**: Scripts provide objective verification
|
|
1018
|
+
- **Reversible planning**: Claude can iterate on the plan without touching originals
|
|
1019
|
+
- **Clear debugging**: Error messages point to specific problems
|
|
999
1020
|
|
|
1000
1021
|
**When to use**: Batch operations, destructive changes, complex validation rules, high-stakes operations.
|
|
1001
1022
|
|
|
1002
|
-
**Implementation tip**: Make validation scripts verbose with specific error messages like "Field '
|
|
1023
|
+
**Implementation tip**: Make validation scripts verbose with specific error messages like "Field 'signature_date' not found. Available fields: customer_name, order_total, signature_date_signed" to help Claude fix issues.
|
|
1003
1024
|
|
|
1004
1025
|
### Package dependencies
|
|
1005
1026
|
|
|
1006
1027
|
Skills run in the code execution environment with platform-specific limitations:
|
|
1007
1028
|
|
|
1008
|
-
|
|
1009
|
-
|
|
1029
|
+
- **claude.ai**: Can install packages from npm and PyPI and pull from GitHub repositories
|
|
1030
|
+
- **Anthropic API**: Has no network access and no runtime package installation
|
|
1010
1031
|
|
|
1011
1032
|
List required packages in your SKILL.md and verify they're available in the [code execution tool documentation](/en/docs/agents-and-tools/tool-use/code-execution-tool).
|
|
1012
1033
|
|
|
@@ -1023,17 +1044,17 @@ Skills run in a code execution environment with filesystem access, bash commands
|
|
|
1023
1044
|
3. **Scripts executed efficiently**: Utility scripts can be executed via bash without loading their full contents into context. Only the script's output consumes tokens
|
|
1024
1045
|
4. **No context penalty for large files**: Reference files, data, or documentation don't consume context tokens until actually read
|
|
1025
1046
|
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1047
|
+
- **File paths matter**: Claude navigates your skill directory like a filesystem. Use forward slashes (`reference/guide.md`), not backslashes
|
|
1048
|
+
- **Name files descriptively**: Use names that indicate content: `form_validation_rules.md`, not `doc2.md`
|
|
1049
|
+
- **Organize for discovery**: Structure directories by domain or feature
|
|
1050
|
+
- Good: `reference/finance.md`, `reference/sales.md`
|
|
1051
|
+
- Bad: `docs/file1.md`, `docs/file2.md`
|
|
1052
|
+
- **Bundle comprehensive resources**: Include complete API docs, extensive examples, large datasets; no context penalty until accessed
|
|
1053
|
+
- **Prefer scripts for deterministic operations**: Write `validate_form.py` rather than asking Claude to generate validation code
|
|
1054
|
+
- **Make execution intent clear**:
|
|
1055
|
+
- "Run `analyze_form.py` to extract fields" (execute)
|
|
1056
|
+
- "See `analyze_form.py` for the extraction algorithm" (read as reference)
|
|
1057
|
+
- **Test file access patterns**: Verify Claude can navigate your directory structure by testing with real requests
|
|
1037
1058
|
|
|
1038
1059
|
**Example:**
|
|
1039
1060
|
|
|
@@ -1058,15 +1079,15 @@ If your Skill uses MCP (Model Context Protocol) tools, always use fully qualifie
|
|
|
1058
1079
|
|
|
1059
1080
|
**Example**:
|
|
1060
1081
|
|
|
1061
|
-
```markdown
|
|
1082
|
+
```markdown theme={null}
|
|
1062
1083
|
Use the BigQuery:bigquery_schema tool to retrieve table schemas.
|
|
1063
1084
|
Use the GitHub:create_issue tool to create issues.
|
|
1064
1085
|
```
|
|
1065
1086
|
|
|
1066
1087
|
Where:
|
|
1067
1088
|
|
|
1068
|
-
|
|
1069
|
-
|
|
1089
|
+
- `BigQuery` and `GitHub` are MCP server names
|
|
1090
|
+
- `bigquery_schema` and `create_issue` are the tool names within those servers
|
|
1070
1091
|
|
|
1071
1092
|
Without the server prefix, Claude may fail to locate the tool, especially when multiple MCP servers are available.
|
|
1072
1093
|
|
|
@@ -1074,7 +1095,7 @@ Without the server prefix, Claude may fail to locate the tool, especially when m
|
|
|
1074
1095
|
|
|
1075
1096
|
Don't assume packages are available:
|
|
1076
1097
|
|
|
1077
|
-
````markdown
|
|
1098
|
+
````markdown theme={null}
|
|
1078
1099
|
**Bad example: Assumes installation**:
|
|
1079
1100
|
"Use the pdf library to process the file."
|
|
1080
1101
|
|
|
@@ -1082,11 +1103,13 @@ Don't assume packages are available:
|
|
|
1082
1103
|
"Install required package: `pip install pypdf`
|
|
1083
1104
|
|
|
1084
1105
|
Then use it:
|
|
1085
|
-
|
|
1106
|
+
|
|
1107
|
+
````python
|
|
1086
1108
|
from pypdf import PdfReader
|
|
1087
1109
|
reader = PdfReader("file.pdf")
|
|
1088
1110
|
```"
|
|
1089
1111
|
````
|
|
1112
|
+
````
|
|
1090
1113
|
|
|
1091
1114
|
## Technical notes
|
|
1092
1115
|
|
|
@@ -1104,34 +1127,34 @@ Before sharing a Skill, verify:
|
|
|
1104
1127
|
|
|
1105
1128
|
### Core quality
|
|
1106
1129
|
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1130
|
+
- [ ] Description is specific and includes key terms
|
|
1131
|
+
- [ ] Description includes both what the Skill does and when to use it
|
|
1132
|
+
- [ ] SKILL.md body is under 500 lines
|
|
1133
|
+
- [ ] Additional details are in separate files (if needed)
|
|
1134
|
+
- [ ] No time-sensitive information (or in "old patterns" section)
|
|
1135
|
+
- [ ] Consistent terminology throughout
|
|
1136
|
+
- [ ] Examples are concrete, not abstract
|
|
1137
|
+
- [ ] File references are one level deep
|
|
1138
|
+
- [ ] Progressive disclosure used appropriately
|
|
1139
|
+
- [ ] Workflows have clear steps
|
|
1117
1140
|
|
|
1118
1141
|
### Code and scripts
|
|
1119
1142
|
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1143
|
+
- [ ] Scripts solve problems rather than punt to Claude
|
|
1144
|
+
- [ ] Error handling is explicit and helpful
|
|
1145
|
+
- [ ] No "voodoo constants" (all values justified)
|
|
1146
|
+
- [ ] Required packages listed in instructions and verified as available
|
|
1147
|
+
- [ ] Scripts have clear documentation
|
|
1148
|
+
- [ ] No Windows-style paths (all forward slashes)
|
|
1149
|
+
- [ ] Validation/verification steps for critical operations
|
|
1150
|
+
- [ ] Feedback loops included for quality-critical tasks
|
|
1128
1151
|
|
|
1129
1152
|
### Testing
|
|
1130
1153
|
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1154
|
+
- [ ] At least three evaluations created
|
|
1155
|
+
- [ ] Tested with Haiku, Sonnet, and Opus
|
|
1156
|
+
- [ ] Tested with real usage scenarios
|
|
1157
|
+
- [ ] Team feedback incorporated (if applicable)
|
|
1135
1158
|
|
|
1136
1159
|
## Next steps
|
|
1137
1160
|
|