feed-the-machine 1.6.1 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +262 -170
  3. package/bin/__pycache__/tasks_db.cpython-314.pyc +0 -0
  4. package/bin/brain.py +1340 -0
  5. package/bin/convert_claude_skills_to_codex.py +490 -0
  6. package/bin/generate-manifest.mjs +463 -463
  7. package/bin/harden_codex_skills.py +141 -0
  8. package/bin/install.mjs +491 -491
  9. package/bin/migrate-eng-buddy-data.py +875 -0
  10. package/bin/playbook_engine/__init__.py +1 -0
  11. package/bin/playbook_engine/conftest.py +8 -0
  12. package/bin/playbook_engine/extractor.py +33 -0
  13. package/bin/playbook_engine/manager.py +102 -0
  14. package/bin/playbook_engine/models.py +84 -0
  15. package/bin/playbook_engine/registry.py +35 -0
  16. package/bin/playbook_engine/test_extractor.py +72 -0
  17. package/bin/playbook_engine/test_integration.py +129 -0
  18. package/bin/playbook_engine/test_manager.py +85 -0
  19. package/bin/playbook_engine/test_models.py +166 -0
  20. package/bin/playbook_engine/test_registry.py +67 -0
  21. package/bin/playbook_engine/test_tracer.py +86 -0
  22. package/bin/playbook_engine/tracer.py +93 -0
  23. package/bin/tasks_db.py +456 -0
  24. package/docs/HOOKS.md +243 -243
  25. package/docs/INBOX.md +233 -233
  26. package/ftm/SKILL.md +125 -122
  27. package/ftm-audit/SKILL.md +673 -623
  28. package/ftm-audit/references/protocols/PROJECT-PATTERNS.md +91 -91
  29. package/ftm-audit/references/protocols/RUNTIME-WIRING.md +66 -66
  30. package/ftm-audit/references/protocols/WIRING-CONTRACTS.md +135 -135
  31. package/ftm-audit/references/strategies/AUTO-FIX-STRATEGIES.md +69 -69
  32. package/ftm-audit/references/templates/REPORT-FORMAT.md +96 -96
  33. package/ftm-audit/scripts/run-knip.sh +23 -23
  34. package/ftm-audit.yml +2 -2
  35. package/ftm-brainstorm/SKILL.md +1003 -498
  36. package/ftm-brainstorm/evals/evals.json +180 -100
  37. package/ftm-brainstorm/evals/promptfoo.yaml +109 -109
  38. package/ftm-brainstorm/references/agent-prompts.md +552 -224
  39. package/ftm-brainstorm/references/plan-template.md +209 -121
  40. package/ftm-brainstorm.yml +2 -2
  41. package/ftm-browse/SKILL.md +454 -454
  42. package/ftm-browse/daemon/browser-manager.ts +206 -206
  43. package/ftm-browse/daemon/bun.lock +30 -30
  44. package/ftm-browse/daemon/cli.ts +347 -347
  45. package/ftm-browse/daemon/commands.ts +410 -410
  46. package/ftm-browse/daemon/main.ts +357 -357
  47. package/ftm-browse/daemon/package.json +17 -17
  48. package/ftm-browse/daemon/server.ts +189 -189
  49. package/ftm-browse/daemon/snapshot.ts +519 -519
  50. package/ftm-browse/daemon/tsconfig.json +22 -22
  51. package/ftm-browse.yml +4 -4
  52. package/ftm-capture/SKILL.md +370 -370
  53. package/ftm-capture.yml +4 -4
  54. package/ftm-codex-gate/SKILL.md +361 -361
  55. package/ftm-codex-gate.yml +2 -2
  56. package/ftm-config/SKILL.md +422 -345
  57. package/ftm-config.default.yml +125 -82
  58. package/ftm-config.yml +44 -2
  59. package/ftm-council/SKILL.md +416 -416
  60. package/ftm-council/references/prompts/CLAUDE-INVESTIGATION.md +60 -60
  61. package/ftm-council/references/prompts/CODEX-INVESTIGATION.md +58 -58
  62. package/ftm-council/references/prompts/GEMINI-INVESTIGATION.md +58 -58
  63. package/ftm-council/references/prompts/REBUTTAL-TEMPLATE.md +57 -57
  64. package/ftm-council/references/protocols/PREREQUISITES.md +47 -47
  65. package/ftm-council/references/protocols/STEP-0-FRAMING.md +46 -46
  66. package/ftm-council-chat.yml +2 -0
  67. package/ftm-council.yml +2 -2
  68. package/ftm-dashboard/SKILL.md +163 -163
  69. package/ftm-dashboard.yml +4 -4
  70. package/ftm-debug/SKILL.md +1037 -1037
  71. package/ftm-debug/references/phases/PHASE-0-INTAKE.md +58 -58
  72. package/ftm-debug/references/phases/PHASE-1-TRIAGE.md +46 -46
  73. package/ftm-debug/references/phases/PHASE-2-WAR-ROOM-AGENTS.md +279 -279
  74. package/ftm-debug/references/phases/PHASE-3-TO-6-EXECUTION.md +436 -436
  75. package/ftm-debug/references/protocols/BLACKBOARD.md +86 -86
  76. package/ftm-debug/references/protocols/EDGE-CASES.md +103 -103
  77. package/ftm-debug.yml +2 -2
  78. package/ftm-diagram/SKILL.md +277 -277
  79. package/ftm-diagram.yml +2 -2
  80. package/ftm-executor/SKILL.md +777 -777
  81. package/ftm-executor/references/STYLE-TEMPLATE.md +73 -73
  82. package/ftm-executor/references/phases/PHASE-0-VERIFICATION.md +62 -62
  83. package/ftm-executor/references/phases/PHASE-2-AGENT-ASSEMBLY.md +34 -34
  84. package/ftm-executor/references/phases/PHASE-3-WORKTREES.md +38 -38
  85. package/ftm-executor/references/phases/PHASE-4-5-AUDIT.md +81 -72
  86. package/ftm-executor/references/phases/PHASE-4-DISPATCH.md +66 -66
  87. package/ftm-executor/references/phases/PHASE-5-5-CODEX-GATE.md +73 -73
  88. package/ftm-executor/references/protocols/DOCUMENTATION-BOOTSTRAP.md +36 -36
  89. package/ftm-executor/references/protocols/MODEL-PROFILE.md +59 -59
  90. package/ftm-executor/references/protocols/PROGRESS-TRACKING.md +66 -66
  91. package/ftm-executor/runtime/ftm-runtime.mjs +252 -252
  92. package/ftm-executor/runtime/package.json +8 -8
  93. package/ftm-executor.yml +2 -2
  94. package/ftm-git/SKILL.md +441 -441
  95. package/ftm-git/evals/evals.json +26 -26
  96. package/ftm-git/evals/promptfoo.yaml +75 -75
  97. package/ftm-git/hooks/post-commit-experience.sh +92 -92
  98. package/ftm-git/references/patterns/SECRET-PATTERNS.md +104 -104
  99. package/ftm-git/references/protocols/REMEDIATION.md +139 -139
  100. package/ftm-git/scripts/pre-commit-secrets.sh +110 -110
  101. package/ftm-git.yml +2 -2
  102. package/ftm-inbox/backend/__pycache__/main.cpython-314.pyc +0 -0
  103. package/ftm-inbox/backend/adapters/_retry.py +64 -64
  104. package/ftm-inbox/backend/adapters/base.py +230 -230
  105. package/ftm-inbox/backend/adapters/freshservice.py +104 -104
  106. package/ftm-inbox/backend/adapters/gmail.py +125 -125
  107. package/ftm-inbox/backend/adapters/jira.py +136 -136
  108. package/ftm-inbox/backend/adapters/registry.py +192 -192
  109. package/ftm-inbox/backend/adapters/slack.py +110 -110
  110. package/ftm-inbox/backend/db/connection.py +54 -54
  111. package/ftm-inbox/backend/db/schema.py +78 -78
  112. package/ftm-inbox/backend/executor/__init__.py +7 -7
  113. package/ftm-inbox/backend/executor/engine.py +149 -149
  114. package/ftm-inbox/backend/executor/step_runner.py +98 -98
  115. package/ftm-inbox/backend/main.py +103 -103
  116. package/ftm-inbox/backend/models/__init__.py +1 -1
  117. package/ftm-inbox/backend/models/unified_task.py +36 -36
  118. package/ftm-inbox/backend/planner/__init__.py +6 -6
  119. package/ftm-inbox/backend/planner/__pycache__/__init__.cpython-314.pyc +0 -0
  120. package/ftm-inbox/backend/planner/__pycache__/generator.cpython-314.pyc +0 -0
  121. package/ftm-inbox/backend/planner/__pycache__/schema.cpython-314.pyc +0 -0
  122. package/ftm-inbox/backend/planner/generator.py +127 -127
  123. package/ftm-inbox/backend/planner/schema.py +34 -34
  124. package/ftm-inbox/backend/requirements.txt +5 -5
  125. package/ftm-inbox/backend/routes/__pycache__/plan.cpython-314.pyc +0 -0
  126. package/ftm-inbox/backend/routes/execute.py +186 -186
  127. package/ftm-inbox/backend/routes/health.py +52 -52
  128. package/ftm-inbox/backend/routes/inbox.py +68 -68
  129. package/ftm-inbox/backend/routes/plan.py +271 -271
  130. package/ftm-inbox/bin/launchagent.mjs +91 -91
  131. package/ftm-inbox/bin/setup.mjs +188 -188
  132. package/ftm-inbox/bin/start.sh +10 -10
  133. package/ftm-inbox/bin/status.sh +17 -17
  134. package/ftm-inbox/bin/stop.sh +8 -8
  135. package/ftm-inbox/config.example.yml +55 -55
  136. package/ftm-inbox/package-lock.json +2898 -2898
  137. package/ftm-inbox/package.json +26 -26
  138. package/ftm-inbox/postcss.config.js +6 -6
  139. package/ftm-inbox/src/app.css +199 -199
  140. package/ftm-inbox/src/app.html +18 -18
  141. package/ftm-inbox/src/lib/api.ts +166 -166
  142. package/ftm-inbox/src/lib/components/ExecutionLog.svelte +81 -81
  143. package/ftm-inbox/src/lib/components/InboxFeed.svelte +143 -143
  144. package/ftm-inbox/src/lib/components/PlanStep.svelte +271 -271
  145. package/ftm-inbox/src/lib/components/PlanView.svelte +206 -206
  146. package/ftm-inbox/src/lib/components/StreamPanel.svelte +99 -99
  147. package/ftm-inbox/src/lib/components/TaskCard.svelte +190 -190
  148. package/ftm-inbox/src/lib/components/ui/EmptyState.svelte +63 -63
  149. package/ftm-inbox/src/lib/components/ui/KawaiiCard.svelte +86 -86
  150. package/ftm-inbox/src/lib/components/ui/PillButton.svelte +106 -106
  151. package/ftm-inbox/src/lib/components/ui/StatusBadge.svelte +67 -67
  152. package/ftm-inbox/src/lib/components/ui/StreamDrawer.svelte +149 -149
  153. package/ftm-inbox/src/lib/components/ui/ThemeToggle.svelte +80 -80
  154. package/ftm-inbox/src/lib/theme.ts +47 -47
  155. package/ftm-inbox/src/routes/+layout.svelte +76 -76
  156. package/ftm-inbox/src/routes/+page.svelte +401 -401
  157. package/ftm-inbox/svelte.config.js +12 -12
  158. package/ftm-inbox/tailwind.config.ts +63 -63
  159. package/ftm-inbox/tsconfig.json +13 -13
  160. package/ftm-inbox/vite.config.ts +6 -6
  161. package/ftm-intent/SKILL.md +241 -241
  162. package/ftm-intent.yml +2 -2
  163. package/ftm-manifest.json +3794 -3794
  164. package/ftm-map/SKILL.md +291 -291
  165. package/ftm-map/scripts/db.py +712 -712
  166. package/ftm-map/scripts/index.py +415 -415
  167. package/ftm-map/scripts/parser.py +224 -224
  168. package/ftm-map/scripts/queries/go-tags.scm +20 -20
  169. package/ftm-map/scripts/queries/javascript-tags.scm +35 -35
  170. package/ftm-map/scripts/queries/python-tags.scm +31 -31
  171. package/ftm-map/scripts/queries/ruby-tags.scm +19 -19
  172. package/ftm-map/scripts/queries/rust-tags.scm +37 -37
  173. package/ftm-map/scripts/queries/typescript-tags.scm +41 -41
  174. package/ftm-map/scripts/query.py +301 -301
  175. package/ftm-map/scripts/ranker.py +377 -377
  176. package/ftm-map/scripts/requirements.txt +5 -5
  177. package/ftm-map/scripts/setup-hooks.sh +27 -27
  178. package/ftm-map/scripts/setup.sh +56 -56
  179. package/ftm-map/scripts/test_db.py +364 -364
  180. package/ftm-map/scripts/test_parser.py +174 -174
  181. package/ftm-map/scripts/test_query.py +183 -183
  182. package/ftm-map/scripts/test_ranker.py +199 -199
  183. package/ftm-map/scripts/views.py +591 -591
  184. package/ftm-map.yml +2 -2
  185. package/ftm-mind/SKILL.md +201 -1943
  186. package/ftm-mind/evals/promptfoo.yaml +142 -142
  187. package/ftm-mind/references/blackboard-protocol.md +110 -0
  188. package/ftm-mind/references/blackboard-schema.md +328 -328
  189. package/ftm-mind/references/complexity-guide.md +110 -110
  190. package/ftm-mind/references/complexity-sizing.md +138 -0
  191. package/ftm-mind/references/decide-act-protocol.md +172 -0
  192. package/ftm-mind/references/direct-execution.md +51 -0
  193. package/ftm-mind/references/environment-discovery.md +77 -0
  194. package/ftm-mind/references/event-registry.md +319 -319
  195. package/ftm-mind/references/mcp-inventory.md +300 -296
  196. package/ftm-mind/references/ops-routing.md +47 -0
  197. package/ftm-mind/references/orient-protocol.md +234 -0
  198. package/ftm-mind/references/personality.md +40 -0
  199. package/ftm-mind/references/protocols/COMPLEXITY-SIZING.md +72 -72
  200. package/ftm-mind/references/protocols/MCP-HEURISTICS.md +32 -32
  201. package/ftm-mind/references/protocols/PLAN-APPROVAL.md +80 -80
  202. package/ftm-mind/references/reflexion-protocol.md +249 -249
  203. package/ftm-mind/references/routing/SCENARIOS.md +22 -22
  204. package/ftm-mind/references/routing-scenarios.md +35 -35
  205. package/ftm-mind.yml +2 -2
  206. package/ftm-ops.yml +4 -0
  207. package/ftm-pause/SKILL.md +395 -395
  208. package/ftm-pause/references/protocols/SKILL-RESTORE-PROTOCOLS.md +186 -186
  209. package/ftm-pause/references/protocols/VALIDATION.md +80 -80
  210. package/ftm-pause.yml +2 -2
  211. package/ftm-researcher/SKILL.md +275 -275
  212. package/ftm-researcher/evals/agent-diversity.yaml +17 -17
  213. package/ftm-researcher/evals/synthesis-quality.yaml +12 -12
  214. package/ftm-researcher/evals/trigger-accuracy.yaml +39 -39
  215. package/ftm-researcher/references/adaptive-search.md +116 -116
  216. package/ftm-researcher/references/agent-prompts.md +193 -193
  217. package/ftm-researcher/references/council-integration.md +193 -193
  218. package/ftm-researcher/references/output-format.md +203 -203
  219. package/ftm-researcher/references/synthesis-pipeline.md +165 -165
  220. package/ftm-researcher/scripts/score_credibility.py +234 -234
  221. package/ftm-researcher/scripts/validate_research.py +92 -92
  222. package/ftm-researcher.yml +2 -2
  223. package/ftm-resume/SKILL.md +518 -518
  224. package/ftm-resume/references/protocols/VALIDATION.md +172 -172
  225. package/ftm-resume.yml +2 -2
  226. package/ftm-retro/SKILL.md +380 -380
  227. package/ftm-retro/references/protocols/SCORING-RUBRICS.md +89 -89
  228. package/ftm-retro/references/templates/REPORT-FORMAT.md +109 -109
  229. package/ftm-retro.yml +2 -2
  230. package/ftm-routine/SKILL.md +170 -170
  231. package/ftm-routine.yml +4 -4
  232. package/ftm-state/blackboard/capabilities.json +5 -5
  233. package/ftm-state/blackboard/capabilities.schema.json +27 -27
  234. package/ftm-state/blackboard/context.json +37 -23
  235. package/ftm-state/blackboard/experiences/doom-statusline-fix.json +26 -0
  236. package/ftm-state/blackboard/experiences/hackathon-pages-site.json +26 -0
  237. package/ftm-state/blackboard/experiences/hindsight-sso-kickoff.json +42 -0
  238. package/ftm-state/blackboard/experiences/index.json +58 -9
  239. package/ftm-state/blackboard/experiences/learning-ragnarok-api-access.json +23 -0
  240. package/ftm-state/blackboard/experiences/nordlayer-members-auto-assign.json +26 -0
  241. package/ftm-state/blackboard/experiences/saml2aws-stale-session-fix.json +41 -0
  242. package/ftm-state/blackboard/patterns.json +6 -6
  243. package/ftm-state/schemas/context.schema.json +130 -130
  244. package/ftm-state/schemas/experience-index.schema.json +77 -77
  245. package/ftm-state/schemas/experience.schema.json +78 -78
  246. package/ftm-state/schemas/patterns.schema.json +44 -44
  247. package/ftm-upgrade/SKILL.md +194 -194
  248. package/ftm-upgrade/scripts/check-version.sh +76 -76
  249. package/ftm-upgrade/scripts/upgrade.sh +143 -143
  250. package/ftm-upgrade.yml +2 -2
  251. package/ftm-verify.yml +2 -2
  252. package/ftm.yml +2 -2
  253. package/hooks/ftm-auto-log.sh +137 -0
  254. package/hooks/ftm-blackboard-enforcer.sh +93 -93
  255. package/hooks/ftm-discovery-reminder.sh +90 -90
  256. package/hooks/ftm-drafts-gate.sh +61 -61
  257. package/hooks/ftm-event-logger.mjs +107 -107
  258. package/hooks/ftm-install-hooks.sh +240 -0
  259. package/hooks/ftm-learning-capture.sh +117 -0
  260. package/hooks/ftm-map-autodetect.sh +79 -79
  261. package/hooks/ftm-pending-sync-check.sh +22 -22
  262. package/hooks/ftm-plan-gate.sh +92 -92
  263. package/hooks/ftm-post-commit-trigger.sh +57 -57
  264. package/hooks/ftm-post-compaction.sh +138 -0
  265. package/hooks/ftm-pre-compaction.sh +147 -0
  266. package/hooks/ftm-session-end.sh +52 -0
  267. package/hooks/ftm-session-snapshot.sh +213 -0
  268. package/hooks/ftm-task-loader.sh +100 -0
  269. package/hooks/settings-template.json +91 -81
  270. package/install.sh +363 -363
  271. package/package.json +84 -84
  272. package/uninstall.sh +25 -25
@@ -1,121 +1,209 @@
1
- # Plan Generation Template
2
-
3
- Load this file only when the user approves moving to Phase 3 (plan generation).
4
-
5
- ## Present Incrementally
6
-
7
- Do NOT dump the entire plan in one message. Present section by section:
8
-
9
- 1. **Vision + Architecture Decisions** ask: "Does this foundation look right?"
10
- 2. **Task Breakdown** ask: "Any tasks missing, or should any be split/merged?"
11
- 3. **Agent Team + Execution Order** — ask: "Good to save it?"
12
-
13
- Only save after all three sections are approved.
14
-
15
- ## Plan Document Structure
16
-
17
- ```markdown
18
- # [Project/Feature Name]Implementation Plan
19
-
20
- ## Vision
21
- [2-3 sentence summary of what we're building and why, grounded in research findings]
22
-
23
- ## Key Research Findings
24
- - [Most important patterns/decisions discovered, with source links]
25
- - [Each finding that materially influenced the plan]
26
-
27
- ## Architecture Decisions
28
- [Major technical choices and the reasoning behind each reference the research turn where evidence was found]
29
-
30
- ## Tasks
31
-
32
- ### Task N: [Title]
33
- **Description:** [What needs to be built]
34
- **Files:** [Expected files to create/modify — use ACTUAL project paths from Phase 0]
35
- **Dependencies:** [Which tasks must complete first, or "none"]
36
- **Agent type:** [frontend-developer, backend-architect, etc.]
37
- **Acceptance criteria:**
38
- - [ ] [Specific, testable criterion]
39
- - [ ] [Another criterion]
40
- **Hints:**
41
- - [Relevant research finding with source URL]
42
- - [Known pitfall from research: "Watch out for Z — see [link]"]
43
- - [If brain dump: novelty verdict "Already solved by [tool]" or "Novel — no prior art"]
44
- **Wiring:**
45
- exports:
46
- - symbol: [ExportedName]
47
- from: [file path]
48
- imported_by:
49
- - file: [parent file that should import this]
50
- rendered_in:
51
- - parent: [ParentComponent]
52
- placement: "[where in parent JSX]"
53
- route_path: [/path]
54
- nav_link:
55
- - location: [sidebar|navbar|menu]
56
- label: "[Display text]"
57
-
58
- ## Agent Team
59
- | Agent | Role | Tasks |
60
- |-------|------|-------|
61
- | [type] | [what they handle] | [task numbers] |
62
-
63
- ## Execution Order
64
- - **Wave 1 (parallel):** Tasks [X, Y, Z] — no dependencies
65
- - **Wave 2 (parallel, after wave 1):** Tasks [A, B] depend on wave 1
66
- - **Wave 3:** Task [C] — integration/final assembly
67
- ```
68
-
69
- ## Wiring Contract Rules
70
-
71
- Auto-populate the `Wiring:` block based on file type:
72
-
73
- - **New component** (.tsx/.vue/.svelte): exports (component name), imported_by (parent), rendered_in (where in JSX), route_path (if page)
74
- - **New hook** (use*.ts): exports (function), imported_by (consuming components)
75
- - **New API function** (api/*.ts): exports (functions), imported_by (hooks/components calling them)
76
- - **New store/state**: store_reads (which components read), store_writes (which write)
77
- - **New route/view**: route_path, nav_link (where navigation appears), rendered_in (router config)
78
-
79
- ## Hints Population
80
-
81
- For each task, pull from the cumulative research register:
82
-
83
- 1. **Web Researcher findings** blog posts, case studies, patterns (include URL)
84
- 2. **GitHub Explorer findings** — repos that solved similar problems (include URL + what's useful)
85
- 3. **Competitive Analyst findings** products to learn from or differentiate against
86
- 4. **Brain dump novelty map** (Path B): solved/partially solved/novel verdicts
87
- 5. **Pitfalls** — warnings from any research turn
88
-
89
- Rules:
90
- - Always include source links
91
- - 2-4 bullets per task, not paragraphs
92
- - "No specific research findings for this task" if nothing applies
93
- - Hints are suggestions, not mandates
94
-
95
- ## Quality Rules
96
-
97
- - Tasks small enough for one agent session
98
- - Every task has testable acceptance criteria
99
- - Dependencies explicit — no implicit ordering
100
- - Agent assignments match domain
101
- - Wave structure maximizes parallelism
102
- - File paths reference ACTUAL project structure from Phase 0
103
- - Leverage existing project patterns (don't reinvent)
104
-
105
- ## Save Location
106
-
107
- ```
108
- ~/.claude/plans/[project-name]-plan.md
109
- ```
110
-
111
- Create `~/.claude/plans/` if needed.
112
-
113
- ## Handoff Prompt
114
-
115
- After saving, give the user:
116
-
117
- ```
118
- /ftm-executor ~/.claude/plans/[project-name]-plan.md
119
- ```
120
-
121
- Plus a summary: "[N] tasks across [M] agents in [W] waves. First wave starts immediately with [list]. Scope: [small/medium/large]."
1
+ # Plan Generation Template
2
+
3
+ Load this file only when the user approves moving to Phase 3 (plan generation).
4
+
5
+ ## Pre-Plan Sequence
6
+
7
+ Before generating ANY plan content:
8
+ 1. **Spec Self-Review** module must have run (check for placeholders, contradictions, gaps)
9
+ 2. **Pre-Mortem Stress Test** module must have run (top failures identified, mitigations selected)
10
+ 3. Summary approved by user
11
+
12
+ ## Present Incrementally
13
+
14
+ Do NOT dump the entire plan in one message. Present section by section:
15
+
16
+ 1. **Vision + Architecture Decisions + Risk Mitigations** — ask: "Does this foundation look right?"
17
+ 2. **Task Breakdown with Discovery Levels** — ask: "Any tasks missing, or should any be split/merged?"
18
+ 3. **Agent Team + Execution Order + Validation Strategy** ask: "Good to save it?"
19
+
20
+ Only save after all three sections are approved.
21
+
22
+ ## Plan Document Structure
23
+
24
+ ```markdown
25
+ # [Project/Feature Name] Implementation Plan
26
+
27
+ ## Vision
28
+ [2-3 sentence summary of what we're building and why, grounded in research findings]
29
+
30
+ ## Key Research Findings
31
+ - [Most important patterns/decisions discovered, with source links]
32
+ - [Each finding that materially influenced the plan]
33
+
34
+ ## Architecture Decisions
35
+ [Major technical choices and the reasoning behind each — reference the research turn where evidence was found]
36
+
37
+ ## Canonical References
38
+ [MANDATORY section — links to specs, docs, ADRs, or external resources that implementing agents MUST read]
39
+ - [Link 1]: [what it is and why it matters]
40
+ - [Link 2]: [what it is and why it matters]
41
+
42
+ ## Risk Mitigations (from Pre-Mortem)
43
+ [Selected mitigations that become explicit tasks or acceptance criteria]
44
+ - Risk: [failure scenario] → Mitigation: [what we're doing about it] → Task: [which task handles it]
45
+
46
+ ## Deferred Ideas (Future Work)
47
+ [Ideas raised during brainstorm that were deferred to keep v1 scope tight]
48
+ - [Idea 1]: [brief description, why deferred]
49
+ - [Idea 2]: [brief description, why deferred]
50
+
51
+ ## Tasks
52
+
53
+ ### Task N: [Title]
54
+ **Description:** [What needs to be built — explicit enough that an agent with zero context can execute]
55
+ **Discovery Level:** [L0 skip | L1 quick verify | L2 standard | L3 deep dive]
56
+ **Files:** [Expected files to create/modify — use ACTUAL project paths from Phase 0]
57
+ **Dependencies:** [Which tasks must complete first, or "none"]
58
+ **Agent type:** [frontend-developer, backend-architect, etc.]
59
+ **Acceptance criteria:**
60
+ - [ ] [Specific, testable criterion]
61
+ - [ ] [Another criterion]
62
+ **Verify command:** [Automated command that proves this task is done — Nyquist rule: every task MUST have one]
63
+ **Hints:**
64
+ - [Relevant research finding with source URL]
65
+ - [Known pitfall from research: "Watch out for Zsee [link]"]
66
+ - [If brain dump: novelty verdict — "Already solved by [tool]" or "Novel no prior art"]
67
+ - [Pre-mortem mitigation if applicable]
68
+ **Wiring:**
69
+ exports:
70
+ - symbol: [ExportedName]
71
+ from: [file path]
72
+ imported_by:
73
+ - file: [parent file that should import this]
74
+ rendered_in:
75
+ - parent: [ParentComponent]
76
+ placement: "[where in parent JSX]"
77
+ route_path: [/path]
78
+ nav_link:
79
+ - location: [sidebar|navbar|menu]
80
+ label: "[Display text]"
81
+
82
+ ## Agent Team
83
+ | Agent | Role | Tasks |
84
+ |-------|------|-------|
85
+ | [type] | [what they handle] | [task numbers] |
86
+
87
+ ## Execution Order
88
+ - **Wave 1 (parallel):** Tasks [X, Y, Z] — no dependencies
89
+ - **Wave 2 (parallel, after wave 1):** Tasks [A, B] — depend on wave 1
90
+ - **Wave 3:** Task [C] — integration/final assembly
91
+
92
+ ## Validation Strategy
93
+ [How we verify the whole thing works end-to-end after all waves complete]
94
+ - Smoke test: [command or manual step]
95
+ - Integration test: [what to check]
96
+ - User acceptance: [what the user should see/experience]
97
+ ```
98
+
99
+ ## Wiring Contract Rules
100
+
101
+ Auto-populate the `Wiring:` block based on file type:
102
+
103
+ - **New component** (.tsx/.vue/.svelte): exports (component name), imported_by (parent), rendered_in (where in JSX), route_path (if page)
104
+ - **New hook** (use*.ts): exports (function), imported_by (consuming components)
105
+ - **New API function** (api/*.ts): exports (functions), imported_by (hooks/components calling them)
106
+ - **New store/state**: store_reads (which components read), store_writes (which write)
107
+ - **New route/view**: route_path, nav_link (where navigation appears), rendered_in (router config)
108
+ - **New CLI command**: entry_point, subcommand_tree, config_reads, output_format
109
+ - **New middleware**: intercepts (which routes), order (before/after what), passes_to (next handler)
110
+
111
+ ## Hints Population
112
+
113
+ For each task, pull from the cumulative research register:
114
+
115
+ 1. **Web Researcher findings** — blog posts, case studies, patterns (include URL)
116
+ 2. **GitHub Explorer findings** — repos that solved similar problems (include URL + what's useful)
117
+ 3. **Competitive Analyst findings** — products to learn from or differentiate against
118
+ 4. **Stack Researcher findings** — library versions, compatibility notes, configuration patterns
119
+ 5. **Architecture Researcher findings** — structural patterns, scaling considerations
120
+ 6. **Pitfall Researcher findings** — warnings, anti-patterns, known failure modes
121
+ 7. **UX/Domain Researcher findings** UX patterns, accessibility requirements, domain conventions
122
+ 8. **Brain dump novelty map** (Path B): solved/partially solved/novel verdicts
123
+ 9. **Pre-mortem mitigations** — selected risk mitigations that apply to this task
124
+ 10. **Assumption audit results** — crackable assumptions that affect this task
125
+
126
+ Rules:
127
+ - Always include source links
128
+ - 2-4 bullets per task, not paragraphs
129
+ - "No specific research findings for this task" if nothing applies
130
+ - Hints are suggestions, not mandates
131
+
132
+ ## Discovery Level Guidelines
133
+
134
+ Assess each task's discovery level based on:
135
+
136
+ - **Level 0 (Skip):** Pure internal work using existing patterns. No research needed. Example: "Add a new route following the existing pattern in routes.ts"
137
+ - **Level 1 (Quick Verify, 2-5 min):** Single known library, confirm syntax. Example: "Use date-fns for date formatting — confirm API for relative dates"
138
+ - **Level 2 (Standard, 15-30 min):** Choosing between options, new integration. Example: "Integrate Stripe checkout — research current best practice for SCA compliance"
139
+ - **Level 3 (Deep Dive, 1+ hour):** Architectural decisions, novel problems. Example: "Design real-time sync protocol — research CRDT vs OT for collaborative editing"
140
+
141
+ Tag each task with its level. Level 2+ tasks get extra research hints from the brainstorm's findings. Level 3 tasks should reference the specific research turn where the approach was decided.
142
+
143
+ ## Verify Command Rules (Nyquist Validation)
144
+
145
+ **Source:** GSD Nyquist rule
146
+
147
+ Every task MUST have a `Verify command` that can be run automatically. No exceptions.
148
+
149
+ Good verify commands:
150
+ - `npm test -- --testPathPattern=feature-name`
151
+ - `curl -s http://localhost:3000/api/endpoint | jq .status`
152
+ - `npx tsc --noEmit`
153
+ - `grep -r "ExportedName" src/ | wc -l` (verify wiring)
154
+
155
+ Bad verify commands:
156
+ - "Check that it looks right" (not automated)
157
+ - "Run the app and verify" (too vague)
158
+ - "Manual testing required" (violates Nyquist)
159
+
160
+ If a task genuinely can't have an automated verify (pure visual design), note: `Verify: MANUAL — [specific thing to check visually]` and explain why automated isn't possible.
161
+
162
+ ## Quality Rules
163
+
164
+ - Tasks small enough for one agent session (if a task description exceeds 200 words, split it)
165
+ - Every task has testable acceptance criteria
166
+ - Every task has an automated verify command (Nyquist rule)
167
+ - Dependencies explicit — no implicit ordering
168
+ - Agent assignments match domain
169
+ - Wave structure maximizes parallelism
170
+ - File paths reference ACTUAL project structure from Phase 0
171
+ - Leverage existing project patterns (don't reinvent)
172
+ - Risk mitigations from pre-mortem are embedded as tasks or acceptance criteria
173
+ - Canonical references section is populated
174
+ - Deferred ideas section captures scope that was cut
175
+ - Discovery levels are assigned and realistic
176
+ - No placeholders — every instruction is concrete enough for a zero-context agent
177
+
178
+ ## Plan Quality Verification
179
+
180
+ After generating the plan, run the Plan Checker agent (see SKILL.md Phase 3).
181
+
182
+ The checker validates:
183
+ 1. **Spec coverage** — every brainstorm decision appears in a task
184
+ 2. **Placeholder scan** — no TBDs, TODOs, or vague instructions
185
+ 3. **Task decomposition** — every task fits one agent session
186
+ 4. **Buildability** — dependency order is correct
187
+ 5. **Nyquist validation** — every task has automated verify
188
+ 6. **Wiring completeness** — no orphaned exports/imports
189
+ 7. **YAGNI** — no tasks that aren't traceable to brainstorm decisions
190
+
191
+ Fix checker issues inline. Up to 3 iterations. Present remaining issues to user.
192
+
193
+ ## Save Location
194
+
195
+ ```
196
+ ~/.claude/plans/[project-name]-plan.md
197
+ ```
198
+
199
+ Create `~/.claude/plans/` if needed.
200
+
201
+ ## Handoff Prompt
202
+
203
+ After saving, give the user:
204
+
205
+ ```
206
+ /ftm-executor ~/.claude/plans/[project-name]-plan.md
207
+ ```
208
+
209
+ Plus a summary: "[N] tasks across [M] agents in [W] waves. First wave starts immediately with [list]. Discovery: [X] L0, [Y] L1, [Z] L2, [W] L3 tasks. Top risk mitigated: [brief]. Scope: [small/medium/large]."
@@ -1,2 +1,2 @@
1
- name: ftm-brainstorm
2
- description: Research-powered Socratic brainstorming that dispatches parallel agents to search the web and GitHub for real-world patterns, then synthesizes findings into actionable suggestions with citations. Use this skill whenever the user wants to brainstorm, explore ideas, think through a feature, plan a project, or flesh out a concept before building. Also triggers when the user pastes a large block of text (notes, prior brainstorm, meeting transcript, spec draft, stream-of-consciousness dump) and wants to turn it into something buildable — phrases like "help me build this", "turn this into a plan", "here's what I've been thinking", or just a big paste followed by "what do you think?" or "go". Triggers on "brainstorm", "help me think through", "I have an idea for", "how should I approach", "let's explore", "what if we built", "I'm thinking about", "help me figure out", or any conversation where the user has a concept they want to develop before writing code. Even vague ideas like "I want to build something that..." or "what's the best way to..." should trigger this skill.
1
+ name: ftm-brainstorm
2
+ description: Research-powered Socratic brainstorming that dispatches parallel agents to search the web and GitHub for real-world patterns, then synthesizes findings into actionable suggestions with citations. Use this skill whenever the user wants to brainstorm, explore ideas, think through a feature, plan a project, or flesh out a concept before building. Also triggers when the user pastes a large block of text (notes, prior brainstorm, meeting transcript, spec draft, stream-of-consciousness dump) and wants to turn it into something buildable — phrases like "help me build this", "turn this into a plan", "here's what I've been thinking", or just a big paste followed by "what do you think?" or "go". Triggers on "brainstorm", "help me think through", "I have an idea for", "how should I approach", "let's explore", "what if we built", "I'm thinking about", "help me figure out", or any conversation where the user has a concept they want to develop before writing code. Even vague ideas like "I want to build something that..." or "what's the best way to..." should trigger this skill.