@damian87/omp 0.1.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/.github/agents/architect.md +25 -0
- package/.github/agents/code-reviewer.md +25 -0
- package/.github/agents/designer.md +26 -0
- package/.github/agents/executor.md +24 -0
- package/.github/agents/planner.md +26 -0
- package/.github/agents/researcher.md +26 -0
- package/.github/agents/verifier.md +26 -0
- package/.github/copilot-instructions.md +20 -0
- package/.github/plugin/marketplace.json +30 -0
- package/.github/skills/caveman/SKILL.md +20 -0
- package/.github/skills/code-review/SKILL.md +22 -0
- package/.github/skills/codebase-research/SKILL.md +20 -0
- package/.github/skills/create-skill/SKILL.md +78 -0
- package/.github/skills/create-skill/references/best-practices.md +449 -0
- package/.github/skills/create-skill/references/examples.md +69 -0
- package/.github/skills/create-skill/references/progressive-disclosure.md +25 -0
- package/.github/skills/create-skill/references/skill-structure.md +55 -0
- package/.github/skills/debug/SKILL.md +22 -0
- package/.github/skills/grill-me/SKILL.md +16 -0
- package/.github/skills/jira-ticket/SKILL.md +21 -0
- package/.github/skills/omp-autopilot/SKILL.md +20 -0
- package/.github/skills/prototype/SKILL.md +21 -0
- package/.github/skills/ralph/SKILL.md +20 -0
- package/.github/skills/ralplan/SKILL.md +21 -0
- package/.github/skills/self-evolve/SKILL.md +157 -0
- package/.github/skills/tdd/SKILL.md +19 -0
- package/.github/skills/team/SKILL.md +20 -0
- package/.github/skills/ultraqa/SKILL.md +20 -0
- package/.github/skills/ultrawork/SKILL.md +20 -0
- package/.github/skills/verify/SKILL.md +20 -0
- package/LICENSE +21 -0
- package/README.md +214 -0
- package/catalog/capabilities.json +729 -0
- package/catalog/skills-general.json +427 -0
- package/dist/src/catalog.d.ts +79 -0
- package/dist/src/catalog.js +113 -0
- package/dist/src/catalog.js.map +1 -0
- package/dist/src/cli.d.ts +9 -0
- package/dist/src/cli.js +475 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/copilot/config.d.ts +7 -0
- package/dist/src/copilot/config.js +24 -0
- package/dist/src/copilot/config.js.map +1 -0
- package/dist/src/copilot/doctor.d.ts +18 -0
- package/dist/src/copilot/doctor.js +85 -0
- package/dist/src/copilot/doctor.js.map +1 -0
- package/dist/src/copilot/launch.d.ts +14 -0
- package/dist/src/copilot/launch.js +64 -0
- package/dist/src/copilot/launch.js.map +1 -0
- package/dist/src/copilot/list.d.ts +17 -0
- package/dist/src/copilot/list.js +82 -0
- package/dist/src/copilot/list.js.map +1 -0
- package/dist/src/copilot/paths.d.ts +21 -0
- package/dist/src/copilot/paths.js +36 -0
- package/dist/src/copilot/paths.js.map +1 -0
- package/dist/src/copilot/setup.d.ts +20 -0
- package/dist/src/copilot/setup.js +90 -0
- package/dist/src/copilot/setup.js.map +1 -0
- package/dist/src/copilot/version.d.ts +13 -0
- package/dist/src/copilot/version.js +34 -0
- package/dist/src/copilot/version.js.map +1 -0
- package/dist/src/jira.d.ts +149 -0
- package/dist/src/jira.js +492 -0
- package/dist/src/jira.js.map +1 -0
- package/dist/src/lint.d.ts +11 -0
- package/dist/src/lint.js +85 -0
- package/dist/src/lint.js.map +1 -0
- package/dist/src/mcp/server.d.ts +10 -0
- package/dist/src/mcp/server.js +44 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/dist/src/mcp/tools/index.d.ts +9 -0
- package/dist/src/mcp/tools/index.js +15 -0
- package/dist/src/mcp/tools/index.js.map +1 -0
- package/dist/src/mcp/tools/notepad.d.ts +2 -0
- package/dist/src/mcp/tools/notepad.js +135 -0
- package/dist/src/mcp/tools/notepad.js.map +1 -0
- package/dist/src/mcp/tools/project-memory.d.ts +2 -0
- package/dist/src/mcp/tools/project-memory.js +91 -0
- package/dist/src/mcp/tools/project-memory.js.map +1 -0
- package/dist/src/mcp/tools/shared-memory.d.ts +2 -0
- package/dist/src/mcp/tools/shared-memory.js +148 -0
- package/dist/src/mcp/tools/shared-memory.js.map +1 -0
- package/dist/src/mcp/tools/state.d.ts +2 -0
- package/dist/src/mcp/tools/state.js +107 -0
- package/dist/src/mcp/tools/state.js.map +1 -0
- package/dist/src/mcp/tools/trace.d.ts +10 -0
- package/dist/src/mcp/tools/trace.js +102 -0
- package/dist/src/mcp/tools/trace.js.map +1 -0
- package/dist/src/mcp/types.d.ts +29 -0
- package/dist/src/mcp/types.js +7 -0
- package/dist/src/mcp/types.js.map +1 -0
- package/dist/src/mode-state/index.d.ts +4 -0
- package/dist/src/mode-state/index.js +5 -0
- package/dist/src/mode-state/index.js.map +1 -0
- package/dist/src/mode-state/paths.d.ts +5 -0
- package/dist/src/mode-state/paths.js +29 -0
- package/dist/src/mode-state/paths.js.map +1 -0
- package/dist/src/mode-state/ralph.d.ts +25 -0
- package/dist/src/mode-state/ralph.js +44 -0
- package/dist/src/mode-state/ralph.js.map +1 -0
- package/dist/src/mode-state/ultraqa.d.ts +26 -0
- package/dist/src/mode-state/ultraqa.js +51 -0
- package/dist/src/mode-state/ultraqa.js.map +1 -0
- package/dist/src/mode-state/ultrawork.d.ts +20 -0
- package/dist/src/mode-state/ultrawork.js +34 -0
- package/dist/src/mode-state/ultrawork.js.map +1 -0
- package/dist/src/project.d.ts +29 -0
- package/dist/src/project.js +101 -0
- package/dist/src/project.js.map +1 -0
- package/dist/src/skills.d.ts +17 -0
- package/dist/src/skills.js +61 -0
- package/dist/src/skills.js.map +1 -0
- package/dist/src/sync.d.ts +6 -0
- package/dist/src/sync.js +27 -0
- package/dist/src/sync.js.map +1 -0
- package/dist/src/team/api.d.ts +20 -0
- package/dist/src/team/api.js +55 -0
- package/dist/src/team/api.js.map +1 -0
- package/dist/src/team/heartbeat.d.ts +4 -0
- package/dist/src/team/heartbeat.js +27 -0
- package/dist/src/team/heartbeat.js.map +1 -0
- package/dist/src/team/idle-nudge.d.ts +27 -0
- package/dist/src/team/idle-nudge.js +60 -0
- package/dist/src/team/idle-nudge.js.map +1 -0
- package/dist/src/team/inbox.d.ts +3 -0
- package/dist/src/team/inbox.js +16 -0
- package/dist/src/team/inbox.js.map +1 -0
- package/dist/src/team/index.d.ts +11 -0
- package/dist/src/team/index.js +12 -0
- package/dist/src/team/index.js.map +1 -0
- package/dist/src/team/outbox.d.ts +14 -0
- package/dist/src/team/outbox.js +82 -0
- package/dist/src/team/outbox.js.map +1 -0
- package/dist/src/team/runtime.d.ts +84 -0
- package/dist/src/team/runtime.js +243 -0
- package/dist/src/team/runtime.js.map +1 -0
- package/dist/src/team/state-paths.d.ts +31 -0
- package/dist/src/team/state-paths.js +54 -0
- package/dist/src/team/state-paths.js.map +1 -0
- package/dist/src/team/task-store.d.ts +41 -0
- package/dist/src/team/task-store.js +153 -0
- package/dist/src/team/task-store.js.map +1 -0
- package/dist/src/team/tmux.d.ts +26 -0
- package/dist/src/team/tmux.js +87 -0
- package/dist/src/team/tmux.js.map +1 -0
- package/dist/src/team/types.d.ts +45 -0
- package/dist/src/team/types.js +2 -0
- package/dist/src/team/types.js.map +1 -0
- package/dist/src/team/worker-bootstrap.d.ts +8 -0
- package/dist/src/team/worker-bootstrap.js +52 -0
- package/dist/src/team/worker-bootstrap.js.map +1 -0
- package/docs/copilot-distribution.md +100 -0
- package/docs/general-skills.md +76 -0
- package/docs/jira.md +64 -0
- package/docs/self-evolve.md +22 -0
- package/hooks/hooks.json +74 -0
- package/package.json +58 -0
- package/plugin.json +14 -0
- package/scripts/error.mjs +31 -0
- package/scripts/lib/hook-output.mjs +30 -0
- package/scripts/lib/stdin.mjs +29 -0
- package/scripts/post-tool-use.mjs +31 -0
- package/scripts/pre-tool-use.mjs +30 -0
- package/scripts/prompt-submit.mjs +66 -0
- package/scripts/session-end.mjs +29 -0
- package/scripts/session-start.mjs +33 -0
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
# Skill Authoring Best Practices
|
|
2
|
+
|
|
3
|
+
Comprehensive guide for writing effective skills that agents can discover and use successfully.
|
|
4
|
+
|
|
5
|
+
## Core Principles
|
|
6
|
+
|
|
7
|
+
### Concise is Key
|
|
8
|
+
|
|
9
|
+
The context window is a shared resource. Your skill shares it with conversation history, other skills' metadata, and the actual request. Be concise and challenge each piece of information.
|
|
10
|
+
|
|
11
|
+
**Default assumption**: Agents are already very smart. Only add context the agent doesn't already have.
|
|
12
|
+
|
|
13
|
+
**Good example: Concise** (~50 tokens):
|
|
14
|
+
````markdown
|
|
15
|
+
## Extract PDF text
|
|
16
|
+
|
|
17
|
+
Use pdfplumber for text extraction:
|
|
18
|
+
|
|
19
|
+
```python
|
|
20
|
+
import pdfplumber
|
|
21
|
+
|
|
22
|
+
with pdfplumber.open("file.pdf") as pdf:
|
|
23
|
+
text = pdf.pages[0].extract_text()
|
|
24
|
+
```
|
|
25
|
+
````
|
|
26
|
+
|
|
27
|
+
**Bad example: Too verbose** (~150 tokens):
|
|
28
|
+
```markdown
|
|
29
|
+
## Extract PDF text
|
|
30
|
+
|
|
31
|
+
PDF (Portable Document Format) files are a common file format that contains
|
|
32
|
+
text, images, and other content. To extract text from a PDF, you'll need to
|
|
33
|
+
use a library. There are many libraries available for PDF processing, but we
|
|
34
|
+
recommend pdfplumber because it's easy to use and handles most cases well.
|
|
35
|
+
First, you'll need to install it using pip. Then you can use the code below...
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Set Appropriate Degrees of Freedom
|
|
39
|
+
|
|
40
|
+
Match the level of specificity to the task's fragility and variability.
|
|
41
|
+
|
|
42
|
+
**High freedom** (text-based instructions):
|
|
43
|
+
- Multiple approaches are valid
|
|
44
|
+
- Decisions depend on context
|
|
45
|
+
- Heuristics guide the approach
|
|
46
|
+
|
|
47
|
+
**Medium freedom** (pseudocode or scripts with parameters):
|
|
48
|
+
- A preferred pattern exists
|
|
49
|
+
- Some variation is acceptable
|
|
50
|
+
- Configuration affects behavior
|
|
51
|
+
|
|
52
|
+
**Low freedom** (specific scripts, few or no parameters):
|
|
53
|
+
- Operations are fragile and error-prone
|
|
54
|
+
- Consistency is critical
|
|
55
|
+
- A specific sequence must be followed
|
|
56
|
+
|
|
57
|
+
### Test with All Models
|
|
58
|
+
|
|
59
|
+
Skills act as additions to models, so effectiveness depends on the underlying model. Test your skill with all models you plan to use it with.
|
|
60
|
+
|
|
61
|
+
## Naming Conventions
|
|
62
|
+
|
|
63
|
+
Use consistent naming patterns. We recommend **gerund form** (verb + -ing) for skill names.
|
|
64
|
+
|
|
65
|
+
**Good naming examples (gerund form)**:
|
|
66
|
+
- `processing-pdfs`
|
|
67
|
+
- `analyzing-spreadsheets`
|
|
68
|
+
- `managing-databases`
|
|
69
|
+
- `testing-code`
|
|
70
|
+
- `writing-documentation`
|
|
71
|
+
|
|
72
|
+
**Acceptable alternatives**:
|
|
73
|
+
- Noun phrases: `pdf-processing`, `spreadsheet-analysis`
|
|
74
|
+
- Action-oriented: `process-pdfs`, `analyze-spreadsheets`
|
|
75
|
+
|
|
76
|
+
**Avoid**:
|
|
77
|
+
- Vague names: `helper`, `utils`, `tools`
|
|
78
|
+
- Overly generic: `documents`, `data`, `files`
|
|
79
|
+
- Inconsistent patterns within your skill collection
|
|
80
|
+
|
|
81
|
+
## Writing Effective Descriptions
|
|
82
|
+
|
|
83
|
+
The `description` field enables skill discovery and should include both what the skill does and when to use it.
|
|
84
|
+
|
|
85
|
+
**Always write in third person**. The description is injected into the system prompt.
|
|
86
|
+
|
|
87
|
+
- **Good:** "Processes Excel files and generates reports"
|
|
88
|
+
- **Avoid:** "I can help you process Excel files"
|
|
89
|
+
- **Avoid:** "You can use this to process Excel files"
|
|
90
|
+
|
|
91
|
+
**Be specific and include key terms**. Include both what the skill does and specific triggers/contexts for when to use it.
|
|
92
|
+
|
|
93
|
+
**Effective examples:**
|
|
94
|
+
|
|
95
|
+
```yaml
|
|
96
|
+
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.
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```yaml
|
|
100
|
+
description: Analyze Excel spreadsheets, create pivot tables, generate charts. Use when analyzing Excel files, spreadsheets, tabular data, or .xlsx files.
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Avoid vague descriptions:**
|
|
104
|
+
```yaml
|
|
105
|
+
description: Helps with documents # Too vague
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Progressive Disclosure Patterns
|
|
109
|
+
|
|
110
|
+
### Pattern 1: High-level guide with references
|
|
111
|
+
|
|
112
|
+
````markdown
|
|
113
|
+
# PDF Processing
|
|
114
|
+
|
|
115
|
+
## Quick start
|
|
116
|
+
|
|
117
|
+
Extract text with pdfplumber:
|
|
118
|
+
```python
|
|
119
|
+
import pdfplumber
|
|
120
|
+
with pdfplumber.open("file.pdf") as pdf:
|
|
121
|
+
text = pdf.pages[0].extract_text()
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Advanced features
|
|
125
|
+
|
|
126
|
+
**Form filling**: See [FORMS.md](FORMS.md) for complete guide
|
|
127
|
+
**API reference**: See [REFERENCE.md](REFERENCE.md) for all methods
|
|
128
|
+
**Examples**: See [EXAMPLES.md](EXAMPLES.md) for common patterns
|
|
129
|
+
````
|
|
130
|
+
|
|
131
|
+
### Pattern 2: Domain-specific organization
|
|
132
|
+
|
|
133
|
+
For skills with multiple domains, organize content by domain:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
bigquery-skill/
|
|
137
|
+
├── SKILL.md (overview and navigation)
|
|
138
|
+
└── reference/
|
|
139
|
+
├── finance.md (revenue, billing metrics)
|
|
140
|
+
├── sales.md (opportunities, pipeline)
|
|
141
|
+
├── product.md (API usage, features)
|
|
142
|
+
└── marketing.md (campaigns, attribution)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Pattern 3: Conditional details
|
|
146
|
+
|
|
147
|
+
Show basic content, link to advanced content:
|
|
148
|
+
|
|
149
|
+
```markdown
|
|
150
|
+
# DOCX Processing
|
|
151
|
+
|
|
152
|
+
## Creating documents
|
|
153
|
+
|
|
154
|
+
Use docx-js for new documents. See [DOCX-JS.md](DOCX-JS.md).
|
|
155
|
+
|
|
156
|
+
## Editing documents
|
|
157
|
+
|
|
158
|
+
For simple edits, modify the XML directly.
|
|
159
|
+
|
|
160
|
+
**For tracked changes**: See [REDLINING.md](REDLINING.md)
|
|
161
|
+
**For OOXML details**: See [OOXML.md](OOXML.md)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Avoid Deeply Nested References
|
|
165
|
+
|
|
166
|
+
Keep references one level deep from SKILL.md. All reference files should link directly from SKILL.md to ensure agents read complete files when needed.
|
|
167
|
+
|
|
168
|
+
**Bad example: Too deep**:
|
|
169
|
+
```markdown
|
|
170
|
+
# SKILL.md
|
|
171
|
+
See [advanced.md](advanced.md)...
|
|
172
|
+
|
|
173
|
+
# advanced.md
|
|
174
|
+
See [details.md](details.md)...
|
|
175
|
+
|
|
176
|
+
# details.md
|
|
177
|
+
Here's the actual information...
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Good example: One level deep**:
|
|
181
|
+
```markdown
|
|
182
|
+
# SKILL.md
|
|
183
|
+
|
|
184
|
+
**Basic usage**: [instructions in SKILL.md]
|
|
185
|
+
**Advanced features**: See [advanced.md](advanced.md)
|
|
186
|
+
**API reference**: See [reference.md](reference.md)
|
|
187
|
+
**Examples**: See [examples.md](examples.md)
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Structure Longer Reference Files
|
|
191
|
+
|
|
192
|
+
For reference files longer than 100 lines, include a table of contents at the top. This ensures agents can see the full scope of available information even when previewing with partial reads.
|
|
193
|
+
|
|
194
|
+
## Workflows and Feedback Loops
|
|
195
|
+
|
|
196
|
+
### Use Workflows for Complex Tasks
|
|
197
|
+
|
|
198
|
+
Break complex operations into clear, sequential steps. For particularly complex workflows, provide a checklist that the agent can copy into its response and check off as it progresses.
|
|
199
|
+
|
|
200
|
+
**Example: PDF form filling workflow**
|
|
201
|
+
|
|
202
|
+
````markdown
|
|
203
|
+
## PDF form filling workflow
|
|
204
|
+
|
|
205
|
+
Copy this checklist and check off items as you complete them:
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
Task Progress:
|
|
209
|
+
- [ ] Step 1: Analyze the form (run analyze_form.py)
|
|
210
|
+
- [ ] Step 2: Create field mapping (edit fields.json)
|
|
211
|
+
- [ ] Step 3: Validate mapping (run validate_fields.py)
|
|
212
|
+
- [ ] Step 4: Fill the form (run fill_form.py)
|
|
213
|
+
- [ ] Step 5: Verify output (run verify_output.py)
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**Step 1: Analyze the form**
|
|
217
|
+
|
|
218
|
+
Run: `python scripts/analyze_form.py input.pdf`
|
|
219
|
+
|
|
220
|
+
This extracts form fields and their locations, saving to `fields.json`.
|
|
221
|
+
````
|
|
222
|
+
|
|
223
|
+
### Implement Feedback Loops
|
|
224
|
+
|
|
225
|
+
**Common pattern**: Run validator → fix errors → repeat
|
|
226
|
+
|
|
227
|
+
This pattern greatly improves output quality.
|
|
228
|
+
|
|
229
|
+
**Example: Document editing process**
|
|
230
|
+
|
|
231
|
+
```markdown
|
|
232
|
+
## Document editing process
|
|
233
|
+
|
|
234
|
+
1. Make your edits to `word/document.xml`
|
|
235
|
+
2. **Validate immediately**: `python ooxml/scripts/validate.py unpacked_dir/`
|
|
236
|
+
3. If validation fails:
|
|
237
|
+
- Review the error message carefully
|
|
238
|
+
- Fix the issues in the XML
|
|
239
|
+
- Run validation again
|
|
240
|
+
4. **Only proceed when validation passes**
|
|
241
|
+
5. Rebuild: `python ooxml/scripts/pack.py unpacked_dir/ output.docx`
|
|
242
|
+
6. Test the output document
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
## Content Guidelines
|
|
246
|
+
|
|
247
|
+
### Avoid Time-Sensitive Information
|
|
248
|
+
|
|
249
|
+
Don't include information that will become outdated:
|
|
250
|
+
|
|
251
|
+
**Bad example: Time-sensitive**:
|
|
252
|
+
```markdown
|
|
253
|
+
If you're doing this before August 2025, use the old API.
|
|
254
|
+
After August 2025, use the new API.
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
**Good example** (use "old patterns" section):
|
|
258
|
+
```markdown
|
|
259
|
+
## Current method
|
|
260
|
+
|
|
261
|
+
Use the v2 API endpoint: `api.example.com/v2/messages`
|
|
262
|
+
|
|
263
|
+
## Old patterns
|
|
264
|
+
|
|
265
|
+
<details>
|
|
266
|
+
<summary>Legacy v1 API (deprecated 2025-08)</summary>
|
|
267
|
+
|
|
268
|
+
The v1 API used: `api.example.com/v1/messages`
|
|
269
|
+
|
|
270
|
+
This endpoint is no longer supported.
|
|
271
|
+
</details>
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Use Consistent Terminology
|
|
275
|
+
|
|
276
|
+
Choose one term and use it throughout the skill:
|
|
277
|
+
|
|
278
|
+
**Good - Consistent**:
|
|
279
|
+
- Always "API endpoint"
|
|
280
|
+
- Always "field"
|
|
281
|
+
- Always "extract"
|
|
282
|
+
|
|
283
|
+
**Bad - Inconsistent**:
|
|
284
|
+
- Mix "API endpoint", "URL", "API route", "path"
|
|
285
|
+
- Mix "field", "box", "element", "control"
|
|
286
|
+
- Mix "extract", "pull", "get", "retrieve"
|
|
287
|
+
|
|
288
|
+
## Common Patterns
|
|
289
|
+
|
|
290
|
+
### Template Pattern
|
|
291
|
+
|
|
292
|
+
Provide templates for output format. Match the level of strictness to your needs.
|
|
293
|
+
|
|
294
|
+
**For strict requirements**:
|
|
295
|
+
|
|
296
|
+
````markdown
|
|
297
|
+
## Report structure
|
|
298
|
+
|
|
299
|
+
ALWAYS use this exact template structure:
|
|
300
|
+
|
|
301
|
+
```markdown
|
|
302
|
+
# [Analysis Title]
|
|
303
|
+
|
|
304
|
+
## Executive summary
|
|
305
|
+
[One-paragraph overview of key findings]
|
|
306
|
+
|
|
307
|
+
## Key findings
|
|
308
|
+
- Finding 1 with supporting data
|
|
309
|
+
- Finding 2 with supporting data
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
**For flexible guidance**:
|
|
313
|
+
|
|
314
|
+
````markdown
|
|
315
|
+
## Report structure
|
|
316
|
+
|
|
317
|
+
Here is a sensible default format, but use your best judgment:
|
|
318
|
+
|
|
319
|
+
```markdown
|
|
320
|
+
# [Analysis Title]
|
|
321
|
+
|
|
322
|
+
## Executive summary
|
|
323
|
+
[Overview]
|
|
324
|
+
|
|
325
|
+
## Key findings
|
|
326
|
+
[Adapt sections based on what you discover]
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
Adjust sections as needed for the specific analysis type.
|
|
330
|
+
````
|
|
331
|
+
|
|
332
|
+
### Examples Pattern
|
|
333
|
+
|
|
334
|
+
For skills where output quality depends on seeing examples, provide input/output pairs:
|
|
335
|
+
|
|
336
|
+
````markdown
|
|
337
|
+
## Commit message format
|
|
338
|
+
|
|
339
|
+
Generate commit messages following these examples:
|
|
340
|
+
|
|
341
|
+
**Example 1:**
|
|
342
|
+
Input: Added user authentication with JWT tokens
|
|
343
|
+
Output:
|
|
344
|
+
```
|
|
345
|
+
feat(auth): implement JWT-based authentication
|
|
346
|
+
|
|
347
|
+
Add login endpoint and token validation middleware
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
**Example 2:**
|
|
351
|
+
Input: Fixed bug where dates displayed incorrectly in reports
|
|
352
|
+
Output:
|
|
353
|
+
```
|
|
354
|
+
fix(reports): correct date formatting in timezone conversion
|
|
355
|
+
|
|
356
|
+
Use UTC timestamps consistently across report generation
|
|
357
|
+
```
|
|
358
|
+
````
|
|
359
|
+
|
|
360
|
+
## Anti-Patterns to Avoid
|
|
361
|
+
|
|
362
|
+
### Avoid Windows-Style Paths
|
|
363
|
+
|
|
364
|
+
Always use forward slashes in file paths, even on Windows:
|
|
365
|
+
|
|
366
|
+
- ✓ **Good**: `scripts/helper.py`, `reference/guide.md`
|
|
367
|
+
- ✗ **Avoid**: `scripts\helper.py`, `reference\guide.md`
|
|
368
|
+
|
|
369
|
+
### Avoid Offering Too Many Options
|
|
370
|
+
|
|
371
|
+
Don't present multiple approaches unless necessary:
|
|
372
|
+
|
|
373
|
+
````markdown
|
|
374
|
+
**Bad example: Too many choices**:
|
|
375
|
+
"You can use pypdf, or pdfplumber, or PyMuPDF, or pdf2image, or..."
|
|
376
|
+
|
|
377
|
+
**Good example: Provide a default**:
|
|
378
|
+
"Use pdfplumber for text extraction:
|
|
379
|
+
```python
|
|
380
|
+
import pdfplumber
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
For scanned PDFs requiring OCR, use pdf2image with pytesseract instead."
|
|
384
|
+
````
|
|
385
|
+
|
|
386
|
+
## Evaluation and Iteration
|
|
387
|
+
|
|
388
|
+
### Build Evaluations First
|
|
389
|
+
|
|
390
|
+
**Create evaluations BEFORE writing extensive documentation.** This ensures your skill solves real problems rather than documenting imagined ones.
|
|
391
|
+
|
|
392
|
+
**Evaluation-driven development:**
|
|
393
|
+
1. **Identify gaps**: Run agent on representative tasks without a skill. Document specific failures or missing context
|
|
394
|
+
2. **Create evaluations**: Build three scenarios that test these gaps
|
|
395
|
+
3. **Establish baseline**: Measure agent's performance without the skill
|
|
396
|
+
4. **Write minimal instructions**: Create just enough content to address the gaps and pass evaluations
|
|
397
|
+
5. **Iterate**: Execute evaluations, compare against baseline, and refine
|
|
398
|
+
|
|
399
|
+
### Develop Skills Iteratively
|
|
400
|
+
|
|
401
|
+
Work with one instance of the agent ("Agent A") to create a skill that will be used by other instances ("Agent B"). Agent A helps you design and refine instructions, while Agent B tests them in real tasks.
|
|
402
|
+
|
|
403
|
+
**Creating a new skill:**
|
|
404
|
+
|
|
405
|
+
1. **Complete a task without a skill**: Work through a problem with Agent A using normal prompting. Notice what information you repeatedly provide.
|
|
406
|
+
|
|
407
|
+
2. **Identify the reusable pattern**: After completing the task, identify what context you provided that would be useful for similar future tasks.
|
|
408
|
+
|
|
409
|
+
3. **Ask Agent A to create a skill**: "Create a skill that captures this pattern we just used. Include the schemas, naming conventions, and filtering rules."
|
|
410
|
+
|
|
411
|
+
4. **Review for conciseness**: Check that Agent A hasn't added unnecessary explanations.
|
|
412
|
+
|
|
413
|
+
5. **Improve information architecture**: Ask Agent A to organize the content more effectively.
|
|
414
|
+
|
|
415
|
+
6. **Test on similar tasks**: Use the skill with Agent B on related use cases.
|
|
416
|
+
|
|
417
|
+
7. **Iterate based on observation**: If Agent B struggles or misses something, return to Agent A with specifics.
|
|
418
|
+
|
|
419
|
+
## Checklist for Effective Skills
|
|
420
|
+
|
|
421
|
+
Before sharing a skill, verify:
|
|
422
|
+
|
|
423
|
+
### Core Quality
|
|
424
|
+
- [ ] Description is specific and includes key terms
|
|
425
|
+
- [ ] Description includes both what the skill does and when to use it
|
|
426
|
+
- [ ] SKILL.md body is under 200 lines (ideally <500 for optimal performance)
|
|
427
|
+
- [ ] Additional details are in separate files (if needed)
|
|
428
|
+
- [ ] No time-sensitive information (or in "old patterns" section)
|
|
429
|
+
- [ ] Consistent terminology throughout
|
|
430
|
+
- [ ] Examples are concrete, not abstract
|
|
431
|
+
- [ ] File references are one level deep
|
|
432
|
+
- [ ] Progressive disclosure used appropriately
|
|
433
|
+
- [ ] Workflows have clear steps
|
|
434
|
+
|
|
435
|
+
### Code and Scripts
|
|
436
|
+
- [ ] Scripts solve problems rather than punt to agent
|
|
437
|
+
- [ ] Error handling is explicit and helpful
|
|
438
|
+
- [ ] No "voodoo constants" (all values justified)
|
|
439
|
+
- [ ] Required packages listed in instructions
|
|
440
|
+
- [ ] Scripts have clear documentation
|
|
441
|
+
- [ ] No Windows-style paths (all forward slashes)
|
|
442
|
+
- [ ] Validation/verification steps for critical operations
|
|
443
|
+
- [ ] Feedback loops included for quality-critical tasks
|
|
444
|
+
|
|
445
|
+
### Testing
|
|
446
|
+
- [ ] At least three evaluations created
|
|
447
|
+
- [ ] Tested with different models (if applicable)
|
|
448
|
+
- [ ] Tested with real usage scenarios
|
|
449
|
+
- [ ] Team feedback incorporated (if applicable)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Good Skill Examples
|
|
2
|
+
|
|
3
|
+
## Well-Structured Skills
|
|
4
|
+
|
|
5
|
+
### Example 1: Language Skill
|
|
6
|
+
|
|
7
|
+
**SKILL.md** (<200 lines):
|
|
8
|
+
- Core principles
|
|
9
|
+
- When to use
|
|
10
|
+
- Key patterns
|
|
11
|
+
- Reference to `references/advanced-patterns.md`
|
|
12
|
+
|
|
13
|
+
**references/advanced-patterns.md**:
|
|
14
|
+
- Detailed type patterns
|
|
15
|
+
- Advanced features
|
|
16
|
+
- Complex examples
|
|
17
|
+
|
|
18
|
+
### Example 2: Framework Skill
|
|
19
|
+
|
|
20
|
+
**SKILL.md** (<200 lines):
|
|
21
|
+
- Architecture overview
|
|
22
|
+
- Key principles
|
|
23
|
+
- When to use
|
|
24
|
+
- References to multiple reference files
|
|
25
|
+
|
|
26
|
+
**references/**:
|
|
27
|
+
- `components.md` - Component patterns
|
|
28
|
+
- `routing.md` - Routing patterns
|
|
29
|
+
- `forms.md` - Form handling
|
|
30
|
+
- `styling.md` - Styling patterns
|
|
31
|
+
|
|
32
|
+
### Example 3: Workflow Skill
|
|
33
|
+
|
|
34
|
+
**SKILL.md** (<200 lines):
|
|
35
|
+
- Workflow overview
|
|
36
|
+
- When to use
|
|
37
|
+
- Core steps
|
|
38
|
+
- Reference to scripts and references
|
|
39
|
+
|
|
40
|
+
**scripts/**:
|
|
41
|
+
- `setup.sh` - Setup script
|
|
42
|
+
- `validate.py` - Validation script
|
|
43
|
+
|
|
44
|
+
**references/**:
|
|
45
|
+
- `best-practices.md` - Detailed practices
|
|
46
|
+
- `troubleshooting.md` - Common issues
|
|
47
|
+
|
|
48
|
+
## Anti-Examples
|
|
49
|
+
|
|
50
|
+
### Bad: Monolithic Skill
|
|
51
|
+
|
|
52
|
+
- 1000+ line SKILL.md with everything
|
|
53
|
+
- No references directory
|
|
54
|
+
- Hard to navigate
|
|
55
|
+
- Slow activation
|
|
56
|
+
|
|
57
|
+
### Bad: Over-Fragmented
|
|
58
|
+
|
|
59
|
+
- SKILL.md too minimal (10 lines)
|
|
60
|
+
- 50+ tiny reference files
|
|
61
|
+
- No clear structure
|
|
62
|
+
- Hard to understand
|
|
63
|
+
|
|
64
|
+
### Good: Balanced
|
|
65
|
+
|
|
66
|
+
- SKILL.md ~150 lines with clear structure
|
|
67
|
+
- 5-10 focused reference files
|
|
68
|
+
- Clear organization
|
|
69
|
+
- Fast activation
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Progressive Disclosure
|
|
2
|
+
|
|
3
|
+
The 200-line rule matters, it's the difference between fast navigation and context sludge.
|
|
4
|
+
|
|
5
|
+
## Core Principle
|
|
6
|
+
|
|
7
|
+
Progressive disclosure isn't optional. Every skill over 200 lines should be refactored. No exceptions. If you can't fit the core instructions in 200 lines, you're putting too much in the entry point.
|
|
8
|
+
|
|
9
|
+
**Note**: While 200 lines is the strict target, skills up to 500 lines can still perform well. However, splitting content into references is always preferred for optimal performance.
|
|
10
|
+
|
|
11
|
+
## References are First-Class Citizens
|
|
12
|
+
|
|
13
|
+
### Structure
|
|
14
|
+
|
|
15
|
+
- **SKILL.md**: High-level overview, when to use, core principles (<200 lines)
|
|
16
|
+
- **references/**: Detailed documentation loaded on-demand
|
|
17
|
+
- Each reference file should also be <200 lines when possible
|
|
18
|
+
|
|
19
|
+
### Example
|
|
20
|
+
|
|
21
|
+
Instead of a 1000-line SKILL.md:
|
|
22
|
+
- SKILL.md: Core principles, architecture overview (150 lines)
|
|
23
|
+
- references/components.md: Component patterns (150 lines)
|
|
24
|
+
- references/routing.md: Routing patterns (100 lines)
|
|
25
|
+
- references/forms.md: Form handling (120 lines)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Skill Structure
|
|
2
|
+
|
|
3
|
+
## SKILL.md Requirements
|
|
4
|
+
|
|
5
|
+
**File name:** `SKILL.md` (uppercase)
|
|
6
|
+
**File size:** Under 200 lines
|
|
7
|
+
|
|
8
|
+
### YAML Frontmatter
|
|
9
|
+
|
|
10
|
+
```yaml
|
|
11
|
+
---
|
|
12
|
+
name: skill-name
|
|
13
|
+
description: Short description of what this skill does and when to use it.
|
|
14
|
+
---
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**Metadata Quality:** The `name` and `description` determine when the agent will use the skill. Be specific about what the skill does and when to use it.
|
|
18
|
+
|
|
19
|
+
### Writing Style
|
|
20
|
+
|
|
21
|
+
- Use imperative/infinitive form (verb-first instructions)
|
|
22
|
+
- Use objective, instructional language
|
|
23
|
+
- Example: "To accomplish X, do Y" rather than "You should do X"
|
|
24
|
+
|
|
25
|
+
### Content Organization
|
|
26
|
+
|
|
27
|
+
1. Purpose of the skill (few sentences)
|
|
28
|
+
2. When should the skill be used
|
|
29
|
+
3. How to use the skill (reference bundled resources)
|
|
30
|
+
4. References section pointing to `references/` files
|
|
31
|
+
|
|
32
|
+
## Bundled Resources
|
|
33
|
+
|
|
34
|
+
### Scripts (`scripts/`)
|
|
35
|
+
|
|
36
|
+
- Executable code for deterministic reliability
|
|
37
|
+
- Prefer Node.js or Python over Bash (better Windows support)
|
|
38
|
+
- Include `requirements.txt` for Python scripts
|
|
39
|
+
- Respect `.env` files in order: `process.env` > skill-local `.env` > project-level `.env` (adjust paths based on the agent harness)
|
|
40
|
+
- Create `.env.example` file
|
|
41
|
+
- Always write tests
|
|
42
|
+
|
|
43
|
+
### References (`references/`)
|
|
44
|
+
|
|
45
|
+
- Documentation loaded as needed
|
|
46
|
+
- Keep files <200 lines when possible
|
|
47
|
+
- Can reference other markdown files or scripts
|
|
48
|
+
- Sacrifice grammar for concision when needed
|
|
49
|
+
- Avoid duplication with SKILL.md
|
|
50
|
+
|
|
51
|
+
### Assets (`assets/`)
|
|
52
|
+
|
|
53
|
+
- Files not loaded into context
|
|
54
|
+
- Used within output agent produces
|
|
55
|
+
- Examples: templates, images, icons, fonts, boilerplate code
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debug
|
|
3
|
+
description: Reproduce, minimize, diagnose, fix, and regression-test a bug. Use with /debug for broken, failing, slow, or confusing behavior.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Debug
|
|
7
|
+
|
|
8
|
+
Use `/debug` for broken, failing, slow, or confusing behavior.
|
|
9
|
+
|
|
10
|
+
Do:
|
|
11
|
+
- Reproduce first.
|
|
12
|
+
- Minimize the case.
|
|
13
|
+
- Form ranked hypotheses.
|
|
14
|
+
- Inspect evidence.
|
|
15
|
+
- Fix root cause, not symptoms.
|
|
16
|
+
- Add or run regression checks.
|
|
17
|
+
|
|
18
|
+
Output:
|
|
19
|
+
- `Repro`
|
|
20
|
+
- `Cause`
|
|
21
|
+
- `Fix`
|
|
22
|
+
- `Regression test`
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grill-me
|
|
3
|
+
description: Ask one sharp clarification question after codebase research when ambiguity still matters. Use with /grill-me before planning or implementation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Grill Me
|
|
7
|
+
|
|
8
|
+
Use `/grill-me` after `/codebase-research` when one decision blocks safe progress.
|
|
9
|
+
|
|
10
|
+
Do:
|
|
11
|
+
- State current understanding in 1-2 bullets.
|
|
12
|
+
- Ask exactly one question.
|
|
13
|
+
- Include a recommended answer.
|
|
14
|
+
- Explain what the answer unlocks.
|
|
15
|
+
|
|
16
|
+
Stop when enough is known for `/ralplan` or direct implementation.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jira-ticket
|
|
3
|
+
description: Prepare Jira create, comment, and safe-update payloads with safe dry-run fallback. Use with /jira-ticket when work tracking is requested.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Jira Ticket
|
|
7
|
+
|
|
8
|
+
Use `/jira-ticket` when work tracking is requested.
|
|
9
|
+
|
|
10
|
+
Do:
|
|
11
|
+
- Create from an approved plan or slice.
|
|
12
|
+
- Comment with implementation or verification evidence.
|
|
13
|
+
- Safely update known simple fields.
|
|
14
|
+
- Do not guess transitions, issue links, project keys, or secrets.
|
|
15
|
+
- If config is missing, output a dry-run payload.
|
|
16
|
+
|
|
17
|
+
Output:
|
|
18
|
+
- `Operation`
|
|
19
|
+
- `Target`
|
|
20
|
+
- `Payload`
|
|
21
|
+
- `Human action`
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: omp-autopilot
|
|
3
|
+
description: Full lightweight flow from research to plan, execution, review, and verification. Use with /omp-autopilot only for clear autonomous work. (Renamed from /autopilot to avoid collision with the Copilot CLI built-in.)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# OMC Autopilot
|
|
7
|
+
|
|
8
|
+
Use `/omp-autopilot` only for clear autonomous work.
|
|
9
|
+
|
|
10
|
+
Flow:
|
|
11
|
+
1. `/codebase-research`
|
|
12
|
+
2. `/grill-me` if ambiguity remains
|
|
13
|
+
3. `/ralplan`
|
|
14
|
+
4. `/team`, `/ralph`, or `/ultrawork`
|
|
15
|
+
5. `/code-review`
|
|
16
|
+
6. `/verify` or `/ultraqa`
|
|
17
|
+
7. `/jira-ticket` if tracking is needed
|
|
18
|
+
|
|
19
|
+
Do not skip verification.
|
|
20
|
+
Ask only for destructive, credentialed, or materially ambiguous choices.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prototype
|
|
3
|
+
description: Build a disposable experiment to answer one design, UI, state, or data-model question. Use with /prototype when a cheap experiment beats guessing.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Prototype
|
|
7
|
+
|
|
8
|
+
Use `/prototype` when a cheap experiment beats guessing.
|
|
9
|
+
|
|
10
|
+
Do:
|
|
11
|
+
- State the question.
|
|
12
|
+
- Build the smallest throwaway version.
|
|
13
|
+
- Prefer isolated routes, fixtures, or tiny terminal demos.
|
|
14
|
+
- Mark prototype code as disposable.
|
|
15
|
+
- Decide keep, revise, or discard.
|
|
16
|
+
|
|
17
|
+
Output:
|
|
18
|
+
- `Question`
|
|
19
|
+
- `Prototype`
|
|
20
|
+
- `What we learned`
|
|
21
|
+
- `Decision`
|