@fro.bot/systematic 1.14.0 → 1.15.0

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 (31) hide show
  1. package/package.json +1 -1
  2. package/skills/agent-browser/SKILL.md +1 -0
  3. package/skills/agent-native-architecture/SKILL.md +4 -4
  4. package/skills/agent-native-architecture/references/files-universal-interface.md +1 -1
  5. package/skills/agent-native-architecture/references/product-implications.md +1 -1
  6. package/skills/brainstorming/SKILL.md +1 -0
  7. package/skills/compound-docs/SKILL.md +14 -13
  8. package/skills/compound-docs/assets/critical-pattern-template.md +1 -1
  9. package/skills/compound-docs/assets/resolution-template.md +3 -3
  10. package/skills/compound-docs/references/yaml-schema.md +2 -2
  11. package/skills/create-agent-skills/SKILL.md +169 -192
  12. package/skills/create-agent-skills/references/api-security.md +24 -24
  13. package/skills/create-agent-skills/references/executable-code.md +1 -1
  14. package/skills/create-agent-skills/references/official-spec.md +74 -125
  15. package/skills/create-agent-skills/references/skill-structure.md +109 -329
  16. package/skills/create-agent-skills/workflows/add-reference.md +3 -3
  17. package/skills/create-agent-skills/workflows/add-script.md +2 -2
  18. package/skills/create-agent-skills/workflows/add-template.md +1 -1
  19. package/skills/create-agent-skills/workflows/add-workflow.md +5 -5
  20. package/skills/create-agent-skills/workflows/audit-skill.md +6 -6
  21. package/skills/create-agent-skills/workflows/create-domain-expertise-skill.md +8 -8
  22. package/skills/create-agent-skills/workflows/create-new-skill.md +8 -8
  23. package/skills/create-agent-skills/workflows/upgrade-to-router.md +5 -5
  24. package/skills/create-agent-skills/workflows/verify-skill.md +4 -4
  25. package/skills/document-review/SKILL.md +88 -0
  26. package/skills/file-todos/SKILL.md +3 -2
  27. package/skills/file-todos/assets/todo-template.md +1 -1
  28. package/skills/frontend-design/SKILL.md +43 -0
  29. package/skills/git-worktree/SKILL.md +23 -22
  30. package/skills/git-worktree/scripts/worktree-manager.sh +2 -10
  31. package/skills/orchestrating-swarms/SKILL.md +1718 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fro.bot/systematic",
3
- "version": "1.14.0",
3
+ "version": "1.15.0",
4
4
  "description": "Structured engineering workflows for OpenCode",
5
5
  "type": "module",
6
6
  "homepage": "https://fro.bot/systematic",
@@ -221,3 +221,4 @@ Use Playwright MCP when:
221
221
  - You need deep MCP tool integration
222
222
  - You want tool-based responses
223
223
  - You're building complex automation
224
+
@@ -6,13 +6,13 @@ description: Build applications where agents are first-class citizens. Use this
6
6
  <why_now>
7
7
  ## Why Now
8
8
 
9
- Software agents work reliably now. Claude Code demonstrated that an LLM with access to bash and file tools, operating in a loop until an objective is achieved, can accomplish complex multi-step tasks autonomously.
9
+ Software agents work reliably now. Modern coding agents like OpenCode have demonstrated that an LLM with access to bash and file tools, operating in a loop until an objective is achieved, can accomplish complex multi-step tasks autonomously.
10
10
 
11
- The surprising discovery: **a really good coding agent is actually a really good general-purpose agent.** The same architecture that lets Claude Code refactor a codebase can let an agent organize your files, manage your reading list, or automate your workflows.
11
+ The surprising discovery: **a really good coding agent is actually a really good general-purpose agent.** The same architecture that lets an agent refactor a codebase can let it organize your files, manage your reading list, or automate your workflows.
12
12
 
13
- The Claude Code SDK makes this accessible. You can build applications where features aren't code you write—they're outcomes you describe, achieved by an agent with tools, operating in a loop until the outcome is reached.
13
+ Agent SDKs make this accessible. You can build applications where features aren't code you write—they're outcomes you describe, achieved by an agent with tools, operating in a loop until the outcome is reached.
14
14
 
15
- This opens up a new field: software that works the way Claude Code works, applied to categories far beyond coding.
15
+ This opens up a new field: software that works the way modern coding agents work, applied to categories far beyond coding.
16
16
  </why_now>
17
17
 
18
18
  <core_principles>
@@ -5,7 +5,7 @@ Files are the universal interface for agent-native applications. Agents are natu
5
5
  <why_files>
6
6
  ## Why Files
7
7
 
8
- Agents are naturally good at files. Claude Code works because bash + filesystem is the most battle-tested agent interface. When building agent-native apps, lean into this.
8
+ Agents are naturally good at files. OpenCode works because bash + filesystem is the most battle-tested agent interface. When building agent-native apps, lean into this.
9
9
 
10
10
  ### Agents Already Know How
11
11
 
@@ -11,7 +11,7 @@ The best agent-native applications are simple to start but endlessly powerful.
11
11
 
12
12
  Excel is the canonical example: you can use it for a grocery list, or you can build complex financial models. The same tool, radically different depths of use.
13
13
 
14
- Claude Code has this quality: fix a typo, or refactor an entire codebase. The interface is the same—natural language—but the capability scales with the ask.
14
+ OpenCode has this quality: fix a typo, or refactor an entire codebase. The interface is the same—natural language—but the capability scales with the ask.
15
15
 
16
16
  ### The Pattern
17
17
 
@@ -188,3 +188,4 @@ Planning answers **HOW** to build it:
188
188
  - Testing strategy and verification
189
189
 
190
190
  When brainstorm output exists, `/workflows:plan` should detect it and use it as input, skipping its own idea refinement phase.
191
+
@@ -1,11 +1,12 @@
1
1
  ---
2
2
  name: compound-docs
3
3
  description: Capture solved problems as categorized documentation with YAML frontmatter for fast lookup
4
+ disable-model-invocation: true
4
5
  allowed-tools:
5
- - Read # Parse conversation context
6
- - Write # Create resolution docs
7
- - Bash # Create directories
8
- - Grep # Search existing docs
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Grep
9
10
  preconditions:
10
11
  - Problem has been solved (not in-progress)
11
12
  - Solution has been verified working
@@ -61,7 +62,7 @@ Extract from conversation history:
61
62
 
62
63
  **Required information:**
63
64
 
64
- - **Module name**: Which CORA module had the problem
65
+ - **Module name**: Which module or component had the problem
65
66
  - **Symptom**: Observable error/behavior (exact error messages)
66
67
  - **Investigation attempts**: What didn't work and why
67
68
  - **Root cause**: Technical explanation of actual problem
@@ -249,7 +250,7 @@ But **NEVER auto-promote**. User decides via decision menu (Option 2).
249
250
 
250
251
  **Template for critical pattern addition:**
251
252
 
252
- When user selects Option 2 (Add to Required Reading), use the template from `assets/critical-pattern-template.md` to structure the pattern entry. Number it sequentially based on existing patterns in `docs/solutions/patterns/cora-critical-patterns.md`.
253
+ When user selects Option 2 (Add to Required Reading), use the template from `assets/critical-pattern-template.md` to structure the pattern entry. Number it sequentially based on existing patterns in `docs/solutions/patterns/critical-patterns.md`.
253
254
  </step>
254
255
 
255
256
  </critical_sequence>
@@ -270,7 +271,7 @@ File created:
270
271
 
271
272
  What's next?
272
273
  1. Continue workflow (recommended)
273
- 2. Add to Required Reading - Promote to critical patterns (cora-critical-patterns.md)
274
+ 2. Add to Required Reading - Promote to critical patterns (critical-patterns.md)
274
275
  3. Link related issues - Connect to similar problems
275
276
  4. Add to existing skill - Add to a learning skill (e.g., hotwire-native)
276
277
  5. Create new skill - Extract into new learning skill
@@ -295,7 +296,7 @@ User selects this when:
295
296
  Action:
296
297
  1. Extract pattern from the documentation
297
298
  2. Format as ❌ WRONG vs ✅ CORRECT with code examples
298
- 3. Add to `docs/solutions/patterns/cora-critical-patterns.md`
299
+ 3. Add to `docs/solutions/patterns/critical-patterns.md`
299
300
  4. Add cross-reference back to this doc
300
301
  5. Confirm: "✓ Added to Required Reading. All subagents will see this pattern before code generation."
301
302
 
@@ -317,7 +318,7 @@ Action:
317
318
  4. Confirm: "✓ Added to [skill-name] skill in [file]"
318
319
 
319
320
  Example: For Hotwire Native Tailwind variants solution:
320
- - Add to `hotwire-native/references/resources.md` under "CORA-Specific Resources"
321
+ - Add to `hotwire-native/references/resources.md` under "Project-Specific Resources"
321
322
  - Add to `hotwire-native/references/examples.md` with link to solution doc
322
323
 
323
324
  **Option 5: Create new skill**
@@ -326,7 +327,7 @@ User selects this when the solution represents the start of a new learning domai
326
327
 
327
328
  Action:
328
329
  1. Prompt: "What should the new skill be called? (e.g., stripe-billing, email-processing)"
329
- 2. Run `python3 .claude/skills/skill-creator/scripts/init_skill.py [skill-name]`
330
+ 2. Run `python3 .opencode/skills/create-agent-skills/scripts/init_skill.py [skill-name]`
330
331
  3. Create initial reference files with this solution as first example
331
332
  4. Confirm: "✓ Created new [skill-name] skill with this solution as first example"
332
333
 
@@ -397,11 +398,11 @@ Documentation is successful when ALL of the following are true:
397
398
  - Present multiple matches
398
399
  - Let user choose: new doc, update existing, or link as duplicate
399
400
 
400
- **Module not in CORA-MODULES.md:**
401
+ **Module not in modules documentation:**
401
402
 
402
403
  - Warn but don't block
403
404
  - Proceed with documentation
404
- - Suggest: "Add [Module] to CORA-MODULES.md if not there"
405
+ - Suggest: "Add [Module] to modules documentation if not there"
405
406
 
406
407
  ---
407
408
 
@@ -488,7 +489,7 @@ File created:
488
489
 
489
490
  What's next?
490
491
  1. Continue workflow (recommended)
491
- 2. Add to Required Reading - Promote to critical patterns (cora-critical-patterns.md)
492
+ 2. Add to Required Reading - Promote to critical patterns (critical-patterns.md)
492
493
  3. Link related issues - Connect to similar problems
493
494
  4. Add to existing skill - Add to a learning skill (e.g., hotwire-native)
494
495
  5. Create new skill - Extract into new learning skill
@@ -1,6 +1,6 @@
1
1
  # Critical Pattern Template
2
2
 
3
- Use this template when adding a pattern to `docs/solutions/patterns/cora-critical-patterns.md`:
3
+ Use this template when adding a pattern to `docs/solutions/patterns/critical-patterns.md`:
4
4
 
5
5
  ---
6
6
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- module: [Module name or "CORA" for system-wide]
2
+ module: [Module name or "System" for system-wide]
3
3
  date: [YYYY-MM-DD]
4
4
  problem_type: [build_error|test_failure|runtime_error|performance_issue|database_issue|security_issue|ui_bug|integration_issue|logic_error]
5
5
  component: [rails_model|rails_controller|rails_view|service_object|background_job|database|frontend_stimulus|hotwire_turbo|email_processing|brief_system|assistant|authentication|payments]
@@ -19,7 +19,7 @@ tags: [keyword1, keyword2, keyword3]
19
19
  [1-2 sentence clear description of the issue and what the user experienced]
20
20
 
21
21
  ## Environment
22
- - Module: [Name or "CORA system"]
22
+ - Module: [Name or "System-wide"]
23
23
  - Rails Version: [e.g., 7.1.2]
24
24
  - Affected Component: [e.g., "Email Processing model", "Brief System service", "Authentication controller"]
25
25
  - Date: [YYYY-MM-DD when this was solved]
@@ -78,7 +78,7 @@ tags: [keyword1, keyword2, keyword3]
78
78
 
79
79
  ## Prevention
80
80
 
81
- [How to avoid this problem in future CORA development:]
81
+ [How to avoid this problem in future development:]
82
82
  - [Specific coding practice, check, or pattern to follow]
83
83
  - [What to watch out for]
84
84
  - [How to catch this early]
@@ -1,10 +1,10 @@
1
1
  # YAML Frontmatter Schema
2
2
 
3
- **See `.claude/skills/codify-docs/schema.yaml` for the complete schema specification.**
3
+ **See `.opencode/skills/compound-docs/schema.yaml` for the complete schema specification.**
4
4
 
5
5
  ## Required Fields
6
6
 
7
- - **module** (string): Module name (e.g., "EmailProcessing") or "CORA" for system-wide issues
7
+ - **module** (string): Module name (e.g., "EmailProcessing") or "System" for system-wide issues
8
8
  - **date** (string): ISO 8601 date (YYYY-MM-DD)
9
9
  - **problem_type** (enum): One of [build_error, test_failure, runtime_error, performance_issue, database_issue, security_issue, ui_bug, integration_issue, logic_error, developer_experience, workflow_issue, best_practice, documentation_gap]
10
10
  - **component** (enum): One of [rails_model, rails_controller, rails_view, service_object, background_job, database, frontend_stimulus, hotwire_turbo, email_processing, brief_system, assistant, authentication, payments, development_workflow, testing_framework, documentation, tooling]
@@ -1,21 +1,35 @@
1
1
  ---
2
- name: creating-agent-skills
3
- description: Expert guidance for creating, writing, and refining Claude Code Skills. Use when working with SKILL.md files, authoring new skills, improving existing skills, or understanding skill structure and best practices.
2
+ name: create-agent-skills
3
+ description: Expert guidance for creating OpenCode skills and slash commands. Use when working with SKILL.md files, authoring new skills, improving existing skills, creating slash commands, or understanding skill structure and best practices.
4
4
  ---
5
5
 
6
- # Creating Agent Skills
6
+ # Creating Skills & Commands
7
7
 
8
- This skill teaches how to create effective Claude Code Skills following Anthropic's official specification.
8
+ This skill teaches how to create effective OpenCode skills following the official specification from [code.claude.com/docs/en/skills](https://code.claude.com/docs/en/skills).
9
9
 
10
- ## Core Principles
10
+ ## Commands and Skills Are Now The Same Thing
11
11
 
12
- ### 1. Skills Are Prompts
12
+ Custom slash commands have been merged into skills. A file at `.opencode/commands/review.md` and a skill at `.opencode/skills/review/SKILL.md` both create `/review` and work the same way. Existing `.opencode/commands/` files keep working. Skills add optional features: a directory for supporting files, frontmatter to control invocation, and automatic context loading.
13
13
 
14
- All prompting best practices apply. Be clear, be direct. Assume Claude is smart - only add context Claude doesn't have.
14
+ **If a skill and a command share the same name, the skill takes precedence.**
15
15
 
16
- ### 2. Standard Markdown Format
16
+ ## When To Create What
17
17
 
18
- Use YAML frontmatter + markdown body. **No XML tags** - use standard markdown headings.
18
+ **Use a command file** (`commands/name.md`) when:
19
+ - Simple, single-file workflow
20
+ - No supporting files needed
21
+ - Task-oriented action (deploy, commit, triage)
22
+
23
+ **Use a skill directory** (`skills/name/SKILL.md`) when:
24
+ - Need supporting reference files, scripts, or templates
25
+ - Background knowledge Claude should auto-load
26
+ - Complex enough to benefit from progressive disclosure
27
+
28
+ Both use identical YAML frontmatter and markdown content format.
29
+
30
+ ## Standard Markdown Format
31
+
32
+ Use YAML frontmatter + markdown body with **standard markdown headings**. Keep it clean and direct.
19
33
 
20
34
  ```markdown
21
35
  ---
@@ -35,265 +49,228 @@ Step-by-step procedures...
35
49
  Concrete usage examples...
36
50
  ```
37
51
 
38
- ### 3. Progressive Disclosure
52
+ ## Frontmatter Reference
39
53
 
40
- Keep SKILL.md under 500 lines. Split detailed content into reference files. Load only what's needed.
54
+ All fields are optional. Only `description` is recommended.
41
55
 
42
- ```
43
- my-skill/
44
- ├── SKILL.md # Entry point (required)
45
- ├── reference.md # Detailed docs (loaded when needed)
46
- ├── examples.md # Usage examples
47
- └── scripts/ # Utility scripts (executed, not loaded)
48
- ```
56
+ | Field | Required | Description |
57
+ |-------|----------|-------------|
58
+ | `name` | No | Display name. Lowercase letters, numbers, hyphens (max 64 chars). Defaults to directory name. |
59
+ | `description` | Recommended | What it does AND when to use it. Claude uses this for auto-discovery. Max 1024 chars. |
60
+ | `argument-hint` | No | Hint shown during autocomplete. Example: `[issue-number]` |
61
+ | `disable-model-invocation` | No | Set `true` to prevent Claude auto-loading. Use for manual workflows like `/deploy`, `/commit`. Default: `false`. |
62
+ | `user-invocable` | No | Set `false` to hide from `/` menu. Use for background knowledge. Default: `true`. |
63
+ | `allowed-tools` | No | Tools Claude can use without permission prompts. Example: `Read, Bash(git *)` |
64
+ | `model` | No | Model to use. Options: `haiku`, `sonnet`, `opus`. |
65
+ | `context` | No | Set `fork` to run in isolated subagent context. |
66
+ | `agent` | No | Subagent type when `context: fork`. Options: `Explore`, `Plan`, `general-purpose`, or custom agent name. |
49
67
 
50
- ### 4. Effective Descriptions
68
+ ### Invocation Control
51
69
 
52
- The description field enables skill discovery. Include both what the skill does AND when to use it. Write in third person.
70
+ | Frontmatter | User can invoke | Claude can invoke | When loaded |
71
+ |-------------|----------------|-------------------|-------------|
72
+ | (default) | Yes | Yes | Description always in context, full content loads when invoked |
73
+ | `disable-model-invocation: true` | Yes | No | Description not in context, loads only when user invokes |
74
+ | `user-invocable: false` | No | Yes | Description always in context, loads when relevant |
75
+
76
+ **Use `disable-model-invocation: true`** for workflows with side effects: `/deploy`, `/commit`, `/triage-prs`, `/send-slack-message`. You don't want Claude deciding to deploy because your code looks ready.
77
+
78
+ **Use `user-invocable: false`** for background knowledge that isn't a meaningful user action: coding conventions, domain context, legacy system docs.
79
+
80
+ ## Dynamic Features
81
+
82
+ ### Arguments
83
+
84
+ Use `$ARGUMENTS` placeholder for user input. If not present in content, arguments are appended automatically.
53
85
 
54
- **Good:**
55
86
  ```yaml
56
- description: Extracts text and tables from PDF files, fills forms, merges documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
87
+ ---
88
+ name: fix-issue
89
+ description: Fix a GitHub issue
90
+ disable-model-invocation: true
91
+ ---
92
+
93
+ Fix GitHub issue $ARGUMENTS following our coding standards.
57
94
  ```
58
95
 
59
- **Bad:**
96
+ Access individual args: `$ARGUMENTS[0]` or shorthand `$0`, `$1`, `$2`.
97
+
98
+ ### Dynamic Context Injection
99
+
100
+ The `` !`command` `` syntax runs shell commands before content is sent to Claude:
101
+
60
102
  ```yaml
61
- description: Helps with documents
62
- ```
103
+ ---
104
+ name: pr-summary
105
+ description: Summarize changes in a pull request
106
+ context: fork
107
+ agent: Explore
108
+ ---
63
109
 
64
- ## Skill Structure
110
+ ## Context
111
+ - PR diff: !`gh pr diff`
112
+ - Changed files: !`gh pr diff --name-only`
65
113
 
66
- ### Required Frontmatter
114
+ Summarize this pull request...
115
+ ```
67
116
 
68
- | Field | Required | Max Length | Description |
69
- |-------|----------|------------|-------------|
70
- | `name` | Yes | 64 chars | Lowercase letters, numbers, hyphens only |
71
- | `description` | Yes | 1024 chars | What it does AND when to use it |
72
- | `allowed-tools` | No | - | Tools Claude can use without asking |
73
- | `model` | No | - | Specific model to use |
117
+ ### Running in a Subagent
74
118
 
75
- ### Naming Conventions
119
+ Add `context: fork` to run in isolation. The skill content becomes the subagent's prompt. It won't have conversation history.
76
120
 
77
- Use **gerund form** (verb + -ing) for skill names:
121
+ ```yaml
122
+ ---
123
+ name: deep-research
124
+ description: Research a topic thoroughly
125
+ context: fork
126
+ agent: Explore
127
+ ---
78
128
 
79
- - `processing-pdfs`
80
- - `analyzing-spreadsheets`
81
- - `generating-commit-messages`
82
- - `reviewing-code`
129
+ Research $ARGUMENTS thoroughly:
130
+ 1. Find relevant files
131
+ 2. Analyze the code
132
+ 3. Summarize findings
133
+ ```
83
134
 
84
- Avoid: `helper`, `utils`, `tools`, `anthropic-*`, `claude-*`
135
+ ## Progressive Disclosure
85
136
 
86
- ### Body Structure
137
+ Keep SKILL.md under 500 lines. Split detailed content into reference files:
87
138
 
88
- Use standard markdown headings:
139
+ ```
140
+ my-skill/
141
+ ├── SKILL.md # Entry point (required, overview + navigation)
142
+ ├── reference.md # Detailed docs (loaded when needed)
143
+ ├── examples.md # Usage examples (loaded when needed)
144
+ └── scripts/
145
+ └── helper.py # Utility script (executed, not loaded)
146
+ ```
89
147
 
90
- ```markdown
91
- # Skill Name
148
+ Link from SKILL.md: `For API details, see [reference.md](reference.md).`
92
149
 
93
- ## Quick Start
94
- Fastest path to value...
150
+ Keep references **one level deep** from SKILL.md. Avoid nested chains.
95
151
 
96
- ## Instructions
97
- Core guidance Claude follows...
152
+ ## Effective Descriptions
98
153
 
99
- ## Examples
100
- Input/output pairs showing expected behavior...
154
+ The description enables skill discovery. Include both **what** it does and **when** to use it.
101
155
 
102
- ## Advanced Features
103
- Additional capabilities (link to reference files)...
156
+ **Good:**
157
+ ```yaml
158
+ 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.
159
+ ```
104
160
 
105
- ## Guidelines
106
- Rules and constraints...
161
+ **Bad:**
162
+ ```yaml
163
+ description: Helps with documents
107
164
  ```
108
165
 
109
166
  ## What Would You Like To Do?
110
167
 
111
168
  1. **Create new skill** - Build from scratch
112
- 2. **Audit existing skill** - Check against best practices
113
- 3. **Add component** - Add workflow/reference/example
114
- 4. **Get guidance** - Understand skill design
169
+ 2. **Create new command** - Build a slash command
170
+ 3. **Audit existing skill** - Check against best practices
171
+ 4. **Add component** - Add workflow/reference/example
172
+ 5. **Get guidance** - Understand skill design
115
173
 
116
- ## Creating a New Skill
174
+ ## Creating a New Skill or Command
117
175
 
118
176
  ### Step 1: Choose Type
119
177
 
120
- **Simple skill (single file):**
121
- - Under 500 lines
122
- - Self-contained guidance
123
- - No complex workflows
178
+ Ask: Is this a manual workflow (deploy, commit, triage) or background knowledge (conventions, patterns)?
124
179
 
125
- **Progressive disclosure skill (multiple files):**
126
- - SKILL.md as overview
127
- - Reference files for detailed docs
128
- - Scripts for utilities
180
+ - **Manual workflow** command with `disable-model-invocation: true`
181
+ - **Background knowledge** → skill without `disable-model-invocation`
182
+ - **Complex with supporting files** skill directory
129
183
 
130
- ### Step 2: Create SKILL.md
184
+ ### Step 2: Create the File
131
185
 
186
+ **Command:**
132
187
  ```markdown
133
188
  ---
134
- name: your-skill-name
135
- description: [What it does]. Use when [trigger conditions].
189
+ name: my-command
190
+ description: What this command does
191
+ argument-hint: [expected arguments]
192
+ disable-model-invocation: true
193
+ allowed-tools: Bash(gh *), Read
136
194
  ---
137
195
 
138
- # Your Skill Name
196
+ # Command Title
139
197
 
140
- ## Quick Start
198
+ ## Workflow
141
199
 
142
- [Immediate actionable example]
200
+ ### Step 1: Gather Context
201
+ ...
143
202
 
144
- ```[language]
145
- [Code example]
146
- ```
203
+ ### Step 2: Execute
204
+ ...
147
205
 
148
- ## Instructions
206
+ ## Success Criteria
207
+ - [ ] Expected outcome 1
208
+ - [ ] Expected outcome 2
209
+ ```
149
210
 
150
- [Core guidance]
211
+ **Skill:**
212
+ ```markdown
213
+ ---
214
+ name: my-skill
215
+ description: What it does. Use when [trigger conditions].
216
+ ---
151
217
 
152
- ## Examples
218
+ # Skill Title
153
219
 
154
- **Example 1:**
155
- Input: [description]
156
- Output:
157
- ```
158
- [result]
159
- ```
220
+ ## Quick Start
221
+ [Immediate actionable example]
160
222
 
161
- ## Guidelines
223
+ ## Instructions
224
+ [Core guidance]
162
225
 
163
- - [Constraint 1]
164
- - [Constraint 2]
226
+ ## Examples
227
+ [Concrete input/output pairs]
165
228
  ```
166
229
 
167
230
  ### Step 3: Add Reference Files (If Needed)
168
231
 
169
232
  Link from SKILL.md to detailed content:
170
-
171
- ```markdown
172
- For API reference, see [REFERENCE.md](REFERENCE.md).
173
- For form filling guide, see [FORMS.md](FORMS.md).
174
- ```
175
-
176
- Keep references **one level deep** from SKILL.md.
177
-
178
- ### Step 4: Add Scripts (If Needed)
179
-
180
- Scripts execute without loading into context:
181
-
182
233
  ```markdown
183
- ## Utility Scripts
184
-
185
- Extract fields:
186
- ```bash
187
- python scripts/analyze.py input.pdf > fields.json
188
- ```
234
+ For API reference, see [reference.md](reference.md).
235
+ For form filling guide, see [forms.md](forms.md).
189
236
  ```
190
237
 
191
- ### Step 5: Test With Real Usage
238
+ ### Step 4: Test With Real Usage
192
239
 
193
240
  1. Test with actual tasks, not test scenarios
194
- 2. Observe where Claude struggles
195
- 3. Refine based on real behavior
196
- 4. Test with Haiku, Sonnet, and Opus
197
-
198
- ## Auditing Existing Skills
241
+ 2. Invoke directly with `/skill-name` to verify
242
+ 3. Check auto-triggering by asking something that matches the description
243
+ 4. Refine based on real behavior
199
244
 
200
- Check against this rubric:
245
+ ## Audit Checklist
201
246
 
202
247
  - [ ] Valid YAML frontmatter (name + description)
203
- - [ ] Description includes trigger keywords
248
+ - [ ] Description includes trigger keywords and is specific
204
249
  - [ ] Uses standard markdown headings (not XML tags)
205
250
  - [ ] SKILL.md under 500 lines
206
- - [ ] References one level deep
251
+ - [ ] `disable-model-invocation: true` if it has side effects
252
+ - [ ] `allowed-tools` set if specific tools needed
253
+ - [ ] References one level deep, properly linked
207
254
  - [ ] Examples are concrete, not abstract
208
- - [ ] Consistent terminology
209
- - [ ] No time-sensitive information
210
- - [ ] Scripts handle errors explicitly
211
-
212
- ## Common Patterns
213
-
214
- ### Template Pattern
215
-
216
- Provide output templates for consistent results:
217
-
218
- ```markdown
219
- ## Report Template
220
-
221
- ```markdown
222
- # [Analysis Title]
223
-
224
- ## Executive Summary
225
- [One paragraph overview]
226
-
227
- ## Key Findings
228
- - Finding 1
229
- - Finding 2
230
-
231
- ## Recommendations
232
- 1. [Action item]
233
- 2. [Action item]
234
- ```
235
- ```
236
-
237
- ### Workflow Pattern
238
-
239
- For complex multi-step tasks:
240
-
241
- ```markdown
242
- ## Migration Workflow
243
-
244
- Copy this checklist:
245
-
246
- ```
247
- - [ ] Step 1: Backup database
248
- - [ ] Step 2: Run migration script
249
- - [ ] Step 3: Validate output
250
- - [ ] Step 4: Update configuration
251
- ```
252
-
253
- **Step 1: Backup database**
254
- Run: `./scripts/backup.sh`
255
- ...
256
- ```
257
-
258
- ### Conditional Pattern
259
-
260
- Guide through decision points:
261
-
262
- ```markdown
263
- ## Choose Your Approach
264
-
265
- **Creating new content?** Follow "Creation workflow" below.
266
- **Editing existing?** Follow "Editing workflow" below.
267
- ```
255
+ - [ ] Tested with real usage
268
256
 
269
257
  ## Anti-Patterns to Avoid
270
258
 
271
- - **XML tags in body** - Use markdown headings instead
259
+ - **XML tags in body** - Use standard markdown headings
272
260
  - **Vague descriptions** - Be specific with trigger keywords
273
261
  - **Deep nesting** - Keep references one level from SKILL.md
262
+ - **Missing invocation control** - Side-effect workflows need `disable-model-invocation: true`
274
263
  - **Too many options** - Provide a default with escape hatch
275
- - **Windows paths** - Always use forward slashes
276
- - **Punting to Claude** - Scripts should handle errors
277
- - **Time-sensitive info** - Use "old patterns" section instead
264
+ - **Punting to Claude** - Scripts should handle errors explicitly
278
265
 
279
266
  ## Reference Files
280
267
 
281
268
  For detailed guidance, see:
282
-
283
- - [official-spec.md](references/official-spec.md) - Anthropic's official skill specification
269
+ - [official-spec.md](references/official-spec.md) - Official skill specification
284
270
  - [best-practices.md](references/best-practices.md) - Skill authoring best practices
285
271
 
286
- ## Success Criteria
272
+ ## Sources
287
273
 
288
- A well-structured skill:
289
- - Has valid YAML frontmatter with descriptive name and description
290
- - Uses standard markdown headings (not XML tags)
291
- - Keeps SKILL.md under 500 lines
292
- - Links to reference files for detailed content
293
- - Includes concrete examples with input/output pairs
294
- - Has been tested with real usage
295
-
296
- Sources:
297
- - [Agent Skills - Claude Code Docs](https://code.claude.com/docs/en/skills)
298
- - [Skill authoring best practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)
274
+ - [Extend Claude with skills - Official Docs](https://code.claude.com/docs/en/skills)
299
275
  - [GitHub - anthropics/skills](https://github.com/anthropics/skills)
276
+