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,158 @@
1
+ ---
2
+ name: hermes-agent-skill-authoring
3
+ description: "Author in-repo SKILL.md: frontmatter, validator, structure."
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # Authoring
8
+
9
+ ## Overview
10
+
11
+ There are two places a SKILL.md can live:
12
+
13
+ 1. **User-local:** `~/.agent/skills/<maybe-category>/<name>/SKILL.md` — personal, not shared. Created via `skill_manage(action='create')`.
14
+ 2. **In-repo (this skill is about this case):** `/home/bb/
15
+
16
+ ## When to Use
17
+
18
+ - User asks you to add a skill "in this branch / repo / commit"
19
+ - You're committing a reusable workflow that should ship with
20
+ - You're editing an existing skill under `/home/bb/
21
+
22
+ ## Required Frontmatter
23
+
24
+ Source of truth: `tools/skill_manager_tool.py::_validate_frontmatter`. Hard requirements:
25
+
26
+ - Starts with `---` as the first bytes (no leading blank line).
27
+ - Closes with `\n---\n` before the body.
28
+ - Parses as a YAML mapping.
29
+ - `name` field present.
30
+ - `description` field present, ≤ **1024 chars** (`MAX_DESCRIPTION_LENGTH`).
31
+ - Non-empty body after the closing `---`.
32
+
33
+ Peer-matched shape used by every skill under `skills/software-development/`:
34
+
35
+ ```yaml
36
+ ---
37
+ name: my-skill-name # lowercase, hyphens, ≤64 chars (MAX_NAME_LENGTH)
38
+ description: Use when <trigger>. <one-line behavior>.
39
+ version: 1.0.0
40
+ author:
41
+ license: MIT
42
+ metadata:
43
+ hermes:
44
+ tags: [short, descriptive, tags]
45
+ related_skills: [other-skill, another-skill]
46
+ ---
47
+ ```
48
+
49
+ `version` / `author` / `license` / `metadata` are NOT enforced by the validator, but every peer has them — omit and your skill sticks out.
50
+
51
+ ## Size Limits
52
+
53
+ - Description: ≤ 1024 chars (enforced).
54
+ - Full SKILL.md: ≤ 100,000 chars (enforced as `MAX_SKILL_CONTENT_CHARS`, ~36k tokens).
55
+ - Peer skills in `software-development/` sit at **8-14k chars**. Aim for that range. If you're pushing past 20k, split into `references/*.md` and reference them from SKILL.md.
56
+
57
+ ## Peer-Matched Structure
58
+
59
+ Every in-repo skill follows roughly:
60
+
61
+ ```
62
+ # <Title>
63
+
64
+ ## Overview
65
+ One or two paragraphs: what and why.
66
+
67
+ ## When to Use
68
+ - Bulleted triggers
69
+ - "Don't use for:" counter-triggers
70
+
71
+ ## <Topic sections specific to the skill>
72
+ - Quick-reference tables are common
73
+ - Code blocks with exact commands
74
+ - the agent-specific recipes (tests via scripts/run_tests.sh, ui-tui paths, etc.)
75
+
76
+ ## Common Pitfalls
77
+ Numbered list of mistakes and their fixes.
78
+
79
+ ## Verification Checklist
80
+ - [ ] Checkbox list of post-action verifications
81
+
82
+ ## One-Shot Recipes (optional)
83
+ Named scenarios → concrete command sequences.
84
+ ```
85
+
86
+ Not every section is mandatory, but `Overview` + `When to Use` + actionable body + pitfalls are the minimum for the skill to feel like a peer.
87
+
88
+ ## Directory Placement
89
+
90
+ ```
91
+ skills/<category>/<skill-name>/SKILL.md
92
+ ```
93
+
94
+ Categories currently in repo (confirm with `ls skills/`): `autonomous-ai-agents`, `creative`, `data-science`, `devops`, `dogfood`, `email`, `gaming`, `github`, `leisure`, `mcp`, `media`, `mlops/*`, `note-taking`, `productivity`, `red-teaming`, `research`, `smart-home`, `social-media`, `software-development`.
95
+
96
+ Pick the closest existing category. Don't invent new top-level categories casually.
97
+
98
+ ## Workflow
99
+
100
+ 1. **Survey peers** in the target category:
101
+ ```
102
+ ls skills/<category>/
103
+ ```
104
+ Read 2-3 peer SKILL.md files to match tone and structure.
105
+ 2. **Check validator constraints** in `tools/skill_manager_tool.py` if unsure.
106
+ 3. **Draft** with `write_file` to `skills/<category>/<name>/SKILL.md`.
107
+ 4. **Validate locally**:
108
+ ```python
109
+ import yaml, re, pathlib
110
+ content = pathlib.Path("skills/<category>/<name>/SKILL.md").read_text()
111
+ assert content.startswith("---")
112
+ m = re.search(r'\n---\s*\n', content[3:])
113
+ fm = yaml.safe_load(content[3:m.start()+3])
114
+ assert "name" in fm and "description" in fm
115
+ assert len(fm["description"]) <= 1024
116
+ assert len(content) <= 100_000
117
+ ```
118
+ 5. **Git add + commit** on the active branch.
119
+ 6. **Note:** the CURRENT session's skill loader is cached — `skill_view` / `skills_list` will not see the new skill until a new session. This is expected, not a bug.
120
+
121
+ ## Cross-Referencing Other Skills
122
+
123
+ `metadata.hermes.related_skills` unions both trees (`skills/` in-repo and `~/.agent/skills/`) at load time. You CAN reference a user-local skill from an in-repo skill, but it won't resolve for other users who clone the repo fresh. Prefer referencing only in-repo skills from in-repo skills. If a frequently-referenced skill lives only in `~/.agent/skills/`, consider promoting it to the repo.
124
+
125
+ ## Editing Existing In-Repo Skills
126
+
127
+ - **Small fix (typo, added pitfall, tightened trigger):** `skill_manage(action='patch', name=..., old_string=..., new_string=...)` works fine on in-repo skills.
128
+ - **Major rewrite:** `write_file` the whole SKILL.md. `skill_manage(action='edit')` also works but requires supplying the full new content.
129
+ - **Adding supporting files:** `write_file` to `skills/<category>/<name>/references/<file>.md`, `templates/<file>`, or `scripts/<file>`. `skill_manage(action='write_file')` also works and enforces the references/templates/scripts/assets subdir allowlist.
130
+ - **Always commit** the edit — in-repo skills are source, not runtime state.
131
+
132
+ ## Common Pitfalls
133
+
134
+ 1. **Using `skill_manage(action='create')` for an in-repo skill.** It writes to `~/.agent/skills/`, not the repo tree. Use `write_file` for in-repo creation.
135
+
136
+ 2. **Leading whitespace before `---`.** The validator checks `content.startswith("---")`; any leading blank line or BOM fails validation.
137
+
138
+ 3. **Description too generic.** Peer descriptions start with "Use when ..." and describe the *trigger class*, not the one task. "Use when debugging X" > "Debug X".
139
+
140
+ 4. **Forgetting the author/license/metadata block.** Not validator-enforced, but every peer has it; omitting makes the skill look half-finished.
141
+
142
+ 5. **Writing a skill that duplicates a peer.** Before creating, `ls skills/<category>/` and open 2-3 peers. Prefer extending an existing skill to creating a narrow sibling.
143
+
144
+ 6. **Expecting the current session to see the new skill.** It won't. The skill loader is initialized at session start. Verify in a fresh session or via `skill_view` using the exact path.
145
+
146
+ 7. **Linking to skills that don't exist in-repo.** `related_skills: [some-user-local-skill]` works for you but breaks for other clones. Prefer only in-repo links.
147
+
148
+ ## Verification Checklist
149
+
150
+ - [ ] File is at `skills/<category>/<name>/SKILL.md` (not in `~/.agent/skills/`)
151
+ - [ ] Frontmatter starts at byte 0 with `---`, closes with `\n---\n`
152
+ - [ ] `name`, `description`, `version`, `author`, `license`, `metadata.hermes.{tags, related_skills}` all present
153
+ - [ ] Name ≤ 64 chars, lowercase + hyphens
154
+ - [ ] Description ≤ 1024 chars and starts with "Use when ..."
155
+ - [ ] Total file ≤ 100,000 chars (aim for 8-15k)
156
+ - [ ] Structure: `# Title` → `## Overview` → `## When to Use` → body → `## Common Pitfalls` → `## Verification Checklist`
157
+ - [ ] `related_skills` references resolve in-repo (or are explicitly OK to be user-local)
158
+ - [ ] `git add skills/<category>/<name>/ && git commit` completed on the intended branch
@@ -0,0 +1,190 @@
1
+ ---
2
+ name: spike
3
+ description: "Throwaway experiments to validate an idea before build."
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # Spike
8
+
9
+ 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.
10
+
11
+ 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".
12
+
13
+ ## When NOT to use this
14
+
15
+ - The answer is knowable from docs or reading code — just do research, don't build
16
+ - The work is production path — use the `plan` skill instead
17
+ - The idea is already validated — jump straight to implementation
18
+
19
+ ## If the user has the full GSD system installed
20
+
21
+ 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.
22
+
23
+ ## Core method
24
+
25
+ Regardless of scale, every spike follows this loop:
26
+
27
+ ```
28
+ decompose → research → build → verdict
29
+ ↑__________________________________________↓
30
+ iterate on findings
31
+ ```
32
+
33
+ ### 1. Decompose
34
+
35
+ 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:
36
+
37
+ | # | Spike | Validates (Given/When/Then) | Risk |
38
+ |---|-------|----------------------------|------|
39
+ | 001 | websocket-streaming | Given a WS connection, when LLM streams tokens, then client receives chunks < 100ms | High |
40
+ | 002a | pdf-parse-pdfjs | Given a multi-page PDF, when parsed with pdfjs, then structured text is extractable | Medium |
41
+ | 002b | pdf-parse-camelot | Given a multi-page PDF, when parsed with camelot, then structured text is extractable | Medium |
42
+
43
+ **Spike types:**
44
+ - **standard** — one approach answering one question
45
+ - **comparison** — same question, different approaches (shared number, letter suffix `a`/`b`/`c`)
46
+
47
+ **Good spike questions:** specific feasibility with observable output.
48
+ **Bad spike questions:** too broad, no observable output, or just "read the docs about X".
49
+
50
+ **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.
51
+
52
+ **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.
53
+
54
+ ### 2. Align (for multi-spike ideas)
55
+
56
+ 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.
57
+
58
+ ### 3. Research (per spike, before building)
59
+
60
+ Spikes are not research-free — you research enough to pick the right approach, then you build. Per spike:
61
+
62
+ 1. **Brief it.** 2-3 sentences: what this spike is, why it matters, key risk.
63
+ 2. **Surface competing approaches** if there's real choice:
64
+
65
+ | Approach | Tool/Library | Pros | Cons | Status |
66
+ |----------|-------------|------|------|--------|
67
+ | ... | ... | ... | ... | maintained / abandoned / beta |
68
+
69
+ 3. **Pick one.** State why. If 2+ are credible, build quick variants within the spike.
70
+ 4. **Skip research** for pure logic with no external dependencies.
71
+
72
+ Use tools for the research step:
73
+
74
+ - `web_search("python websocket streaming libraries 2025")` — find candidates
75
+ - `web_extract(urls=["https://websockets.readthedocs.io/..."])` — read the actual docs (returns markdown)
76
+ - `terminal("pip show websockets | grep Version")` — check what's installed in the project's venv
77
+
78
+ 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`.
79
+
80
+ ### 4. Build
81
+
82
+ One directory per spike. Keep it standalone.
83
+
84
+ ```
85
+ spikes/
86
+ ├── 001-websocket-streaming/
87
+ │ ├── README.md
88
+ │ └── main.py
89
+ ├── 002a-pdf-parse-pdfjs/
90
+ │ ├── README.md
91
+ │ └── parse.js
92
+ └── 002b-pdf-parse-camelot/
93
+ ├── README.md
94
+ └── parse.py
95
+ ```
96
+
97
+ **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:
98
+
99
+ 1. A runnable CLI that takes input and prints observable output
100
+ 2. A minimal HTML page that demonstrates the behavior
101
+ 3. A small web server with one endpoint
102
+ 4. A unit test that exercises the question with recognizable assertions
103
+
104
+ **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.
105
+
106
+ **Avoid** unless the spike specifically requires it: complex package management, build tools/bundlers, Docker, env files, config systems. Hardcode everything — it's a spike.
107
+
108
+ **Building one spike** — a typical tool sequence:
109
+
110
+ ```
111
+ terminal("mkdir -p spikes/001-websocket-streaming")
112
+ write_file("spikes/001-websocket-streaming/README.md", "# 001: websocket-streaming\n\n...")
113
+ write_file("spikes/001-websocket-streaming/main.py", "...")
114
+ terminal("cd spikes/001-websocket-streaming && python3 main.py")
115
+ # Observe output, iterate.
116
+ ```
117
+
118
+ **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`:
119
+
120
+ ```
121
+ delegate_task(tasks=[
122
+ {"goal": "Build 002a-pdf-parse-pdfjs: ...", "toolsets": ["terminal", "file", "web"]},
123
+ {"goal": "Build 002b-pdf-parse-camelot: ...", "toolsets": ["terminal", "file", "web"]},
124
+ ])
125
+ ```
126
+
127
+ Each subagent returns its own verdict; you write the head-to-head.
128
+
129
+ ### 5. Verdict
130
+
131
+ Each spike's `README.md` closes with:
132
+
133
+ ```markdown
134
+ ## Verdict: VALIDATED | PARTIAL | INVALIDATED
135
+
136
+ ### What worked
137
+ - ...
138
+
139
+ ### What didn't
140
+ - ...
141
+
142
+ ### Surprises
143
+ - ...
144
+
145
+ ### Recommendation for the real build
146
+ - ...
147
+ ```
148
+
149
+ **VALIDATED** = the core question was answered yes, with evidence.
150
+ **PARTIAL** = it works under constraints X, Y, Z — document them.
151
+ **INVALIDATED** = doesn't work, for this reason. This is a successful spike.
152
+
153
+ ## Comparison spikes
154
+
155
+ When two approaches answer the same question (002a / 002b), build them **back to back**, then do a head-to-head comparison at the end:
156
+
157
+ ```markdown
158
+ ## Head-to-head: pdfjs vs camelot
159
+
160
+ | Dimension | pdfjs (002a) | camelot (002b) |
161
+ |-----------|--------------|----------------|
162
+ | Extraction quality | 9/10 structured | 7/10 table-only |
163
+ | Setup complexity | npm install, 1 line | pip + ghostscript |
164
+ | Perf on 100-page PDF | 3s | 18s |
165
+ | Handles rotated text | no | yes |
166
+
167
+ **Winner:** pdfjs for our use case. Camelot if we need table-first extraction later.
168
+ ```
169
+
170
+ ## Frontier mode (picking what to spike next)
171
+
172
+ If spikes already exist and the user says "what should I spike next?", walk the existing directories and look for:
173
+
174
+ - **Integration risks** — two validated spikes that touch the same resource but were tested independently
175
+ - **Data handoffs** — spike A's output was assumed compatible with spike B's input; never proven
176
+ - **Gaps in the vision** — capabilities assumed but unproven
177
+ - **Alternative approaches** — different angles for PARTIAL or INVALIDATED spikes
178
+
179
+ Propose 2-4 candidates as Given/When/Then. Let the user pick.
180
+
181
+ ## Output
182
+
183
+ - Create `spikes/` (or `.planning/spikes/` if the user is using GSD conventions) in the repo root
184
+ - One dir per spike: `NNN-descriptive-name/`
185
+ - `README.md` per spike captures question, approach, results, verdict
186
+ - Keep the code throwaway — a spike that takes 2 days to "clean up for production" was a bad spike
187
+
188
+ ## Attribution
189
+
190
+ 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`.
@@ -0,0 +1,345 @@
1
+ ---
2
+ name: subagent-driven-development
3
+ description: "Execute plans via delegate_task subagents (2-stage review)."
4
+ version: 1.1.0
5
+ ---
6
+
7
+ # Subagent-Driven Development
8
+
9
+ ## Overview
10
+
11
+ Execute implementation plans by dispatching fresh subagents per task with systematic two-stage review.
12
+
13
+ **Core principle:** Fresh subagent per task + two-stage review (spec then quality) = high quality, fast iteration.
14
+
15
+ ## When to Use
16
+
17
+ Use this skill when:
18
+ - You have an implementation plan (from the `plan` skill or user requirements)
19
+ - Tasks are mostly independent
20
+ - Quality and spec compliance are important
21
+ - You want automated review between tasks
22
+
23
+ **vs. manual execution:**
24
+ - Fresh context per task (no confusion from accumulated state)
25
+ - Automated review process catches issues early
26
+ - Consistent quality checks across all tasks
27
+ - Subagents can ask questions before starting work
28
+
29
+ ## The Process
30
+
31
+ ### 1. Read and Parse Plan
32
+
33
+ Read the plan file. Extract ALL tasks with their full text and context upfront. Create a todo list:
34
+
35
+ ```python
36
+ # Read the plan
37
+ read_file("docs/plans/feature-plan.md")
38
+
39
+ # Create todo list with all tasks
40
+ todo([
41
+ {"id": "task-1", "content": "Create User model with email field", "status": "pending"},
42
+ {"id": "task-2", "content": "Add password hashing utility", "status": "pending"},
43
+ {"id": "task-3", "content": "Create login endpoint", "status": "pending"},
44
+ ])
45
+ ```
46
+
47
+ **Key:** Read the plan ONCE. Extract everything. Don't make subagents read the plan file — provide the full task text directly in context.
48
+
49
+ ### 2. Per-Task Workflow
50
+
51
+ For EACH task in the plan:
52
+
53
+ #### Step 1: Dispatch Implementer Subagent
54
+
55
+ Use `delegate_task` with complete context:
56
+
57
+ ```python
58
+ delegate_task(
59
+ goal="Implement Task 1: Create User model with email and password_hash fields",
60
+ context="""
61
+ TASK FROM PLAN:
62
+ - Create: src/models/user.py
63
+ - Add User class with email (str) and password_hash (str) fields
64
+ - Use bcrypt for password hashing
65
+ - Include __repr__ for debugging
66
+
67
+ FOLLOW TDD:
68
+ 1. Write failing test in tests/models/test_user.py
69
+ 2. Run: pytest tests/models/test_user.py -v (verify FAIL)
70
+ 3. Write minimal implementation
71
+ 4. Run: pytest tests/models/test_user.py -v (verify PASS)
72
+ 5. Run: pytest tests/ -q (verify no regressions)
73
+ 6. Commit: git add -A && git commit -m "feat: add User model with password hashing"
74
+
75
+ PROJECT CONTEXT:
76
+ - Python 3.11, Flask app in src/app.py
77
+ - Existing models in src/models/
78
+ - Tests use pytest, run from project root
79
+ - bcrypt already in requirements.txt
80
+ """,
81
+ toolsets=['terminal', 'file']
82
+ )
83
+ ```
84
+
85
+ #### Step 2: Dispatch Spec Compliance Reviewer
86
+
87
+ After the implementer completes, verify against the original spec:
88
+
89
+ ```python
90
+ delegate_task(
91
+ goal="Review if implementation matches the spec from the plan",
92
+ context="""
93
+ ORIGINAL TASK SPEC:
94
+ - Create src/models/user.py with User class
95
+ - Fields: email (str), password_hash (str)
96
+ - Use bcrypt for password hashing
97
+ - Include __repr__
98
+
99
+ CHECK:
100
+ - [ ] All requirements from spec implemented?
101
+ - [ ] File paths match spec?
102
+ - [ ] Function signatures match spec?
103
+ - [ ] Behavior matches expected?
104
+ - [ ] Nothing extra added (no scope creep)?
105
+
106
+ OUTPUT: PASS or list of specific spec gaps to fix.
107
+ """,
108
+ toolsets=['file']
109
+ )
110
+ ```
111
+
112
+ **If spec issues found:** Fix gaps, then re-run spec review. Continue only when spec-compliant.
113
+
114
+ #### Step 3: Dispatch Code Quality Reviewer
115
+
116
+ After spec compliance passes:
117
+
118
+ ```python
119
+ delegate_task(
120
+ goal="Review code quality for Task 1 implementation",
121
+ context="""
122
+ FILES TO REVIEW:
123
+ - src/models/user.py
124
+ - tests/models/test_user.py
125
+
126
+ CHECK:
127
+ - [ ] Follows project conventions and style?
128
+ - [ ] Proper error handling?
129
+ - [ ] Clear variable/function names?
130
+ - [ ] Adequate test coverage?
131
+ - [ ] No obvious bugs or missed edge cases?
132
+ - [ ] No security issues?
133
+
134
+ OUTPUT FORMAT:
135
+ - Critical Issues: [must fix before proceeding]
136
+ - Important Issues: [should fix]
137
+ - Minor Issues: [optional]
138
+ - Verdict: APPROVED or REQUEST_CHANGES
139
+ """,
140
+ toolsets=['file']
141
+ )
142
+ ```
143
+
144
+ **If quality issues found:** Fix issues, re-review. Continue only when approved.
145
+
146
+ #### Step 4: Mark Complete
147
+
148
+ ```python
149
+ todo([{"id": "task-1", "content": "Create User model with email field", "status": "completed"}], merge=True)
150
+ ```
151
+
152
+ ### 3. Final Review
153
+
154
+ After ALL tasks are complete, dispatch a final integration reviewer:
155
+
156
+ ```python
157
+ delegate_task(
158
+ goal="Review the entire implementation for consistency and integration issues",
159
+ context="""
160
+ All tasks from the plan are complete. Review the full implementation:
161
+ - Do all components work together?
162
+ - Any inconsistencies between tasks?
163
+ - All tests passing?
164
+ - Ready for merge?
165
+ """,
166
+ toolsets=['terminal', 'file']
167
+ )
168
+ ```
169
+
170
+ ### 4. Verify and Commit
171
+
172
+ ```bash
173
+ # Run full test suite
174
+ pytest tests/ -q
175
+
176
+ # Review all changes
177
+ git diff --stat
178
+
179
+ # Final commit if needed
180
+ git add -A && git commit -m "feat: complete [feature name] implementation"
181
+ ```
182
+
183
+ ## Task Granularity
184
+
185
+ **Each task = 2-5 minutes of focused work.**
186
+
187
+ **Too big:**
188
+ - "Implement user authentication system"
189
+
190
+ **Right size:**
191
+ - "Create User model with email and password fields"
192
+ - "Add password hashing function"
193
+ - "Create login endpoint"
194
+ - "Add JWT token generation"
195
+ - "Create registration endpoint"
196
+
197
+ ## Red Flags — Never Do These
198
+
199
+ - Start implementation without a plan
200
+ - Skip reviews (spec compliance OR code quality)
201
+ - Proceed with unfixed critical/important issues
202
+ - Dispatch multiple implementation subagents for tasks that touch the same files
203
+ - Make subagent read the plan file (provide full text in context instead)
204
+ - Skip scene-setting context (subagent needs to understand where the task fits)
205
+ - Ignore subagent questions (answer before letting them proceed)
206
+ - Accept "close enough" on spec compliance
207
+ - Skip review loops (reviewer found issues → implementer fixes → review again)
208
+ - Let implementer self-review replace actual review (both are needed)
209
+ - **Start code quality review before spec compliance is PASS** (wrong order)
210
+ - Move to next task while either review has open issues
211
+
212
+ ## Handling Issues
213
+
214
+ ### If Subagent Asks Questions
215
+
216
+ - Answer clearly and completely
217
+ - Provide additional context if needed
218
+ - Don't rush them into implementation
219
+
220
+ ### If Reviewer Finds Issues
221
+
222
+ - Implementer subagent (or a new one) fixes them
223
+ - Reviewer reviews again
224
+ - Repeat until approved
225
+ - Don't skip the re-review
226
+
227
+ ### If Subagent Fails a Task
228
+
229
+ - Dispatch a new fix subagent with specific instructions about what went wrong
230
+ - Don't try to fix manually in the controller session (context pollution)
231
+
232
+ ## Efficiency Notes
233
+
234
+ **Why fresh subagent per task:**
235
+ - Prevents context pollution from accumulated state
236
+ - Each subagent gets clean, focused context
237
+ - No confusion from prior tasks' code or reasoning
238
+
239
+ **Why two-stage review:**
240
+ - Spec review catches under/over-building early
241
+ - Quality review ensures the implementation is well-built
242
+ - Catches issues before they compound across tasks
243
+
244
+ **Cost trade-off:**
245
+ - More subagent invocations (implementer + 2 reviewers per task)
246
+ - But catches issues early (cheaper than debugging compounded problems later)
247
+
248
+ ## Integration with Other Skills
249
+
250
+ ### With plan
251
+
252
+ This skill EXECUTES plans created by the `plan` skill:
253
+ 1. User requirements → plan → implementation plan
254
+ 2. Implementation plan → subagent-driven-development → working code
255
+
256
+ ### With test-driven-development
257
+
258
+ Implementer subagents should follow TDD:
259
+ 1. Write failing test first
260
+ 2. Implement minimal code
261
+ 3. Verify test passes
262
+ 4. Commit
263
+
264
+ Include TDD instructions in every implementer context.
265
+
266
+ ### With requesting-code-review
267
+
268
+ The two-stage review process IS the code review. For final integration review, use the requesting-code-review skill's review dimensions.
269
+
270
+ ### With systematic-debugging
271
+
272
+ If a subagent encounters bugs during implementation:
273
+ 1. Follow systematic-debugging process
274
+ 2. Find root cause before fixing
275
+ 3. Write regression test
276
+ 4. Resume implementation
277
+
278
+ ## Example Workflow
279
+
280
+ ```
281
+ [Read plan: docs/plans/auth-feature.md]
282
+ [Create todo list with 5 tasks]
283
+
284
+ --- Task 1: Create User model ---
285
+ [Dispatch implementer subagent]
286
+ Implementer: "Should email be unique?"
287
+ You: "Yes, email must be unique"
288
+ Implementer: Implemented, 3/3 tests passing, committed.
289
+
290
+ [Dispatch spec reviewer]
291
+ Spec reviewer: ✅ PASS — all requirements met
292
+
293
+ [Dispatch quality reviewer]
294
+ Quality reviewer: ✅ APPROVED — clean code, good tests
295
+
296
+ [Mark Task 1 complete]
297
+
298
+ --- Task 2: Password hashing ---
299
+ [Dispatch implementer subagent]
300
+ Implementer: No questions, implemented, 5/5 tests passing.
301
+
302
+ [Dispatch spec reviewer]
303
+ Spec reviewer: ❌ Missing: password strength validation (spec says "min 8 chars")
304
+
305
+ [Implementer fixes]
306
+ Implementer: Added validation, 7/7 tests passing.
307
+
308
+ [Dispatch spec reviewer again]
309
+ Spec reviewer: ✅ PASS
310
+
311
+ [Dispatch quality reviewer]
312
+ Quality reviewer: Important: Magic number 8, extract to constant
313
+ Implementer: Extracted MIN_PASSWORD_LENGTH constant
314
+ Quality reviewer: ✅ APPROVED
315
+
316
+ [Mark Task 2 complete]
317
+
318
+ ... (continue for all tasks)
319
+
320
+ [After all tasks: dispatch final integration reviewer]
321
+ [Run full test suite: all passing]
322
+ [Done!]
323
+ ```
324
+
325
+ ## Remember
326
+
327
+ ```
328
+ Fresh subagent per task
329
+ Two-stage review every time
330
+ Spec compliance FIRST
331
+ Code quality SECOND
332
+ Never skip reviews
333
+ Catch issues early
334
+ ```
335
+
336
+ **Quality is not an accident. It's the result of systematic process.**
337
+
338
+ ## Further reading (load when relevant)
339
+
340
+ When the orchestration involves significant context usage, long review loops, or complex validation checkpoints, load these references for the specific discipline:
341
+
342
+ - **`references/context-budget-discipline.md`** — Four-tier context degradation model (PEAK / GOOD / DEGRADING / POOR), read-depth rules that scale with context window size, and early warning signs of silent degradation. Load when a run will clearly consume significant context (multi-phase plans, many subagents, large artifacts).
343
+ - **`references/gates-taxonomy.md`** — The four canonical gate types (Pre-flight, Revision, Escalation, Abort) with behavior, recovery, and examples. Load when designing or reviewing any workflow that has validation checkpoints — use the vocabulary explicitly so each gate has defined entry, failure behavior, and resumption rules.
344
+
345
+ Both references adapted from gsd-build/get-shit-done (MIT © 2025 Lex Christopherson).