mindforge-cc 11.5.1 → 11.6.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/.agent/mindforge/skill-tdd.md +53 -0
- package/.agent/mindforge/skills-index.md +118 -0
- package/.agent/mindforge/systematic-debug.md +60 -0
- package/.agent/skills/1password-skill/SKILL.md +156 -0
- package/.agent/skills/1password-skill/references/cli-examples.md +31 -0
- package/.agent/skills/1password-skill/references/get-started.md +21 -0
- package/.agent/skills/article-illustrator/SKILL.md +199 -0
- package/.agent/skills/article-illustrator/references/prompt-construction.md +426 -0
- package/.agent/skills/article-illustrator/references/style-presets.md +80 -0
- package/.agent/skills/article-illustrator/references/styles.md +224 -0
- package/.agent/skills/article-illustrator/references/usage.md +50 -0
- package/.agent/skills/article-illustrator/references/workflow.md +332 -0
- package/.agent/skills/arxiv/SKILL.md +275 -0
- package/.agent/skills/blogwatcher/SKILL.md +130 -0
- package/.agent/skills/code-wiki/SKILL.md +438 -0
- package/.agent/skills/code-wiki/templates/README.md +31 -0
- package/.agent/skills/code-wiki/templates/architecture.md +30 -0
- package/.agent/skills/code-wiki/templates/getting-started.md +47 -0
- package/.agent/skills/code-wiki/templates/module.md +38 -0
- package/.agent/skills/codebase-inspection/SKILL.md +109 -0
- package/.agent/skills/comic-creator/SKILL.md +240 -0
- package/.agent/skills/comic-creator/references/analysis-framework.md +176 -0
- package/.agent/skills/comic-creator/references/auto-selection.md +71 -0
- package/.agent/skills/comic-creator/references/base-prompt.md +98 -0
- package/.agent/skills/comic-creator/references/character-template.md +180 -0
- package/.agent/skills/comic-creator/references/ohmsha-guide.md +85 -0
- package/.agent/skills/comic-creator/references/partial-workflows.md +106 -0
- package/.agent/skills/comic-creator/references/storyboard-template.md +143 -0
- package/.agent/skills/comic-creator/references/workflow.md +401 -0
- package/.agent/skills/concept-diagrams/SKILL.md +355 -0
- package/.agent/skills/concept-diagrams/references/dashboard-patterns.md +43 -0
- package/.agent/skills/concept-diagrams/references/infrastructure-patterns.md +144 -0
- package/.agent/skills/concept-diagrams/references/physical-shape-cookbook.md +42 -0
- package/.agent/skills/creative-ideation/SKILL.md +144 -0
- package/.agent/skills/creative-ideation/references/full-prompt-library.md +110 -0
- package/.agent/skills/devops-cli/SKILL.md +149 -0
- package/.agent/skills/devops-cli/references/app-discovery.md +112 -0
- package/.agent/skills/devops-cli/references/authentication.md +59 -0
- package/.agent/skills/devops-cli/references/cli-reference.md +104 -0
- package/.agent/skills/devops-cli/references/running-apps.md +171 -0
- package/.agent/skills/devops-watchers/SKILL.md +103 -0
- package/.agent/skills/docker-management/SKILL.md +273 -0
- package/.agent/skills/domain-intel/SKILL.md +96 -0
- package/.agent/skills/duckduckgo-search/SKILL.md +230 -0
- package/.agent/skills/github-auth/SKILL.md +240 -0
- package/.agent/skills/github-code-review/SKILL.md +474 -0
- package/.agent/skills/github-code-review/references/review-output-template.md +74 -0
- package/.agent/skills/github-issues/SKILL.md +363 -0
- package/.agent/skills/github-issues/templates/bug-report.md +35 -0
- package/.agent/skills/github-issues/templates/feature-request.md +31 -0
- package/.agent/skills/github-pr-workflow/SKILL.md +360 -0
- package/.agent/skills/github-pr-workflow/references/ci-troubleshooting.md +183 -0
- package/.agent/skills/github-pr-workflow/references/conventional-commits.md +71 -0
- package/.agent/skills/github-pr-workflow/templates/pr-body-bugfix.md +35 -0
- package/.agent/skills/github-pr-workflow/templates/pr-body-feature.md +33 -0
- package/.agent/skills/github-repo-management/SKILL.md +509 -0
- package/.agent/skills/github-repo-management/references/github-api-cheatsheet.md +161 -0
- package/.agent/skills/godmode/SKILL.md +396 -0
- package/.agent/skills/godmode/references/jailbreak-templates.md +128 -0
- package/.agent/skills/godmode/references/refusal-detection.md +142 -0
- package/.agent/skills/hyperframes/SKILL.md +182 -0
- package/.agent/skills/hyperframes/references/cli.md +185 -0
- package/.agent/skills/hyperframes/references/composition.md +129 -0
- package/.agent/skills/hyperframes/references/features.md +289 -0
- package/.agent/skills/hyperframes/references/gsap.md +136 -0
- package/.agent/skills/hyperframes/references/troubleshooting.md +137 -0
- package/.agent/skills/hyperframes/references/website-to-video.md +145 -0
- package/.agent/skills/jupyter-live-kernel/SKILL.md +160 -0
- package/.agent/skills/kanban-orchestrator/SKILL.md +209 -0
- package/.agent/skills/kanban-worker/SKILL.md +188 -0
- package/.agent/skills/llm-wiki/SKILL.md +499 -0
- package/.agent/skills/meme-generation/SKILL.md +122 -0
- package/.agent/skills/node-inspect-debugger/SKILL.md +312 -0
- package/.agent/skills/obsidian/SKILL.md +60 -0
- package/.agent/skills/osint-investigation/SKILL.md +269 -0
- package/.agent/skills/osint-investigation/templates/source-template.md +59 -0
- package/.agent/skills/oss-forensics/SKILL.md +422 -0
- package/.agent/skills/oss-forensics/references/evidence-types.md +89 -0
- package/.agent/skills/oss-forensics/references/github-archive-guide.md +184 -0
- package/.agent/skills/oss-forensics/references/investigation-templates.md +131 -0
- package/.agent/skills/oss-forensics/references/recovery-techniques.md +164 -0
- package/.agent/skills/oss-forensics/templates/forensic-report.md +151 -0
- package/.agent/skills/oss-forensics/templates/malicious-package-report.md +43 -0
- package/.agent/skills/parallel-cli/SKILL.md +384 -0
- package/.agent/skills/pinggy-tunnel/SKILL.md +302 -0
- package/.agent/skills/pixel-art/SKILL.md +209 -0
- package/.agent/skills/pixel-art/references/palettes.md +49 -0
- package/.agent/skills/plan/SKILL.md +331 -0
- package/.agent/skills/polymarket/SKILL.md +75 -0
- package/.agent/skills/polymarket/references/api-endpoints.md +220 -0
- package/.agent/skills/python-debugpy/SKILL.md +368 -0
- package/.agent/skills/requesting-code-review/SKILL.md +273 -0
- package/.agent/skills/research-paper-writing/SKILL.md +2367 -0
- package/.agent/skills/research-paper-writing/references/autoreason-methodology.md +394 -0
- package/.agent/skills/research-paper-writing/references/checklists.md +434 -0
- package/.agent/skills/research-paper-writing/references/citation-workflow.md +563 -0
- package/.agent/skills/research-paper-writing/references/experiment-patterns.md +728 -0
- package/.agent/skills/research-paper-writing/references/human-evaluation.md +476 -0
- package/.agent/skills/research-paper-writing/references/paper-types.md +481 -0
- package/.agent/skills/research-paper-writing/references/reviewer-guidelines.md +433 -0
- package/.agent/skills/research-paper-writing/references/sources.md +191 -0
- package/.agent/skills/research-paper-writing/references/writing-guide.md +474 -0
- package/.agent/skills/research-paper-writing/templates/README.md +251 -0
- package/.agent/skills/rest-graphql-debug/SKILL.md +507 -0
- package/.agent/skills/s6-container-supervision/SKILL.md +171 -0
- package/.agent/skills/scrapling/SKILL.md +328 -0
- package/.agent/skills/sherlock/SKILL.md +186 -0
- package/.agent/skills/simplify-code/SKILL.md +168 -0
- package/.agent/skills/skill-authoring/SKILL.md +158 -0
- package/.agent/skills/spike/SKILL.md +190 -0
- package/.agent/skills/subagent-driven-development/SKILL.md +345 -0
- package/.agent/skills/subagent-driven-development/references/context-budget-discipline.md +53 -0
- package/.agent/skills/subagent-driven-development/references/gates-taxonomy.md +93 -0
- package/.agent/skills/systematic-debugging/SKILL.md +360 -0
- package/.agent/skills/test-driven-development/SKILL.md +336 -0
- package/.agent/skills/video-orchestrator/SKILL.md +194 -0
- package/.agent/skills/video-orchestrator/references/examples.md +227 -0
- package/.agent/skills/video-orchestrator/references/intake.md +166 -0
- package/.agent/skills/video-orchestrator/references/kanban-setup.md +278 -0
- package/.agent/skills/video-orchestrator/references/monitoring.md +180 -0
- package/.agent/skills/video-orchestrator/references/role-archetypes.md +298 -0
- package/.agent/skills/video-orchestrator/references/tool-matrix.md +317 -0
- package/.agent/skills/web-pentest/SKILL.md +332 -0
- package/.agent/skills/web-pentest/references/bypass-techniques.md +133 -0
- package/.agent/skills/web-pentest/references/exploitation-techniques.md +204 -0
- package/.agent/skills/web-pentest/references/scope-enforcement.md +110 -0
- package/.agent/skills/web-pentest/references/vuln-taxonomy.md +81 -0
- package/.agent/skills/web-pentest/templates/authorization.md +69 -0
- package/.agent/skills/web-pentest/templates/pentest-report.md +178 -0
- package/.claude/commands/mindforge/skill-tdd.md +53 -0
- package/.claude/commands/mindforge/skills-index.md +118 -0
- package/.claude/commands/mindforge/systematic-debug.md +60 -0
- package/.mindforge/config.json +2 -2
- package/.mindforge/memory/sync-manifest.json +1 -1
- package/.mindforge/skills/arxiv/SKILL.md +294 -0
- package/.mindforge/skills/blogwatcher/SKILL.md +147 -0
- package/.mindforge/skills/code-wiki/SKILL.md +457 -0
- package/.mindforge/skills/codebase-inspection/SKILL.md +126 -0
- package/.mindforge/skills/concept-diagrams/SKILL.md +373 -0
- package/.mindforge/skills/creative-ideation/SKILL.md +162 -0
- package/.mindforge/skills/domain-intel/SKILL.md +116 -0
- package/.mindforge/skills/duckduckgo-search/SKILL.md +249 -0
- package/.mindforge/skills/github-code-review/SKILL.md +493 -0
- package/.mindforge/skills/github-issues/SKILL.md +382 -0
- package/.mindforge/skills/github-pr-workflow/SKILL.md +379 -0
- package/.mindforge/skills/jupyter-live-kernel/SKILL.md +179 -0
- package/.mindforge/skills/kanban-orchestrator/SKILL.md +227 -0
- package/.mindforge/skills/kanban-worker/SKILL.md +206 -0
- package/.mindforge/skills/meme-generation/SKILL.md +141 -0
- package/.mindforge/skills/obsidian/SKILL.md +80 -0
- package/.mindforge/skills/osint-investigation/SKILL.md +288 -0
- package/.mindforge/skills/oss-forensics/SKILL.md +421 -0
- package/.mindforge/skills/pixel-art/SKILL.md +228 -0
- package/.mindforge/skills/plan/SKILL.md +350 -0
- package/.mindforge/skills/requesting-code-review/SKILL.md +292 -0
- package/.mindforge/skills/research-paper-writing/SKILL.md +2384 -0
- package/.mindforge/skills/scrapling/SKILL.md +345 -0
- package/.mindforge/skills/sherlock/SKILL.md +203 -0
- package/.mindforge/skills/simplify-code/SKILL.md +187 -0
- package/.mindforge/skills/spike/SKILL.md +209 -0
- package/.mindforge/skills/subagent-driven-development/SKILL.md +364 -0
- package/.mindforge/skills/systematic-debugging/SKILL.md +379 -0
- package/.mindforge/skills/test-driven-development/SKILL.md +355 -0
- package/.mindforge/skills/web-pentest/SKILL.md +327 -0
- package/CHANGELOG.md +43 -0
- package/MINDFORGE.md +2 -2
- package/README.md +39 -3
- package/RELEASENOTES.md +55 -0
- package/docs/getting-started.md +42 -5
- package/package.json +1 -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
|
+
|