mindforge-cc 11.5.1 → 11.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/.agent/mindforge/skill-tdd.md +53 -0
  2. package/.agent/mindforge/skills-index.md +118 -0
  3. package/.agent/mindforge/systematic-debug.md +60 -0
  4. package/.agent/mindforge/wf-catalog.md +37 -0
  5. package/.agent/mindforge/wf-code-audit.md +31 -0
  6. package/.agent/mindforge/wf-competitive-analysis.md +31 -0
  7. package/.agent/mindforge/wf-deep-research.md +32 -0
  8. package/.agent/mindforge/wf-feature-planner.md +31 -0
  9. package/.agent/mindforge/wf-incident-response.md +31 -0
  10. package/.agent/mindforge/wf-onboard-codebase.md +31 -0
  11. package/.agent/mindforge/wf-perf-optimize.md +31 -0
  12. package/.agent/mindforge/wf-pr-review.md +31 -0
  13. package/.agent/mindforge/wf-refactor-plan.md +31 -0
  14. package/.agent/mindforge/wf-release-prep.md +31 -0
  15. package/.agent/mindforge/wf-tdd-sprint.md +31 -0
  16. package/.agent/mindforge/wf-tech-evaluation.md +31 -0
  17. package/.agent/skills/1password-skill/SKILL.md +156 -0
  18. package/.agent/skills/1password-skill/references/cli-examples.md +31 -0
  19. package/.agent/skills/1password-skill/references/get-started.md +21 -0
  20. package/.agent/skills/article-illustrator/SKILL.md +199 -0
  21. package/.agent/skills/article-illustrator/references/prompt-construction.md +426 -0
  22. package/.agent/skills/article-illustrator/references/style-presets.md +80 -0
  23. package/.agent/skills/article-illustrator/references/styles.md +224 -0
  24. package/.agent/skills/article-illustrator/references/usage.md +50 -0
  25. package/.agent/skills/article-illustrator/references/workflow.md +332 -0
  26. package/.agent/skills/arxiv/SKILL.md +275 -0
  27. package/.agent/skills/blogwatcher/SKILL.md +130 -0
  28. package/.agent/skills/code-wiki/SKILL.md +438 -0
  29. package/.agent/skills/code-wiki/templates/README.md +31 -0
  30. package/.agent/skills/code-wiki/templates/architecture.md +30 -0
  31. package/.agent/skills/code-wiki/templates/getting-started.md +47 -0
  32. package/.agent/skills/code-wiki/templates/module.md +38 -0
  33. package/.agent/skills/codebase-inspection/SKILL.md +109 -0
  34. package/.agent/skills/comic-creator/SKILL.md +240 -0
  35. package/.agent/skills/comic-creator/references/analysis-framework.md +176 -0
  36. package/.agent/skills/comic-creator/references/auto-selection.md +71 -0
  37. package/.agent/skills/comic-creator/references/base-prompt.md +98 -0
  38. package/.agent/skills/comic-creator/references/character-template.md +180 -0
  39. package/.agent/skills/comic-creator/references/ohmsha-guide.md +85 -0
  40. package/.agent/skills/comic-creator/references/partial-workflows.md +106 -0
  41. package/.agent/skills/comic-creator/references/storyboard-template.md +143 -0
  42. package/.agent/skills/comic-creator/references/workflow.md +401 -0
  43. package/.agent/skills/concept-diagrams/SKILL.md +355 -0
  44. package/.agent/skills/concept-diagrams/references/dashboard-patterns.md +43 -0
  45. package/.agent/skills/concept-diagrams/references/infrastructure-patterns.md +144 -0
  46. package/.agent/skills/concept-diagrams/references/physical-shape-cookbook.md +42 -0
  47. package/.agent/skills/creative-ideation/SKILL.md +144 -0
  48. package/.agent/skills/creative-ideation/references/full-prompt-library.md +110 -0
  49. package/.agent/skills/devops-cli/SKILL.md +149 -0
  50. package/.agent/skills/devops-cli/references/app-discovery.md +112 -0
  51. package/.agent/skills/devops-cli/references/authentication.md +59 -0
  52. package/.agent/skills/devops-cli/references/cli-reference.md +104 -0
  53. package/.agent/skills/devops-cli/references/running-apps.md +171 -0
  54. package/.agent/skills/devops-watchers/SKILL.md +103 -0
  55. package/.agent/skills/docker-management/SKILL.md +273 -0
  56. package/.agent/skills/domain-intel/SKILL.md +96 -0
  57. package/.agent/skills/duckduckgo-search/SKILL.md +230 -0
  58. package/.agent/skills/github-auth/SKILL.md +240 -0
  59. package/.agent/skills/github-code-review/SKILL.md +474 -0
  60. package/.agent/skills/github-code-review/references/review-output-template.md +74 -0
  61. package/.agent/skills/github-issues/SKILL.md +363 -0
  62. package/.agent/skills/github-issues/templates/bug-report.md +35 -0
  63. package/.agent/skills/github-issues/templates/feature-request.md +31 -0
  64. package/.agent/skills/github-pr-workflow/SKILL.md +360 -0
  65. package/.agent/skills/github-pr-workflow/references/ci-troubleshooting.md +183 -0
  66. package/.agent/skills/github-pr-workflow/references/conventional-commits.md +71 -0
  67. package/.agent/skills/github-pr-workflow/templates/pr-body-bugfix.md +35 -0
  68. package/.agent/skills/github-pr-workflow/templates/pr-body-feature.md +33 -0
  69. package/.agent/skills/github-repo-management/SKILL.md +509 -0
  70. package/.agent/skills/github-repo-management/references/github-api-cheatsheet.md +161 -0
  71. package/.agent/skills/godmode/SKILL.md +396 -0
  72. package/.agent/skills/godmode/references/jailbreak-templates.md +128 -0
  73. package/.agent/skills/godmode/references/refusal-detection.md +142 -0
  74. package/.agent/skills/hyperframes/SKILL.md +182 -0
  75. package/.agent/skills/hyperframes/references/cli.md +185 -0
  76. package/.agent/skills/hyperframes/references/composition.md +129 -0
  77. package/.agent/skills/hyperframes/references/features.md +289 -0
  78. package/.agent/skills/hyperframes/references/gsap.md +136 -0
  79. package/.agent/skills/hyperframes/references/troubleshooting.md +137 -0
  80. package/.agent/skills/hyperframes/references/website-to-video.md +145 -0
  81. package/.agent/skills/jupyter-live-kernel/SKILL.md +160 -0
  82. package/.agent/skills/kanban-orchestrator/SKILL.md +209 -0
  83. package/.agent/skills/kanban-worker/SKILL.md +188 -0
  84. package/.agent/skills/llm-wiki/SKILL.md +499 -0
  85. package/.agent/skills/meme-generation/SKILL.md +122 -0
  86. package/.agent/skills/node-inspect-debugger/SKILL.md +312 -0
  87. package/.agent/skills/obsidian/SKILL.md +60 -0
  88. package/.agent/skills/osint-investigation/SKILL.md +269 -0
  89. package/.agent/skills/osint-investigation/templates/source-template.md +59 -0
  90. package/.agent/skills/oss-forensics/SKILL.md +422 -0
  91. package/.agent/skills/oss-forensics/references/evidence-types.md +89 -0
  92. package/.agent/skills/oss-forensics/references/github-archive-guide.md +184 -0
  93. package/.agent/skills/oss-forensics/references/investigation-templates.md +131 -0
  94. package/.agent/skills/oss-forensics/references/recovery-techniques.md +164 -0
  95. package/.agent/skills/oss-forensics/templates/forensic-report.md +151 -0
  96. package/.agent/skills/oss-forensics/templates/malicious-package-report.md +43 -0
  97. package/.agent/skills/parallel-cli/SKILL.md +384 -0
  98. package/.agent/skills/pinggy-tunnel/SKILL.md +302 -0
  99. package/.agent/skills/pixel-art/SKILL.md +209 -0
  100. package/.agent/skills/pixel-art/references/palettes.md +49 -0
  101. package/.agent/skills/plan/SKILL.md +331 -0
  102. package/.agent/skills/polymarket/SKILL.md +75 -0
  103. package/.agent/skills/polymarket/references/api-endpoints.md +220 -0
  104. package/.agent/skills/python-debugpy/SKILL.md +368 -0
  105. package/.agent/skills/requesting-code-review/SKILL.md +273 -0
  106. package/.agent/skills/research-paper-writing/SKILL.md +2367 -0
  107. package/.agent/skills/research-paper-writing/references/autoreason-methodology.md +394 -0
  108. package/.agent/skills/research-paper-writing/references/checklists.md +434 -0
  109. package/.agent/skills/research-paper-writing/references/citation-workflow.md +563 -0
  110. package/.agent/skills/research-paper-writing/references/experiment-patterns.md +728 -0
  111. package/.agent/skills/research-paper-writing/references/human-evaluation.md +476 -0
  112. package/.agent/skills/research-paper-writing/references/paper-types.md +481 -0
  113. package/.agent/skills/research-paper-writing/references/reviewer-guidelines.md +433 -0
  114. package/.agent/skills/research-paper-writing/references/sources.md +191 -0
  115. package/.agent/skills/research-paper-writing/references/writing-guide.md +474 -0
  116. package/.agent/skills/research-paper-writing/templates/README.md +251 -0
  117. package/.agent/skills/rest-graphql-debug/SKILL.md +507 -0
  118. package/.agent/skills/s6-container-supervision/SKILL.md +171 -0
  119. package/.agent/skills/scrapling/SKILL.md +328 -0
  120. package/.agent/skills/sherlock/SKILL.md +186 -0
  121. package/.agent/skills/simplify-code/SKILL.md +168 -0
  122. package/.agent/skills/skill-authoring/SKILL.md +158 -0
  123. package/.agent/skills/spike/SKILL.md +190 -0
  124. package/.agent/skills/subagent-driven-development/SKILL.md +345 -0
  125. package/.agent/skills/subagent-driven-development/references/context-budget-discipline.md +53 -0
  126. package/.agent/skills/subagent-driven-development/references/gates-taxonomy.md +93 -0
  127. package/.agent/skills/systematic-debugging/SKILL.md +360 -0
  128. package/.agent/skills/test-driven-development/SKILL.md +336 -0
  129. package/.agent/skills/video-orchestrator/SKILL.md +194 -0
  130. package/.agent/skills/video-orchestrator/references/examples.md +227 -0
  131. package/.agent/skills/video-orchestrator/references/intake.md +166 -0
  132. package/.agent/skills/video-orchestrator/references/kanban-setup.md +278 -0
  133. package/.agent/skills/video-orchestrator/references/monitoring.md +180 -0
  134. package/.agent/skills/video-orchestrator/references/role-archetypes.md +298 -0
  135. package/.agent/skills/video-orchestrator/references/tool-matrix.md +317 -0
  136. package/.agent/skills/web-pentest/SKILL.md +332 -0
  137. package/.agent/skills/web-pentest/references/bypass-techniques.md +133 -0
  138. package/.agent/skills/web-pentest/references/exploitation-techniques.md +204 -0
  139. package/.agent/skills/web-pentest/references/scope-enforcement.md +110 -0
  140. package/.agent/skills/web-pentest/references/vuln-taxonomy.md +81 -0
  141. package/.agent/skills/web-pentest/templates/authorization.md +69 -0
  142. package/.agent/skills/web-pentest/templates/pentest-report.md +178 -0
  143. package/.claude/commands/mindforge/skill-tdd.md +53 -0
  144. package/.claude/commands/mindforge/skills-index.md +118 -0
  145. package/.claude/commands/mindforge/systematic-debug.md +60 -0
  146. package/.claude/commands/mindforge/wf-catalog.md +37 -0
  147. package/.claude/commands/mindforge/wf-code-audit.md +31 -0
  148. package/.claude/commands/mindforge/wf-competitive-analysis.md +31 -0
  149. package/.claude/commands/mindforge/wf-deep-research.md +32 -0
  150. package/.claude/commands/mindforge/wf-feature-planner.md +31 -0
  151. package/.claude/commands/mindforge/wf-incident-response.md +31 -0
  152. package/.claude/commands/mindforge/wf-onboard-codebase.md +31 -0
  153. package/.claude/commands/mindforge/wf-perf-optimize.md +31 -0
  154. package/.claude/commands/mindforge/wf-pr-review.md +31 -0
  155. package/.claude/commands/mindforge/wf-refactor-plan.md +31 -0
  156. package/.claude/commands/mindforge/wf-release-prep.md +31 -0
  157. package/.claude/commands/mindforge/wf-tdd-sprint.md +31 -0
  158. package/.claude/commands/mindforge/wf-tech-evaluation.md +31 -0
  159. package/.mindforge/config.json +2 -2
  160. package/.mindforge/dynamic-workflows/REGISTRY.md +65 -0
  161. package/.mindforge/dynamic-workflows/index.json +171 -0
  162. package/.mindforge/dynamic-workflows/scripts/code-audit.js +103 -0
  163. package/.mindforge/dynamic-workflows/scripts/competitive-analysis.js +85 -0
  164. package/.mindforge/dynamic-workflows/scripts/deep-research.js +151 -0
  165. package/.mindforge/dynamic-workflows/scripts/feature-planner.js +104 -0
  166. package/.mindforge/dynamic-workflows/scripts/incident-response.js +106 -0
  167. package/.mindforge/dynamic-workflows/scripts/onboard-codebase.js +102 -0
  168. package/.mindforge/dynamic-workflows/scripts/perf-optimize.js +128 -0
  169. package/.mindforge/dynamic-workflows/scripts/pr-review.js +87 -0
  170. package/.mindforge/dynamic-workflows/scripts/refactor-plan.js +121 -0
  171. package/.mindforge/dynamic-workflows/scripts/release-prep.js +102 -0
  172. package/.mindforge/dynamic-workflows/scripts/tdd-sprint.js +103 -0
  173. package/.mindforge/dynamic-workflows/scripts/tech-evaluation.js +72 -0
  174. package/.mindforge/memory/sync-manifest.json +1 -1
  175. package/.mindforge/skills/arxiv/SKILL.md +294 -0
  176. package/.mindforge/skills/blogwatcher/SKILL.md +147 -0
  177. package/.mindforge/skills/code-wiki/SKILL.md +457 -0
  178. package/.mindforge/skills/codebase-inspection/SKILL.md +126 -0
  179. package/.mindforge/skills/concept-diagrams/SKILL.md +373 -0
  180. package/.mindforge/skills/creative-ideation/SKILL.md +162 -0
  181. package/.mindforge/skills/domain-intel/SKILL.md +116 -0
  182. package/.mindforge/skills/duckduckgo-search/SKILL.md +249 -0
  183. package/.mindforge/skills/github-code-review/SKILL.md +493 -0
  184. package/.mindforge/skills/github-issues/SKILL.md +382 -0
  185. package/.mindforge/skills/github-pr-workflow/SKILL.md +379 -0
  186. package/.mindforge/skills/jupyter-live-kernel/SKILL.md +179 -0
  187. package/.mindforge/skills/kanban-orchestrator/SKILL.md +227 -0
  188. package/.mindforge/skills/kanban-worker/SKILL.md +206 -0
  189. package/.mindforge/skills/meme-generation/SKILL.md +141 -0
  190. package/.mindforge/skills/obsidian/SKILL.md +80 -0
  191. package/.mindforge/skills/osint-investigation/SKILL.md +288 -0
  192. package/.mindforge/skills/oss-forensics/SKILL.md +421 -0
  193. package/.mindforge/skills/pixel-art/SKILL.md +228 -0
  194. package/.mindforge/skills/plan/SKILL.md +350 -0
  195. package/.mindforge/skills/requesting-code-review/SKILL.md +292 -0
  196. package/.mindforge/skills/research-paper-writing/SKILL.md +2384 -0
  197. package/.mindforge/skills/scrapling/SKILL.md +345 -0
  198. package/.mindforge/skills/sherlock/SKILL.md +203 -0
  199. package/.mindforge/skills/simplify-code/SKILL.md +187 -0
  200. package/.mindforge/skills/spike/SKILL.md +209 -0
  201. package/.mindforge/skills/subagent-driven-development/SKILL.md +364 -0
  202. package/.mindforge/skills/systematic-debugging/SKILL.md +379 -0
  203. package/.mindforge/skills/test-driven-development/SKILL.md +355 -0
  204. package/.mindforge/skills/web-pentest/SKILL.md +327 -0
  205. package/CHANGELOG.md +71 -0
  206. package/MINDFORGE.md +2 -2
  207. package/README.md +72 -3
  208. package/RELEASENOTES.md +109 -0
  209. package/bin/installer-core.js +6 -2
  210. package/bin/mindforge-cli.js +7 -0
  211. package/bin/workflows/workflow-runner.js +110 -0
  212. package/docs/commands-reference.md +25 -0
  213. package/docs/getting-started.md +42 -5
  214. package/package.json +2 -1
@@ -0,0 +1,187 @@
1
+ ---
2
+ name: simplify-code
3
+ description: "Parallel 3-agent cleanup of recent code changes."
4
+ version: 1.0.0
5
+ status: stable
6
+ min_mindforge_version: 11.5.1
7
+ triggers: simplify code, clean up code, refactor for clarity, reduce complexity, simplify this, make code cleaner, improve readability, reduce duplication, declutter code, streamline code, clarify code, code simplification
8
+ ---
9
+
10
+ # Simplify Code — Parallel Review & Cleanup
11
+
12
+ Review your recent code changes with three focused reviewers running in
13
+ parallel, aggregate their findings, and apply the fixes worth applying.
14
+
15
+ **Core principle:** Three narrow reviewers beat one broad reviewer. Each one
16
+ deeply searches the codebase for a single class of problem — reuse, quality,
17
+ efficiency — without diluting its attention across all three. They run
18
+ concurrently, so you pay the latency of one review, not three.
19
+
20
+ ## When to Use
21
+
22
+ Trigger this skill when the user says any of:
23
+
24
+ - "simplify" / "simplify my changes" / "simplify these changes"
25
+ - "review my code" / "review my recent changes" / "clean up my changes"
26
+ - "/simplify" (if they're carrying the Claude Code habit over)
27
+
28
+ Optional modifiers the user may add — honor them:
29
+
30
+ - **Focus:** "simplify focus on efficiency" → run only the efficiency reviewer
31
+ (or weight the aggregation toward it). Recognized focuses: `reuse`,
32
+ `quality`, `efficiency`.
33
+ - **Dry run:** "simplify but don't change anything" / "just report" → run the
34
+ three reviewers, present findings, apply NOTHING. Ask before applying.
35
+ - **Scope:** "simplify the last commit" / "simplify staged" / "simplify
36
+ src/foo.py" → narrow the diff source accordingly (see Phase 1).
37
+
38
+ Do NOT auto-run this after every edit. It costs three subagents' worth of
39
+ tokens — invoke it only when the user explicitly asks.
40
+
41
+ ## The Process
42
+
43
+ ### Phase 1 — Identify the changes
44
+
45
+ Capture the diff to review. Pick the source by what the user asked for, in
46
+ this default order:
47
+
48
+ ```bash
49
+ # 1. Default: uncommitted working-tree changes (tracked files)
50
+ git diff
51
+
52
+ # 2. If that's empty, include staged changes
53
+ git diff HEAD
54
+
55
+ # 3. Scoped variants the user may request:
56
+ git diff --staged # "staged changes"
57
+ git diff HEAD~1 # "the last commit"
58
+ git diff main...HEAD # "this branch" / "my PR"
59
+ git diff -- src/foo.py # specific file(s)
60
+ ```
61
+
62
+ If `git diff` and `git diff HEAD` are both empty and there's no git repo or no
63
+ changes, fall back to the files the user explicitly named or that were
64
+ recently created/edited in this session. If you genuinely can't find any
65
+ changed code, say so and stop — there's nothing to simplify.
66
+
67
+ Capture the full diff text. Note its size: if it's very large (say >2000
68
+ changed lines), warn the user that three subagents each carrying the full diff
69
+ will be token-heavy, and offer to scope it down (per-directory, per-commit)
70
+ before proceeding.
71
+
72
+ ### Phase 2 — Launch three reviewers in parallel
73
+
74
+ Use `delegate_task` **batch mode** — pass all three tasks in one `tasks`
75
+ array so they run concurrently. Three is the right fan-out for this pattern;
76
+ it's well within the `delegation.max_concurrent_children` budget on any
77
+ default install.
78
+
79
+ Give **every** reviewer the **complete diff** (not fragments — cross-file
80
+ issues hide in the gaps) plus the absolute repo path so they can search the
81
+ wider codebase. Each reviewer gets `terminal`, `file`, and `search`
82
+ toolsets (so they can `git`, `read_file`, and `search_files`/grep).
83
+
84
+ Tell each reviewer to:
85
+ - Search the existing codebase for evidence (don't reason from the diff alone).
86
+ - Report findings as a concrete list: `file:line → problem → suggested fix`.
87
+ - Rank each finding `high` / `medium` / `low` confidence.
88
+ - Skip nits and style-only churn. Only flag things that materially improve
89
+ the code.
90
+
91
+ Pass these three goals (drop any the user's focus excludes):
92
+
93
+ **Reviewer 1 — Code Reuse**
94
+ > Review this diff for code that duplicates functionality already in the
95
+ > codebase. Search utility modules, shared helpers, and adjacent files
96
+ > (use search_files / grep) for existing functions, constants, or patterns
97
+ > the new code could call instead of reimplementing. Flag: new functions
98
+ > that duplicate existing ones; hand-rolled logic that an existing utility
99
+ > already does (manual string/path manipulation, custom env checks, ad-hoc
100
+ > type guards, re-implemented parsing). For each, name the existing thing to
101
+ > use and where it lives.
102
+
103
+ **Reviewer 2 — Code Quality**
104
+ > Review this diff for quality problems. Look for: redundant state (values
105
+ > that duplicate or could be derived from existing state; caches that don't
106
+ > need to exist); parameter sprawl (new params bolted on where the function
107
+ > should have been restructured); copy-paste-with-variation (near-duplicate
108
+ > blocks that should share an abstraction); leaky abstractions (exposing
109
+ > internals, breaking an existing encapsulation boundary); stringly-typed
110
+ > code (raw strings where a constant/enum/registry already exists — check the
111
+ > canonical registries before flagging). For each, give the concrete refactor.
112
+
113
+ **Reviewer 3 — Efficiency**
114
+ > Review this diff for efficiency problems. Look for: unnecessary work
115
+ > (redundant computation, repeated file reads, duplicate API calls, N+1
116
+ > access patterns); missed concurrency (independent ops run sequentially);
117
+ > hot-path bloat (heavy/blocking work on startup or per-request paths);
118
+ > TOCTOU anti-patterns (existence pre-checks before an op instead of doing
119
+ > the op and handling the error); memory issues (unbounded growth, missing
120
+ > cleanup, listener/handle leaks); overly broad reads (loading whole files
121
+ > when a slice would do). For each, give the concrete fix and why it's faster
122
+ > or lighter.
123
+
124
+ ### Phase 3 — Aggregate and apply
125
+
126
+ Wait for all three to return (batch mode returns them together).
127
+
128
+ 1. **Merge** the findings into one list, deduping where reviewers overlap.
129
+ 2. **Discard false positives** — you have the most context; you don't have to
130
+ argue with a reviewer, just drop weak or wrong suggestions silently.
131
+ 3. **Resolve conflicts.** Reviewers can disagree (Reviewer 1: "use existing
132
+ util X"; Reviewer 3: "X is slow, inline it"). Default resolution order:
133
+ **correctness > the user's stated focus > readability/reuse > micro-perf.**
134
+ Don't apply a perf "fix" that hurts clarity unless the path is genuinely
135
+ hot. When two suggestions are mutually exclusive and both defensible, pick
136
+ the one that touches less code and note the alternative.
137
+ 4. **Apply** the surviving fixes directly with `patch` / `write_file` — unless
138
+ the user asked for a dry run, in which case present the list and ask first.
139
+ 5. **Verify** you didn't break anything: run the project's targeted tests for
140
+ the touched files (not the full suite), and re-run any linter/type check the
141
+ repo uses. If a fix breaks a test, revert that one fix and report it.
142
+ 6. **Summarize** what you changed: a short list of applied fixes grouped by
143
+ reviewer category, plus any findings you deliberately skipped and why.
144
+
145
+ ## Pitfalls
146
+
147
+ - **Don't fan out wider than ~3.** More reviewers means more cost and more
148
+ conflicting suggestions to reconcile, not better coverage. Three categories
149
+ cover the space.
150
+ - **Give the WHOLE diff to each reviewer.** Splitting the diff across reviewers
151
+ defeats the design — cross-file duplication and N+1s only show up with the
152
+ full picture.
153
+ - **Reviewers search, they don't guess.** A reuse finding with no pointer to
154
+ the existing utility ("there's probably a helper for this") is noise. Require
155
+ `file:line` evidence; drop findings that lack it.
156
+ - **Apply ≠ rewrite.** This is cleanup of the user's recent changes, not a
157
+ license to refactor the whole module. Keep edits scoped to what the diff
158
+ touched plus the minimal surrounding change a fix requires.
159
+ - **Respect project conventions.** If the repo has AGENTS.md / CLAUDE.md /
160
+ HERMES.md or a linter config, fold those rules into the reviewer prompts so
161
+ suggestions match house style instead of fighting it.
162
+ - **Large diffs blow context.** If the diff is huge, scope it down before
163
+ delegating — three subagents each carrying a 5000-line diff is expensive and
164
+ may truncate.
165
+
166
+ ## Related
167
+
168
+ If your install has the `subagent-driven-development` skill (optional), it
169
+ covers the complementary case: parallel review *during* implementation, per
170
+ task. This skill is the standalone *after-the-fact* cleanup pass. Use
171
+ `requesting-code-review` for the pre-commit security/quality gate.
172
+
173
+ ## Mandatory actions when this skill is active
174
+
175
+ Before applying this skill:
176
+ - [ ] Read the task requirements fully before acting
177
+ - [ ] Confirm you understand the goal and constraints
178
+ - [ ] Check for existing work or prior context in the codebase
179
+
180
+ While working:
181
+ - [ ] Follow the methodology described above step by step
182
+ - [ ] Document any decisions or findings as you go
183
+
184
+ After completing:
185
+ - [ ] Self-check: does the output satisfy the original requirement?
186
+ - [ ] Verify no regressions or unintended side effects
187
+
@@ -0,0 +1,209 @@
1
+ ---
2
+ name: spike
3
+ description: "Throwaway experiments to validate an idea before build."
4
+ version: 1.0.0
5
+ status: stable
6
+ min_mindforge_version: 11.5.1
7
+ triggers: technical spike, time-boxed spike, explore this problem, spike on, spike investigation, research spike, exploration task, proof of concept spike, spike design, bounded exploration, investigate approach, spike timeboxed
8
+ ---
9
+
10
+ # Spike
11
+
12
+ Use this skill when the user wants to **feel out an idea** before committing to a real build — validating feasibility, comparing approaches, or surfacing unknowns that no amount of research will answer. Spikes are disposable by design. Throw them away once they've paid their debt.
13
+
14
+ Load this when the user says things like "let me try this", "I want to see if X works", "spike this out", "before I commit to Y", "quick prototype of Z", "is this even possible?", or "compare A vs B".
15
+
16
+ ## When NOT to use this
17
+
18
+ - The answer is knowable from docs or reading code — just do research, don't build
19
+ - The work is production path — use the `plan` skill instead
20
+ - The idea is already validated — jump straight to implementation
21
+
22
+ ## If the user has the full GSD system installed
23
+
24
+ If `gsd-spike` shows up as a sibling skill (installed via `npx get-shit-done-cc --hermes`), prefer **`gsd-spike`** when the user wants the full GSD workflow: persistent `.planning/spikes/` state, MANIFEST tracking across sessions, Given/When/Then verdict format, and commit patterns that integrate with the rest of GSD. This skill is the lightweight standalone version for users who don't have (or don't want) the full system.
25
+
26
+ ## Core method
27
+
28
+ Regardless of scale, every spike follows this loop:
29
+
30
+ ```
31
+ decompose → research → build → verdict
32
+ ↑__________________________________________↓
33
+ iterate on findings
34
+ ```
35
+
36
+ ### 1. Decompose
37
+
38
+ Break the user's idea into **2-5 independent feasibility questions**. Each question is one spike. Present them as a table with Given/When/Then framing:
39
+
40
+ | # | Spike | Validates (Given/When/Then) | Risk |
41
+ |---|-------|----------------------------|------|
42
+ | 001 | websocket-streaming | Given a WS connection, when LLM streams tokens, then client receives chunks < 100ms | High |
43
+ | 002a | pdf-parse-pdfjs | Given a multi-page PDF, when parsed with pdfjs, then structured text is extractable | Medium |
44
+ | 002b | pdf-parse-camelot | Given a multi-page PDF, when parsed with camelot, then structured text is extractable | Medium |
45
+
46
+ **Spike types:**
47
+ - **standard** — one approach answering one question
48
+ - **comparison** — same question, different approaches (shared number, letter suffix `a`/`b`/`c`)
49
+
50
+ **Good spike questions:** specific feasibility with observable output.
51
+ **Bad spike questions:** too broad, no observable output, or just "read the docs about X".
52
+
53
+ **Order by risk.** The spike most likely to kill the idea runs first. No point prototyping the easy parts if the hard part doesn't work.
54
+
55
+ **Skip decomposition** only if the user already knows exactly what they want to spike and says so. Then take their idea as a single spike.
56
+
57
+ ### 2. Align (for multi-spike ideas)
58
+
59
+ Present the spike table. Ask: "Build all in this order, or adjust?" Let the user drop, reorder, or re-frame before you write any code.
60
+
61
+ ### 3. Research (per spike, before building)
62
+
63
+ Spikes are not research-free — you research enough to pick the right approach, then you build. Per spike:
64
+
65
+ 1. **Brief it.** 2-3 sentences: what this spike is, why it matters, key risk.
66
+ 2. **Surface competing approaches** if there's real choice:
67
+
68
+ | Approach | Tool/Library | Pros | Cons | Status |
69
+ |----------|-------------|------|------|--------|
70
+ | ... | ... | ... | ... | maintained / abandoned / beta |
71
+
72
+ 3. **Pick one.** State why. If 2+ are credible, build quick variants within the spike.
73
+ 4. **Skip research** for pure logic with no external dependencies.
74
+
75
+ Use available tools for the research step:
76
+
77
+ - `web_search("python websocket streaming libraries 2025")` — find candidates
78
+ - `web_extract(urls=["https://websockets.readthedocs.io/..."])` — read the actual docs (returns markdown)
79
+ - `terminal("pip show websockets | grep Version")` — check what's installed in the project's venv
80
+
81
+ For libraries without docs pages, clone and read their `README.md` / `examples/` via `read_file`. Context7 MCP (if the user has it configured) is also a good source — `mcp_*_resolve-library-id` then `mcp_*_query-docs`.
82
+
83
+ ### 4. Build
84
+
85
+ One directory per spike. Keep it standalone.
86
+
87
+ ```
88
+ spikes/
89
+ ├── 001-websocket-streaming/
90
+ │ ├── README.md
91
+ │ └── main.py
92
+ ├── 002a-pdf-parse-pdfjs/
93
+ │ ├── README.md
94
+ │ └── parse.js
95
+ └── 002b-pdf-parse-camelot/
96
+ ├── README.md
97
+ └── parse.py
98
+ ```
99
+
100
+ **Bias toward something the user can interact with.** Spikes fail when the only output is a log line that says "it works." The user wants to *feel* the spike working. Default choices, in order of preference:
101
+
102
+ 1. A runnable CLI that takes input and prints observable output
103
+ 2. A minimal HTML page that demonstrates the behavior
104
+ 3. A small web server with one endpoint
105
+ 4. A unit test that exercises the question with recognizable assertions
106
+
107
+ **Depth over speed.** Never declare "it works" after one happy-path run. Test edge cases. Follow surprising findings. The verdict is only trustworthy when the investigation was honest.
108
+
109
+ **Avoid** unless the spike specifically requires it: complex package management, build tools/bundlers, Docker, env files, config systems. Hardcode everything — it's a spike.
110
+
111
+ **Building one spike** — a typical tool sequence:
112
+
113
+ ```
114
+ terminal("mkdir -p spikes/001-websocket-streaming")
115
+ write_file("spikes/001-websocket-streaming/README.md", "# 001: websocket-streaming\n\n...")
116
+ write_file("spikes/001-websocket-streaming/main.py", "...")
117
+ terminal("cd spikes/001-websocket-streaming && python3 main.py")
118
+ # Observe output, iterate.
119
+ ```
120
+
121
+ **Parallel comparison spikes (002a / 002b) — delegate.** When two approaches can run in parallel and both need real engineering (not 10-line prototypes), fan out with `delegate_task`:
122
+
123
+ ```
124
+ delegate_task(tasks=[
125
+ {"goal": "Build 002a-pdf-parse-pdfjs: ...", "toolsets": ["terminal", "file", "web"]},
126
+ {"goal": "Build 002b-pdf-parse-camelot: ...", "toolsets": ["terminal", "file", "web"]},
127
+ ])
128
+ ```
129
+
130
+ Each subagent returns its own verdict; you write the head-to-head.
131
+
132
+ ### 5. Verdict
133
+
134
+ Each spike's `README.md` closes with:
135
+
136
+ ```markdown
137
+ ## Verdict: VALIDATED | PARTIAL | INVALIDATED
138
+
139
+ ### What worked
140
+ - ...
141
+
142
+ ### What didn't
143
+ - ...
144
+
145
+ ### Surprises
146
+ - ...
147
+
148
+ ### Recommendation for the real build
149
+ - ...
150
+ ```
151
+
152
+ **VALIDATED** = the core question was answered yes, with evidence.
153
+ **PARTIAL** = it works under constraints X, Y, Z — document them.
154
+ **INVALIDATED** = doesn't work, for this reason. This is a successful spike.
155
+
156
+ ## Comparison spikes
157
+
158
+ When two approaches answer the same question (002a / 002b), build them **back to back**, then do a head-to-head comparison at the end:
159
+
160
+ ```markdown
161
+ ## Head-to-head: pdfjs vs camelot
162
+
163
+ | Dimension | pdfjs (002a) | camelot (002b) |
164
+ |-----------|--------------|----------------|
165
+ | Extraction quality | 9/10 structured | 7/10 table-only |
166
+ | Setup complexity | npm install, 1 line | pip + ghostscript |
167
+ | Perf on 100-page PDF | 3s | 18s |
168
+ | Handles rotated text | no | yes |
169
+
170
+ **Winner:** pdfjs for our use case. Camelot if we need table-first extraction later.
171
+ ```
172
+
173
+ ## Frontier mode (picking what to spike next)
174
+
175
+ If spikes already exist and the user says "what should I spike next?", walk the existing directories and look for:
176
+
177
+ - **Integration risks** — two validated spikes that touch the same resource but were tested independently
178
+ - **Data handoffs** — spike A's output was assumed compatible with spike B's input; never proven
179
+ - **Gaps in the vision** — capabilities assumed but unproven
180
+ - **Alternative approaches** — different angles for PARTIAL or INVALIDATED spikes
181
+
182
+ Propose 2-4 candidates as Given/When/Then. Let the user pick.
183
+
184
+ ## Output
185
+
186
+ - Create `spikes/` (or `.planning/spikes/` if the user is using GSD conventions) in the repo root
187
+ - One dir per spike: `NNN-descriptive-name/`
188
+ - `README.md` per spike captures question, approach, results, verdict
189
+ - Keep the code throwaway — a spike that takes 2 days to "clean up for production" was a bad spike
190
+
191
+ ## Attribution
192
+
193
+ Adapted from the GSD (Get Shit Done) project's `/gsd-spike` workflow — MIT © 2025 Lex Christopherson ([gsd-build/get-shit-done](https://github.com/gsd-build/get-shit-done)). The full GSD system offers persistent spike state, MANIFEST tracking, and integration with a broader spec-driven development pipeline; install with `npx get-shit-done-cc --hermes --global`.
194
+
195
+ ## Mandatory actions when this skill is active
196
+
197
+ Before applying this skill:
198
+ - [ ] Read the task requirements fully before acting
199
+ - [ ] Confirm you understand the goal and constraints
200
+ - [ ] Check for existing work or prior context in the codebase
201
+
202
+ While working:
203
+ - [ ] Follow the methodology described above step by step
204
+ - [ ] Document any decisions or findings as you go
205
+
206
+ After completing:
207
+ - [ ] Self-check: does the output satisfy the original requirement?
208
+ - [ ] Verify no regressions or unintended side effects
209
+