claude-all-hands 1.0.1 → 1.0.3
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/.claude/agents/code-simplifier.md +52 -0
- package/.claude/agents/curator.md +186 -246
- package/.claude/agents/documentation-taxonomist.md +255 -0
- package/.claude/agents/documentation-writer.md +366 -0
- package/.claude/agents/planner.md +123 -166
- package/.claude/agents/researcher.md +58 -41
- package/.claude/agents/surveyor.md +81 -0
- package/.claude/agents/worker.md +74 -0
- package/.claude/commands/continue.md +122 -0
- package/.claude/commands/create-skill.md +107 -0
- package/.claude/commands/create-specialist.md +111 -0
- package/.claude/commands/curator-audit.md +4 -0
- package/.claude/commands/debug.md +183 -0
- package/.claude/commands/docs-adjust.md +214 -0
- package/.claude/commands/docs-audit.md +172 -0
- package/.claude/commands/docs-init.md +210 -0
- package/.claude/commands/plan.md +199 -102
- package/.claude/commands/validate.md +11 -0
- package/.claude/commands/whats-next.md +106 -134
- package/.claude/envoy/README.md +5 -5
- package/.claude/envoy/envoy +11 -14
- package/.claude/envoy/package-lock.json +1594 -0
- package/.claude/envoy/package.json +38 -0
- package/.claude/envoy/src/cli.ts +126 -0
- package/.claude/envoy/src/commands/base.ts +216 -0
- package/.claude/envoy/src/commands/docs.ts +881 -0
- package/.claude/envoy/src/commands/gemini.ts +999 -0
- package/.claude/envoy/src/commands/git.ts +639 -0
- package/.claude/envoy/src/commands/index.ts +73 -0
- package/.claude/envoy/src/commands/knowledge.ts +178 -0
- package/.claude/envoy/src/commands/perplexity.ts +129 -0
- package/.claude/envoy/src/commands/plan/core.ts +134 -0
- package/.claude/envoy/src/commands/plan/findings.ts +446 -0
- package/.claude/envoy/src/commands/plan/gates.ts +672 -0
- package/.claude/envoy/src/commands/plan/index.ts +135 -0
- package/.claude/envoy/src/commands/plan/lifecycle.ts +648 -0
- package/.claude/envoy/src/commands/plan/plan-file.ts +138 -0
- package/.claude/envoy/src/commands/plan/prompts.ts +285 -0
- package/.claude/envoy/src/commands/plan/protocols.ts +166 -0
- package/.claude/envoy/src/commands/repomix.ts +99 -0
- package/.claude/envoy/src/commands/tavily.ts +220 -0
- package/.claude/envoy/src/commands/xai.ts +168 -0
- package/.claude/envoy/src/lib/ast-queries.ts +261 -0
- package/.claude/envoy/src/lib/design.ts +41 -0
- package/.claude/envoy/src/lib/feedback-schemas.ts +154 -0
- package/.claude/envoy/src/lib/findings.ts +215 -0
- package/.claude/envoy/src/lib/gates.ts +572 -0
- package/.claude/envoy/src/lib/git.ts +132 -0
- package/.claude/envoy/src/lib/index.ts +188 -0
- package/.claude/envoy/src/lib/knowledge.ts +646 -0
- package/.claude/envoy/src/lib/markdown.ts +75 -0
- package/.claude/envoy/src/lib/observability.ts +262 -0
- package/.claude/envoy/src/lib/paths.ts +130 -0
- package/.claude/envoy/src/lib/plan-io.ts +117 -0
- package/.claude/envoy/src/lib/prompts.ts +231 -0
- package/.claude/envoy/src/lib/protocols.ts +314 -0
- package/.claude/envoy/src/lib/repomix.ts +133 -0
- package/.claude/envoy/src/lib/retry.ts +138 -0
- package/.claude/envoy/src/lib/tree-sitter-utils.ts +301 -0
- package/.claude/envoy/src/lib/watcher.ts +167 -0
- package/.claude/envoy/src/types/tree-sitter.d.ts +76 -0
- package/.claude/envoy/tsconfig.json +21 -0
- package/.claude/hooks/scripts/enforce_research_fetch.py +1 -1
- package/.claude/hooks/scripts/scan_agents.py +62 -0
- package/.claude/hooks/scripts/scan_commands.py +50 -0
- package/.claude/hooks/scripts/scan_skills.py +46 -70
- package/.claude/hooks/scripts/validate_artifacts.py +128 -0
- package/.claude/hooks/startup.sh +26 -24
- package/.claude/protocols/bug-discovery.yaml +55 -0
- package/.claude/protocols/debugging.yaml +51 -0
- package/.claude/protocols/discovery.yaml +53 -0
- package/.claude/protocols/implementation.yaml +84 -0
- package/.claude/settings.json +38 -97
- package/.claude/skills/brainstorming/SKILL.md +54 -0
- package/.claude/skills/commands-development/SKILL.md +630 -0
- package/.claude/skills/commands-development/references/arguments.md +252 -0
- package/.claude/skills/commands-development/references/patterns.md +796 -0
- package/.claude/skills/commands-development/references/tool-restrictions.md +376 -0
- package/.claude/skills/discovery-mode/SKILL.md +108 -0
- package/.claude/skills/documentation-taxonomy/SKILL.md +287 -0
- package/.claude/skills/hooks-development/SKILL.md +332 -0
- package/.claude/skills/hooks-development/references/command-vs-prompt.md +269 -0
- package/.claude/skills/hooks-development/references/examples.md +658 -0
- package/.claude/skills/hooks-development/references/hook-types.md +463 -0
- package/.claude/skills/hooks-development/references/input-output-schemas.md +469 -0
- package/.claude/skills/hooks-development/references/matchers.md +470 -0
- package/.claude/skills/hooks-development/references/troubleshooting.md +587 -0
- package/.claude/skills/implementation-mode/SKILL.md +171 -0
- package/.claude/skills/knowledge-discovery/SKILL.md +178 -0
- package/.claude/skills/research-tools/SKILL.md +35 -33
- package/.claude/skills/skills-development/SKILL.md +192 -0
- package/.claude/skills/skills-development/references/api-security.md +226 -0
- package/.claude/skills/skills-development/references/be-clear-and-direct.md +531 -0
- package/.claude/skills/skills-development/references/common-patterns.md +595 -0
- package/.claude/skills/skills-development/references/core-principles.md +437 -0
- package/.claude/skills/skills-development/references/executable-code.md +175 -0
- package/.claude/skills/skills-development/references/iteration-and-testing.md +474 -0
- package/.claude/skills/skills-development/references/recommended-structure.md +168 -0
- package/.claude/skills/skills-development/references/skill-structure.md +372 -0
- package/.claude/skills/skills-development/references/use-xml-tags.md +466 -0
- package/.claude/skills/skills-development/references/using-scripts.md +113 -0
- package/.claude/skills/skills-development/references/using-templates.md +112 -0
- package/.claude/skills/skills-development/references/workflows-and-validation.md +510 -0
- package/.claude/skills/skills-development/templates/router-skill.md +73 -0
- package/.claude/skills/skills-development/templates/simple-skill.md +33 -0
- package/.claude/skills/skills-development/workflows/add-reference.md +96 -0
- package/.claude/skills/skills-development/workflows/add-script.md +93 -0
- package/.claude/skills/skills-development/workflows/add-template.md +74 -0
- package/.claude/skills/skills-development/workflows/add-workflow.md +120 -0
- package/.claude/skills/skills-development/workflows/audit-skill.md +138 -0
- package/.claude/skills/skills-development/workflows/create-domain-expertise-skill.md +605 -0
- package/.claude/skills/skills-development/workflows/create-new-skill.md +191 -0
- package/.claude/skills/skills-development/workflows/get-guidance.md +121 -0
- package/.claude/skills/skills-development/workflows/upgrade-to-router.md +161 -0
- package/.claude/skills/skills-development/workflows/verify-skill.md +204 -0
- package/.claude/skills/subagents-development/SKILL.md +325 -0
- package/.claude/skills/subagents-development/references/context-management.md +567 -0
- package/.claude/skills/subagents-development/references/debugging-agents.md +714 -0
- package/.claude/skills/subagents-development/references/error-handling-and-recovery.md +502 -0
- package/.claude/skills/subagents-development/references/evaluation-and-testing.md +374 -0
- package/.claude/skills/subagents-development/references/orchestration-patterns.md +591 -0
- package/.claude/skills/subagents-development/references/subagents.md +508 -0
- package/.claude/skills/subagents-development/references/writing-subagent-prompts.md +517 -0
- package/.claude/statusline.sh +24 -0
- package/bin/cli.js +150 -72
- package/package.json +1 -1
- package/.claude/agents/explorer.md +0 -62
- package/.claude/agents/parallel-worker.md +0 -121
- package/.claude/commands/curation-fix.md +0 -92
- package/.claude/commands/new-branch.md +0 -36
- package/.claude/commands/parallel-discovery.md +0 -69
- package/.claude/commands/parallel-orchestration.md +0 -99
- package/.claude/commands/plan-checkpoint.md +0 -37
- package/.claude/envoy/commands/__init__.py +0 -1
- package/.claude/envoy/commands/base.py +0 -95
- package/.claude/envoy/commands/parallel.py +0 -439
- package/.claude/envoy/commands/perplexity.py +0 -86
- package/.claude/envoy/commands/plans.py +0 -451
- package/.claude/envoy/commands/tavily.py +0 -156
- package/.claude/envoy/commands/vertex.py +0 -358
- package/.claude/envoy/commands/xai.py +0 -124
- package/.claude/envoy/envoy.py +0 -122
- package/.claude/envoy/pyrightconfig.json +0 -4
- package/.claude/envoy/requirements.txt +0 -2
- package/.claude/hooks/capture-queries.sh +0 -3
- package/.claude/hooks/scripts/enforce_planning.py +0 -118
- package/.claude/hooks/scripts/enforce_rg.py +0 -34
- package/.claude/hooks/scripts/validate_skill.py +0 -81
- package/.claude/skills/claude-envoy-curation/SKILL.md +0 -162
- package/.claude/skills/claude-envoy-usage/SKILL.md +0 -46
- package/.claude/skills/command-development/SKILL.md +0 -206
- package/.claude/skills/command-development/examples/simple-commands.md +0 -212
- package/.claude/skills/command-development/references/frontmatter-reference.md +0 -221
- package/.claude/skills/hook-development/SKILL.md +0 -127
- package/.claude/skills/hook-development/examples/command-hooks.md +0 -301
- package/.claude/skills/hook-development/examples/prompt-hooks.md +0 -114
- package/.claude/skills/hook-development/references/event-reference.md +0 -226
- package/.claude/skills/repomix-extraction/SKILL.md +0 -91
- package/.claude/skills/skill-development/SKILL.md +0 -168
- package/.claude/skills/skill-development/examples/complete-skill-examples.md +0 -281
- package/.claude/skills/skill-development/references/progressive-disclosure.md +0 -141
- package/.claude/skills/skill-development/references/writing-style.md +0 -180
- package/.claude/skills/skill-development/scripts/validate-skill.sh +0 -144
- package/.claude/skills/specialist-builder/SKILL.md +0 -327
- package/.claude/skills/specialist-builder/docs/agent-catalog.md +0 -28
- package/.claude/skills/specialist-builder/examples/complete-agent-examples.md +0 -206
- package/.claude/skills/specialist-builder/references/system-prompt-patterns.md +0 -281
- package/.claude/skills/specialist-builder/references/triggering-examples.md +0 -162
- package/.claude/skills/specialist-builder/scripts/validate-agent.sh +0 -137
- /package/.claude/{envoy/claude-envoy.py → skills/claude-envoy-patterns/SKILL.md} +0 -0
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
<overview>
|
|
2
|
+
Skills have three structural components: YAML frontmatter (metadata), pure XML body structure (content organization), and progressive disclosure (file organization). This reference defines requirements and best practices for each component.
|
|
3
|
+
</overview>
|
|
4
|
+
|
|
5
|
+
<xml_structure_requirements>
|
|
6
|
+
<critical_rule>
|
|
7
|
+
**Remove ALL markdown headings (#, ##, ###) from skill body content.** Replace with semantic XML tags. Keep markdown formatting WITHIN content (bold, italic, lists, code blocks, links).
|
|
8
|
+
</critical_rule>
|
|
9
|
+
|
|
10
|
+
<required_tags>
|
|
11
|
+
Every skill MUST have these three tags:
|
|
12
|
+
|
|
13
|
+
- **`<objective>`** - What the skill does and why it matters (1-3 paragraphs)
|
|
14
|
+
- **`<quick_start>`** - Immediate, actionable guidance (minimal working example)
|
|
15
|
+
- **`<success_criteria>`** or **`<when_successful>`** - How to know it worked
|
|
16
|
+
</required_tags>
|
|
17
|
+
|
|
18
|
+
<conditional_tags>
|
|
19
|
+
Add based on skill complexity and domain requirements:
|
|
20
|
+
|
|
21
|
+
- **`<context>`** - Background/situational information
|
|
22
|
+
- **`<workflow>` or `<process>`** - Step-by-step procedures
|
|
23
|
+
- **`<advanced_features>`** - Deep-dive topics (progressive disclosure)
|
|
24
|
+
- **`<validation>`** - How to verify outputs
|
|
25
|
+
- **`<examples>`** - Multi-shot learning
|
|
26
|
+
- **`<anti_patterns>`** - Common mistakes to avoid
|
|
27
|
+
- **`<security_checklist>`** - Non-negotiable security patterns
|
|
28
|
+
- **`<testing>`** - Testing workflows
|
|
29
|
+
- **`<common_patterns>`** - Code examples and recipes
|
|
30
|
+
- **`<reference_guides>` or `<detailed_references>`** - Links to reference files
|
|
31
|
+
|
|
32
|
+
See [use-xml-tags.md](use-xml-tags.md) for detailed guidance on each tag.
|
|
33
|
+
</conditional_tags>
|
|
34
|
+
|
|
35
|
+
<tag_selection_intelligence>
|
|
36
|
+
**Simple skills** (single domain, straightforward):
|
|
37
|
+
- Required tags only
|
|
38
|
+
- Example: Text extraction, file format conversion
|
|
39
|
+
|
|
40
|
+
**Medium skills** (multiple patterns, some complexity):
|
|
41
|
+
- Required tags + workflow/examples as needed
|
|
42
|
+
- Example: Document processing with steps, API integration
|
|
43
|
+
|
|
44
|
+
**Complex skills** (multiple domains, security, APIs):
|
|
45
|
+
- Required tags + conditional tags as appropriate
|
|
46
|
+
- Example: Payment processing, authentication systems, multi-step workflows
|
|
47
|
+
</tag_selection_intelligence>
|
|
48
|
+
|
|
49
|
+
<xml_nesting>
|
|
50
|
+
Properly nest XML tags for hierarchical content:
|
|
51
|
+
|
|
52
|
+
```xml
|
|
53
|
+
<examples>
|
|
54
|
+
<example number="1">
|
|
55
|
+
<input>User input</input>
|
|
56
|
+
<output>Expected output</output>
|
|
57
|
+
</example>
|
|
58
|
+
</examples>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Always close tags:
|
|
62
|
+
```xml
|
|
63
|
+
<objective>
|
|
64
|
+
Content here
|
|
65
|
+
</objective>
|
|
66
|
+
```
|
|
67
|
+
</xml_nesting>
|
|
68
|
+
|
|
69
|
+
<tag_naming_conventions>
|
|
70
|
+
Use descriptive, semantic names:
|
|
71
|
+
- `<workflow>` not `<steps>`
|
|
72
|
+
- `<success_criteria>` not `<done>`
|
|
73
|
+
- `<anti_patterns>` not `<dont_do>`
|
|
74
|
+
|
|
75
|
+
Be consistent within your skill. If you use `<workflow>`, don't also use `<process>` for the same purpose (unless they serve different roles).
|
|
76
|
+
</tag_naming_conventions>
|
|
77
|
+
</xml_structure_requirements>
|
|
78
|
+
|
|
79
|
+
<yaml_requirements>
|
|
80
|
+
<required_fields>
|
|
81
|
+
```yaml
|
|
82
|
+
---
|
|
83
|
+
name: skill-name-here
|
|
84
|
+
description: What it does and when to use it (third person, specific triggers)
|
|
85
|
+
---
|
|
86
|
+
```
|
|
87
|
+
</required_fields>
|
|
88
|
+
|
|
89
|
+
<name_field>
|
|
90
|
+
**Validation rules**:
|
|
91
|
+
- Maximum 64 characters
|
|
92
|
+
- Lowercase letters, numbers, hyphens only
|
|
93
|
+
- No XML tags
|
|
94
|
+
- No reserved words: "anthropic", "claude"
|
|
95
|
+
- Must match directory name exactly
|
|
96
|
+
|
|
97
|
+
**Examples**:
|
|
98
|
+
- ✅ `process-pdfs`
|
|
99
|
+
- ✅ `manage-facebook-ads`
|
|
100
|
+
- ✅ `setup-stripe-payments`
|
|
101
|
+
- ❌ `PDF_Processor` (uppercase)
|
|
102
|
+
- ❌ `helper` (vague)
|
|
103
|
+
- ❌ `claude-helper` (reserved word)
|
|
104
|
+
</name_field>
|
|
105
|
+
|
|
106
|
+
<description_field>
|
|
107
|
+
**Validation rules**:
|
|
108
|
+
- Non-empty, maximum 1024 characters
|
|
109
|
+
- No XML tags
|
|
110
|
+
- Third person (never first or second person)
|
|
111
|
+
- Include what it does AND when to use it
|
|
112
|
+
|
|
113
|
+
**Critical rule**: Always write in third person.
|
|
114
|
+
- ✅ "Processes Excel files and generates reports"
|
|
115
|
+
- ❌ "I can help you process Excel files"
|
|
116
|
+
- ❌ "You can use this to process Excel files"
|
|
117
|
+
|
|
118
|
+
**Structure**: Include both capabilities and triggers.
|
|
119
|
+
|
|
120
|
+
**Effective examples**:
|
|
121
|
+
```yaml
|
|
122
|
+
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.
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
```yaml
|
|
126
|
+
description: Analyze Excel spreadsheets, create pivot tables, generate charts. Use when analyzing Excel files, spreadsheets, tabular data, or .xlsx files.
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
```yaml
|
|
130
|
+
description: Generate descriptive commit messages by analyzing git diffs. Use when the user asks for help writing commit messages or reviewing staged changes.
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Avoid**:
|
|
134
|
+
```yaml
|
|
135
|
+
description: Helps with documents
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
```yaml
|
|
139
|
+
description: Processes data
|
|
140
|
+
```
|
|
141
|
+
</description_field>
|
|
142
|
+
</yaml_requirements>
|
|
143
|
+
|
|
144
|
+
<naming_conventions>
|
|
145
|
+
Use **verb-noun convention** for skill names:
|
|
146
|
+
|
|
147
|
+
<pattern name="create">
|
|
148
|
+
Building/authoring tools
|
|
149
|
+
|
|
150
|
+
Examples: `create-agent-skills`, `create-hooks`, `create-landing-pages`
|
|
151
|
+
</pattern>
|
|
152
|
+
|
|
153
|
+
<pattern name="manage">
|
|
154
|
+
Managing external services or resources
|
|
155
|
+
|
|
156
|
+
Examples: `manage-facebook-ads`, `manage-zoom`, `manage-stripe`, `manage-supabase`
|
|
157
|
+
</pattern>
|
|
158
|
+
|
|
159
|
+
<pattern name="setup">
|
|
160
|
+
Configuration/integration tasks
|
|
161
|
+
|
|
162
|
+
Examples: `setup-stripe-payments`, `setup-meta-tracking`
|
|
163
|
+
</pattern>
|
|
164
|
+
|
|
165
|
+
<pattern name="generate">
|
|
166
|
+
Generation tasks
|
|
167
|
+
|
|
168
|
+
Examples: `generate-ai-images`
|
|
169
|
+
</pattern>
|
|
170
|
+
|
|
171
|
+
<avoid_patterns>
|
|
172
|
+
- Vague: `helper`, `utils`, `tools`
|
|
173
|
+
- Generic: `documents`, `data`, `files`
|
|
174
|
+
- Reserved words: `anthropic-helper`, `claude-tools`
|
|
175
|
+
- Inconsistent: Directory `facebook-ads` but name `facebook-ads-manager`
|
|
176
|
+
</avoid_patterns>
|
|
177
|
+
</naming_conventions>
|
|
178
|
+
|
|
179
|
+
<progressive_disclosure>
|
|
180
|
+
<principle>
|
|
181
|
+
SKILL.md serves as an overview that points to detailed materials as needed. This keeps context window usage efficient.
|
|
182
|
+
</principle>
|
|
183
|
+
|
|
184
|
+
<practical_guidance>
|
|
185
|
+
- Keep SKILL.md body under 500 lines
|
|
186
|
+
- Split content into separate files when approaching this limit
|
|
187
|
+
- Keep references one level deep from SKILL.md
|
|
188
|
+
- Add table of contents to reference files over 100 lines
|
|
189
|
+
</practical_guidance>
|
|
190
|
+
|
|
191
|
+
<pattern name="high_level_guide">
|
|
192
|
+
Quick start in SKILL.md, details in reference files:
|
|
193
|
+
|
|
194
|
+
```markdown
|
|
195
|
+
---
|
|
196
|
+
name: pdf-processing
|
|
197
|
+
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.
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
<objective>
|
|
201
|
+
Extract text and tables from PDF files, fill forms, and merge documents using Python libraries.
|
|
202
|
+
</objective>
|
|
203
|
+
|
|
204
|
+
<quick_start>
|
|
205
|
+
Extract text with pdfplumber:
|
|
206
|
+
|
|
207
|
+
```python
|
|
208
|
+
import pdfplumber
|
|
209
|
+
with pdfplumber.open("file.pdf") as pdf:
|
|
210
|
+
text = pdf.pages[0].extract_text()
|
|
211
|
+
```
|
|
212
|
+
</quick_start>
|
|
213
|
+
|
|
214
|
+
<advanced_features>
|
|
215
|
+
**Form filling**: See [forms.md](forms.md)
|
|
216
|
+
**API reference**: See [reference.md](reference.md)
|
|
217
|
+
</advanced_features>
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Claude loads forms.md or reference.md only when needed.
|
|
221
|
+
</pattern>
|
|
222
|
+
|
|
223
|
+
<pattern name="domain_organization">
|
|
224
|
+
For skills with multiple domains, organize by domain to avoid loading irrelevant context:
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
bigquery-skill/
|
|
228
|
+
├── SKILL.md (overview and navigation)
|
|
229
|
+
└── reference/
|
|
230
|
+
├── finance.md (revenue, billing metrics)
|
|
231
|
+
├── sales.md (opportunities, pipeline)
|
|
232
|
+
├── product.md (API usage, features)
|
|
233
|
+
└── marketing.md (campaigns, attribution)
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
When user asks about revenue, Claude reads only finance.md. Other files stay on filesystem consuming zero tokens.
|
|
237
|
+
</pattern>
|
|
238
|
+
|
|
239
|
+
<pattern name="conditional_details">
|
|
240
|
+
Show basic content in SKILL.md, link to advanced in reference files:
|
|
241
|
+
|
|
242
|
+
```xml
|
|
243
|
+
<objective>
|
|
244
|
+
Process DOCX files with creation and editing capabilities.
|
|
245
|
+
</objective>
|
|
246
|
+
|
|
247
|
+
<quick_start>
|
|
248
|
+
<creating_documents>
|
|
249
|
+
Use docx-js for new documents. See [docx-js.md](docx-js.md).
|
|
250
|
+
</creating_documents>
|
|
251
|
+
|
|
252
|
+
<editing_documents>
|
|
253
|
+
For simple edits, modify XML directly.
|
|
254
|
+
|
|
255
|
+
**For tracked changes**: See [redlining.md](redlining.md)
|
|
256
|
+
**For OOXML details**: See [ooxml.md](ooxml.md)
|
|
257
|
+
</editing_documents>
|
|
258
|
+
</quick_start>
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Claude reads redlining.md or ooxml.md only when the user needs those features.
|
|
262
|
+
</pattern>
|
|
263
|
+
|
|
264
|
+
<critical_rules>
|
|
265
|
+
**Keep references one level deep**: All reference files should link directly from SKILL.md. Avoid nested references (SKILL.md → advanced.md → details.md) as Claude may only partially read deeply nested files.
|
|
266
|
+
|
|
267
|
+
**Add table of contents to long files**: For reference files over 100 lines, include a table of contents at the top.
|
|
268
|
+
|
|
269
|
+
**Use pure XML in reference files**: Reference files should also use pure XML structure (no markdown headings in body).
|
|
270
|
+
</critical_rules>
|
|
271
|
+
</progressive_disclosure>
|
|
272
|
+
|
|
273
|
+
<file_organization>
|
|
274
|
+
<filesystem_navigation>
|
|
275
|
+
Claude navigates your skill directory using bash commands:
|
|
276
|
+
|
|
277
|
+
- Use forward slashes: `reference/guide.md` (not `reference\guide.md`)
|
|
278
|
+
- Name files descriptively: `form_validation_rules.md` (not `doc2.md`)
|
|
279
|
+
- Organize by domain: `reference/finance.md`, `reference/sales.md`
|
|
280
|
+
</filesystem_navigation>
|
|
281
|
+
|
|
282
|
+
<directory_structure>
|
|
283
|
+
Typical skill structure:
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
skill-name/
|
|
287
|
+
├── SKILL.md (main entry point, pure XML structure)
|
|
288
|
+
├── references/ (optional, for progressive disclosure)
|
|
289
|
+
│ ├── guide-1.md (pure XML structure)
|
|
290
|
+
│ ├── guide-2.md (pure XML structure)
|
|
291
|
+
│ └── examples.md (pure XML structure)
|
|
292
|
+
└── scripts/ (optional, for utility scripts)
|
|
293
|
+
├── validate.py
|
|
294
|
+
└── process.py
|
|
295
|
+
```
|
|
296
|
+
</directory_structure>
|
|
297
|
+
</file_organization>
|
|
298
|
+
|
|
299
|
+
<anti_patterns>
|
|
300
|
+
<pitfall name="markdown_headings_in_body">
|
|
301
|
+
❌ Do NOT use markdown headings in skill body:
|
|
302
|
+
|
|
303
|
+
```markdown
|
|
304
|
+
# PDF Processing
|
|
305
|
+
|
|
306
|
+
## Quick start
|
|
307
|
+
Extract text...
|
|
308
|
+
|
|
309
|
+
## Advanced features
|
|
310
|
+
Form filling...
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
✅ Use pure XML structure:
|
|
314
|
+
|
|
315
|
+
```xml
|
|
316
|
+
<objective>
|
|
317
|
+
PDF processing with text extraction, form filling, and merging.
|
|
318
|
+
</objective>
|
|
319
|
+
|
|
320
|
+
<quick_start>
|
|
321
|
+
Extract text...
|
|
322
|
+
</quick_start>
|
|
323
|
+
|
|
324
|
+
<advanced_features>
|
|
325
|
+
Form filling...
|
|
326
|
+
</advanced_features>
|
|
327
|
+
```
|
|
328
|
+
</pitfall>
|
|
329
|
+
|
|
330
|
+
<pitfall name="vague_descriptions">
|
|
331
|
+
- ❌ "Helps with documents"
|
|
332
|
+
- ✅ "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."
|
|
333
|
+
</pitfall>
|
|
334
|
+
|
|
335
|
+
<pitfall name="inconsistent_pov">
|
|
336
|
+
- ❌ "I can help you process Excel files"
|
|
337
|
+
- ✅ "Processes Excel files and generates reports"
|
|
338
|
+
</pitfall>
|
|
339
|
+
|
|
340
|
+
<pitfall name="wrong_naming_convention">
|
|
341
|
+
- ❌ Directory: `facebook-ads`, Name: `facebook-ads-manager`
|
|
342
|
+
- ✅ Directory: `manage-facebook-ads`, Name: `manage-facebook-ads`
|
|
343
|
+
- ❌ Directory: `stripe-integration`, Name: `stripe`
|
|
344
|
+
- ✅ Directory: `setup-stripe-payments`, Name: `setup-stripe-payments`
|
|
345
|
+
</pitfall>
|
|
346
|
+
|
|
347
|
+
<pitfall name="deeply_nested_references">
|
|
348
|
+
Keep references one level deep from SKILL.md. Claude may only partially read nested files (SKILL.md → advanced.md → details.md).
|
|
349
|
+
</pitfall>
|
|
350
|
+
|
|
351
|
+
<pitfall name="windows_paths">
|
|
352
|
+
Always use forward slashes: `scripts/helper.py` (not `scripts\helper.py`)
|
|
353
|
+
</pitfall>
|
|
354
|
+
|
|
355
|
+
<pitfall name="missing_required_tags">
|
|
356
|
+
Every skill must have: `<objective>`, `<quick_start>`, and `<success_criteria>` (or `<when_successful>`).
|
|
357
|
+
</pitfall>
|
|
358
|
+
</anti_patterns>
|
|
359
|
+
|
|
360
|
+
<validation_checklist>
|
|
361
|
+
Before finalizing a skill, verify:
|
|
362
|
+
|
|
363
|
+
- ✅ YAML frontmatter valid (name matches directory, description in third person)
|
|
364
|
+
- ✅ No markdown headings in body (pure XML structure)
|
|
365
|
+
- ✅ Required tags present: objective, quick_start, success_criteria
|
|
366
|
+
- ✅ Conditional tags appropriate for complexity level
|
|
367
|
+
- ✅ All XML tags properly closed
|
|
368
|
+
- ✅ Progressive disclosure applied (SKILL.md < 500 lines)
|
|
369
|
+
- ✅ Reference files use pure XML structure
|
|
370
|
+
- ✅ File paths use forward slashes
|
|
371
|
+
- ✅ Descriptive file names
|
|
372
|
+
</validation_checklist>
|