superpowers-spec 1.0.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/LICENSE +22 -0
- package/README.md +141 -0
- package/agents/code-reviewer.md +48 -0
- package/bin/openspec.js +3 -0
- package/bin/superpowers.js +3 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +482 -0
- package/dist/commands/change.d.ts +35 -0
- package/dist/commands/change.js +277 -0
- package/dist/commands/completion.d.ts +72 -0
- package/dist/commands/completion.js +257 -0
- package/dist/commands/config.d.ts +36 -0
- package/dist/commands/config.js +552 -0
- package/dist/commands/feedback.d.ts +9 -0
- package/dist/commands/feedback.js +183 -0
- package/dist/commands/schema.d.ts +6 -0
- package/dist/commands/schema.js +869 -0
- package/dist/commands/show.d.ts +14 -0
- package/dist/commands/show.js +132 -0
- package/dist/commands/spec.d.ts +15 -0
- package/dist/commands/spec.js +225 -0
- package/dist/commands/validate.d.ts +24 -0
- package/dist/commands/validate.js +294 -0
- package/dist/commands/workflow/index.d.ts +17 -0
- package/dist/commands/workflow/index.js +12 -0
- package/dist/commands/workflow/instructions.d.ts +29 -0
- package/dist/commands/workflow/instructions.js +381 -0
- package/dist/commands/workflow/new-change.d.ts +11 -0
- package/dist/commands/workflow/new-change.js +44 -0
- package/dist/commands/workflow/schemas.d.ts +10 -0
- package/dist/commands/workflow/schemas.js +34 -0
- package/dist/commands/workflow/shared.d.ts +57 -0
- package/dist/commands/workflow/shared.js +116 -0
- package/dist/commands/workflow/status.d.ts +14 -0
- package/dist/commands/workflow/status.js +75 -0
- package/dist/commands/workflow/templates.d.ts +16 -0
- package/dist/commands/workflow/templates.js +68 -0
- package/dist/core/archive.d.ts +11 -0
- package/dist/core/archive.js +318 -0
- package/dist/core/artifact-graph/graph.d.ts +56 -0
- package/dist/core/artifact-graph/graph.js +141 -0
- package/dist/core/artifact-graph/index.d.ts +7 -0
- package/dist/core/artifact-graph/index.js +13 -0
- package/dist/core/artifact-graph/instruction-loader.d.ts +143 -0
- package/dist/core/artifact-graph/instruction-loader.js +214 -0
- package/dist/core/artifact-graph/resolver.d.ts +81 -0
- package/dist/core/artifact-graph/resolver.js +257 -0
- package/dist/core/artifact-graph/schema.d.ts +13 -0
- package/dist/core/artifact-graph/schema.js +108 -0
- package/dist/core/artifact-graph/state.d.ts +12 -0
- package/dist/core/artifact-graph/state.js +54 -0
- package/dist/core/artifact-graph/types.d.ts +45 -0
- package/dist/core/artifact-graph/types.js +43 -0
- package/dist/core/available-tools.d.ts +16 -0
- package/dist/core/available-tools.js +30 -0
- package/dist/core/command-generation/adapters/amazon-q.d.ts +13 -0
- package/dist/core/command-generation/adapters/amazon-q.js +26 -0
- package/dist/core/command-generation/adapters/antigravity.d.ts +13 -0
- package/dist/core/command-generation/adapters/antigravity.js +26 -0
- package/dist/core/command-generation/adapters/auggie.d.ts +13 -0
- package/dist/core/command-generation/adapters/auggie.js +27 -0
- package/dist/core/command-generation/adapters/claude.d.ts +13 -0
- package/dist/core/command-generation/adapters/claude.js +50 -0
- package/dist/core/command-generation/adapters/cline.d.ts +14 -0
- package/dist/core/command-generation/adapters/cline.js +27 -0
- package/dist/core/command-generation/adapters/codebuddy.d.ts +13 -0
- package/dist/core/command-generation/adapters/codebuddy.js +28 -0
- package/dist/core/command-generation/adapters/codex.d.ts +16 -0
- package/dist/core/command-generation/adapters/codex.js +39 -0
- package/dist/core/command-generation/adapters/continue.d.ts +13 -0
- package/dist/core/command-generation/adapters/continue.js +28 -0
- package/dist/core/command-generation/adapters/costrict.d.ts +13 -0
- package/dist/core/command-generation/adapters/costrict.js +27 -0
- package/dist/core/command-generation/adapters/crush.d.ts +13 -0
- package/dist/core/command-generation/adapters/crush.js +30 -0
- package/dist/core/command-generation/adapters/cursor.d.ts +14 -0
- package/dist/core/command-generation/adapters/cursor.js +44 -0
- package/dist/core/command-generation/adapters/factory.d.ts +13 -0
- package/dist/core/command-generation/adapters/factory.js +27 -0
- package/dist/core/command-generation/adapters/gemini.d.ts +13 -0
- package/dist/core/command-generation/adapters/gemini.js +26 -0
- package/dist/core/command-generation/adapters/github-copilot.d.ts +13 -0
- package/dist/core/command-generation/adapters/github-copilot.js +26 -0
- package/dist/core/command-generation/adapters/iflow.d.ts +13 -0
- package/dist/core/command-generation/adapters/iflow.js +29 -0
- package/dist/core/command-generation/adapters/index.d.ts +29 -0
- package/dist/core/command-generation/adapters/index.js +29 -0
- package/dist/core/command-generation/adapters/kilocode.d.ts +14 -0
- package/dist/core/command-generation/adapters/kilocode.js +23 -0
- package/dist/core/command-generation/adapters/kiro.d.ts +13 -0
- package/dist/core/command-generation/adapters/kiro.js +26 -0
- package/dist/core/command-generation/adapters/opencode.d.ts +13 -0
- package/dist/core/command-generation/adapters/opencode.js +29 -0
- package/dist/core/command-generation/adapters/pi.d.ts +14 -0
- package/dist/core/command-generation/adapters/pi.js +41 -0
- package/dist/core/command-generation/adapters/qoder.d.ts +13 -0
- package/dist/core/command-generation/adapters/qoder.js +30 -0
- package/dist/core/command-generation/adapters/qwen.d.ts +13 -0
- package/dist/core/command-generation/adapters/qwen.js +26 -0
- package/dist/core/command-generation/adapters/roocode.d.ts +14 -0
- package/dist/core/command-generation/adapters/roocode.js +27 -0
- package/dist/core/command-generation/adapters/windsurf.d.ts +14 -0
- package/dist/core/command-generation/adapters/windsurf.js +51 -0
- package/dist/core/command-generation/generator.d.ts +21 -0
- package/dist/core/command-generation/generator.js +27 -0
- package/dist/core/command-generation/index.d.ts +22 -0
- package/dist/core/command-generation/index.js +24 -0
- package/dist/core/command-generation/registry.d.ts +36 -0
- package/dist/core/command-generation/registry.js +92 -0
- package/dist/core/command-generation/types.d.ts +56 -0
- package/dist/core/command-generation/types.js +8 -0
- package/dist/core/completions/command-registry.d.ts +7 -0
- package/dist/core/completions/command-registry.js +461 -0
- package/dist/core/completions/completion-provider.d.ts +60 -0
- package/dist/core/completions/completion-provider.js +102 -0
- package/dist/core/completions/factory.d.ts +64 -0
- package/dist/core/completions/factory.js +75 -0
- package/dist/core/completions/generators/bash-generator.d.ts +32 -0
- package/dist/core/completions/generators/bash-generator.js +174 -0
- package/dist/core/completions/generators/fish-generator.d.ts +32 -0
- package/dist/core/completions/generators/fish-generator.js +157 -0
- package/dist/core/completions/generators/powershell-generator.d.ts +33 -0
- package/dist/core/completions/generators/powershell-generator.js +207 -0
- package/dist/core/completions/generators/zsh-generator.d.ts +44 -0
- package/dist/core/completions/generators/zsh-generator.js +250 -0
- package/dist/core/completions/installers/bash-installer.d.ts +87 -0
- package/dist/core/completions/installers/bash-installer.js +318 -0
- package/dist/core/completions/installers/fish-installer.d.ts +43 -0
- package/dist/core/completions/installers/fish-installer.js +143 -0
- package/dist/core/completions/installers/powershell-installer.d.ts +88 -0
- package/dist/core/completions/installers/powershell-installer.js +327 -0
- package/dist/core/completions/installers/zsh-installer.d.ts +125 -0
- package/dist/core/completions/installers/zsh-installer.js +449 -0
- package/dist/core/completions/templates/bash-templates.d.ts +6 -0
- package/dist/core/completions/templates/bash-templates.js +24 -0
- package/dist/core/completions/templates/fish-templates.d.ts +7 -0
- package/dist/core/completions/templates/fish-templates.js +39 -0
- package/dist/core/completions/templates/powershell-templates.d.ts +6 -0
- package/dist/core/completions/templates/powershell-templates.js +25 -0
- package/dist/core/completions/templates/zsh-templates.d.ts +6 -0
- package/dist/core/completions/templates/zsh-templates.js +36 -0
- package/dist/core/completions/types.d.ts +79 -0
- package/dist/core/completions/types.js +2 -0
- package/dist/core/config-prompts.d.ts +9 -0
- package/dist/core/config-prompts.js +34 -0
- package/dist/core/config-schema.d.ts +86 -0
- package/dist/core/config-schema.js +213 -0
- package/dist/core/config.d.ts +17 -0
- package/dist/core/config.js +33 -0
- package/dist/core/converters/json-converter.d.ts +6 -0
- package/dist/core/converters/json-converter.js +51 -0
- package/dist/core/global-config.d.ts +44 -0
- package/dist/core/global-config.js +125 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +3 -0
- package/dist/core/init.d.ts +39 -0
- package/dist/core/init.js +634 -0
- package/dist/core/legacy-cleanup.d.ts +162 -0
- package/dist/core/legacy-cleanup.js +512 -0
- package/dist/core/list.d.ts +9 -0
- package/dist/core/list.js +171 -0
- package/dist/core/migration.d.ts +23 -0
- package/dist/core/migration.js +108 -0
- package/dist/core/parsers/change-parser.d.ts +13 -0
- package/dist/core/parsers/change-parser.js +193 -0
- package/dist/core/parsers/markdown-parser.d.ts +22 -0
- package/dist/core/parsers/markdown-parser.js +187 -0
- package/dist/core/parsers/requirement-blocks.d.ts +37 -0
- package/dist/core/parsers/requirement-blocks.js +201 -0
- package/dist/core/profile-sync-drift.d.ts +38 -0
- package/dist/core/profile-sync-drift.js +200 -0
- package/dist/core/profiles.d.ts +26 -0
- package/dist/core/profiles.js +40 -0
- package/dist/core/project-config.d.ts +64 -0
- package/dist/core/project-config.js +223 -0
- package/dist/core/schemas/base.schema.d.ts +13 -0
- package/dist/core/schemas/base.schema.js +13 -0
- package/dist/core/schemas/change.schema.d.ts +73 -0
- package/dist/core/schemas/change.schema.js +31 -0
- package/dist/core/schemas/index.d.ts +4 -0
- package/dist/core/schemas/index.js +4 -0
- package/dist/core/schemas/spec.schema.d.ts +18 -0
- package/dist/core/schemas/spec.schema.js +15 -0
- package/dist/core/shared/index.d.ts +8 -0
- package/dist/core/shared/index.js +8 -0
- package/dist/core/shared/skill-generation.d.ts +49 -0
- package/dist/core/shared/skill-generation.js +96 -0
- package/dist/core/shared/tool-detection.d.ts +71 -0
- package/dist/core/shared/tool-detection.js +158 -0
- package/dist/core/specs-apply.d.ts +73 -0
- package/dist/core/specs-apply.js +384 -0
- package/dist/core/styles/palette.d.ts +7 -0
- package/dist/core/styles/palette.js +8 -0
- package/dist/core/templates/index.d.ts +8 -0
- package/dist/core/templates/index.js +9 -0
- package/dist/core/templates/skill-templates.d.ts +19 -0
- package/dist/core/templates/skill-templates.js +18 -0
- package/dist/core/templates/types.d.ts +19 -0
- package/dist/core/templates/types.js +5 -0
- package/dist/core/templates/workflows/apply-change.d.ts +10 -0
- package/dist/core/templates/workflows/apply-change.js +313 -0
- package/dist/core/templates/workflows/archive-change.d.ts +10 -0
- package/dist/core/templates/workflows/archive-change.js +271 -0
- package/dist/core/templates/workflows/bulk-archive-change.d.ts +10 -0
- package/dist/core/templates/workflows/bulk-archive-change.js +488 -0
- package/dist/core/templates/workflows/continue-change.d.ts +10 -0
- package/dist/core/templates/workflows/continue-change.js +232 -0
- package/dist/core/templates/workflows/explore.d.ts +10 -0
- package/dist/core/templates/workflows/explore.js +469 -0
- package/dist/core/templates/workflows/feedback.d.ts +9 -0
- package/dist/core/templates/workflows/feedback.js +108 -0
- package/dist/core/templates/workflows/ff-change.d.ts +10 -0
- package/dist/core/templates/workflows/ff-change.js +198 -0
- package/dist/core/templates/workflows/new-change.d.ts +10 -0
- package/dist/core/templates/workflows/new-change.js +143 -0
- package/dist/core/templates/workflows/onboard.d.ts +10 -0
- package/dist/core/templates/workflows/onboard.js +565 -0
- package/dist/core/templates/workflows/propose.d.ts +10 -0
- package/dist/core/templates/workflows/propose.js +223 -0
- package/dist/core/templates/workflows/sync-specs.d.ts +10 -0
- package/dist/core/templates/workflows/sync-specs.js +272 -0
- package/dist/core/templates/workflows/verify-change.d.ts +10 -0
- package/dist/core/templates/workflows/verify-change.js +332 -0
- package/dist/core/update.d.ts +77 -0
- package/dist/core/update.js +537 -0
- package/dist/core/validation/constants.d.ts +34 -0
- package/dist/core/validation/constants.js +40 -0
- package/dist/core/validation/types.d.ts +18 -0
- package/dist/core/validation/types.js +2 -0
- package/dist/core/validation/validator.d.ts +33 -0
- package/dist/core/validation/validator.js +409 -0
- package/dist/core/view.d.ts +8 -0
- package/dist/core/view.js +168 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/prompts/searchable-multi-select.d.ts +28 -0
- package/dist/prompts/searchable-multi-select.js +159 -0
- package/dist/telemetry/config.d.ts +32 -0
- package/dist/telemetry/config.js +68 -0
- package/dist/telemetry/index.d.ts +31 -0
- package/dist/telemetry/index.js +180 -0
- package/dist/ui/ascii-patterns.d.ts +16 -0
- package/dist/ui/ascii-patterns.js +133 -0
- package/dist/ui/welcome-screen.d.ts +10 -0
- package/dist/ui/welcome-screen.js +146 -0
- package/dist/utils/change-metadata.d.ts +51 -0
- package/dist/utils/change-metadata.js +147 -0
- package/dist/utils/change-utils.d.ts +62 -0
- package/dist/utils/change-utils.js +121 -0
- package/dist/utils/command-references.d.ts +18 -0
- package/dist/utils/command-references.js +20 -0
- package/dist/utils/file-system.d.ts +36 -0
- package/dist/utils/file-system.js +281 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/interactive.d.ts +18 -0
- package/dist/utils/interactive.js +21 -0
- package/dist/utils/item-discovery.d.ts +4 -0
- package/dist/utils/item-discovery.js +72 -0
- package/dist/utils/match.d.ts +3 -0
- package/dist/utils/match.js +22 -0
- package/dist/utils/shell-detection.d.ts +20 -0
- package/dist/utils/shell-detection.js +41 -0
- package/dist/utils/task-progress.d.ts +8 -0
- package/dist/utils/task-progress.js +36 -0
- package/extension-manifest.json +9 -0
- package/hooks/hooks.json +16 -0
- package/hooks/run-hook.cmd +46 -0
- package/hooks/session-start +51 -0
- package/package.json +87 -0
- package/schemas/spec-driven/schema.yaml +153 -0
- package/schemas/spec-driven/templates/design.md +19 -0
- package/schemas/spec-driven/templates/proposal.md +23 -0
- package/schemas/spec-driven/templates/spec.md +8 -0
- package/schemas/spec-driven/templates/tasks.md +9 -0
- package/scripts/postinstall.js +147 -0
- package/skills/dispatching-parallel-agents/SKILL.md +113 -0
- package/skills/finishing-a-development-branch/SKILL.md +200 -0
- package/skills/receiving-code-review/SKILL.md +213 -0
- package/skills/requesting-code-review/SKILL.md +73 -0
- package/skills/requesting-code-review/code-reviewer.md +146 -0
- package/skills/subagent-driven-development/SKILL.md +98 -0
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
- package/skills/subagent-driven-development/implementer-prompt.md +78 -0
- package/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/skills/systematic-debugging/SKILL.md +296 -0
- package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/systematic-debugging/find-polluter.sh +63 -0
- package/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/systematic-debugging/test-academic.md +14 -0
- package/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/test-driven-development/SKILL.md +356 -0
- package/skills/test-driven-development/testing-anti-patterns.md +299 -0
- package/skills/using-git-worktrees/SKILL.md +212 -0
- package/skills/using-superpowers/SKILL.md +95 -0
- package/skills/verification-before-completion/SKILL.md +126 -0
- package/skills/writing-skills/SKILL.md +148 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verification-before-completion
|
|
3
|
+
description: Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Verification Before Completion
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Claiming work is complete without verification is dishonesty, not efficiency.
|
|
11
|
+
|
|
12
|
+
**Core principle:** Evidence before claims, always.
|
|
13
|
+
|
|
14
|
+
**Violating the letter of this rule is violating the spirit of this rule.**
|
|
15
|
+
|
|
16
|
+
## The Iron Law
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
If you haven't run the verification command in this message, you cannot claim it passes.
|
|
23
|
+
|
|
24
|
+
## The Gate Function
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
BEFORE claiming any status or expressing satisfaction:
|
|
28
|
+
|
|
29
|
+
1. IDENTIFY: What command proves this claim?
|
|
30
|
+
2. RUN: Execute the FULL command (fresh, complete)
|
|
31
|
+
3. READ: Full output, check exit code, count failures
|
|
32
|
+
4. VERIFY: Does output confirm the claim?
|
|
33
|
+
- If NO: State actual status with evidence
|
|
34
|
+
- If YES: State claim WITH evidence
|
|
35
|
+
5. ONLY THEN: Make the claim
|
|
36
|
+
|
|
37
|
+
Skip any step = lying, not verifying
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Common Failures
|
|
41
|
+
|
|
42
|
+
| Claim | Requires | Not Sufficient |
|
|
43
|
+
|-------|----------|----------------|
|
|
44
|
+
| Tests pass | Test command output: 0 failures | Previous run, "should pass" |
|
|
45
|
+
| Linter clean | Linter output: 0 errors | Partial check, extrapolation |
|
|
46
|
+
| Build succeeds | Build command: exit 0 | Linter passing, logs look good |
|
|
47
|
+
| Bug fixed | Test original symptom: passes | Code changed, assumed fixed |
|
|
48
|
+
| Agent completed | VCS diff shows changes | Agent reports "success" |
|
|
49
|
+
| Requirements met | Line-by-line checklist | Tests passing |
|
|
50
|
+
|
|
51
|
+
## Red Flags - STOP
|
|
52
|
+
|
|
53
|
+
- Using "should", "probably", "seems to"
|
|
54
|
+
- Expressing satisfaction before verification ("Great!", "Perfect!", "Done!", etc.)
|
|
55
|
+
- About to commit/push/PR without verification
|
|
56
|
+
- Trusting agent success reports
|
|
57
|
+
- Relying on partial verification
|
|
58
|
+
- **ANY wording implying success without having run verification**
|
|
59
|
+
|
|
60
|
+
## Rationalization Prevention
|
|
61
|
+
|
|
62
|
+
| Excuse | Reality |
|
|
63
|
+
|--------|---------|
|
|
64
|
+
| "Should work now" | RUN the verification |
|
|
65
|
+
| "I'm confident" | Confidence ≠ evidence |
|
|
66
|
+
| "Just this once" | No exceptions |
|
|
67
|
+
| "Agent said success" | Verify independently |
|
|
68
|
+
| "Partial check is enough" | Partial proves nothing |
|
|
69
|
+
|
|
70
|
+
## Key Patterns
|
|
71
|
+
|
|
72
|
+
**Tests:**
|
|
73
|
+
```
|
|
74
|
+
✅ [Run test command] [See: 34/34 pass] "All tests pass"
|
|
75
|
+
❌ "Should pass now" / "Looks correct"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Regression tests (TDD Red-Green):**
|
|
79
|
+
```
|
|
80
|
+
✅ Write → Run (pass) → Revert fix → Run (MUST FAIL) → Restore → Run (pass)
|
|
81
|
+
❌ "I've written a regression test" (without red-green verification)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Build:**
|
|
85
|
+
```
|
|
86
|
+
✅ [Run build] [See: exit 0] "Build passes"
|
|
87
|
+
❌ "Linter passed" (linter doesn't check compilation)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Requirements:**
|
|
91
|
+
```
|
|
92
|
+
✅ Re-read plan → Create checklist → Verify each → Report gaps or completion
|
|
93
|
+
❌ "Tests pass, phase complete"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Agent delegation:**
|
|
97
|
+
```
|
|
98
|
+
✅ Agent reports success → Check VCS diff → Verify changes → Report actual state
|
|
99
|
+
❌ Trust agent report
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Why This Matters
|
|
103
|
+
|
|
104
|
+
From 24 failure memories:
|
|
105
|
+
- your human partner said "I don't believe you" - trust broken
|
|
106
|
+
- Undefined functions shipped - would crash
|
|
107
|
+
- Missing requirements shipped - incomplete features
|
|
108
|
+
- Time wasted on false completion → redirect → rework
|
|
109
|
+
- Violates: "Honesty is a core value. If you lie, you'll be replaced."
|
|
110
|
+
|
|
111
|
+
## When To Apply
|
|
112
|
+
|
|
113
|
+
**ALWAYS before:**
|
|
114
|
+
- ANY variation of success/completion claims
|
|
115
|
+
- ANY expression of satisfaction
|
|
116
|
+
- Committing, PR creation, task completion
|
|
117
|
+
- Moving to next task
|
|
118
|
+
- Delegating to agents
|
|
119
|
+
|
|
120
|
+
## The Bottom Line
|
|
121
|
+
|
|
122
|
+
**No shortcuts for verification.**
|
|
123
|
+
|
|
124
|
+
Run the command. Read the output. THEN claim the result.
|
|
125
|
+
|
|
126
|
+
This is non-negotiable.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: writing-skills
|
|
3
|
+
description: Use when creating new skills, editing existing skills, or verifying skills work before deployment
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Writing Skills
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
**Writing skills IS Test-Driven Development applied to process documentation.**
|
|
11
|
+
|
|
12
|
+
You write test cases (pressure scenarios with subagents), watch them fail (baseline behavior), write the skill (documentation), watch tests pass (agents comply), and refactor (close loopholes).
|
|
13
|
+
|
|
14
|
+
**Core principle:** If you didn't watch an agent fail without the skill, you don't know if the skill teaches the right thing.
|
|
15
|
+
|
|
16
|
+
**REQUIRED BACKGROUND:** You MUST understand superpowers:test-driven-development before using this skill.
|
|
17
|
+
|
|
18
|
+
## What is a Skill?
|
|
19
|
+
|
|
20
|
+
A **skill** is a reference guide for proven techniques, patterns, or tools. Skills help future agent instances find and apply effective approaches.
|
|
21
|
+
|
|
22
|
+
**Skills are:** Reusable techniques, patterns, tools, reference guides
|
|
23
|
+
|
|
24
|
+
**Skills are NOT:** Narratives about how you solved a problem once
|
|
25
|
+
|
|
26
|
+
## When to Create a Skill
|
|
27
|
+
|
|
28
|
+
**Create when:**
|
|
29
|
+
- Technique wasn't intuitively obvious to you
|
|
30
|
+
- You'd reference this again across projects
|
|
31
|
+
- Pattern applies broadly (not project-specific)
|
|
32
|
+
- Others would benefit
|
|
33
|
+
|
|
34
|
+
**Don't create for:**
|
|
35
|
+
- One-off solutions
|
|
36
|
+
- Standard practices well-documented elsewhere
|
|
37
|
+
- Project-specific conventions (put in CLAUDE.md/AGENTS.md)
|
|
38
|
+
|
|
39
|
+
## Skill Types
|
|
40
|
+
|
|
41
|
+
### Technique
|
|
42
|
+
Concrete method with steps to follow
|
|
43
|
+
|
|
44
|
+
### Pattern
|
|
45
|
+
Way of thinking about problems
|
|
46
|
+
|
|
47
|
+
### Reference
|
|
48
|
+
API docs, syntax guides, tool documentation
|
|
49
|
+
|
|
50
|
+
## Directory Structure
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
skills/
|
|
54
|
+
skill-name/
|
|
55
|
+
SKILL.md # Main reference (required)
|
|
56
|
+
supporting-file.* # Only if needed
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## SKILL.md Structure
|
|
60
|
+
|
|
61
|
+
**Frontmatter (YAML):**
|
|
62
|
+
- Only two fields supported: `name` and `description`
|
|
63
|
+
- `name`: Use letters, numbers, and hyphens only
|
|
64
|
+
- `description`: Third-person, describes ONLY when to use (NOT what it does)
|
|
65
|
+
- Start with "Use when..." to focus on triggering conditions
|
|
66
|
+
- **NEVER summarize the skill's process or workflow**
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
---
|
|
70
|
+
name: skill-name
|
|
71
|
+
description: Use when [specific triggering conditions and symptoms]
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
# Skill Name
|
|
75
|
+
|
|
76
|
+
## Overview
|
|
77
|
+
What is this? Core principle in 1-2 sentences.
|
|
78
|
+
|
|
79
|
+
## When to Use
|
|
80
|
+
Bullet list with SYMPTOMS and use cases
|
|
81
|
+
|
|
82
|
+
## Core Pattern
|
|
83
|
+
Before/after examples
|
|
84
|
+
|
|
85
|
+
## Quick Reference
|
|
86
|
+
Table or bullets for scanning
|
|
87
|
+
|
|
88
|
+
## Common Mistakes
|
|
89
|
+
What goes wrong + fixes
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Critical: Description = When to Use, NOT What the Skill Does
|
|
93
|
+
|
|
94
|
+
**The trap:** Descriptions that summarize workflow create a shortcut agents take. The skill body becomes documentation agents skip.
|
|
95
|
+
|
|
96
|
+
```yaml
|
|
97
|
+
# ❌ BAD: Summarizes workflow
|
|
98
|
+
description: Use when executing plans - dispatches subagent per task with code review between tasks
|
|
99
|
+
|
|
100
|
+
# ✅ GOOD: Just triggering conditions
|
|
101
|
+
description: Use when executing implementation plans with independent tasks
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Token Efficiency
|
|
105
|
+
|
|
106
|
+
**Target word counts:**
|
|
107
|
+
- Frequently-loaded skills: <200 words total
|
|
108
|
+
- Other skills: <500 words (still be concise)
|
|
109
|
+
|
|
110
|
+
**Move details to tool help:**
|
|
111
|
+
```bash
|
|
112
|
+
# ❌ BAD: Document all flags in SKILL.md
|
|
113
|
+
# ✅ GOOD: Reference --help
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## The Iron Law (Same as TDD)
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
NO SKILL WITHOUT A FAILING TEST FIRST
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Write skill before testing? Delete it. Start over.
|
|
123
|
+
|
|
124
|
+
**No exceptions:**
|
|
125
|
+
- Not for "simple additions"
|
|
126
|
+
- Not for "just adding a section"
|
|
127
|
+
|
|
128
|
+
## Flowcharts
|
|
129
|
+
|
|
130
|
+
Use flowcharts ONLY for:
|
|
131
|
+
- Non-obvious decision points
|
|
132
|
+
- Process loops where you might stop too early
|
|
133
|
+
- "When to use A vs B" decisions
|
|
134
|
+
|
|
135
|
+
## Cross-Referencing Other Skills
|
|
136
|
+
|
|
137
|
+
Use skill name only, with explicit requirement markers:
|
|
138
|
+
- ✅ `**REQUIRED:** Use superpowers:test-driven-development`
|
|
139
|
+
- ❌ `@skills/test-driven-development/SKILL.md` (force-loads, burns context)
|
|
140
|
+
|
|
141
|
+
## Common Rationalizations for Skipping Testing
|
|
142
|
+
|
|
143
|
+
| Excuse | Reality |
|
|
144
|
+
|--------|---------|
|
|
145
|
+
| "Skill is obviously clear" | Clear to you ≠ clear to other agents. Test it. |
|
|
146
|
+
| "It's just a reference" | References can have gaps. Test retrieval. |
|
|
147
|
+
| "Testing is overkill" | Untested skills have issues. Always. |
|
|
148
|
+
| "No time to test" | Deploying untested skill wastes more time fixing it later. |
|