@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.
- package/.agents/skills/claude-handoff/SKILL.md +18 -0
- package/.agents/skills/code-review/SKILL.md +89 -0
- package/.agents/skills/{improve-codebase-architecture → codebase-design}/DEEPENING.md +1 -1
- package/.agents/skills/{improve-codebase-architecture/INTERFACE-DESIGN.md → codebase-design/DESIGN-IT-TWICE.md} +3 -3
- package/.agents/skills/codebase-design/SKILL.md +114 -0
- package/.agents/skills/design-an-interface/SKILL.md +94 -0
- package/.agents/skills/{diagnose → diagnosing-bugs}/SKILL.md +29 -12
- package/.agents/skills/{grill-with-docs → domain-modeling}/CONTEXT-FORMAT.md +1 -4
- package/.agents/skills/domain-modeling/SKILL.md +74 -0
- package/.agents/skills/fable-mode/SKILL.md +95 -0
- package/.agents/skills/git-guardrails-claude-code/SKILL.md +95 -0
- package/.agents/skills/git-guardrails-claude-code/scripts/block-dangerous-git.sh +25 -0
- package/.agents/skills/grill-me/SKILL.md +7 -0
- package/.agents/skills/grill-with-docs/SKILL.md +3 -86
- package/.agents/skills/grilling/SKILL.md +14 -0
- package/.agents/skills/handoff/SKILL.md +2 -1
- package/.agents/skills/i-have-adhd/SKILL.md +120 -0
- package/.agents/skills/implement/SKILL.md +11 -0
- package/.agents/skills/improve-codebase-architecture/HTML-REPORT.md +3 -3
- package/.agents/skills/improve-codebase-architecture/SKILL.md +13 -28
- package/.agents/skills/loop-me/SKILL.md +32 -0
- package/.agents/skills/prototype/SKILL.md +1 -1
- package/.agents/skills/qa/SKILL.md +130 -0
- package/.agents/skills/request-refactor-plan/SKILL.md +68 -0
- package/.agents/skills/research/SKILL.md +12 -0
- package/.agents/skills/resolving-merge-conflicts/SKILL.md +14 -0
- package/.agents/skills/scaffold-exercises/SKILL.md +106 -0
- package/.agents/skills/setup-matt-pocock-skills/SKILL.md +11 -9
- package/.agents/skills/setup-matt-pocock-skills/domain.md +2 -2
- package/.agents/skills/setup-matt-pocock-skills/issue-tracker-github.md +23 -0
- package/.agents/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +23 -0
- package/.agents/skills/setup-matt-pocock-skills/issue-tracker-local.md +11 -0
- package/.agents/skills/skill-creator/LICENSE.txt +202 -0
- package/.agents/skills/skill-creator/SKILL.md +485 -0
- package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
- package/.agents/skills/skill-creator/agents/comparator.md +202 -0
- package/.agents/skills/skill-creator/agents/grader.md +223 -0
- package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
- package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/.agents/skills/skill-creator/references/schemas.md +430 -0
- package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/.agents/skills/skill-creator/scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/.agents/skills/skill-creator/scripts/__pycache__/run_eval.cpython-314.pyc +0 -0
- package/.agents/skills/skill-creator/scripts/__pycache__/utils.cpython-314.pyc +0 -0
- package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
- package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
- package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
- package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
- package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
- package/.agents/skills/skill-creator/scripts/utils.py +47 -0
- package/.agents/skills/tdd/SKILL.md +17 -90
- package/.agents/skills/tdd/tests.md +16 -0
- package/.agents/skills/teach/GLOSSARY-FORMAT.md +35 -0
- package/.agents/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
- package/.agents/skills/teach/MISSION-FORMAT.md +31 -0
- package/.agents/skills/teach/RESOURCES-FORMAT.md +32 -0
- package/.agents/skills/teach/SKILL.md +140 -0
- package/.agents/skills/{to-prd → to-spec}/SKILL.md +11 -12
- package/.agents/skills/to-tickets/SKILL.md +114 -0
- package/.agents/skills/triage/AGENT-BRIEF.md +40 -1
- package/.agents/skills/triage/OUT-OF-SCOPE.md +5 -1
- package/.agents/skills/triage/SKILL.md +20 -11
- package/.agents/skills/wayfinder/SKILL.md +127 -0
- package/.agents/skills/writing-great-skills/GLOSSARY.md +201 -0
- package/.agents/skills/writing-great-skills/SKILL.md +83 -0
- package/.agents/superpowers-agent +99 -218
- package/.agents/superpowers-bootstrap.md +3 -3
- package/.agents/templates/AGENTS.md.template +11 -34
- package/.agents/templates/SUPERPOWERS.md.template +4 -4
- package/.github/copilot-instructions.md +33 -1
- package/.github/hooks/rtk-rewrite.json +22 -0
- package/AGENTS.md +32 -36
- package/README.md +63 -198
- package/package.json +1 -1
- package/skills/collaboration/brainstorming/SKILL.md +39 -139
- package/skills/collaboration/brainstorming/skill.json +2 -2
- package/skills/collaboration/leveraging-cli-tools/SKILL.md +70 -71
- package/skills/collaboration/leveraging-cli-tools/references/copilot-instructions.md +30 -0
- package/skills/collaboration/leveraging-cli-tools/scripts/setup-ponytail.sh +185 -0
- package/skills/collaboration/leveraging-cli-tools/scripts/setup-rtk.sh +217 -0
- package/skills/collaboration/leveraging-cli-tools/skill.json +1 -1
- package/skills/meta/create-skill-json/SKILL.md +4 -4
- package/skills/meta/create-skill-json/skill.json +1 -1
- package/skills/meta/create-skill-json/test-scenarios.md +1 -1
- package/skills/setup-skills/SKILL.md +18 -11
- package/skills/setup-skills/skill.json +8 -0
- package/.agents/skills/caveman/SKILL.md +0 -49
- package/.agents/skills/improve-codebase-architecture/LANGUAGE.md +0 -53
- package/.agents/skills/karpathy-guidelines/SKILL.md +0 -75
- package/.agents/skills/review/SKILL.md +0 -78
- package/.agents/skills/tdd/deep-modules.md +0 -33
- package/.agents/skills/tdd/interface-design.md +0 -31
- package/.agents/skills/tdd/refactoring.md +0 -10
- package/.agents/skills/to-issues/SKILL.md +0 -83
- package/.agents/skills/zoom-out/SKILL.md +0 -7
- package/skills/architecture/ABOUT.md +0 -20
- package/skills/architecture/preserving-productive-tensions/SKILL.md +0 -146
- package/skills/architecture/preserving-productive-tensions/skill.json +0 -9
- package/skills/collaboration/brainstorming/spec-document-reviewer-prompt.md +0 -50
- package/skills/collaboration/brainstorming/visual-companion.md +0 -277
- package/skills/collaboration/dispatching-parallel-agents/SKILL.md +0 -174
- package/skills/collaboration/dispatching-parallel-agents/skill.json +0 -9
- package/skills/collaboration/executing-plans/SKILL.md +0 -130
- package/skills/collaboration/executing-plans/skill.json +0 -9
- package/skills/collaboration/finishing-a-development-branch/SKILL.md +0 -261
- package/skills/collaboration/finishing-a-development-branch/skill.json +0 -9
- package/skills/collaboration/leveraging-cli-tools/scripts/slim.py +0 -167
- package/skills/collaboration/receiving-code-review/SKILL.md +0 -233
- package/skills/collaboration/receiving-code-review/skill.json +0 -9
- package/skills/collaboration/requesting-code-review/SKILL.md +0 -110
- package/skills/collaboration/requesting-code-review/code-reviewer.md +0 -146
- package/skills/collaboration/requesting-code-review/skill.json +0 -12
- package/skills/collaboration/subagent-driven-development/SKILL.md +0 -255
- package/skills/collaboration/subagent-driven-development/code-quality-reviewer-prompt.md +0 -26
- package/skills/collaboration/subagent-driven-development/implementer-prompt.md +0 -113
- package/skills/collaboration/subagent-driven-development/skill.json +0 -15
- package/skills/collaboration/subagent-driven-development/spec-reviewer-prompt.md +0 -61
- package/skills/collaboration/using-git-worktrees/SKILL.md +0 -366
- package/skills/collaboration/using-git-worktrees/skill.json +0 -9
- package/skills/collaboration/writing-plans/SKILL.md +0 -121
- package/skills/collaboration/writing-plans/plan-document-reviewer-prompt.md +0 -52
- package/skills/collaboration/writing-plans/skill.json +0 -9
- package/skills/debugging/defense-in-depth/SKILL.md +0 -380
- package/skills/debugging/defense-in-depth/skill.json +0 -9
- package/skills/debugging/root-cause-tracing/SKILL.md +0 -361
- package/skills/debugging/root-cause-tracing/find-polluter.sh +0 -63
- package/skills/debugging/root-cause-tracing/skill.json +0 -12
- package/skills/debugging/systematic-debugging/SKILL.md +0 -299
- package/skills/debugging/systematic-debugging/condition-based-waiting-example.ts +0 -158
- package/skills/debugging/systematic-debugging/condition-based-waiting.md +0 -115
- package/skills/debugging/systematic-debugging/defense-in-depth.md +0 -122
- package/skills/debugging/systematic-debugging/find-polluter.sh +0 -63
- package/skills/debugging/systematic-debugging/root-cause-tracing.md +0 -169
- package/skills/debugging/systematic-debugging/skill.json +0 -9
- package/skills/debugging/systematic-debugging/test-academic.md +0 -14
- package/skills/debugging/systematic-debugging/test-pressure-1.md +0 -58
- package/skills/debugging/systematic-debugging/test-pressure-2.md +0 -68
- package/skills/debugging/systematic-debugging/test-pressure-3.md +0 -69
- package/skills/debugging/verification-before-completion/SKILL.md +0 -143
- package/skills/debugging/verification-before-completion/skill.json +0 -9
- package/skills/finding-skills/SKILL.md +0 -101
- package/skills/finding-skills/skill.json +0 -8
- package/skills/meta/create-agents-md/SKILL.md +0 -182
- package/skills/meta/create-agents-md/skill.json +0 -9
- package/skills/meta/creating-prompts/SKILL.md +0 -349
- package/skills/meta/creating-prompts/examples/do-example.md +0 -65
- package/skills/meta/creating-prompts/examples/plan-example.md +0 -75
- package/skills/meta/creating-prompts/examples/refine-example.md +0 -65
- package/skills/meta/creating-prompts/examples/research-example.md +0 -63
- package/skills/meta/creating-prompts/scripts/get-next-number.sh +0 -27
- package/skills/meta/creating-prompts/skill.json +0 -20
- package/skills/meta/creating-prompts/templates/do-template.md +0 -59
- package/skills/meta/creating-prompts/templates/plan-template.md +0 -58
- package/skills/meta/creating-prompts/templates/refine-template.md +0 -54
- package/skills/meta/creating-prompts/templates/research-template.md +0 -56
- package/skills/meta/using-superpowers/SKILL.md +0 -108
- package/skills/meta/using-superpowers/skill.json +0 -5
- package/skills/meta/writing-prompts/SKILL.md +0 -122
- package/skills/meta/writing-prompts/references/platforms.md +0 -114
- package/skills/meta/writing-prompts/skill.json +0 -9
- package/skills/problem-solving/ABOUT.md +0 -40
- package/skills/problem-solving/collision-zone-thinking/SKILL.md +0 -188
- package/skills/problem-solving/collision-zone-thinking/references/historical-examples.md +0 -393
- package/skills/problem-solving/collision-zone-thinking/skill.json +0 -9
- package/skills/problem-solving/inversion-exercise/SKILL.md +0 -174
- package/skills/problem-solving/inversion-exercise/skill.json +0 -9
- package/skills/problem-solving/meta-pattern-recognition/SKILL.md +0 -116
- package/skills/problem-solving/meta-pattern-recognition/skill.json +0 -9
- package/skills/problem-solving/scale-game/SKILL.md +0 -222
- package/skills/problem-solving/scale-game/skill.json +0 -9
- package/skills/problem-solving/simplification-cascades/SKILL.md +0 -113
- package/skills/problem-solving/simplification-cascades/skill.json +0 -9
- package/skills/problem-solving/when-stuck/SKILL.md +0 -69
- package/skills/problem-solving/when-stuck/skill.json +0 -9
- package/skills/research/ABOUT.md +0 -20
- package/skills/research/tracing-knowledge-lineages/SKILL.md +0 -241
- package/skills/research/tracing-knowledge-lineages/skill.json +0 -9
- package/skills/testing/condition-based-waiting/SKILL.md +0 -359
- package/skills/testing/condition-based-waiting/example.ts +0 -158
- package/skills/testing/condition-based-waiting/skill.json +0 -12
- package/skills/testing/test-driven-development/SKILL.md +0 -434
- package/skills/testing/test-driven-development/skill.json +0 -9
- package/skills/testing/testing-anti-patterns/SKILL.md +0 -298
- package/skills/testing/testing-anti-patterns/skill.json +0 -9
- package/skills/testing/verification-before-completion/SKILL.md +0 -246
- package/skills/testing/verification-before-completion/skill.json +0 -10
- package/skills/using-a-skill/SKILL.md +0 -101
- package/skills/using-a-skill/skill.json +0 -8
- /package/.agents/skills/{diagnose → diagnosing-bugs}/scripts/hitl-loop.template.sh +0 -0
- /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
|
|
@@ -1,90 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: grill-with-docs
|
|
3
|
-
description:
|
|
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
|
-
|
|
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 (
|
|
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 (
|
|
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
|
|
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
|
|
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:
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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.
|
|
81
|
-
- **Want to explore alternative interfaces for the deepened module?**
|
|
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
|
|
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
|