opencodekit 0.6.0 → 0.6.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 (77) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/template/.opencode/AGENTS.md +4 -1
  3. package/dist/template/.opencode/command/skill-create.md +3 -3
  4. package/dist/template/.opencode/command/skill-optimize.md +1 -1
  5. package/dist/template/.opencode/opencode.json +493 -535
  6. package/dist/template/.opencode/pickle-thinker.jsonc +11 -0
  7. package/dist/template/.opencode/plugin/skill.ts +275 -0
  8. package/dist/template/.opencode/{skills → skill}/accessibility-audit/SKILL.md +5 -0
  9. package/dist/template/.opencode/{skills → skill}/brainstorming/SKILL.md +2 -2
  10. package/dist/template/.opencode/{skills → skill}/design-system-audit/SKILL.md +5 -0
  11. package/dist/template/.opencode/{skills → skill}/executing-plans/SKILL.md +13 -2
  12. package/dist/template/.opencode/{skills → skill}/frontend-aesthetics/SKILL.md +5 -0
  13. package/dist/template/.opencode/{skills → skill}/mockup-to-code/SKILL.md +5 -0
  14. package/dist/template/.opencode/{skills → skill}/requesting-code-review/SKILL.md +16 -6
  15. package/dist/template/.opencode/{skills → skill}/subagent-driven-development/SKILL.md +38 -17
  16. package/dist/template/.opencode/{skills → skill}/systematic-debugging/SKILL.md +28 -18
  17. package/dist/template/.opencode/{skills → skill}/testing-skills-with-subagents/SKILL.md +1 -1
  18. package/dist/template/.opencode/{skills → skill}/ui-ux-research/SKILL.md +5 -0
  19. package/dist/template/.opencode/{skills → skill}/visual-analysis/SKILL.md +5 -0
  20. package/dist/template/.opencode/{skills → skill}/writing-plans/SKILL.md +3 -3
  21. package/dist/template/.opencode/{skills → skill}/writing-skills/SKILL.md +101 -41
  22. package/package.json +1 -1
  23. package/dist/template/.opencode/plugin/superpowers.ts +0 -271
  24. package/dist/template/.opencode/superpowers/.claude/settings.local.json +0 -141
  25. package/dist/template/.opencode/superpowers/.claude-plugin/marketplace.json +0 -20
  26. package/dist/template/.opencode/superpowers/.claude-plugin/plugin.json +0 -13
  27. package/dist/template/.opencode/superpowers/.codex/INSTALL.md +0 -35
  28. package/dist/template/.opencode/superpowers/.codex/superpowers-bootstrap.md +0 -33
  29. package/dist/template/.opencode/superpowers/.codex/superpowers-codex +0 -267
  30. package/dist/template/.opencode/superpowers/.github/FUNDING.yml +0 -3
  31. package/dist/template/.opencode/superpowers/.opencode/INSTALL.md +0 -135
  32. package/dist/template/.opencode/superpowers/.opencode/plugin/superpowers.js +0 -215
  33. package/dist/template/.opencode/superpowers/LICENSE +0 -21
  34. package/dist/template/.opencode/superpowers/README.md +0 -165
  35. package/dist/template/.opencode/superpowers/RELEASE-NOTES.md +0 -493
  36. package/dist/template/.opencode/superpowers/agents/code-reviewer.md +0 -48
  37. package/dist/template/.opencode/superpowers/commands/brainstorm.md +0 -5
  38. package/dist/template/.opencode/superpowers/commands/execute-plan.md +0 -5
  39. package/dist/template/.opencode/superpowers/commands/write-plan.md +0 -5
  40. package/dist/template/.opencode/superpowers/docs/README.codex.md +0 -153
  41. package/dist/template/.opencode/superpowers/docs/README.opencode.md +0 -234
  42. package/dist/template/.opencode/superpowers/docs/plans/2025-11-22-opencode-support-design.md +0 -294
  43. package/dist/template/.opencode/superpowers/docs/plans/2025-11-22-opencode-support-implementation.md +0 -1095
  44. package/dist/template/.opencode/superpowers/hooks/hooks.json +0 -15
  45. package/dist/template/.opencode/superpowers/hooks/session-start.sh +0 -34
  46. package/dist/template/.opencode/superpowers/lib/skills-core.js +0 -208
  47. package/dist/template/.opencode/superpowers/tests/opencode/run-tests.sh +0 -165
  48. package/dist/template/.opencode/superpowers/tests/opencode/setup.sh +0 -73
  49. package/dist/template/.opencode/superpowers/tests/opencode/test-plugin-loading.sh +0 -81
  50. package/dist/template/.opencode/superpowers/tests/opencode/test-priority.sh +0 -198
  51. package/dist/template/.opencode/superpowers/tests/opencode/test-skills-core.sh +0 -440
  52. package/dist/template/.opencode/superpowers/tests/opencode/test-tools.sh +0 -104
  53. /package/dist/template/.opencode/{skills → skill}/condition-based-waiting/SKILL.md +0 -0
  54. /package/dist/template/.opencode/{skills → skill}/condition-based-waiting/example.ts +0 -0
  55. /package/dist/template/.opencode/{skills → skill}/defense-in-depth/SKILL.md +0 -0
  56. /package/dist/template/.opencode/{skills → skill}/dispatching-parallel-agents/SKILL.md +0 -0
  57. /package/dist/template/.opencode/{skills → skill}/finishing-a-development-branch/SKILL.md +0 -0
  58. /package/dist/template/.opencode/{skills → skill}/gemini-large-context/SKILL.md +0 -0
  59. /package/dist/template/.opencode/{skills → skill}/receiving-code-review/SKILL.md +0 -0
  60. /package/dist/template/.opencode/{skills/requesting-code-review/code-reviewer.md → skill/requesting-code-review/review.md} +0 -0
  61. /package/dist/template/.opencode/{skills → skill}/root-cause-tracing/SKILL.md +0 -0
  62. /package/dist/template/.opencode/{skills → skill}/root-cause-tracing/find-polluter.sh +0 -0
  63. /package/dist/template/.opencode/{skills → skill}/sharing-skills/SKILL.md +0 -0
  64. /package/dist/template/.opencode/{skills → skill}/systematic-debugging/CREATION-LOG.md +0 -0
  65. /package/dist/template/.opencode/{skills → skill}/systematic-debugging/test-academic.md +0 -0
  66. /package/dist/template/.opencode/{skills → skill}/systematic-debugging/test-pressure-1.md +0 -0
  67. /package/dist/template/.opencode/{skills → skill}/systematic-debugging/test-pressure-2.md +0 -0
  68. /package/dist/template/.opencode/{skills → skill}/systematic-debugging/test-pressure-3.md +0 -0
  69. /package/dist/template/.opencode/{skills → skill}/test-driven-development/SKILL.md +0 -0
  70. /package/dist/template/.opencode/{skills → skill}/testing-anti-patterns/SKILL.md +0 -0
  71. /package/dist/template/.opencode/{skills → skill}/testing-skills-with-subagents/examples/CLAUDE_MD_TESTING.md +0 -0
  72. /package/dist/template/.opencode/{skills → skill}/using-git-worktrees/SKILL.md +0 -0
  73. /package/dist/template/.opencode/{skills → skill}/using-superpowers/SKILL.md +0 -0
  74. /package/dist/template/.opencode/{skills → skill}/verification-before-completion/SKILL.md +0 -0
  75. /package/dist/template/.opencode/{skills → skill}/writing-skills/anthropic-best-practices.md +0 -0
  76. /package/dist/template/.opencode/{skills → skill}/writing-skills/graphviz-conventions.dot +0 -0
  77. /package/dist/template/.opencode/{skills → skill}/writing-skills/persuasion-principles.md +0 -0
@@ -0,0 +1,11 @@
1
+ {
2
+ // Ultrathink config for pickle-thinker
3
+ // mode: "lite" keeps the original behavior (prefix user prompts only).
4
+ // mode: "tool" adds an extra user turn after each tool result to force deeper analysis.
5
+ // Note: tool mode increases turns/tokens and may impact subscription limits.
6
+ "enabled": true,
7
+ // "lite" | "tool"
8
+ "mode": "tool",
9
+ // Change the thinking keyword if you like
10
+ "prefix": "Ultrathink: "
11
+ }
@@ -0,0 +1,275 @@
1
+ /**
2
+ * Skills plugin for OpenCode.ai
3
+ *
4
+ * Provides custom tools for loading and discovering skills.
5
+ * Skills are loaded on-demand via use_skill tool, not auto-injected.
6
+ *
7
+ * OpenCode Official Skill Locations:
8
+ * - Project skills: .opencode/skill/
9
+ * - Personal skills: ~/.opencode/skill/
10
+ */
11
+
12
+ import fs from "fs";
13
+ import os from "os";
14
+ import path from "path";
15
+ import { type Plugin, tool } from "@opencode-ai/plugin";
16
+
17
+ interface SkillResolution {
18
+ skillFile: string;
19
+ sourceType: "project" | "personal";
20
+ skillPath: string;
21
+ }
22
+
23
+ interface SkillInfo {
24
+ path: string;
25
+ skillFile: string;
26
+ name: string;
27
+ description: string;
28
+ sourceType: "project" | "personal";
29
+ }
30
+
31
+ interface Frontmatter {
32
+ name: string;
33
+ description: string;
34
+ }
35
+
36
+ // ============================================
37
+ // Skills Core Functions
38
+ // ============================================
39
+
40
+ function extractFrontmatter(filePath: string): Frontmatter {
41
+ try {
42
+ const content = fs.readFileSync(filePath, "utf8");
43
+ const lines = content.split("\n");
44
+
45
+ let inFrontmatter = false;
46
+ let name = "";
47
+ let description = "";
48
+
49
+ for (const line of lines) {
50
+ if (line.trim() === "---") {
51
+ if (inFrontmatter) break;
52
+ inFrontmatter = true;
53
+ continue;
54
+ }
55
+
56
+ if (inFrontmatter) {
57
+ const match = line.match(/^(\w+):\s*(.*)$/);
58
+ if (match) {
59
+ const [, key, value] = match;
60
+ if (key === "name") name = value.trim();
61
+ if (key === "description") description = value.trim();
62
+ }
63
+ }
64
+ }
65
+
66
+ return { name, description };
67
+ } catch {
68
+ return { name: "", description: "" };
69
+ }
70
+ }
71
+
72
+ function findSkillsInDir(
73
+ dir: string,
74
+ sourceType: "project" | "personal",
75
+ maxDepth = 3,
76
+ ): SkillInfo[] {
77
+ const skills: SkillInfo[] = [];
78
+
79
+ if (!fs.existsSync(dir)) return skills;
80
+
81
+ function recurse(currentDir: string, depth: number) {
82
+ if (depth > maxDepth) return;
83
+
84
+ const entries = fs.readdirSync(currentDir, { withFileTypes: true });
85
+
86
+ for (const entry of entries) {
87
+ const fullPath = path.join(currentDir, entry.name);
88
+
89
+ if (entry.isDirectory()) {
90
+ const skillFile = path.join(fullPath, "SKILL.md");
91
+ if (fs.existsSync(skillFile)) {
92
+ const { name, description } = extractFrontmatter(skillFile);
93
+ skills.push({
94
+ path: fullPath,
95
+ skillFile,
96
+ name: name || entry.name,
97
+ description: description || "",
98
+ sourceType,
99
+ });
100
+ }
101
+ recurse(fullPath, depth + 1);
102
+ }
103
+ }
104
+ }
105
+
106
+ recurse(dir, 0);
107
+ return skills;
108
+ }
109
+
110
+ function stripFrontmatter(content: string): string {
111
+ const lines = content.split("\n");
112
+ let inFrontmatter = false;
113
+ let frontmatterEnded = false;
114
+ const contentLines: string[] = [];
115
+
116
+ for (const line of lines) {
117
+ if (line.trim() === "---") {
118
+ if (inFrontmatter) {
119
+ frontmatterEnded = true;
120
+ continue;
121
+ }
122
+ inFrontmatter = true;
123
+ continue;
124
+ }
125
+
126
+ if (frontmatterEnded || !inFrontmatter) {
127
+ contentLines.push(line);
128
+ }
129
+ }
130
+
131
+ return contentLines.join("\n").trim();
132
+ }
133
+
134
+ // ============================================
135
+ // Plugin Export
136
+ // ============================================
137
+
138
+ export const SkillsPlugin: Plugin = async ({ client, directory }) => {
139
+ const homeDir = os.homedir();
140
+ const projectSkillsDir = path.join(directory, ".opencode/skill");
141
+ const personalSkillsDir = path.join(homeDir, ".opencode/skill");
142
+
143
+ return {
144
+ tool: {
145
+ use_skill: tool({
146
+ description:
147
+ "Load and read a specific skill to guide your work. Skills contain proven workflows, mandatory processes, and expert techniques.",
148
+ args: {
149
+ skill_name: tool.schema
150
+ .string()
151
+ .describe(
152
+ 'Name of skill to load (e.g., "brainstorming", "my-custom-skill", or "project:my-skill")',
153
+ ),
154
+ },
155
+ execute: async (
156
+ args: { skill_name: string },
157
+ context: { sessionID: string },
158
+ ) => {
159
+ const { skill_name } = args;
160
+
161
+ // Resolve with priority: project > personal
162
+ const forceProject = skill_name.startsWith("project:");
163
+ const actualSkillName = forceProject
164
+ ? skill_name.replace(/^project:/, "")
165
+ : skill_name;
166
+
167
+ let resolved: SkillResolution | null = null;
168
+
169
+ // Try project skills first
170
+ if (forceProject) {
171
+ const projectSkillFile = path.join(
172
+ projectSkillsDir,
173
+ actualSkillName,
174
+ "SKILL.md",
175
+ );
176
+ if (fs.existsSync(projectSkillFile)) {
177
+ resolved = {
178
+ skillFile: projectSkillFile,
179
+ sourceType: "project",
180
+ skillPath: actualSkillName,
181
+ };
182
+ }
183
+ }
184
+
185
+ // Fall back to personal resolution
186
+ if (!resolved && !forceProject) {
187
+ const personalSkillFile = path.join(
188
+ personalSkillsDir,
189
+ skill_name,
190
+ "SKILL.md",
191
+ );
192
+ if (fs.existsSync(personalSkillFile)) {
193
+ resolved = {
194
+ skillFile: personalSkillFile,
195
+ sourceType: "personal",
196
+ skillPath: skill_name,
197
+ };
198
+ }
199
+ }
200
+
201
+ if (!resolved) {
202
+ return `Error: Skill "${skill_name}" not found.\n\nRun find_skills to see available skills.`;
203
+ }
204
+
205
+ const fullContent = fs.readFileSync(resolved.skillFile, "utf8");
206
+ const { name, description } = extractFrontmatter(resolved.skillFile);
207
+ const content = stripFrontmatter(fullContent);
208
+ const skillDirectory = path.dirname(resolved.skillFile);
209
+
210
+ const skillHeader = `# ${name || skill_name}
211
+ # ${description || ""}
212
+ # Supporting tools and docs are in ${skillDirectory}
213
+ # ============================================`;
214
+
215
+ // Insert as user message with noReply for persistence across compaction
216
+ try {
217
+ await client.session.prompt({
218
+ path: { id: context.sessionID },
219
+ body: {
220
+ noReply: true,
221
+ parts: [
222
+ {
223
+ type: "text",
224
+ text: `Loading skill: ${name || skill_name}`,
225
+ },
226
+ { type: "text", text: `${skillHeader}\n\n${content}` },
227
+ ],
228
+ },
229
+ });
230
+ } catch {
231
+ // Fallback: return content directly if message insertion fails
232
+ return `${skillHeader}\n\n${content}`;
233
+ }
234
+
235
+ return `Launching skill: ${name || skill_name}`;
236
+ },
237
+ }),
238
+
239
+ find_skills: tool({
240
+ description:
241
+ "List all available skills in project and personal skill libraries.",
242
+ args: {},
243
+ execute: async () => {
244
+ const projectSkills = findSkillsInDir(projectSkillsDir, "project", 3);
245
+ const personalSkills = findSkillsInDir(
246
+ personalSkillsDir,
247
+ "personal",
248
+ 3,
249
+ );
250
+
251
+ const allSkills = [...projectSkills, ...personalSkills];
252
+
253
+ if (allSkills.length === 0) {
254
+ return `No skills found. Add project skills to .opencode/skill/ or personal skills to ~/.opencode/skill/`;
255
+ }
256
+
257
+ let output = "Available skills:\n\n";
258
+
259
+ for (const skill of allSkills) {
260
+ const namespace = skill.sourceType === "project" ? "project:" : "";
261
+ const skillName = skill.name || path.basename(skill.path);
262
+
263
+ output += `${namespace}${skillName}\n`;
264
+ if (skill.description) {
265
+ output += ` ${skill.description}\n`;
266
+ }
267
+ output += ` Directory: ${skill.path}\n\n`;
268
+ }
269
+
270
+ return output;
271
+ },
272
+ }),
273
+ },
274
+ };
275
+ };
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: accessibility-audit
3
+ description: Use when auditing UI components or pages for accessibility compliance, checking WCAG conformance, identifying keyboard navigation issues, color contrast problems, and pre-launch accessibility verification
4
+ ---
5
+
1
6
  # Accessibility Audit Skill
2
7
 
3
8
  Audit UI accessibility against WCAG 2.1/2.2 guidelines.
@@ -46,8 +46,8 @@ Start by understanding the current project context, then ask questions one at a
46
46
  **Implementation (if continuing):**
47
47
 
48
48
  - Ask: "Ready to set up for implementation?"
49
- - Use superpowers:using-git-worktrees to create isolated workspace
50
- - Use superpowers:writing-plans to create detailed implementation plan
49
+ - Use use_skill("using-git-worktrees") to create isolated workspace
50
+ - Use use_skill("writing-plans") to create detailed implementation plan
51
51
 
52
52
  ## Key Principles
53
53
 
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: design-system-audit
3
+ description: Use when auditing existing design systems for consistency, documenting undocumented design tokens, identifying design debt, preparing for design system refactoring, or comparing implementation vs design specs
4
+ ---
5
+
1
6
  # Design System Audit Skill
2
7
 
3
8
  Audit, document, and improve design systems.
@@ -16,28 +16,35 @@ Load plan, review critically, execute tasks in batches, report for review betwee
16
16
  ## The Process
17
17
 
18
18
  ### Step 1: Load and Review Plan
19
+
19
20
  1. Read plan file
20
21
  2. Review critically - identify any questions or concerns about the plan
21
22
  3. If concerns: Raise them with your human partner before starting
22
23
  4. If no concerns: Create TodoWrite and proceed
23
24
 
24
25
  ### Step 2: Execute Batch
26
+
25
27
  **Default: First 3 tasks**
26
28
 
27
29
  For each task:
30
+
28
31
  1. Mark as in_progress
29
32
  2. Follow each step exactly (plan has bite-sized steps)
30
33
  3. Run verifications as specified
31
34
  4. Mark as completed
32
35
 
33
36
  ### Step 3: Report
37
+
34
38
  When batch complete:
39
+
35
40
  - Show what was implemented
36
41
  - Show verification output
37
42
  - Say: "Ready for feedback."
38
43
 
39
44
  ### Step 4: Continue
45
+
40
46
  Based on feedback:
47
+
41
48
  - Apply changes if needed
42
49
  - Execute next batch
43
50
  - Repeat until complete
@@ -45,13 +52,15 @@ Based on feedback:
45
52
  ### Step 5: Complete Development
46
53
 
47
54
  After all tasks complete and verified:
48
- - Announce: "I'm using the finishing-a-development-branch skill to complete this work."
49
- - **REQUIRED SUB-SKILL:** Use superpowers:finishing-a-development-branch
55
+
56
+ - Announce: "I'm using finishing-a-development-branch skill to complete this work."
57
+ - **REQUIRED SUB-SKILL:** Use use_skill("finishing-a-development-branch")
50
58
  - Follow that skill to verify tests, present options, execute choice
51
59
 
52
60
  ## When to Stop and Ask for Help
53
61
 
54
62
  **STOP executing immediately when:**
63
+
55
64
  - Hit a blocker mid-batch (missing dependency, test fails, instruction unclear)
56
65
  - Plan has critical gaps preventing starting
57
66
  - You don't understand an instruction
@@ -62,12 +71,14 @@ After all tasks complete and verified:
62
71
  ## When to Revisit Earlier Steps
63
72
 
64
73
  **Return to Review (Step 1) when:**
74
+
65
75
  - Partner updates the plan based on your feedback
66
76
  - Fundamental approach needs rethinking
67
77
 
68
78
  **Don't force through blockers** - stop and ask.
69
79
 
70
80
  ## Remember
81
+
71
82
  - Review plan critically first
72
83
  - Follow plan steps exactly
73
84
  - Don't skip verifications
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: frontend-aesthetics
3
+ description: Use when building landing pages, dashboards, forms, or any frontend generation task where you need to prevent generic "AI slop" and create distinctive, intentional designs
4
+ ---
5
+
1
6
  # Frontend Aesthetics Skill
2
7
 
3
8
  Prevent generic "AI slop" frontends. Create distinctive, intentional designs.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: mockup-to-code
3
+ description: Use when converting UI mockups, screenshots, Figma/Sketch designs, wireframes, or building component libraries from design systems into production-ready code
4
+ ---
5
+
1
6
  # Mockup to Code Skill
2
7
 
3
8
  Convert UI mockups, screenshots, and designs into production-ready code.
@@ -1,22 +1,24 @@
1
1
  ---
2
2
  name: requesting-code-review
3
- description: Use when completing tasks, implementing major features, or before merging to verify work meets requirements - dispatches superpowers:code-reviewer subagent to review implementation against plan or requirements before proceeding
3
+ description: Use when completing tasks, implementing major features, or before merging to verify work meets requirements - dispatches review subagent to review implementation against plan or requirements before proceeding
4
4
  ---
5
5
 
6
6
  # Requesting Code Review
7
7
 
8
- Dispatch superpowers:code-reviewer subagent to catch issues before they cascade.
8
+ Dispatch review subagent to catch issues before they cascade.
9
9
 
10
10
  **Core principle:** Review early, review often.
11
11
 
12
12
  ## When to Request Review
13
13
 
14
14
  **Mandatory:**
15
+
15
16
  - After each task in subagent-driven development
16
17
  - After completing major feature
17
18
  - Before merge to main
18
19
 
19
20
  **Optional but valuable:**
21
+
20
22
  - When stuck (fresh perspective)
21
23
  - Before refactoring (baseline check)
22
24
  - After fixing complex bug
@@ -24,16 +26,18 @@ Dispatch superpowers:code-reviewer subagent to catch issues before they cascade.
24
26
  ## How to Request
25
27
 
26
28
  **1. Get git SHAs:**
29
+
27
30
  ```bash
28
31
  BASE_SHA=$(git rev-parse HEAD~1) # or origin/main
29
32
  HEAD_SHA=$(git rev-parse HEAD)
30
33
  ```
31
34
 
32
- **2. Dispatch code-reviewer subagent:**
35
+ **2. Dispatch review subagent:**
33
36
 
34
- Use Task tool with superpowers:code-reviewer type, fill template at `code-reviewer.md`
37
+ Use Task tool with review agent type, fill template at `review.md`
35
38
 
36
39
  **Placeholders:**
40
+
37
41
  - `{WHAT_WAS_IMPLEMENTED}` - What you just built
38
42
  - `{PLAN_OR_REQUIREMENTS}` - What it should do
39
43
  - `{BASE_SHA}` - Starting commit
@@ -41,6 +45,7 @@ Use Task tool with superpowers:code-reviewer type, fill template at `code-review
41
45
  - `{DESCRIPTION}` - Brief summary
42
46
 
43
47
  **3. Act on feedback:**
48
+
44
49
  - Fix Critical issues immediately
45
50
  - Fix Important issues before proceeding
46
51
  - Note Minor issues for later
@@ -56,7 +61,7 @@ You: Let me request code review before proceeding.
56
61
  BASE_SHA=$(git log --oneline | grep "Task 1" | head -1 | awk '{print $1}')
57
62
  HEAD_SHA=$(git rev-parse HEAD)
58
63
 
59
- [Dispatch superpowers:code-reviewer subagent]
64
+ [Dispatch review subagent]
60
65
  WHAT_WAS_IMPLEMENTED: Verification and repair functions for conversation index
61
66
  PLAN_OR_REQUIREMENTS: Task 2 from docs/plans/deployment-plan.md
62
67
  BASE_SHA: a7981ec
@@ -77,29 +82,34 @@ You: [Fix progress indicators]
77
82
  ## Integration with Workflows
78
83
 
79
84
  **Subagent-Driven Development:**
85
+
80
86
  - Review after EACH task
81
87
  - Catch issues before they compound
82
88
  - Fix before moving to next task
83
89
 
84
90
  **Executing Plans:**
91
+
85
92
  - Review after each batch (3 tasks)
86
93
  - Get feedback, apply, continue
87
94
 
88
95
  **Ad-Hoc Development:**
96
+
89
97
  - Review before merge
90
98
  - Review when stuck
91
99
 
92
100
  ## Red Flags
93
101
 
94
102
  **Never:**
103
+
95
104
  - Skip review because "it's simple"
96
105
  - Ignore Critical issues
97
106
  - Proceed with unfixed Important issues
98
107
  - Argue with valid technical feedback
99
108
 
100
109
  **If reviewer wrong:**
110
+
101
111
  - Push back with technical reasoning
102
112
  - Show code/tests that prove it works
103
113
  - Request clarification
104
114
 
105
- See template at: requesting-code-review/code-reviewer.md
115
+ See template at: requesting-code-review/review.md
@@ -12,17 +12,20 @@ Execute plan by dispatching fresh subagent per task, with code review after each
12
12
  ## Overview
13
13
 
14
14
  **vs. Executing Plans (parallel session):**
15
+
15
16
  - Same session (no context switch)
16
17
  - Fresh subagent per task (no context pollution)
17
18
  - Code review after each task (catch issues early)
18
19
  - Faster iteration (no human-in-loop between tasks)
19
20
 
20
21
  **When to use:**
22
+
21
23
  - Staying in this session
22
24
  - Tasks are mostly independent
23
25
  - Want continuous progress with quality gates
24
26
 
25
27
  **When NOT to use:**
28
+
26
29
  - Need to review plan first (use executing-plans)
27
30
  - Tasks are tightly coupled (manual execution better)
28
31
  - Plan needs revision (brainstorm first)
@@ -38,6 +41,7 @@ Read plan file, create TodoWrite with all tasks.
38
41
  For each task:
39
42
 
40
43
  **Dispatch fresh subagent:**
44
+
41
45
  ```
42
46
  Task tool (general-purpose):
43
47
  description: "Implement Task N: [task name]"
@@ -60,16 +64,16 @@ Task tool (general-purpose):
60
64
 
61
65
  ### 3. Review Subagent's Work
62
66
 
63
- **Dispatch code-reviewer subagent:**
64
- ```
65
- Task tool (superpowers:code-reviewer):
66
- Use template at requesting-code-review/code-reviewer.md
67
-
68
- WHAT_WAS_IMPLEMENTED: [from subagent's report]
69
- PLAN_OR_REQUIREMENTS: Task N from [plan-file]
70
- BASE_SHA: [commit before task]
71
- HEAD_SHA: [current commit]
72
- DESCRIPTION: [task summary]
67
+ **Dispatch review subagent:**
68
+
69
+ Use template at requesting-code-review/review.md
70
+
71
+ WHAT_WAS_IMPLEMENTED: [from subagent's report]
72
+ PLAN_OR_REQUIREMENTS: Task N from [plan-file]
73
+ BASE_SHA: [commit before task]
74
+ HEAD_SHA: [current commit]
75
+ DESCRIPTION: [task summary]
76
+
73
77
  ```
74
78
 
75
79
  **Code reviewer returns:** Strengths, Issues (Critical/Important/Minor), Assessment
@@ -77,13 +81,17 @@ Task tool (superpowers:code-reviewer):
77
81
  ### 4. Apply Review Feedback
78
82
 
79
83
  **If issues found:**
84
+
80
85
  - Fix Critical issues immediately
81
86
  - Fix Important issues before next task
82
87
  - Note Minor issues
83
88
 
84
89
  **Dispatch follow-up subagent if needed:**
90
+
85
91
  ```
92
+
86
93
  "Fix issues from code review: [list issues]"
94
+
87
95
  ```
88
96
 
89
97
  ### 5. Mark Complete, Next Task
@@ -94,7 +102,8 @@ Task tool (superpowers:code-reviewer):
94
102
 
95
103
  ### 6. Final Review
96
104
 
97
- After all tasks complete, dispatch final code-reviewer:
105
+ After all tasks complete, dispatch final review:
106
+
98
107
  - Reviews entire implementation
99
108
  - Checks all plan requirements met
100
109
  - Validates overall architecture
@@ -102,13 +111,15 @@ After all tasks complete, dispatch final code-reviewer:
102
111
  ### 7. Complete Development
103
112
 
104
113
  After final review passes:
105
- - Announce: "I'm using the finishing-a-development-branch skill to complete this work."
106
- - **REQUIRED SUB-SKILL:** Use superpowers:finishing-a-development-branch
114
+
115
+ - Announce: "I'm using finishing-a-development-branch skill to complete this work."
116
+ - **REQUIRED SUB-SKILL:** Use use_skill("finishing-a-development-branch")
107
117
  - Follow that skill to verify tests, present options, execute choice
108
118
 
109
119
  ## Example Workflow
110
120
 
111
121
  ```
122
+
112
123
  You: I'm using Subagent-Driven Development to execute this plan.
113
124
 
114
125
  [Load plan, create TodoWrite]
@@ -118,7 +129,7 @@ Task 1: Hook installation script
118
129
  [Dispatch implementation subagent]
119
130
  Subagent: Implemented install-hook with tests, 5/5 passing
120
131
 
121
- [Get git SHAs, dispatch code-reviewer]
132
+ [Get git SHAs, dispatch review]
122
133
  Reviewer: Strengths: Good test coverage. Issues: None. Ready.
123
134
 
124
135
  [Mark Task 1 complete]
@@ -128,7 +139,7 @@ Task 2: Recovery modes
128
139
  [Dispatch implementation subagent]
129
140
  Subagent: Added verify/repair, 8/8 tests passing
130
141
 
131
- [Dispatch code-reviewer]
142
+ [Dispatch review]
132
143
  Reviewer: Strengths: Solid. Issues (Important): Missing progress reporting
133
144
 
134
145
  [Dispatch fix subagent]
@@ -139,51 +150,61 @@ Fix subagent: Added progress every 100 conversations
139
150
  ...
140
151
 
141
152
  [After all tasks]
142
- [Dispatch final code-reviewer]
153
+ [Dispatch final review]
143
154
  Final reviewer: All requirements met, ready to merge
144
155
 
145
156
  Done!
157
+
146
158
  ```
147
159
 
148
160
  ## Advantages
149
161
 
150
162
  **vs. Manual execution:**
163
+
151
164
  - Subagents follow TDD naturally
152
165
  - Fresh context per task (no confusion)
153
166
  - Parallel-safe (subagents don't interfere)
154
167
 
155
168
  **vs. Executing Plans:**
169
+
156
170
  - Same session (no handoff)
157
171
  - Continuous progress (no waiting)
158
172
  - Review checkpoints automatic
159
173
 
160
174
  **Cost:**
175
+
161
176
  - More subagent invocations
162
177
  - But catches issues early (cheaper than debugging later)
163
178
 
164
179
  ## Red Flags
165
180
 
166
181
  **Never:**
182
+
167
183
  - Skip code review between tasks
168
184
  - Proceed with unfixed Critical issues
169
185
  - Dispatch multiple implementation subagents in parallel (conflicts)
170
186
  - Implement without reading plan task
171
187
 
172
188
  **If subagent fails task:**
189
+
173
190
  - Dispatch fix subagent with specific instructions
174
191
  - Don't try to fix manually (context pollution)
175
192
 
176
193
  ## Integration
177
194
 
178
195
  **Required workflow skills:**
196
+
179
197
  - **writing-plans** - REQUIRED: Creates the plan that this skill executes
180
198
  - **requesting-code-review** - REQUIRED: Review after each task (see Step 3)
181
199
  - **finishing-a-development-branch** - REQUIRED: Complete development after all tasks (see Step 7)
182
200
 
183
201
  **Subagents must use:**
202
+
184
203
  - **test-driven-development** - Subagents follow TDD for each task
185
204
 
186
205
  **Alternative workflow:**
206
+
187
207
  - **executing-plans** - Use for parallel session instead of same-session execution
188
208
 
189
- See code-reviewer template: requesting-code-review/code-reviewer.md
209
+ See review template: requesting-code-review/review.md
210
+ ```