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.
Files changed (95) hide show
  1. package/README.md +2 -2
  2. package/dist/index.js +435 -57
  3. package/dist/template/.opencode/.env.example +1 -0
  4. package/dist/template/.opencode/AGENTS.md +13 -24
  5. package/dist/template/.opencode/README.md +8 -119
  6. package/dist/template/.opencode/agent/explore.md +2 -3
  7. package/dist/template/.opencode/agent/general.md +56 -0
  8. package/dist/template/.opencode/agent/plan.md +54 -0
  9. package/dist/template/.opencode/agent/scout.md +15 -5
  10. package/dist/template/.opencode/command/analyze-project.md +2 -2
  11. package/dist/template/.opencode/command/brainstorm.md +1 -1
  12. package/dist/template/.opencode/command/design-audit.md +4 -5
  13. package/dist/template/.opencode/command/design.md +4 -13
  14. package/dist/template/.opencode/command/generate-pattern.md +2 -9
  15. package/dist/template/.opencode/command/implement.md +4 -4
  16. package/dist/template/.opencode/command/init.md +1 -1
  17. package/dist/template/.opencode/command/new-feature.md +2 -3
  18. package/dist/template/.opencode/command/plan.md +1 -1
  19. package/dist/template/.opencode/command/pr.md +0 -1
  20. package/dist/template/.opencode/command/research.md +20 -6
  21. package/dist/template/.opencode/command/restore-image.md +1 -9
  22. package/dist/template/.opencode/command/revert-feature.md +1 -1
  23. package/dist/template/.opencode/command/review-codebase.md +4 -4
  24. package/dist/template/.opencode/command/status.md +1 -2
  25. package/dist/template/.opencode/command/summarize.md +1 -2
  26. package/dist/template/.opencode/command/triage.md +4 -32
  27. package/dist/template/.opencode/dcp.jsonc +68 -68
  28. package/dist/template/.opencode/memory/_templates/README.md +35 -0
  29. package/dist/template/.opencode/memory/_templates/project/architecture.md +60 -0
  30. package/dist/template/.opencode/memory/_templates/project/commands.md +72 -0
  31. package/dist/template/.opencode/memory/_templates/project/conventions.md +68 -0
  32. package/dist/template/.opencode/memory/_templates/project/gotchas.md +41 -0
  33. package/dist/template/.opencode/memory/beads-workflow.md +30 -29
  34. package/dist/template/.opencode/memory/project/architecture.md +31 -50
  35. package/dist/template/.opencode/memory/project/commands.md +41 -22
  36. package/dist/template/.opencode/memory/project/conventions.md +39 -177
  37. package/dist/template/.opencode/memory/project/gotchas.md +21 -177
  38. package/dist/template/.opencode/memory/user.example.md +5 -0
  39. package/dist/template/.opencode/opencode.json +628 -579
  40. package/dist/template/.opencode/package.json +18 -21
  41. package/dist/template/.opencode/plugin/compaction.ts +79 -85
  42. package/dist/template/.opencode/plugin/env-ctx.ts +19 -19
  43. package/dist/template/.opencode/plugin/lib/notify.ts +41 -45
  44. package/dist/template/.opencode/plugin/lsp.ts +197 -200
  45. package/dist/template/.opencode/plugin/memory.ts +14 -112
  46. package/dist/template/.opencode/plugin/package.json +5 -5
  47. package/dist/template/.opencode/plugin/sessions.ts +1 -1
  48. package/dist/template/.opencode/plugin/skill-mcp.ts +486 -521
  49. package/dist/template/.opencode/plugin/truncator.ts +47 -50
  50. package/dist/template/.opencode/plugin/tsconfig.json +14 -14
  51. package/dist/template/.opencode/skill/chrome-devtools/mcp.json +17 -17
  52. package/dist/template/.opencode/skill/condition-based-waiting/SKILL.md +17 -12
  53. package/dist/template/.opencode/skill/condition-based-waiting/example.ts +63 -69
  54. package/dist/template/.opencode/skill/defense-in-depth/SKILL.md +14 -8
  55. package/dist/template/.opencode/skill/dispatching-parallel-agents/SKILL.md +14 -3
  56. package/dist/template/.opencode/skill/playwright/mcp.json +14 -14
  57. package/dist/template/.opencode/skill/receiving-code-review/SKILL.md +21 -8
  58. package/dist/template/.opencode/skill/requesting-code-review/review.md +14 -0
  59. package/dist/template/.opencode/skill/root-cause-tracing/SKILL.md +18 -4
  60. package/dist/template/.opencode/skill/source-code-research/SKILL.md +9 -7
  61. package/dist/template/.opencode/skill/test-driven-development/SKILL.md +49 -32
  62. package/dist/template/.opencode/skill/testing-anti-patterns/SKILL.md +40 -22
  63. package/dist/template/.opencode/skill/testing-skills-with-subagents/SKILL.md +46 -26
  64. package/dist/template/.opencode/skill/tool-priority/SKILL.md +117 -44
  65. package/dist/template/.opencode/skill/v0/SKILL.md +1 -7
  66. package/dist/template/.opencode/skill/verification-before-completion/SKILL.md +27 -19
  67. package/dist/template/.opencode/skill/writing-skills/anthropic-best-practices.md +171 -148
  68. package/dist/template/.opencode/skill/writing-skills/persuasion-principles.md +39 -6
  69. package/dist/template/.opencode/tool/memory-read.ts +44 -56
  70. package/dist/template/.opencode/tool/memory-search.ts +8 -291
  71. package/dist/template/.opencode/tool/memory-update.ts +47 -51
  72. package/dist/template/.opencode/tool/observation.ts +6 -180
  73. package/dist/template/.opencode/tsconfig.json +19 -19
  74. package/package.json +19 -15
  75. package/dist/template/.opencode/.background-tasks.json +0 -114
  76. package/dist/template/.opencode/.ralph-state.json +0 -12
  77. package/dist/template/.opencode/agent/build.md +0 -327
  78. package/dist/template/.opencode/agent/ninja.md +0 -351
  79. package/dist/template/.opencode/agent/planner.md +0 -281
  80. package/dist/template/.opencode/agent/rush.md +0 -223
  81. package/dist/template/.opencode/memory/handoffs/README.md +0 -83
  82. package/dist/template/.opencode/memory/observations/.gitkeep +0 -0
  83. package/dist/template/.opencode/memory/observations/2026-01-09-pattern-ampcode-mcp-json-includetools-pattern.md +0 -42
  84. package/dist/template/.opencode/memory/vector_db/memories.lance/_transactions/0-0d25ba80-ba3b-4209-9046-b45d6093b4da.txn +0 -0
  85. package/dist/template/.opencode/memory/vector_db/memories.lance/_versions/1.manifest +0 -0
  86. package/dist/template/.opencode/memory/vector_db/memories.lance/data/1111100101010101011010004a9ef34df6b29f36a9a53a2892.lance +0 -0
  87. package/dist/template/.opencode/tool/ast-grep.ts +0 -245
  88. package/dist/template/.opencode/tool/background.ts +0 -509
  89. package/dist/template/.opencode/tool/bd-inbox.ts +0 -110
  90. package/dist/template/.opencode/tool/bd-msg.ts +0 -62
  91. package/dist/template/.opencode/tool/bd-release.ts +0 -71
  92. package/dist/template/.opencode/tool/bd-reserve.ts +0 -121
  93. package/dist/template/.opencode/tool/memory-embed.ts +0 -183
  94. package/dist/template/.opencode/tool/memory-index.ts +0 -769
  95. 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
- * The system prompt
16
- * Conversation history
17
- * Other Skills' metadata
18
- * Your actual request
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
- * "Does Claude really need this explanation?"
27
- * "Can I assume Claude knows this?"
28
- * "Does this paragraph justify its token cost?"
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 theme={null}
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 theme={null}
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
- * Multiple approaches are valid
68
- * Decisions depend on context
69
- * Heuristics guide the approach
67
+ - Multiple approaches are valid
68
+ - Decisions depend on context
69
+ - Heuristics guide the approach
70
70
 
71
71
  Example:
72
72
 
73
- ```markdown theme={null}
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
- * A preferred pattern exists
87
- * Some variation is acceptable
88
- * Configuration affects behavior
86
+ - A preferred pattern exists
87
+ - Some variation is acceptable
88
+ - Configuration affects behavior
89
89
 
90
90
  Example:
91
91
 
92
- ````markdown theme={null}
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
- * Operations are fragile and error-prone
110
- * Consistency is critical
111
- * A specific sequence must be followed
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 theme={null}
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
- * **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.
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
- * **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?
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
- * `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)
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
- For complete Skill structure details, see the [Skills overview](/en/docs/agents-and-tools/agent-skills/overview#skill-structure).
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
- * "Processing PDFs"
162
- * "Analyzing spreadsheets"
163
- * "Managing databases"
164
- * "Testing code"
165
- * "Writing documentation"
161
+ - "Processing PDFs"
162
+ - "Analyzing spreadsheets"
163
+ - "Managing databases"
164
+ - "Testing code"
165
+ - "Writing documentation"
166
166
 
167
167
  **Acceptable alternatives**:
168
168
 
169
- * Noun phrases: "PDF Processing", "Spreadsheet Analysis"
170
- * Action-oriented: "Process PDFs", "Analyze Spreadsheets"
169
+ - Noun phrases: "PDF Processing", "Spreadsheet Analysis"
170
+ - Action-oriented: "Process PDFs", "Analyze Spreadsheets"
171
171
 
172
172
  **Avoid**:
173
173
 
174
- * Vague names: "Helper", "Utils", "Tools"
175
- * Overly generic: "Documents", "Data", "Files"
176
- * Inconsistent patterns within your skill collection
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
- * 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
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
- * **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>
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 theme={null}
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 theme={null}
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 theme={null}
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 theme={null}
223
+ ```yaml theme={null}
224
224
  description: Helps with documents
225
225
  ```
226
226
 
227
- ```yaml theme={null}
227
+ ```yaml theme={null}
228
228
  description: Processes data
229
229
  ```
230
230
 
231
- ```yaml theme={null}
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
- * 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
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 theme={null}
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 theme={null}
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 theme={null}
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 theme={null}
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 theme={null}
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 theme={null}
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 theme={null}
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 theme={null}
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 STYLE\_GUIDE.md, and Claude performs the check by reading and comparing.
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 theme={null}
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 theme={null}
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 theme={null}
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
- * Always "API endpoint"
587
- * Always "field"
588
- * Always "extract"
595
+ - Always "API endpoint"
596
+ - Always "field"
597
+ - Always "extract"
589
598
 
590
599
  **Bad - Inconsistent**:
591
600
 
592
- * Mix "API endpoint", "URL", "API route", "path"
593
- * Mix "field", "box", "element", "control"
594
- * Mix "extract", "pull", "get", "retrieve"
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 theme={null}
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 theme={null}
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 theme={null}
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 theme={null}
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 theme={null}
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
- * **Working with Claude A** (the expert who helps refine the Skill)
787
- * **Testing with Claude B** (the agent using the Skill to perform real work)
788
- * **Observing Claude B's behavior** and bringing insights back to Claude A
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
- * **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
817
- * **Missed connections**: Does Claude fail to follow references to important files? Your links might need to be more explicit or prominent
818
- * **Overreliance on certain sections**: If Claude repeatedly reads the same file, consider whether that content should be in the main SKILL.md instead
819
- * **Ignored content**: If Claude never accesses a bundled file, it might be unnecessary or poorly signaled in the main instructions
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
- * ✓ **Good**: `scripts/helper.py`, `reference/guide.md`
830
- * ✗ **Avoid**: `scripts\helper.py`, `reference\guide.md`
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 theme={null}
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 theme={null}
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 theme={null}
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 theme={null}
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 theme={null}
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
- * More reliable than generated code
915
- * Save tokens (no need to include code in context)
916
- * Save time (no code generation required)
917
- * Ensure consistency across uses
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
- * **Execute the script** (most common): "Run `analyze_form.py` to extract fields"
926
- * **Read it as reference** (for complex logic): "See `analyze_form.py` for the field extraction algorithm"
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 theme={null}
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 theme={null}
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
- * **Catches errors early**: Validation finds problems before changes are applied
996
- * **Machine-verifiable**: Scripts provide objective verification
997
- * **Reversible planning**: Claude can iterate on the plan without touching originals
998
- * **Clear debugging**: Error messages point to specific problems
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 'signature\_date' not found. Available fields: customer\_name, order\_total, signature\_date\_signed" to help Claude fix issues.
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
- * **claude.ai**: Can install packages from npm and PyPI and pull from GitHub repositories
1009
- * **Anthropic API**: Has no network access and no runtime package installation
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
- * **File paths matter**: Claude navigates your skill directory like a filesystem. Use forward slashes (`reference/guide.md`), not backslashes
1027
- * **Name files descriptively**: Use names that indicate content: `form_validation_rules.md`, not `doc2.md`
1028
- * **Organize for discovery**: Structure directories by domain or feature
1029
- * Good: `reference/finance.md`, `reference/sales.md`
1030
- * Bad: `docs/file1.md`, `docs/file2.md`
1031
- * **Bundle comprehensive resources**: Include complete API docs, extensive examples, large datasets; no context penalty until accessed
1032
- * **Prefer scripts for deterministic operations**: Write `validate_form.py` rather than asking Claude to generate validation code
1033
- * **Make execution intent clear**:
1034
- * "Run `analyze_form.py` to extract fields" (execute)
1035
- * "See `analyze_form.py` for the extraction algorithm" (read as reference)
1036
- * **Test file access patterns**: Verify Claude can navigate your directory structure by testing with real requests
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 theme={null}
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
- * `BigQuery` and `GitHub` are MCP server names
1069
- * `bigquery_schema` and `create_issue` are the tool names within those servers
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 theme={null}
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
- ```python
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
- * [ ] Description is specific and includes key terms
1108
- * [ ] Description includes both what the Skill does and when to use it
1109
- * [ ] SKILL.md body is under 500 lines
1110
- * [ ] Additional details are in separate files (if needed)
1111
- * [ ] No time-sensitive information (or in "old patterns" section)
1112
- * [ ] Consistent terminology throughout
1113
- * [ ] Examples are concrete, not abstract
1114
- * [ ] File references are one level deep
1115
- * [ ] Progressive disclosure used appropriately
1116
- * [ ] Workflows have clear steps
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
- * [ ] Scripts solve problems rather than punt to Claude
1121
- * [ ] Error handling is explicit and helpful
1122
- * [ ] No "voodoo constants" (all values justified)
1123
- * [ ] Required packages listed in instructions and verified as available
1124
- * [ ] Scripts have clear documentation
1125
- * [ ] No Windows-style paths (all forward slashes)
1126
- * [ ] Validation/verification steps for critical operations
1127
- * [ ] Feedback loops included for quality-critical tasks
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
- * [ ] At least three evaluations created
1132
- * [ ] Tested with Haiku, Sonnet, and Opus
1133
- * [ ] Tested with real usage scenarios
1134
- * [ ] Team feedback incorporated (if applicable)
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