@complexthings/superpowers-agent 9.2.0 → 10.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.
Files changed (193) hide show
  1. package/.agents/skills/claude-handoff/SKILL.md +18 -0
  2. package/.agents/skills/code-review/SKILL.md +89 -0
  3. package/.agents/skills/{improve-codebase-architecture → codebase-design}/DEEPENING.md +1 -1
  4. package/.agents/skills/{improve-codebase-architecture/INTERFACE-DESIGN.md → codebase-design/DESIGN-IT-TWICE.md} +3 -3
  5. package/.agents/skills/codebase-design/SKILL.md +114 -0
  6. package/.agents/skills/design-an-interface/SKILL.md +94 -0
  7. package/.agents/skills/{diagnose → diagnosing-bugs}/SKILL.md +29 -12
  8. package/.agents/skills/{grill-with-docs → domain-modeling}/CONTEXT-FORMAT.md +1 -4
  9. package/.agents/skills/domain-modeling/SKILL.md +74 -0
  10. package/.agents/skills/fable-mode/SKILL.md +95 -0
  11. package/.agents/skills/git-guardrails-claude-code/SKILL.md +95 -0
  12. package/.agents/skills/git-guardrails-claude-code/scripts/block-dangerous-git.sh +25 -0
  13. package/.agents/skills/grill-me/SKILL.md +7 -0
  14. package/.agents/skills/grill-with-docs/SKILL.md +3 -86
  15. package/.agents/skills/grilling/SKILL.md +14 -0
  16. package/.agents/skills/handoff/SKILL.md +2 -1
  17. package/.agents/skills/i-have-adhd/SKILL.md +120 -0
  18. package/.agents/skills/implement/SKILL.md +11 -0
  19. package/.agents/skills/improve-codebase-architecture/HTML-REPORT.md +3 -3
  20. package/.agents/skills/improve-codebase-architecture/SKILL.md +13 -28
  21. package/.agents/skills/loop-me/SKILL.md +32 -0
  22. package/.agents/skills/prototype/SKILL.md +1 -1
  23. package/.agents/skills/qa/SKILL.md +130 -0
  24. package/.agents/skills/request-refactor-plan/SKILL.md +68 -0
  25. package/.agents/skills/research/SKILL.md +12 -0
  26. package/.agents/skills/resolving-merge-conflicts/SKILL.md +14 -0
  27. package/.agents/skills/scaffold-exercises/SKILL.md +106 -0
  28. package/.agents/skills/setup-matt-pocock-skills/SKILL.md +11 -9
  29. package/.agents/skills/setup-matt-pocock-skills/domain.md +2 -2
  30. package/.agents/skills/setup-matt-pocock-skills/issue-tracker-github.md +23 -0
  31. package/.agents/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +23 -0
  32. package/.agents/skills/setup-matt-pocock-skills/issue-tracker-local.md +11 -0
  33. package/.agents/skills/skill-creator/LICENSE.txt +202 -0
  34. package/.agents/skills/skill-creator/SKILL.md +485 -0
  35. package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
  36. package/.agents/skills/skill-creator/agents/comparator.md +202 -0
  37. package/.agents/skills/skill-creator/agents/grader.md +223 -0
  38. package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
  39. package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  40. package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  41. package/.agents/skills/skill-creator/references/schemas.md +430 -0
  42. package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
  43. package/.agents/skills/skill-creator/scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  44. package/.agents/skills/skill-creator/scripts/__pycache__/run_eval.cpython-314.pyc +0 -0
  45. package/.agents/skills/skill-creator/scripts/__pycache__/utils.cpython-314.pyc +0 -0
  46. package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  47. package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
  48. package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
  49. package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
  50. package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
  51. package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
  52. package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
  53. package/.agents/skills/skill-creator/scripts/utils.py +47 -0
  54. package/.agents/skills/tdd/SKILL.md +17 -90
  55. package/.agents/skills/tdd/tests.md +16 -0
  56. package/.agents/skills/teach/GLOSSARY-FORMAT.md +35 -0
  57. package/.agents/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
  58. package/.agents/skills/teach/MISSION-FORMAT.md +31 -0
  59. package/.agents/skills/teach/RESOURCES-FORMAT.md +32 -0
  60. package/.agents/skills/teach/SKILL.md +140 -0
  61. package/.agents/skills/{to-prd → to-spec}/SKILL.md +11 -12
  62. package/.agents/skills/to-tickets/SKILL.md +114 -0
  63. package/.agents/skills/triage/AGENT-BRIEF.md +40 -1
  64. package/.agents/skills/triage/OUT-OF-SCOPE.md +5 -1
  65. package/.agents/skills/triage/SKILL.md +20 -11
  66. package/.agents/skills/wayfinder/SKILL.md +127 -0
  67. package/.agents/skills/writing-great-skills/GLOSSARY.md +201 -0
  68. package/.agents/skills/writing-great-skills/SKILL.md +83 -0
  69. package/.agents/superpowers-agent +99 -218
  70. package/.agents/superpowers-bootstrap.md +3 -3
  71. package/.agents/templates/AGENTS.md.template +11 -34
  72. package/.agents/templates/SUPERPOWERS.md.template +4 -4
  73. package/.github/copilot-instructions.md +33 -1
  74. package/.github/hooks/rtk-rewrite.json +22 -0
  75. package/AGENTS.md +32 -36
  76. package/README.md +63 -198
  77. package/package.json +1 -1
  78. package/skills/collaboration/brainstorming/SKILL.md +39 -139
  79. package/skills/collaboration/brainstorming/skill.json +2 -2
  80. package/skills/collaboration/leveraging-cli-tools/SKILL.md +70 -71
  81. package/skills/collaboration/leveraging-cli-tools/references/copilot-instructions.md +30 -0
  82. package/skills/collaboration/leveraging-cli-tools/scripts/setup-ponytail.sh +185 -0
  83. package/skills/collaboration/leveraging-cli-tools/scripts/setup-rtk.sh +217 -0
  84. package/skills/collaboration/leveraging-cli-tools/skill.json +1 -1
  85. package/skills/meta/create-skill-json/SKILL.md +4 -4
  86. package/skills/meta/create-skill-json/skill.json +1 -1
  87. package/skills/meta/create-skill-json/test-scenarios.md +1 -1
  88. package/skills/setup-skills/SKILL.md +18 -11
  89. package/skills/setup-skills/skill.json +8 -0
  90. package/.agents/skills/caveman/SKILL.md +0 -49
  91. package/.agents/skills/improve-codebase-architecture/LANGUAGE.md +0 -53
  92. package/.agents/skills/karpathy-guidelines/SKILL.md +0 -75
  93. package/.agents/skills/review/SKILL.md +0 -78
  94. package/.agents/skills/tdd/deep-modules.md +0 -33
  95. package/.agents/skills/tdd/interface-design.md +0 -31
  96. package/.agents/skills/tdd/refactoring.md +0 -10
  97. package/.agents/skills/to-issues/SKILL.md +0 -83
  98. package/.agents/skills/zoom-out/SKILL.md +0 -7
  99. package/skills/architecture/ABOUT.md +0 -20
  100. package/skills/architecture/preserving-productive-tensions/SKILL.md +0 -146
  101. package/skills/architecture/preserving-productive-tensions/skill.json +0 -9
  102. package/skills/collaboration/brainstorming/spec-document-reviewer-prompt.md +0 -50
  103. package/skills/collaboration/brainstorming/visual-companion.md +0 -277
  104. package/skills/collaboration/dispatching-parallel-agents/SKILL.md +0 -174
  105. package/skills/collaboration/dispatching-parallel-agents/skill.json +0 -9
  106. package/skills/collaboration/executing-plans/SKILL.md +0 -130
  107. package/skills/collaboration/executing-plans/skill.json +0 -9
  108. package/skills/collaboration/finishing-a-development-branch/SKILL.md +0 -261
  109. package/skills/collaboration/finishing-a-development-branch/skill.json +0 -9
  110. package/skills/collaboration/leveraging-cli-tools/scripts/slim.py +0 -167
  111. package/skills/collaboration/receiving-code-review/SKILL.md +0 -233
  112. package/skills/collaboration/receiving-code-review/skill.json +0 -9
  113. package/skills/collaboration/requesting-code-review/SKILL.md +0 -110
  114. package/skills/collaboration/requesting-code-review/code-reviewer.md +0 -146
  115. package/skills/collaboration/requesting-code-review/skill.json +0 -12
  116. package/skills/collaboration/subagent-driven-development/SKILL.md +0 -255
  117. package/skills/collaboration/subagent-driven-development/code-quality-reviewer-prompt.md +0 -26
  118. package/skills/collaboration/subagent-driven-development/implementer-prompt.md +0 -113
  119. package/skills/collaboration/subagent-driven-development/skill.json +0 -15
  120. package/skills/collaboration/subagent-driven-development/spec-reviewer-prompt.md +0 -61
  121. package/skills/collaboration/using-git-worktrees/SKILL.md +0 -366
  122. package/skills/collaboration/using-git-worktrees/skill.json +0 -9
  123. package/skills/collaboration/writing-plans/SKILL.md +0 -121
  124. package/skills/collaboration/writing-plans/plan-document-reviewer-prompt.md +0 -52
  125. package/skills/collaboration/writing-plans/skill.json +0 -9
  126. package/skills/debugging/defense-in-depth/SKILL.md +0 -380
  127. package/skills/debugging/defense-in-depth/skill.json +0 -9
  128. package/skills/debugging/root-cause-tracing/SKILL.md +0 -361
  129. package/skills/debugging/root-cause-tracing/find-polluter.sh +0 -63
  130. package/skills/debugging/root-cause-tracing/skill.json +0 -12
  131. package/skills/debugging/systematic-debugging/SKILL.md +0 -299
  132. package/skills/debugging/systematic-debugging/condition-based-waiting-example.ts +0 -158
  133. package/skills/debugging/systematic-debugging/condition-based-waiting.md +0 -115
  134. package/skills/debugging/systematic-debugging/defense-in-depth.md +0 -122
  135. package/skills/debugging/systematic-debugging/find-polluter.sh +0 -63
  136. package/skills/debugging/systematic-debugging/root-cause-tracing.md +0 -169
  137. package/skills/debugging/systematic-debugging/skill.json +0 -9
  138. package/skills/debugging/systematic-debugging/test-academic.md +0 -14
  139. package/skills/debugging/systematic-debugging/test-pressure-1.md +0 -58
  140. package/skills/debugging/systematic-debugging/test-pressure-2.md +0 -68
  141. package/skills/debugging/systematic-debugging/test-pressure-3.md +0 -69
  142. package/skills/debugging/verification-before-completion/SKILL.md +0 -143
  143. package/skills/debugging/verification-before-completion/skill.json +0 -9
  144. package/skills/finding-skills/SKILL.md +0 -101
  145. package/skills/finding-skills/skill.json +0 -8
  146. package/skills/meta/create-agents-md/SKILL.md +0 -182
  147. package/skills/meta/create-agents-md/skill.json +0 -9
  148. package/skills/meta/creating-prompts/SKILL.md +0 -349
  149. package/skills/meta/creating-prompts/examples/do-example.md +0 -65
  150. package/skills/meta/creating-prompts/examples/plan-example.md +0 -75
  151. package/skills/meta/creating-prompts/examples/refine-example.md +0 -65
  152. package/skills/meta/creating-prompts/examples/research-example.md +0 -63
  153. package/skills/meta/creating-prompts/scripts/get-next-number.sh +0 -27
  154. package/skills/meta/creating-prompts/skill.json +0 -20
  155. package/skills/meta/creating-prompts/templates/do-template.md +0 -59
  156. package/skills/meta/creating-prompts/templates/plan-template.md +0 -58
  157. package/skills/meta/creating-prompts/templates/refine-template.md +0 -54
  158. package/skills/meta/creating-prompts/templates/research-template.md +0 -56
  159. package/skills/meta/using-superpowers/SKILL.md +0 -108
  160. package/skills/meta/using-superpowers/skill.json +0 -5
  161. package/skills/meta/writing-prompts/SKILL.md +0 -122
  162. package/skills/meta/writing-prompts/references/platforms.md +0 -114
  163. package/skills/meta/writing-prompts/skill.json +0 -9
  164. package/skills/problem-solving/ABOUT.md +0 -40
  165. package/skills/problem-solving/collision-zone-thinking/SKILL.md +0 -188
  166. package/skills/problem-solving/collision-zone-thinking/references/historical-examples.md +0 -393
  167. package/skills/problem-solving/collision-zone-thinking/skill.json +0 -9
  168. package/skills/problem-solving/inversion-exercise/SKILL.md +0 -174
  169. package/skills/problem-solving/inversion-exercise/skill.json +0 -9
  170. package/skills/problem-solving/meta-pattern-recognition/SKILL.md +0 -116
  171. package/skills/problem-solving/meta-pattern-recognition/skill.json +0 -9
  172. package/skills/problem-solving/scale-game/SKILL.md +0 -222
  173. package/skills/problem-solving/scale-game/skill.json +0 -9
  174. package/skills/problem-solving/simplification-cascades/SKILL.md +0 -113
  175. package/skills/problem-solving/simplification-cascades/skill.json +0 -9
  176. package/skills/problem-solving/when-stuck/SKILL.md +0 -69
  177. package/skills/problem-solving/when-stuck/skill.json +0 -9
  178. package/skills/research/ABOUT.md +0 -20
  179. package/skills/research/tracing-knowledge-lineages/SKILL.md +0 -241
  180. package/skills/research/tracing-knowledge-lineages/skill.json +0 -9
  181. package/skills/testing/condition-based-waiting/SKILL.md +0 -359
  182. package/skills/testing/condition-based-waiting/example.ts +0 -158
  183. package/skills/testing/condition-based-waiting/skill.json +0 -12
  184. package/skills/testing/test-driven-development/SKILL.md +0 -434
  185. package/skills/testing/test-driven-development/skill.json +0 -9
  186. package/skills/testing/testing-anti-patterns/SKILL.md +0 -298
  187. package/skills/testing/testing-anti-patterns/skill.json +0 -9
  188. package/skills/testing/verification-before-completion/SKILL.md +0 -246
  189. package/skills/testing/verification-before-completion/skill.json +0 -10
  190. package/skills/using-a-skill/SKILL.md +0 -101
  191. package/skills/using-a-skill/skill.json +0 -8
  192. /package/.agents/skills/{diagnose → diagnosing-bugs}/scripts/hitl-loop.template.sh +0 -0
  193. /package/.agents/skills/{grill-with-docs → domain-modeling}/ADR-FORMAT.md +0 -0
@@ -127,7 +127,7 @@ Aliases allow users to reference the skill with shorter names.
127
127
  ]
128
128
  ```
129
129
 
130
- **Optional:** Add a well-known abbreviation as a third alias if one exists (e.g., `"tdd"` for test-driven-development, `"sdd"` for subagent-driven-development). Only add an abbreviation if it's clearly recognized — don't invent aliases.
130
+ **Optional:** Add a well-known abbreviation as a third alias only when it is clearly recognized — don't invent aliases.
131
131
 
132
132
  **Do NOT add random synonyms** — stick to the standard two aliases unless an obvious abbreviation exists.
133
133
 
@@ -244,7 +244,7 @@ metadata:
244
244
  - ❌ `keyConcepts` - Document in SKILL.md content
245
245
  - ❌ `overview` - Document in SKILL.md content
246
246
 
247
- ### Discovery Fields (handled by find-skills)
247
+ ### Discovery Fields (handled by native skill discovery)
248
248
  - ❌ `tags` - Use SKILL.md frontmatter fields for search
249
249
  - ❌ `keywords` - Use SKILL.md content for search
250
250
  - ❌ `triggers` - Use SKILL.md `description` field
@@ -276,8 +276,8 @@ metadata:
276
276
 
277
277
  | Rationalization | Counter |
278
278
  |-----------------|---------|
279
- | "Adding `description` helps with discoverability" | NO. Description is in SKILL.md frontmatter. find-skills reads that. |
280
- | "`tags` make it easier to categorize and search" | NO. find-skills uses SKILL.md content and frontmatter. Path already indicates category. |
279
+ | "Adding `description` helps with discoverability" | NO. Description is in SKILL.md frontmatter. Native skill discovery reads it. |
280
+ | "`tags` make it easier to categorize and search" | NO. Native skill discovery uses SKILL.md content and frontmatter. Path already indicates category. |
281
281
  | "`capabilities` document what the skill does" | NO. That's what SKILL.md content is for. skill.json is for tooling, not documentation. |
282
282
  | "`triggers` help agents know when to use this" | NO. SKILL.md `description` field serves this purpose. Don't duplicate. |
283
283
  | "These fields might be useful for future features" | YAGNI violation. No imaginary consumers. Only add fields when tooling actually needs them. |
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.1.0",
3
- "name": "superpowers:meta/create-skill-json",
3
+ "name": "create-skill-json",
4
4
  "title": "create-skill-json",
5
5
  "aliases": [
6
6
  "create-skill-json",
@@ -23,7 +23,7 @@ Agent adds fields like: `description`, `tags`, `capabilities`, `triggers`, `keyC
23
23
 
24
24
  ## Common Rationalizations to Block
25
25
  - "Adding description helps with discoverability" → NO, description is in SKILL.md
26
- - "Tags make it easier to find" → NO, find-skills uses SKILL.md frontmatter
26
+ - "Tags make it easier to find" → NO, native skill discovery uses SKILL.md frontmatter
27
27
  - "Capabilities document what it does" → NO, that's in SKILL.md content
28
28
  - "These fields might be useful later" → YAGNI violation
29
29
  - "Other tools might use them" → No other tools exist, don't design for imaginary consumers
@@ -1,14 +1,12 @@
1
1
  ---
2
2
  name: setup-skills
3
- description: Run superpowers-agent setup-skills to initialize the skills infrastructure for a project. Use whenever starting a new project with AI agents, when skills symlinks are missing, when AGENTS.md lacks skills configuration, when a user asks to "set up skills", "install skills", "bootstrap skills", or "initialize superpowers". Also use when skills aren't being discovered or when you're about to create project-specific skills and the infrastructure doesn't exist yet. If there's any chance the project hasn't been set up for skills yet, run this skill.
3
+ description: Run superpowers-agent setup-skills to detect which AI harnesses (Claude Code, GitHub Copilot, OpenCode, Pi, Codex) are present in a project and wire up its skills infrastructure — .agents/skills/, per-harness symlinks, and each harness's instruction file. Use whenever starting a new project with AI agents, when skills symlinks are missing, when AGENTS.md or CLAUDE.md lacks skills configuration, when a user asks to "set up skills", "install skills", "bootstrap skills", or "initialize superpowers". Also use when skills aren't being discovered, or before creating project-specific skills if the infrastructure doesn't exist yet.
4
4
  ---
5
5
 
6
6
  # Setup Skills
7
7
 
8
8
  This skill does one thing: run `superpowers-agent setup-skills` and follow the output it gives you exactly.
9
9
 
10
- The command sets up the full skills infrastructure for a project — creating `.agents/`, symlinks for each AI platform, and updating `AGENTS.md` — and its output tells you everything that happened and what to do next.
11
-
12
10
  ## Run the Command
13
11
 
14
12
  From the project root:
@@ -17,18 +15,30 @@ From the project root:
17
15
  superpowers-agent setup-skills
18
16
  ```
19
17
 
18
+ ## What the Command Does
19
+
20
+ - Creates `.agents/`, `.agents/skills/`, and `.agents/docs/SUPERPOWERS.md` (the reference doc every generated instruction file links to).
21
+ - Detects harnesses by dot-folder existence or CLI binary on PATH: Claude Code (`.claude`/`claude`), GitHub Copilot (`.github`/`copilot`), OpenCode (`.opencode`/`opencode`), Pi (`.pi`/`pi`), Codex (`.codex`/`codex`).
22
+ - Writes/updates `AGENTS.md` unconditionally (creating it if missing) with tool mappings for Copilot, OpenCode, Pi, and Codex.
23
+ - Updates `CLAUDE.md` in place only if one already exists at the project root or in `.agents/` — it never creates a fresh `CLAUDE.md`.
24
+ - Creates or updates `.github/copilot-instructions.md` only when GitHub Copilot is detected.
25
+ - Keeps exactly one backup per instruction file it touches (dedupes old `*.backup*` files).
26
+ - Symlinks each detected harness's skills dir back to `.agents/skills/`: `.claude/skills`, `.github/skills`, `.opencode/skill` (singular). Pi and Codex read `.agents/skills/` directly — no symlink.
27
+
20
28
  ## Follow the Output Exactly
21
29
 
22
- The command output is authoritative. Read it, act on it, and do not skip any steps it prescribes. It adapts to the platforms detected in your project and tells you precisely what was created, updated, or skipped.
30
+ The command output is authoritative. Read it, act on it, and do not skip any steps it prescribes. It adapts to the harnesses detected in your project and tells you precisely what was created, updated, or skipped.
23
31
 
24
32
  If the command prints follow-up instructions, complete them before continuing with your task.
25
33
 
34
+ If it fails for any reason other than not-found (e.g. permission denied, partial failure), surface the exact error and stop — do not continue or leave the project half-configured.
35
+
26
36
  ## If superpowers-agent Is Not Found
27
37
 
28
38
  Install it first, then rerun:
29
39
 
30
40
  ```bash
31
- @npm install -g @complexthings/superpowers-agent
41
+ npm install -g @complexthings/superpowers-agent
32
42
  superpowers-agent setup-skills
33
43
  ```
34
44
 
@@ -36,12 +46,9 @@ superpowers-agent setup-skills
36
46
 
37
47
  Project-specific skills belong in `.agents/skills/`. All AI agents working in the project discover them automatically via the symlinks the command created.
38
48
 
39
- To verify:
40
- ```bash
41
- superpowers-agent find-skills
42
- ```
49
+ To verify, use your platform's native skill tool and confirm the project skills are available.
43
50
 
44
51
  ## Related Skills
45
52
 
46
- - **finding-skills** Discover available skills after setup
47
- - **using-superpowers** How the full skills system works
53
+ - Use your platform's native skill tool to discover available skills after setup.
54
+ - Follow your platform's skill guidance for loading and applying them.
@@ -0,0 +1,8 @@
1
+ {
2
+ "version": "1.0.0",
3
+ "name": "setup-skills",
4
+ "title": "setup-skills",
5
+ "aliases": [
6
+ "setup-skills"
7
+ ]
8
+ }
@@ -1,49 +0,0 @@
1
- ---
2
- name: caveman
3
- description: >
4
- Ultra-compressed communication mode. Cuts token usage ~75% by dropping
5
- filler, articles, and pleasantries while keeping full technical accuracy.
6
- Use when user says "caveman mode", "talk like caveman", "use caveman",
7
- "less tokens", "be brief", or invokes /caveman.
8
- ---
9
-
10
- Respond terse like smart caveman. All technical substance stay. Only fluff die.
11
-
12
- ## Persistence
13
-
14
- ACTIVE EVERY RESPONSE once triggered. No revert after many turns. No filler drift. Still active if unsure. Off only when user says "stop caveman" or "normal mode".
15
-
16
- ## Rules
17
-
18
- Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not "implement a solution for"). Abbreviate common terms (DB/auth/config/req/res/fn/impl). Strip conjunctions. Use arrows for causality (X -> Y). One word when one word enough.
19
-
20
- Technical terms stay exact. Code blocks unchanged. Errors quoted exact.
21
-
22
- Pattern: `[thing] [action] [reason]. [next step].`
23
-
24
- Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
25
- Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
26
-
27
- ### Examples
28
-
29
- **"Why React component re-render?"**
30
-
31
- > Inline obj prop -> new ref -> re-render. `useMemo`.
32
-
33
- **"Explain database connection pooling."**
34
-
35
- > Pool = reuse DB conn. Skip handshake -> fast under load.
36
-
37
- ## Auto-Clarity Exception
38
-
39
- Drop caveman temporarily for: security warnings, irreversible action confirmations, multi-step sequences where fragment order risks misread, user asks to clarify or repeats question. Resume caveman after clear part done.
40
-
41
- Example -- destructive op:
42
-
43
- > **Warning:** This will permanently delete all rows in the `users` table and cannot be undone.
44
- >
45
- > ```sql
46
- > DROP TABLE users;
47
- > ```
48
- >
49
- > Caveman resume. Verify backup exist first.
@@ -1,53 +0,0 @@
1
- # Language
2
-
3
- Shared vocabulary for every suggestion this skill makes. Use these terms exactly — don't substitute "component," "service," "API," or "boundary." Consistent language is the whole point.
4
-
5
- ## Terms
6
-
7
- **Module**
8
- Anything with an interface and an implementation. Deliberately scale-agnostic — applies equally to a function, class, package, or tier-spanning slice.
9
- _Avoid_: unit, component, service.
10
-
11
- **Interface**
12
- Everything a caller must know to use the module correctly. Includes the type signature, but also invariants, ordering constraints, error modes, required configuration, and performance characteristics.
13
- _Avoid_: API, signature (too narrow — those refer only to the type-level surface).
14
-
15
- **Implementation**
16
- What's inside a module — its body of code. Distinct from **Adapter**: a thing can be a small adapter with a large implementation (a Postgres repo) or a large adapter with a small implementation (an in-memory fake). Reach for "adapter" when the seam is the topic; "implementation" otherwise.
17
-
18
- **Depth**
19
- Leverage at the interface — the amount of behaviour a caller (or test) can exercise per unit of interface they have to learn. A module is **deep** when a large amount of behaviour sits behind a small interface. A module is **shallow** when the interface is nearly as complex as the implementation.
20
-
21
- **Seam** _(from Michael Feathers)_
22
- A place where you can alter behaviour without editing in that place. The *location* at which a module's interface lives. Choosing where to put the seam is its own design decision, distinct from what goes behind it.
23
- _Avoid_: boundary (overloaded with DDD's bounded context).
24
-
25
- **Adapter**
26
- A concrete thing that satisfies an interface at a seam. Describes *role* (what slot it fills), not substance (what's inside).
27
-
28
- **Leverage**
29
- What callers get from depth. More capability per unit of interface they have to learn. One implementation pays back across N call sites and M tests.
30
-
31
- **Locality**
32
- What maintainers get from depth. Change, bugs, knowledge, and verification concentrate at one place rather than spreading across callers. Fix once, fixed everywhere.
33
-
34
- ## Principles
35
-
36
- - **Depth is a property of the interface, not the implementation.** A deep module can be internally composed of small, mockable, swappable parts — they just aren't part of the interface. A module can have **internal seams** (private to its implementation, used by its own tests) as well as the **external seam** at its interface.
37
- - **The deletion test.** Imagine deleting the module. If complexity vanishes, the module wasn't hiding anything (it was a pass-through). If complexity reappears across N callers, the module was earning its keep.
38
- - **The interface is the test surface.** Callers and tests cross the same seam. If you want to test *past* the interface, the module is probably the wrong shape.
39
- - **One adapter means a hypothetical seam. Two adapters means a real one.** Don't introduce a seam unless something actually varies across it.
40
-
41
- ## Relationships
42
-
43
- - A **Module** has exactly one **Interface** (the surface it presents to callers and tests).
44
- - **Depth** is a property of a **Module**, measured against its **Interface**.
45
- - A **Seam** is where a **Module**'s **Interface** lives.
46
- - An **Adapter** sits at a **Seam** and satisfies the **Interface**.
47
- - **Depth** produces **Leverage** for callers and **Locality** for maintainers.
48
-
49
- ## Rejected framings
50
-
51
- - **Depth as ratio of implementation-lines to interface-lines** (Ousterhout): rewards padding the implementation. We use depth-as-leverage instead.
52
- - **"Interface" as the TypeScript `interface` keyword or a class's public methods**: too narrow — interface here includes every fact a caller must know.
53
- - **"Boundary"**: overloaded with DDD's bounded context. Say **seam** or **interface**.
@@ -1,75 +0,0 @@
1
- ---
2
- name: karpathy-guidelines
3
- description: Behavioral guardrails against common LLM coding mistakes — overcomplication, sprawling diffs, hidden assumptions, fuzzy success. Use whenever adding a feature, fixing a bug, refactoring, handling an ambiguous request, or planning a multi-step change. Apply even when the path feels obvious, and before writing code for any underspecified ask.
4
- license: MIT
5
- ---
6
-
7
- # Karpathy Guidelines
8
-
9
- Behavioral guidelines to reduce common LLM coding mistakes, derived from [Andrej Karpathy's observations](https://x.com/karpathy/status/2015883857489522876) on LLM coding pitfalls.
10
-
11
- **Tradeoff:** These guidelines bias toward caution over speed. For trivial tasks, use judgment.
12
-
13
- ## 1. Think Before Coding
14
-
15
- **Don't assume. Don't hide confusion. Surface tradeoffs.**
16
-
17
- LLMs tend to resolve ambiguity by silently picking the most statistically likely interpretation and proceeding as if it were stated, which buries decisions the user never got to make.
18
-
19
- Before implementing:
20
- - State your assumptions explicitly. If uncertain, ask.
21
- - If multiple interpretations exist, present them - don't pick silently.
22
- - If a simpler approach exists, say so. Push back when warranted.
23
- - If something is unclear, stop. Name what's confusing. Ask.
24
-
25
- ## 2. Simplicity First
26
-
27
- **Minimum code that solves the problem. Nothing speculative.**
28
-
29
- Models pattern-match toward "complete-looking" solutions seen in training — adding config flags, error branches, and abstractions that match the shape of production code rather than the actual ask.
30
-
31
- - No features beyond what was asked.
32
- - No abstractions for single-use code.
33
- - No "flexibility" or "configurability" that wasn't requested.
34
- - No error handling for impossible scenarios.
35
- - If you write 200 lines and it could be 50, rewrite it.
36
-
37
- Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.
38
-
39
- ## 3. Surgical Changes
40
-
41
- **Touch only what you must. Clean up only your own mess.**
42
-
43
- A common failure mode is opportunistic refactoring: while in a file, the model "tidies" adjacent code it judges suboptimal, producing diffs the user can't review against their original intent.
44
-
45
- When editing existing code:
46
- - Don't "improve" adjacent code, comments, or formatting.
47
- - Don't refactor things that aren't broken.
48
- - Match existing style, even if you'd do it differently.
49
- - If you notice unrelated dead code, mention it - don't delete it.
50
-
51
- When your changes create orphans:
52
- - Remove imports/variables/functions that YOUR changes made unused.
53
- - Don't remove pre-existing dead code unless asked.
54
-
55
- The test: Every changed line should trace directly to the user's request.
56
-
57
- ## 4. Goal-Driven Execution
58
-
59
- **Define success criteria. Loop until verified.**
60
-
61
- Without an external check, LLMs tend to declare success based on whether the output looks right rather than whether it behaves right, since the training signal rewards plausible-looking completions over verified ones.
62
-
63
- Transform tasks into verifiable goals:
64
- - "Add validation" → "Write tests for invalid inputs, then make them pass"
65
- - "Fix the bug" → "Write a test that reproduces it, then make it pass"
66
- - "Refactor X" → "Ensure tests pass before and after"
67
-
68
- For multi-step tasks, state a brief plan:
69
- ```
70
- 1. [Step] → verify: [check]
71
- 2. [Step] → verify: [check]
72
- 3. [Step] → verify: [check]
73
- ```
74
-
75
- Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification.
@@ -1,78 +0,0 @@
1
- ---
2
- name: review
3
- description: Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/PRD asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".
4
- ---
5
-
6
- # Review
7
-
8
- Two-axis review of the diff between `HEAD` and a fixed point the user supplies:
9
-
10
- - **Standards** — does the code conform to this repo's documented coding standards?
11
- - **Spec** — does the code faithfully implement the originating issue / PRD / spec?
12
-
13
- Both axes run as **parallel sub-agents** so they don't pollute each other's context, then this skill aggregates their findings.
14
-
15
- The issue tracker should have been provided to you — run `/setup-matt-pocock-skills` if `docs/agents/issue-tracker.md` is missing.
16
-
17
- ## Process
18
-
19
- ### 1. Pin the fixed point
20
-
21
- Whatever the user said is the fixed point — a commit SHA, branch name, tag, `main`, `HEAD~5`, etc. Don't be opinionated; pass it through. If they didn't specify one, ask: "Review against what — a branch, a commit, or `main`?" Don't proceed until you have it.
22
-
23
- Capture the diff command once: `git diff <fixed-point>...HEAD` (three-dot, so the comparison is against the merge-base). Also note the list of commits via `git log <fixed-point>..HEAD --oneline`.
24
-
25
- ### 2. Identify the spec source
26
-
27
- Look for the originating spec, in this order:
28
-
29
- 1. Issue references in the commit messages (`#123`, `Closes #45`, GitLab `!67`, etc.) — fetch via the workflow in `docs/agents/issue-tracker.md`.
30
- 2. A path the user passed as an argument.
31
- 3. A PRD/spec file under `docs/`, `specs/`, or `.scratch/` matching the branch name or feature.
32
- 4. If nothing is found, ask the user where the spec is. If they say there isn't one, the **Spec** sub-agent will skip and report "no spec available".
33
-
34
- ### 3. Identify the standards sources
35
-
36
- Anything in the repo that documents how code should be written. Common locations:
37
-
38
- - `CLAUDE.md`, `AGENTS.md`
39
- - `CONTRIBUTING.md`
40
- - `CONTEXT.md`, `CONTEXT-MAP.md`, per-context `CONTEXT.md` files
41
- - `docs/adr/` (architectural decisions are standards)
42
- - `.editorconfig`, `eslint.config.*`, `biome.json`, `prettier.config.*`, `tsconfig.json` (machine-enforced standards — note them but don't re-check what tooling already checks)
43
- - Any `STYLE.md`, `STANDARDS.md`, `STYLEGUIDE.md`, or similar at the repo root or under `docs/`
44
-
45
- Collect the list of files. The **Standards** sub-agent will read them.
46
-
47
- ### 4. Spawn both sub-agents in parallel
48
-
49
- Send a single message with two `Agent` tool calls. Use the `general-purpose` subagent for both.
50
-
51
- **Standards sub-agent prompt** — include:
52
-
53
- - The full diff command and commit list.
54
- - The list of standards-source files you found in step 3.
55
- - The brief: "Read the standards docs. Then read the diff. Report — per file/hunk where relevant — every place the diff violates a documented standard. Cite the standard (file + the rule). Distinguish hard violations from judgement calls. Skip anything tooling enforces. Under 400 words."
56
-
57
- **Spec sub-agent prompt** — include:
58
-
59
- - The diff command and commit list.
60
- - The path or fetched contents of the spec.
61
- - The brief: "Read the spec. Then read the diff. Report: (a) requirements the spec asked for that are missing or partial; (b) behaviour in the diff that wasn't asked for (scope creep); (c) requirements that look implemented but where the implementation looks wrong. Quote the spec line for each finding. Under 400 words."
62
-
63
- If the spec is missing, skip the Spec sub-agent and note this in the final report.
64
-
65
- ### 5. Aggregate
66
-
67
- Present the two reports under `## Standards` and `## Spec` headings, verbatim or lightly cleaned. Do **not** merge or rerank findings — the two axes are deliberately separate so the user can see them independently.
68
-
69
- End with a one-line summary: total findings per axis, and the worst single issue (if any) flagged.
70
-
71
- ## Why two axes
72
-
73
- A change can pass one axis and fail the other:
74
-
75
- - Code that follows every standard but implements the wrong thing → **Standards pass, Spec fail.**
76
- - Code that does exactly what the issue asked but breaks the project's conventions → **Spec pass, Standards fail.**
77
-
78
- Reporting them separately stops one axis from masking the other.
@@ -1,33 +0,0 @@
1
- # Deep Modules
2
-
3
- From "A Philosophy of Software Design":
4
-
5
- **Deep module** = small interface + lots of implementation
6
-
7
- ```
8
- ┌─────────────────────┐
9
- │ Small Interface │ ← Few methods, simple params
10
- ├─────────────────────┤
11
- │ │
12
- │ │
13
- │ Deep Implementation│ ← Complex logic hidden
14
- │ │
15
- │ │
16
- └─────────────────────┘
17
- ```
18
-
19
- **Shallow module** = large interface + little implementation (avoid)
20
-
21
- ```
22
- ┌─────────────────────────────────┐
23
- │ Large Interface │ ← Many methods, complex params
24
- ├─────────────────────────────────┤
25
- │ Thin Implementation │ ← Just passes through
26
- └─────────────────────────────────┘
27
- ```
28
-
29
- When designing interfaces, ask:
30
-
31
- - Can I reduce the number of methods?
32
- - Can I simplify the parameters?
33
- - Can I hide more complexity inside?
@@ -1,31 +0,0 @@
1
- # Interface Design for Testability
2
-
3
- Good interfaces make testing natural:
4
-
5
- 1. **Accept dependencies, don't create them**
6
-
7
- ```typescript
8
- // Testable
9
- function processOrder(order, paymentGateway) {}
10
-
11
- // Hard to test
12
- function processOrder(order) {
13
- const gateway = new StripeGateway();
14
- }
15
- ```
16
-
17
- 2. **Return results, don't produce side effects**
18
-
19
- ```typescript
20
- // Testable
21
- function calculateDiscount(cart): Discount {}
22
-
23
- // Hard to test
24
- function applyDiscount(cart): void {
25
- cart.total -= discount;
26
- }
27
- ```
28
-
29
- 3. **Small surface area**
30
- - Fewer methods = fewer tests needed
31
- - Fewer params = simpler test setup
@@ -1,10 +0,0 @@
1
- # Refactor Candidates
2
-
3
- After TDD cycle, look for:
4
-
5
- - **Duplication** → Extract function/class
6
- - **Long methods** → Break into private helpers (keep tests on public interface)
7
- - **Shallow modules** → Combine or deepen
8
- - **Feature envy** → Move logic to where data lives
9
- - **Primitive obsession** → Introduce value objects
10
- - **Existing code** the new code reveals as problematic
@@ -1,83 +0,0 @@
1
- ---
2
- name: to-issues
3
- description: Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices. Use when user wants to convert a plan into issues, create implementation tickets, or break down work into issues.
4
- ---
5
-
6
- # To Issues
7
-
8
- Break a plan into independently-grabbable issues using vertical slices (tracer bullets).
9
-
10
- The issue tracker and triage label vocabulary should have been provided to you — run `/setup-matt-pocock-skills` if not.
11
-
12
- ## Process
13
-
14
- ### 1. Gather context
15
-
16
- Work from whatever is already in the conversation context. If the user passes an issue reference (issue number, URL, or path) as an argument, fetch it from the issue tracker and read its full body and comments.
17
-
18
- ### 2. Explore the codebase (optional)
19
-
20
- If you have not already explored the codebase, do so to understand the current state of the code. Issue titles and descriptions should use the project's domain glossary vocabulary, and respect ADRs in the area you're touching.
21
-
22
- ### 3. Draft vertical slices
23
-
24
- Break the plan into **tracer bullet** issues. Each issue is a thin vertical slice that cuts through ALL integration layers end-to-end, NOT a horizontal slice of one layer.
25
-
26
- Slices may be 'HITL' or 'AFK'. HITL slices require human interaction, such as an architectural decision or a design review. AFK slices can be implemented and merged without human interaction. Prefer AFK over HITL where possible.
27
-
28
- <vertical-slice-rules>
29
- - Each slice delivers a narrow but COMPLETE path through every layer (schema, API, UI, tests)
30
- - A completed slice is demoable or verifiable on its own
31
- - Prefer many thin slices over few thick ones
32
- </vertical-slice-rules>
33
-
34
- ### 4. Quiz the user
35
-
36
- Present the proposed breakdown as a numbered list. For each slice, show:
37
-
38
- - **Title**: short descriptive name
39
- - **Type**: HITL / AFK
40
- - **Blocked by**: which other slices (if any) must complete first
41
- - **User stories covered**: which user stories this addresses (if the source material has them)
42
-
43
- Ask the user:
44
-
45
- - Does the granularity feel right? (too coarse / too fine)
46
- - Are the dependency relationships correct?
47
- - Should any slices be merged or split further?
48
- - Are the correct slices marked as HITL and AFK?
49
-
50
- Iterate until the user approves the breakdown.
51
-
52
- ### 5. Publish the issues to the issue tracker
53
-
54
- For each approved slice, publish a new issue to the issue tracker. Use the issue body template below. These issues are considered ready for AFK agents, so publish them with the correct triage label unless instructed otherwise.
55
-
56
- Publish issues in dependency order (blockers first) so you can reference real issue identifiers in the "Blocked by" field.
57
-
58
- <issue-template>
59
- ## Parent
60
-
61
- A reference to the parent issue on the issue tracker (if the source was an existing issue, otherwise omit this section).
62
-
63
- ## What to build
64
-
65
- A concise description of this vertical slice. Describe the end-to-end behavior, not layer-by-layer implementation.
66
-
67
- Avoid specific file paths or code snippets — they go stale fast. Exception: if a prototype produced a snippet that encodes a decision more precisely than prose can (state machine, reducer, schema, type shape), inline it here and note briefly that it came from a prototype. Trim to the decision-rich parts — not a working demo, just the important bits.
68
-
69
- ## Acceptance criteria
70
-
71
- - [ ] Criterion 1
72
- - [ ] Criterion 2
73
- - [ ] Criterion 3
74
-
75
- ## Blocked by
76
-
77
- - A reference to the blocking ticket (if any)
78
-
79
- Or "None - can start immediately" if no blockers.
80
-
81
- </issue-template>
82
-
83
- Do NOT close or modify any parent issue.
@@ -1,7 +0,0 @@
1
- ---
2
- name: zoom-out
3
- description: Tell the agent to zoom out and give broader context or a higher-level perspective. Use when you're unfamiliar with a section of code or need to understand how it fits into the bigger picture.
4
- disable-model-invocation: true
5
- ---
6
-
7
- I don't know this area of code well. Go up a layer of abstraction. Give me a map of all the relevant modules and callers, using the project's domain glossary vocabulary.
@@ -1,20 +0,0 @@
1
- # Architecture Skills - Attribution
2
-
3
- This skill was derived from agent patterns in the [Amplifier](https://github.com/microsoft/amplifier) project.
4
-
5
- **Source Repository:**
6
- - Name: Amplifier
7
- - URL: https://github.com/microsoft/amplifier
8
- - Commit: 2adb63f858e7d760e188197c8e8d4c1ef721e2a6
9
- - Date: 2025-10-10
10
-
11
- ## Skills Derived from Amplifier Agents
12
-
13
- **From ambiguity-guardian agent:**
14
- - preserving-productive-tensions - Recognizing when disagreements reveal valuable context, preserving multiple valid approaches instead of forcing premature resolution
15
-
16
- ## What Was Adapted
17
-
18
- The ambiguity-guardian agent preserves productive contradictions and navigates uncertainty as valuable features of knowledge. This skill extracts the core pattern-recognition capability: distinguishing when tensions should be preserved (context-dependent trade-offs) vs resolved (clear technical superiority).
19
-
20
- Adapted as scannable guide with symptom-based triggers ("going back and forth", "keep changing mind") and practical preservation patterns (configuration, parallel implementations, documented trade-offs).