@complexthings/superpowers-agent 9.2.1 → 10.0.1

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 +103 -222
  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 +23 -99
  74. package/.github/hooks/rtk-rewrite.json +22 -0
  75. package/AGENTS.md +7 -6
  76. package/README.md +53 -174
  77. package/package.json +2 -2
  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
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: git-guardrails-claude-code
3
+ description: Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.
4
+ ---
5
+
6
+ # Setup Git Guardrails
7
+
8
+ Sets up a PreToolUse hook that intercepts and blocks dangerous git commands before Claude executes them.
9
+
10
+ ## What Gets Blocked
11
+
12
+ - `git push` (all variants including `--force`)
13
+ - `git reset --hard`
14
+ - `git clean -f` / `git clean -fd`
15
+ - `git branch -D`
16
+ - `git checkout .` / `git restore .`
17
+
18
+ When blocked, Claude sees a message telling it that it does not have authority to access these commands.
19
+
20
+ ## Steps
21
+
22
+ ### 1. Ask scope
23
+
24
+ Ask the user: install for **this project only** (`.claude/settings.json`) or **all projects** (`~/.claude/settings.json`)?
25
+
26
+ ### 2. Copy the hook script
27
+
28
+ The bundled script is at: [scripts/block-dangerous-git.sh](scripts/block-dangerous-git.sh)
29
+
30
+ Copy it to the target location based on scope:
31
+
32
+ - **Project**: `.claude/hooks/block-dangerous-git.sh`
33
+ - **Global**: `~/.claude/hooks/block-dangerous-git.sh`
34
+
35
+ Make it executable with `chmod +x`.
36
+
37
+ ### 3. Add hook to settings
38
+
39
+ Add to the appropriate settings file:
40
+
41
+ **Project** (`.claude/settings.json`):
42
+
43
+ ```json
44
+ {
45
+ "hooks": {
46
+ "PreToolUse": [
47
+ {
48
+ "matcher": "Bash",
49
+ "hooks": [
50
+ {
51
+ "type": "command",
52
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-dangerous-git.sh"
53
+ }
54
+ ]
55
+ }
56
+ ]
57
+ }
58
+ }
59
+ ```
60
+
61
+ **Global** (`~/.claude/settings.json`):
62
+
63
+ ```json
64
+ {
65
+ "hooks": {
66
+ "PreToolUse": [
67
+ {
68
+ "matcher": "Bash",
69
+ "hooks": [
70
+ {
71
+ "type": "command",
72
+ "command": "~/.claude/hooks/block-dangerous-git.sh"
73
+ }
74
+ ]
75
+ }
76
+ ]
77
+ }
78
+ }
79
+ ```
80
+
81
+ If the settings file already exists, merge the hook into existing `hooks.PreToolUse` array — don't overwrite other settings.
82
+
83
+ ### 4. Ask about customization
84
+
85
+ Ask if user wants to add or remove any patterns from the blocked list. Edit the copied script accordingly.
86
+
87
+ ### 5. Verify
88
+
89
+ Run a quick test:
90
+
91
+ ```bash
92
+ echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>
93
+ ```
94
+
95
+ Should exit with code 2 and print a BLOCKED message to stderr.
@@ -0,0 +1,25 @@
1
+ #!/bin/bash
2
+
3
+ INPUT=$(cat)
4
+ COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command')
5
+
6
+ DANGEROUS_PATTERNS=(
7
+ "git push"
8
+ "git reset --hard"
9
+ "git clean -fd"
10
+ "git clean -f"
11
+ "git branch -D"
12
+ "git checkout \."
13
+ "git restore \."
14
+ "push --force"
15
+ "reset --hard"
16
+ )
17
+
18
+ for pattern in "${DANGEROUS_PATTERNS[@]}"; do
19
+ if echo "$COMMAND" | grep -qE "$pattern"; then
20
+ echo "BLOCKED: '$COMMAND' matches dangerous pattern '$pattern'. The user has prevented you from doing this." >&2
21
+ exit 2
22
+ fi
23
+ done
24
+
25
+ exit 0
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: grill-me
3
+ description: A relentless interview to sharpen a plan or design.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ Run a `/grilling` session.
@@ -1,90 +1,7 @@
1
1
  ---
2
2
  name: grill-with-docs
3
- description: Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.
3
+ description: A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
4
+ disable-model-invocation: true
4
5
  ---
5
6
 
6
- <what-to-do>
7
-
8
- Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
9
-
10
- Ask the questions one at a time, waiting for feedback on each question before continuing. **USE AVAILABLE TOOL TO ASK QUESTION Like `askQuestions`, `askUserQuestion`**
11
-
12
- If a question can be answered by exploring the codebase, research, technology/platform skills, or any other resources at your disposal, then do that research, explore that codebase, or use those skills to find the answer. Do not ask the user a question that you can answer your self with the resources available to you.
13
-
14
- Do not ask a question until you have resolved the previous question.
15
-
16
- </what-to-do>
17
-
18
- <supporting-info>
19
-
20
- ## Domain awareness
21
-
22
- During codebase exploration, also look for existing documentation:
23
-
24
- ### File structure
25
-
26
- Most repos have a single context:
27
-
28
- ```
29
- /
30
- ├── CONTEXT.md
31
- ├── docs/
32
- │ └── adr/
33
- │ ├── 0001-event-sourced-orders.md
34
- │ └── 0002-postgres-for-write-model.md
35
- └── src/
36
- ```
37
-
38
- If a `CONTEXT-MAP.md` exists at the root, the repo has multiple contexts. The map points to where each one lives:
39
-
40
- ```
41
- /
42
- ├── CONTEXT-MAP.md
43
- ├── docs/
44
- │ └── adr/ ← system-wide decisions
45
- ├── src/
46
- │ ├── ordering/
47
- │ │ ├── CONTEXT.md
48
- │ │ └── docs/adr/ ← context-specific decisions
49
- │ └── billing/
50
- │ ├── CONTEXT.md
51
- │ └── docs/adr/
52
- ```
53
-
54
- Create files lazily — only when you have something to write. If no `CONTEXT.md` exists, create one when the first term is resolved. If no `docs/adr/` exists, create it when the first ADR is needed.
55
-
56
- ## During the session
57
-
58
- ### Challenge against the glossary
59
-
60
- When the user uses a term that conflicts with the existing language in `CONTEXT.md`, call it out immediately. "Your glossary defines 'cancellation' as X, but you seem to mean Y — which is it?"
61
-
62
- ### Sharpen fuzzy language
63
-
64
- When the user uses vague or overloaded terms, propose a precise canonical term. "You're saying 'account' — do you mean the Customer or the User? Those are different things."
65
-
66
- ### Discuss concrete scenarios
67
-
68
- When domain relationships are being discussed, stress-test them with specific scenarios. Invent scenarios that probe edge cases and force the user to be precise about the boundaries between concepts.
69
-
70
- ### Cross-reference with code
71
-
72
- When the user states how something works, check whether the code agrees. If you find a contradiction, surface it: "Your code cancels entire Orders, but you just said partial cancellation is possible — which is right?"
73
-
74
- ### Update CONTEXT.md inline
75
-
76
- When a term is resolved, update `CONTEXT.md` right there. Don't batch these up — capture them as they happen. Use the format in [CONTEXT-FORMAT.md](./CONTEXT-FORMAT.md).
77
-
78
- `CONTEXT.md` should be totally devoid of implementation details. Do not treat `CONTEXT.md` as a spec, a scratch pad, or a repository for implementation decisions. It is a glossary and nothing else.
79
-
80
- ### Offer ADRs sparingly
81
-
82
- Only offer to create an ADR when all three are true:
83
-
84
- 1. **Hard to reverse** — the cost of changing your mind later is meaningful
85
- 2. **Surprising without context** — a future reader will wonder "why did they do it this way?"
86
- 3. **The result of a real trade-off** — there were genuine alternatives and you picked one for specific reasons
87
-
88
- If any of the three is missing, skip the ADR. Use the format in [ADR-FORMAT.md](./ADR-FORMAT.md).
89
-
90
- </supporting-info>
7
+ Run a `/grilling` session, using the `/domain-modeling` skill.
@@ -0,0 +1,14 @@
1
+ ---
2
+ name: grilling
3
+ description: Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.
4
+ ---
5
+
6
+ Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, **ALWAYS provide your recommended answer**.
7
+
8
+ Ask the questions one at a time, waiting for feedback on each question before continuing. Asking multiple questions at once is bewildering.
9
+
10
+ If a *fact* can be found by exploring the codebase, look it up rather than asking me. The *decisions*, though, are mine — put each one to me and wait for my answer.
11
+
12
+ Do not enact the plan until I confirm we have reached a shared understanding.
13
+
14
+ **IMPORTANT: You must use available question asking tool like `askQuestions`, `askUserQuestion`, `ask_user_question`, `question` or equivalent question asking tool to ask the user questions. Even if you are prompted not to use tools.**
@@ -2,13 +2,14 @@
2
2
  name: handoff
3
3
  description: Compact the current conversation into a handoff document for another agent to pick up.
4
4
  argument-hint: "What will the next session be used for?"
5
+ disable-model-invocation: true
5
6
  ---
6
7
 
7
8
  Write a handoff document summarising the current conversation so a fresh agent can continue the work. Save to the temporary directory of the user's OS - not the current workspace.
8
9
 
9
10
  Include a "suggested skills" section in the document, which suggests skills that the agent should invoke.
10
11
 
11
- Do not duplicate content already captured in other artifacts (PRDs, plans, ADRs, issues, commits, diffs). Reference them by path or URL instead.
12
+ Do not duplicate content already captured in other artifacts (specs, plans, ADRs, issues, commits, diffs). Reference them by path or URL instead.
12
13
 
13
14
  Redact any sensitive information, such as API keys, passwords, or personally identifiable information.
14
15
 
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: i-have-adhd
3
+ description: Shape output for a reader with ADHD. Use this skill whenever responding to ANY user message including coding tasks, debugging, explanations, planning, and casual conversation. Output should lead with concrete next actions, number multi-step work, externalize state across turns, suppress tangents, give specific time estimates, and make wins visible. Trigger even on casual messages and even when the user did not explicitly ask for brevity.
4
+ ---
5
+
6
+ # i-have-adhd
7
+
8
+ The reader has ADHD. Output is not just brief. It is shaped so an ADHD brain can act on it.
9
+
10
+ ## What ADHD changes about reading
11
+
12
+ Five facts drive every rule below:
13
+
14
+ 1. Working memory is small. Anything not on screen is forgotten. Do not ask the reader to "keep in mind X."
15
+ 2. Knowing the answer is not doing the answer. The friction between "got it" and "done it" is where work dies.
16
+ 3. Starting is the hardest step. The first action must be obvious, small, and doable now.
17
+ 4. Time estimates feel uniform. "A bit of work" and "a few hours" register the same. Vague estimates fail.
18
+ 5. Dopamine is scarce. Visible progress matters. Buried wins do not register.
19
+
20
+ ## Rules
21
+
22
+ ### 1. Lead with the next action
23
+
24
+ The first line is something the reader can do. Not context. Not a plan. The action.
25
+
26
+ Bad: "Let's think about this. Your auth flow has a few moving pieces..."
27
+ Good: "Run `npm install jsonwebtoken`, then edit `src/auth.ts:42`."
28
+
29
+ If the answer is a command, path, or snippet, it goes first. Prose comes after, if at all.
30
+
31
+ ### 2. Number multi-step tasks
32
+
33
+ If the work takes more than one step, write a numbered list. Each step is one bounded action. No step contains "and then" twice.
34
+
35
+ Bad: "First open the file, find the function, swap it out, then run the tests."
36
+
37
+ Good:
38
+ ```
39
+ 1. Open `src/auth.ts`
40
+ 2. Replace `verifyToken` (lines 42 to 58) with the snippet below
41
+ 3. Run `npm test -- auth.spec.ts`
42
+ ```
43
+
44
+ ### 3. End with one concrete next action
45
+
46
+ If anything is left open, name ONE thing the reader can do in under two minutes. Even "open the file" counts.
47
+
48
+ Bad: "Hope that helps. Let me know if you want to dig deeper."
49
+ Good: "Next: run `npm test` and paste the first failing line."
50
+
51
+ ### 4. Suppress tangents
52
+
53
+ If a second issue exists, finish the first, then offer the second as a separate question.
54
+
55
+ Bad: "Here's the fix. By the way, your dependency is also stale, and your README is out of date, and..."
56
+ Good: "Here's the fix. Separately: there is also a stale dependency. Want me to handle that next?"
57
+
58
+ ### 5. Restate state every turn
59
+
60
+ The reader cannot hold "we are on step 3 of 5" between messages. Restate it.
61
+
62
+ Bad: "Done. Ready for the next part?"
63
+ Good: "Step 3 of 5 done: schema updated. Next: backfill the new column. Run the script?"
64
+
65
+ ### 6. Give specific time estimates
66
+
67
+ Vague estimates fail. Ballpark in concrete units.
68
+
69
+ Bad: "This will take some work."
70
+ Good: "About 15 minutes if tests already cover this. An afternoon if not."
71
+
72
+ ### 7. Make completed work visible
73
+
74
+ Show what now works, in concrete terms. Do not bury wins in a recap.
75
+
76
+ Bad: "I've made some changes to the auth flow. Among other things..."
77
+ Good: "Login now works with magic links. Try: `npm run dev`, open `/login`."
78
+
79
+ ### 8. Matter-of-fact tone for errors
80
+
81
+ Never use "Uh oh," "Oh no," or "There seems to be a problem." State cause and fix.
82
+
83
+ Bad: "Uh oh, the test is failing. There seems to be an issue..."
84
+ Good: "Test fails at `auth.spec.ts:42`: expected 200, got 401. Cause: missing auth header. Fix: add `Authorization: Bearer ${token}` to the request."
85
+
86
+ ### 9. Cap lists at 5 items
87
+
88
+ If a list grows past five, split into "do now" vs "later," or "must" vs "nice to have." Five items ranked beats ten unranked.
89
+
90
+ ### 10. No preamble, no recap, no closing pleasantries
91
+
92
+ Forbidden openers: "Great question," "Let me...", "I'll...", "Sure!", "Looking at your...", "To answer your question..."
93
+
94
+ Forbidden recaps after a completed task: "I've now done X, Y, and Z, which means..."
95
+
96
+ Forbidden closers: "Let me know if you need anything else," "Hope this helps," "Happy to clarify," "Feel free to ask."
97
+
98
+ Start with the answer. End when the answer is done.
99
+
100
+ ## When to break the rules
101
+
102
+ Override the defaults when:
103
+
104
+ 1. User asks to "explain" or "walk me through." Explain fully. Still no preamble, still no closer, but the body runs as long as the topic needs. Add headers so the reader can skim back.
105
+ 2. Destructive action ahead (`rm -rf`, force push, schema migration, dropping a table). Confirm before acting. Safety wins over brevity.
106
+ 3. Debug spiral. If the last three turns have been "still broken," stop iterating on code. Name the assumption that might be wrong. Ask one diagnostic question.
107
+ 4. Real ambiguity in the request. One short clarifying question beats guessing and rewriting.
108
+
109
+ ## Pre-send check
110
+
111
+ Before sending, delete:
112
+
113
+ 1. The first sentence if it announces what you are about to do.
114
+ 2. The last sentence if it asks "anything else?" or recaps what just happened.
115
+ 3. Any "by the way" sidebar.
116
+ 4. Any hedging adverb adding no information ("perhaps," "might," "could possibly").
117
+
118
+ Then verify: if the reader reads only the first line and the last line, do they know (a) what to do next, and (b) what just happened?
119
+
120
+ If yes, send.
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: implement
3
+ description: "Implement a piece of work based on a spec or set of tickets."
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ Implement the work described by the user in the spec or tickets.
8
+
9
+ Once done, use /code-review to review the work.
10
+
11
+ Commit your work to the current branch.
@@ -39,7 +39,7 @@ Repo name, date, and a compact legend: solid box = module, dashed line = seam, r
39
39
 
40
40
  ## Candidate card
41
41
 
42
- The diagrams carry the weight. Prose is sparse, plain, and uses the glossary terms ([LANGUAGE.md](LANGUAGE.md)) without ceremony.
42
+ The diagrams carry the weight. Prose is sparse, plain, and uses the glossary terms (from the `/codebase-design` skill) without ceremony.
43
43
 
44
44
  Each candidate is one `<article>`:
45
45
 
@@ -105,7 +105,7 @@ One larger card. Candidate name, one sentence on why, anchor link to its card. T
105
105
 
106
106
  ## Tone
107
107
 
108
- Plain English, concise — but the architectural nouns and verbs come straight from [LANGUAGE.md](LANGUAGE.md). Concision is not an excuse to drift.
108
+ Plain English, concise — but the architectural nouns and verbs come straight from the `/codebase-design` skill. Concision is not an excuse to drift.
109
109
 
110
110
  **Use exactly:** module, interface, implementation, depth, deep, shallow, seam, adapter, leverage, locality.
111
111
 
@@ -120,4 +120,4 @@ Plain English, concise — but the architectural nouns and verbs come straight f
120
120
 
121
121
  **Wins bullets** name the gain in glossary terms: *"locality: bugs concentrate in one module"*, *"leverage: one interface, N call sites"*, *"interface shrinks; implementation absorbs the wrappers"*. Don't write *"easier to maintain"* or *"cleaner code"* — those terms aren't in the glossary and don't earn their place.
122
122
 
123
- No hedging, no throat-clearing, no "it's worth noting that…". If a sentence could be a bullet, make it a bullet. If a bullet could be cut, cut it. If a term isn't in [LANGUAGE.md](LANGUAGE.md), reach for one that is before inventing a new one.
123
+ No hedging, no throat-clearing, no "it's worth noting that…". If a sentence could be a bullet, make it a bullet. If a bullet could be cut, cut it. If a term isn't in the `/codebase-design` glossary, reach for one that is before inventing a new one.
@@ -1,38 +1,23 @@
1
1
  ---
2
2
  name: improve-codebase-architecture
3
- description: Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.
3
+ description: Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
4
+ disable-model-invocation: true
4
5
  ---
5
6
 
6
7
  # Improve Codebase Architecture
7
8
 
8
9
  Surface architectural friction and propose **deepening opportunities** — refactors that turn shallow modules into deep ones. The aim is testability and AI-navigability.
9
10
 
10
- ## Glossary
11
+ This command is _informed_ by the project's domain model and built on a shared design vocabulary:
11
12
 
12
- Use these terms exactly in every suggestion. Consistent language is the point — don't drift into "component," "service," "API," or "boundary." Full definitions in [LANGUAGE.md](LANGUAGE.md).
13
-
14
- - **Module** — anything with an interface and an implementation (function, class, package, slice).
15
- - **Interface** — everything a caller must know to use the module: types, invariants, error modes, ordering, config. Not just the type signature.
16
- - **Implementation** — the code inside.
17
- - **Depth** — leverage at the interface: a lot of behaviour behind a small interface. **Deep** = high leverage. **Shallow** = interface nearly as complex as the implementation.
18
- - **Seam** — where an interface lives; a place behaviour can be altered without editing in place. (Use this, not "boundary.")
19
- - **Adapter** — a concrete thing satisfying an interface at a seam.
20
- - **Leverage** — what callers get from depth.
21
- - **Locality** — what maintainers get from depth: change, bugs, knowledge concentrated in one place.
22
-
23
- Key principles (see [LANGUAGE.md](LANGUAGE.md) for the full list):
24
-
25
- - **Deletion test**: imagine deleting the module. If complexity vanishes, it was a pass-through. If complexity reappears across N callers, it was earning its keep.
26
- - **The interface is the test surface.**
27
- - **One adapter = hypothetical seam. Two adapters = real seam.**
28
-
29
- This skill is _informed_ by the project's domain model. The domain language gives names to good seams; ADRs record decisions the skill should not re-litigate.
13
+ - Run the `/codebase-design` skill for the architecture vocabulary (**module**, **interface**, **depth**, **seam**, **adapter**, **leverage**, **locality**) and its principles (the deletion test, "the interface is the test surface", "one adapter = hypothetical seam, two = real"). Use these terms exactly in every suggestion — don't drift into "component," "service," "API," or "boundary."
14
+ - The domain language in `CONTEXT.md` gives names to good seams; ADRs in `docs/adr/` record decisions this command should not re-litigate.
30
15
 
31
16
  ## Process
32
17
 
33
18
  ### 1. Explore
34
19
 
35
- Read the project's domain glossary and any ADRs in the area you're touching first.
20
+ Read the project's domain glossary (`CONTEXT.md`) and any ADRs in the area you're touching first.
36
21
 
37
22
  Then use the Agent tool with `subagent_type=Explore` to walk the codebase. Don't follow rigid heuristics — explore organically and note where you experience friction:
38
23
 
@@ -50,7 +35,7 @@ Write a self-contained HTML file to the OS temp directory so nothing lands in th
50
35
 
51
36
  The report uses **Tailwind via CDN** for layout and styling, and **Mermaid via CDN** for diagrams where a graph/flow/sequence reliably communicates the structure. Mix Mermaid with hand-crafted CSS/SVG visuals — use Mermaid when relationships are graph-shaped (call graphs, dependencies, sequences), and hand-built divs/SVG when you want something more editorial (mass diagrams, cross-sections, collapse animations). Each candidate gets a **before/after visualisation**. Be visual.
52
37
 
53
- For each candidate, the same template as before, but rendered as a card:
38
+ For each candidate, render a card with:
54
39
 
55
40
  - **Files** — which files/modules are involved
56
41
  - **Problem** — why the current architecture is causing friction
@@ -61,7 +46,7 @@ For each candidate, the same template as before, but rendered as a card:
61
46
 
62
47
  End the report with a **Top recommendation** section: which candidate you'd tackle first and why.
63
48
 
64
- **Use CONTEXT.md vocabulary for the domain, and [LANGUAGE.md](LANGUAGE.md) vocabulary for the architecture.** If `CONTEXT.md` defines "Order," talk about "the Order intake module" — not "the FooBarHandler," and not "the Order service."
49
+ **Use CONTEXT.md vocabulary for the domain, and the `/codebase-design` vocabulary for the architecture.** If `CONTEXT.md` defines "Order," talk about "the Order intake module" — not "the FooBarHandler," and not "the Order service."
65
50
 
66
51
  **ADR conflicts**: if a candidate contradicts an existing ADR, only surface it when the friction is real enough to warrant revisiting the ADR. Mark it clearly in the card (e.g. a warning callout: _"contradicts ADR-0007 — but worth reopening because…"_). Don't list every theoretical refactor an ADR forbids.
67
52
 
@@ -71,11 +56,11 @@ Do NOT propose interfaces yet. After the file is written, ask the user: "Which o
71
56
 
72
57
  ### 3. Grilling loop
73
58
 
74
- Once the user picks a candidate, drop into a grilling conversation. Walk the design tree with them — constraints, dependencies, the shape of the deepened module, what sits behind the seam, what tests survive.
59
+ Once the user picks a candidate, run the `/grilling` skill to walk the design tree with them — constraints, dependencies, the shape of the deepened module, what sits behind the seam, what tests survive.
75
60
 
76
- Side effects happen inline as decisions crystallize:
61
+ Side effects happen inline as decisions crystallize — run the `/domain-modeling` skill to keep the domain model current as you go:
77
62
 
78
- - **Naming a deepened module after a concept not in `CONTEXT.md`?** Add the term to `CONTEXT.md` — same discipline as `/grill-with-docs` (see [CONTEXT-FORMAT.md](../grill-with-docs/CONTEXT-FORMAT.md)). Create the file lazily if it doesn't exist.
63
+ - **Naming a deepened module after a concept not in `CONTEXT.md`?** Add the term to `CONTEXT.md`. Create the file lazily if it doesn't exist.
79
64
  - **Sharpening a fuzzy term during the conversation?** Update `CONTEXT.md` right there.
80
- - **User rejects the candidate with a load-bearing reason?** Offer an ADR, framed as: _"Want me to record this as an ADR so future architecture reviews don't re-suggest it?"_ Only offer when the reason would actually be needed by a future explorer to avoid re-suggesting the same thing — skip ephemeral reasons ("not worth it right now") and self-evident ones. See [ADR-FORMAT.md](../grill-with-docs/ADR-FORMAT.md).
81
- - **Want to explore alternative interfaces for the deepened module?** See [INTERFACE-DESIGN.md](INTERFACE-DESIGN.md).
65
+ - **User rejects the candidate with a load-bearing reason?** Offer an ADR, framed as: _"Want me to record this as an ADR so future architecture reviews don't re-suggest it?"_ Only offer when the reason would actually be needed by a future explorer to avoid re-suggesting the same thing — skip ephemeral reasons ("not worth it right now") and self-evident ones.
66
+ - **Want to explore alternative interfaces for the deepened module?** Run the `/codebase-design` skill and use its design-it-twice parallel sub-agent pattern.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: loop-me
3
+ description: Grill me about specs for the workflows I want to build, within this workspace.
4
+ disable-model-invocation: true
5
+ argument-hint: "A workflow to design, or nothing to go find one"
6
+ ---
7
+
8
+ Run a stateful `/grilling` session whose only output is **workflow** specs. Use the grilling discipline — relentless, one question at a time, a recommended answer attached to each — aimed at the vocabulary and goal below. Create, edit, and delete specs as the grilling resolves things.
9
+
10
+ ## The loop lens
11
+
12
+ A **loop** is a recurring pattern in the user's life: their career, their week, their morning, a single repeated activity. Picturing a life as loops within loops reveals how predictable its activities really are — which is what makes them worth **delegating**. Use the lens to find loops worth specifying, and propose ones the user hasn't noticed.
13
+
14
+ A **workflow** is the spec of one loop, made real. You run a workflow on a loop — the loop is its running instantiation. Workflows live in `workflows/*.md` and are the source of truth.
15
+
16
+ ## Vocabulary
17
+
18
+ A shared language, reached for only when a workflow calls for it — never a checklist. **Mandate nothing structural**: a workflow needs no AI, no checkpoint, and no schedule unless the grilling shows it does.
19
+
20
+ - **Trigger** — what fires each run: an **event** (a new email, a new issue) or a **schedule** (every morning). Event-triggering is usually the more efficient.
21
+ - **Checkpoint** — a human-in-the-loop point where the user is asked to verify or decide. Some workflows have none and run autonomously; some use no AI at all.
22
+ - **Push right** — defer the checkpoint as far as it will go. Do maximal work before involving the human, so they are asked once, late, with everything prepared.
23
+ - **Brief** — what a checkpoint presents: a tight, decision-ready summary — what was produced, why, and a link down to the asset itself — never the raw output. The user reads a brief, not a draft. Speed of review is imperative.
24
+
25
+ ## Definition of done
26
+
27
+ A workflow spec is done when an implementer agent could build it without asking a single question. Grill until then; nothing is done while a question remains.
28
+
29
+ ## The workspace
30
+
31
+ - `workflows/*.md` — one spec per workflow.
32
+ - `NOTES.md` — raw notes on the user's world: the tools they use, the channels they process, and their own terminology for both. When it is empty or thin, interview them about their world before specifying anything. Sharpen fuzzy terms into canonical ones as they surface, and record them here.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: prototype
3
- description: Build a throwaway prototype to flesh out a design before committing to it. Routes between two branches — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route. Use when the user wants to prototype, sanity-check a data model or state machine, mock up a UI, explore design options, or says "prototype this", "let me play with it", "try a few designs".
3
+ description: Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
4
4
  ---
5
5
 
6
6
  # Prototype