198 lines
3.7 KiB
Markdown
198 lines
3.7 KiB
Markdown
---
|
|
description: Common pitfalls and tribal knowledge for skill creation.
|
|
metadata:
|
|
tags: [gotchas, troubleshooting, mistakes]
|
|
---
|
|
|
|
# Skill Writing Gotchas
|
|
|
|
Tribal knowledge to avoid common mistakes.
|
|
|
|
## YAML Frontmatter
|
|
|
|
### Invalid Syntax
|
|
|
|
```yaml
|
|
# ❌ BAD: Mixed list and map
|
|
metadata:
|
|
references:
|
|
triggers: a, b, c
|
|
- item1
|
|
- item2
|
|
|
|
# ✅ GOOD: Consistent structure
|
|
metadata:
|
|
triggers: a, b, c
|
|
references:
|
|
- item1
|
|
- item2
|
|
```
|
|
|
|
### Multiline Description
|
|
|
|
```yaml
|
|
# ❌ BAD: Line breaks create parsing errors
|
|
description: Use when creating skills.
|
|
Also for updating.
|
|
|
|
# ✅ GOOD: Use YAML multiline syntax
|
|
description: >-
|
|
Use when creating or updating skills.
|
|
Triggers: new skill, update skill
|
|
```
|
|
|
|
## Naming
|
|
|
|
### Directory Must Match `name` Field
|
|
|
|
```
|
|
# ❌ BAD
|
|
directory: my-skill/
|
|
name: mySkill # Mismatch!
|
|
|
|
# ✅ GOOD
|
|
directory: my-skill/
|
|
name: my-skill # Exact match
|
|
```
|
|
|
|
### SKILL.md Must Be ALL CAPS
|
|
|
|
```
|
|
# ❌ BAD
|
|
skill.md
|
|
Skill.md
|
|
|
|
# ✅ GOOD
|
|
SKILL.md
|
|
```
|
|
|
|
## Discovery
|
|
|
|
### Description = Triggers, NOT Workflow
|
|
|
|
```yaml
|
|
# ❌ BAD: Agent reads this and skips the full skill
|
|
description: Analyzes code, finds bugs, suggests fixes
|
|
|
|
# ✅ GOOD: Agent reads full skill to understand workflow
|
|
description: Use when debugging errors or reviewing code quality
|
|
```
|
|
|
|
### Pre-Violation Triggers for Discipline Skills
|
|
|
|
```yaml
|
|
# ❌ BAD: Triggers AFTER violation
|
|
description: Use when you forgot to write tests
|
|
|
|
# ✅ GOOD: Triggers BEFORE violation
|
|
description: Use when implementing any feature, before writing code
|
|
```
|
|
|
|
## Token Efficiency
|
|
|
|
### Skill Loaded Every Conversation = Token Drain
|
|
|
|
- Frequently-loaded skills: <200 words
|
|
- All others: <500 words
|
|
- Move details to `references/` files
|
|
|
|
### Don't Duplicate CLI Help
|
|
|
|
```markdown
|
|
# ❌ BAD: 50 lines documenting all flags
|
|
|
|
# ✅ GOOD: One line
|
|
Run `mytool --help` for all options.
|
|
```
|
|
|
|
## Anti-Rationalization (Discipline Skills Only)
|
|
|
|
### Agents Are Smart at Finding Loopholes
|
|
|
|
```markdown
|
|
# ❌ BAD: Trust agents will "get the spirit"
|
|
Write test before code.
|
|
|
|
# ✅ GOOD: Close every loophole explicitly
|
|
Write test before code.
|
|
|
|
**No exceptions:**
|
|
- Don't keep code as "reference"
|
|
- Don't "adapt" existing code
|
|
- Delete means delete
|
|
```
|
|
|
|
### Build Rationalization Table
|
|
|
|
Every excuse from baseline testing goes in the table:
|
|
|
|
| Excuse | Reality |
|
|
|--------|---------|
|
|
| "Too simple to test" | Simple code breaks. Test takes 30 seconds. |
|
|
| "I'll test after" | Tests-after prove nothing immediately. |
|
|
|
|
## Cross-References
|
|
|
|
### Keep References One Level Deep
|
|
|
|
```markdown
|
|
# ❌ BAD: Nested chain (A → B → C)
|
|
See [patterns.md] → which links to [advanced.md] → which links to [deep.md]
|
|
|
|
# ✅ GOOD: Flat (A → B, A → C)
|
|
See [patterns.md] and [advanced.md]
|
|
```
|
|
|
|
### Never Force-Load with @
|
|
|
|
```markdown
|
|
# ❌ BAD: Burns context immediately
|
|
@skills/my-skill/SKILL.md
|
|
|
|
# ✅ GOOD: Agent loads when needed
|
|
See [my-skill] for details.
|
|
```
|
|
|
|
## OpenCode Integration
|
|
|
|
### Correct Skill Directory
|
|
|
|
```bash
|
|
# ❌ BAD: Old singular path
|
|
~/.config/opencode/skill/my-skill/
|
|
|
|
# ✅ GOOD: Plural path
|
|
~/.config/opencode/skills/my-skill/
|
|
```
|
|
|
|
### Skill Cross-Reference Syntax
|
|
|
|
```markdown
|
|
# ❌ BAD: File path (fragile)
|
|
See /home/user/.config/opencode/skills/my-skill/SKILL.md
|
|
|
|
# ✅ GOOD: Skill protocol
|
|
See my-skill
|
|
```
|
|
|
|
## Tier Selection
|
|
|
|
### Don't Overthink Tier Choice
|
|
|
|
```markdown
|
|
# ❌ BAD: Starting with Tier 3 "just in case"
|
|
# Result: Wasted effort, empty reference files
|
|
|
|
# ✅ GOOD: Start with Tier 1, upgrade when needed
|
|
# Can always add references/ later
|
|
```
|
|
|
|
### Signals You Need to Upgrade
|
|
|
|
| Signal | Action |
|
|
|--------|--------|
|
|
| SKILL.md > 200 lines | → Tier 2 |
|
|
| 3+ related sub-topics | → Tier 2 |
|
|
| 10+ products/services | → Tier 3 |
|
|
| "I need X" vs "I want Y" | → Tier 3 decision trees |
|