@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.
- package/package.json +1 -1
- package/skills/agent-browser/SKILL.md +1 -0
- package/skills/agent-native-architecture/SKILL.md +4 -4
- package/skills/agent-native-architecture/references/files-universal-interface.md +1 -1
- package/skills/agent-native-architecture/references/product-implications.md +1 -1
- package/skills/brainstorming/SKILL.md +1 -0
- package/skills/compound-docs/SKILL.md +14 -13
- package/skills/compound-docs/assets/critical-pattern-template.md +1 -1
- package/skills/compound-docs/assets/resolution-template.md +3 -3
- package/skills/compound-docs/references/yaml-schema.md +2 -2
- package/skills/create-agent-skills/SKILL.md +169 -192
- package/skills/create-agent-skills/references/api-security.md +24 -24
- package/skills/create-agent-skills/references/executable-code.md +1 -1
- package/skills/create-agent-skills/references/official-spec.md +74 -125
- package/skills/create-agent-skills/references/skill-structure.md +109 -329
- package/skills/create-agent-skills/workflows/add-reference.md +3 -3
- package/skills/create-agent-skills/workflows/add-script.md +2 -2
- package/skills/create-agent-skills/workflows/add-template.md +1 -1
- package/skills/create-agent-skills/workflows/add-workflow.md +5 -5
- package/skills/create-agent-skills/workflows/audit-skill.md +6 -6
- package/skills/create-agent-skills/workflows/create-domain-expertise-skill.md +8 -8
- package/skills/create-agent-skills/workflows/create-new-skill.md +8 -8
- package/skills/create-agent-skills/workflows/upgrade-to-router.md +5 -5
- package/skills/create-agent-skills/workflows/verify-skill.md +4 -4
- package/skills/document-review/SKILL.md +88 -0
- package/skills/file-todos/SKILL.md +3 -2
- package/skills/file-todos/assets/todo-template.md +1 -1
- package/skills/frontend-design/SKILL.md +43 -0
- package/skills/git-worktree/SKILL.md +23 -22
- package/skills/git-worktree/scripts/worktree-manager.sh +2 -10
- package/skills/orchestrating-swarms/SKILL.md +1718 -0
package/package.json
CHANGED
|
@@ -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.
|
|
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
|
|
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
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
|
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
|
|
|
@@ -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
|
|
6
|
-
- Write
|
|
7
|
-
- Bash
|
|
8
|
-
- Grep
|
|
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
|
|
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/
|
|
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 (
|
|
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/
|
|
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 "
|
|
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 .
|
|
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
|
|
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
|
|
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 (
|
|
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,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
module: [Module name or "
|
|
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 "
|
|
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
|
|
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 `.
|
|
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 "
|
|
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:
|
|
3
|
-
description: Expert guidance for creating
|
|
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
|
|
6
|
+
# Creating Skills & Commands
|
|
7
7
|
|
|
8
|
-
This skill teaches how to create effective
|
|
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
|
-
##
|
|
10
|
+
## Commands and Skills Are Now The Same Thing
|
|
11
11
|
|
|
12
|
-
|
|
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
|
-
|
|
14
|
+
**If a skill and a command share the same name, the skill takes precedence.**
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
## When To Create What
|
|
17
17
|
|
|
18
|
-
Use
|
|
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
|
-
|
|
52
|
+
## Frontmatter Reference
|
|
39
53
|
|
|
40
|
-
|
|
54
|
+
All fields are optional. Only `description` is recommended.
|
|
41
55
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
###
|
|
68
|
+
### Invocation Control
|
|
51
69
|
|
|
52
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
62
|
-
|
|
103
|
+
---
|
|
104
|
+
name: pr-summary
|
|
105
|
+
description: Summarize changes in a pull request
|
|
106
|
+
context: fork
|
|
107
|
+
agent: Explore
|
|
108
|
+
---
|
|
63
109
|
|
|
64
|
-
##
|
|
110
|
+
## Context
|
|
111
|
+
- PR diff: !`gh pr diff`
|
|
112
|
+
- Changed files: !`gh pr diff --name-only`
|
|
65
113
|
|
|
66
|
-
|
|
114
|
+
Summarize this pull request...
|
|
115
|
+
```
|
|
67
116
|
|
|
68
|
-
|
|
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
|
-
|
|
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
|
-
|
|
121
|
+
```yaml
|
|
122
|
+
---
|
|
123
|
+
name: deep-research
|
|
124
|
+
description: Research a topic thoroughly
|
|
125
|
+
context: fork
|
|
126
|
+
agent: Explore
|
|
127
|
+
---
|
|
78
128
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
129
|
+
Research $ARGUMENTS thoroughly:
|
|
130
|
+
1. Find relevant files
|
|
131
|
+
2. Analyze the code
|
|
132
|
+
3. Summarize findings
|
|
133
|
+
```
|
|
83
134
|
|
|
84
|
-
|
|
135
|
+
## Progressive Disclosure
|
|
85
136
|
|
|
86
|
-
|
|
137
|
+
Keep SKILL.md under 500 lines. Split detailed content into reference files:
|
|
87
138
|
|
|
88
|
-
|
|
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
|
-
|
|
91
|
-
# Skill Name
|
|
148
|
+
Link from SKILL.md: `For API details, see [reference.md](reference.md).`
|
|
92
149
|
|
|
93
|
-
|
|
94
|
-
Fastest path to value...
|
|
150
|
+
Keep references **one level deep** from SKILL.md. Avoid nested chains.
|
|
95
151
|
|
|
96
|
-
##
|
|
97
|
-
Core guidance Claude follows...
|
|
152
|
+
## Effective Descriptions
|
|
98
153
|
|
|
99
|
-
|
|
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
|
-
|
|
103
|
-
|
|
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
|
-
|
|
106
|
-
|
|
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. **
|
|
113
|
-
3. **
|
|
114
|
-
4. **
|
|
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
|
-
|
|
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
|
-
**
|
|
126
|
-
-
|
|
127
|
-
-
|
|
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
|
|
184
|
+
### Step 2: Create the File
|
|
131
185
|
|
|
186
|
+
**Command:**
|
|
132
187
|
```markdown
|
|
133
188
|
---
|
|
134
|
-
name:
|
|
135
|
-
description:
|
|
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
|
-
#
|
|
196
|
+
# Command Title
|
|
139
197
|
|
|
140
|
-
##
|
|
198
|
+
## Workflow
|
|
141
199
|
|
|
142
|
-
|
|
200
|
+
### Step 1: Gather Context
|
|
201
|
+
...
|
|
143
202
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
```
|
|
203
|
+
### Step 2: Execute
|
|
204
|
+
...
|
|
147
205
|
|
|
148
|
-
##
|
|
206
|
+
## Success Criteria
|
|
207
|
+
- [ ] Expected outcome 1
|
|
208
|
+
- [ ] Expected outcome 2
|
|
209
|
+
```
|
|
149
210
|
|
|
150
|
-
|
|
211
|
+
**Skill:**
|
|
212
|
+
```markdown
|
|
213
|
+
---
|
|
214
|
+
name: my-skill
|
|
215
|
+
description: What it does. Use when [trigger conditions].
|
|
216
|
+
---
|
|
151
217
|
|
|
152
|
-
|
|
218
|
+
# Skill Title
|
|
153
219
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
Output:
|
|
157
|
-
```
|
|
158
|
-
[result]
|
|
159
|
-
```
|
|
220
|
+
## Quick Start
|
|
221
|
+
[Immediate actionable example]
|
|
160
222
|
|
|
161
|
-
##
|
|
223
|
+
## Instructions
|
|
224
|
+
[Core guidance]
|
|
162
225
|
|
|
163
|
-
|
|
164
|
-
|
|
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
|
-
|
|
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
|
|
238
|
+
### Step 4: Test With Real Usage
|
|
192
239
|
|
|
193
240
|
1. Test with actual tasks, not test scenarios
|
|
194
|
-
2.
|
|
195
|
-
3.
|
|
196
|
-
4.
|
|
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
|
-
|
|
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
|
-
- [ ]
|
|
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
|
-
- [ ]
|
|
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
|
|
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
|
-
- **
|
|
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
|
-
##
|
|
272
|
+
## Sources
|
|
287
273
|
|
|
288
|
-
|
|
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
|
+
|