feed-the-machine 1.6.0 → 1.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 (269) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +170 -170
  3. package/bin/brain.py +1340 -0
  4. package/bin/convert_claude_skills_to_codex.py +490 -0
  5. package/bin/generate-manifest.mjs +463 -463
  6. package/bin/harden_codex_skills.py +141 -0
  7. package/bin/install.mjs +491 -491
  8. package/bin/migrate-eng-buddy-data.py +875 -0
  9. package/bin/playbook_engine/__init__.py +1 -0
  10. package/bin/playbook_engine/conftest.py +8 -0
  11. package/bin/playbook_engine/extractor.py +33 -0
  12. package/bin/playbook_engine/manager.py +102 -0
  13. package/bin/playbook_engine/models.py +84 -0
  14. package/bin/playbook_engine/registry.py +35 -0
  15. package/bin/playbook_engine/test_extractor.py +72 -0
  16. package/bin/playbook_engine/test_integration.py +129 -0
  17. package/bin/playbook_engine/test_manager.py +85 -0
  18. package/bin/playbook_engine/test_models.py +166 -0
  19. package/bin/playbook_engine/test_registry.py +67 -0
  20. package/bin/playbook_engine/test_tracer.py +86 -0
  21. package/bin/playbook_engine/tracer.py +93 -0
  22. package/bin/tasks_db.py +456 -0
  23. package/docs/HOOKS.md +243 -243
  24. package/docs/INBOX.md +233 -233
  25. package/ftm/SKILL.md +125 -122
  26. package/ftm-audit/SKILL.md +623 -623
  27. package/ftm-audit/references/protocols/PROJECT-PATTERNS.md +91 -91
  28. package/ftm-audit/references/protocols/RUNTIME-WIRING.md +66 -66
  29. package/ftm-audit/references/protocols/WIRING-CONTRACTS.md +135 -135
  30. package/ftm-audit/references/strategies/AUTO-FIX-STRATEGIES.md +69 -69
  31. package/ftm-audit/references/templates/REPORT-FORMAT.md +96 -96
  32. package/ftm-audit/scripts/run-knip.sh +23 -23
  33. package/ftm-audit.yml +2 -2
  34. package/ftm-brainstorm/SKILL.md +1003 -498
  35. package/ftm-brainstorm/evals/evals.json +180 -100
  36. package/ftm-brainstorm/evals/promptfoo.yaml +109 -109
  37. package/ftm-brainstorm/references/agent-prompts.md +552 -224
  38. package/ftm-brainstorm/references/plan-template.md +209 -121
  39. package/ftm-brainstorm.yml +2 -2
  40. package/ftm-browse/SKILL.md +454 -454
  41. package/ftm-browse/daemon/browser-manager.ts +206 -206
  42. package/ftm-browse/daemon/bun.lock +30 -30
  43. package/ftm-browse/daemon/cli.ts +347 -347
  44. package/ftm-browse/daemon/commands.ts +410 -410
  45. package/ftm-browse/daemon/main.ts +357 -357
  46. package/ftm-browse/daemon/package.json +17 -17
  47. package/ftm-browse/daemon/server.ts +189 -189
  48. package/ftm-browse/daemon/snapshot.ts +519 -519
  49. package/ftm-browse/daemon/tsconfig.json +22 -22
  50. package/ftm-browse.yml +4 -4
  51. package/ftm-capture/SKILL.md +370 -370
  52. package/ftm-capture.yml +4 -4
  53. package/ftm-codex-gate/SKILL.md +361 -361
  54. package/ftm-codex-gate.yml +2 -2
  55. package/ftm-config/SKILL.md +422 -345
  56. package/ftm-config.default.yml +125 -82
  57. package/ftm-config.yml +44 -2
  58. package/ftm-council/SKILL.md +416 -416
  59. package/ftm-council/references/prompts/CLAUDE-INVESTIGATION.md +60 -60
  60. package/ftm-council/references/prompts/CODEX-INVESTIGATION.md +58 -58
  61. package/ftm-council/references/prompts/GEMINI-INVESTIGATION.md +58 -58
  62. package/ftm-council/references/prompts/REBUTTAL-TEMPLATE.md +57 -57
  63. package/ftm-council/references/protocols/PREREQUISITES.md +47 -47
  64. package/ftm-council/references/protocols/STEP-0-FRAMING.md +46 -46
  65. package/ftm-council.yml +2 -2
  66. package/ftm-dashboard/SKILL.md +163 -163
  67. package/ftm-dashboard.yml +4 -4
  68. package/ftm-debug/SKILL.md +1037 -1037
  69. package/ftm-debug/references/phases/PHASE-0-INTAKE.md +58 -58
  70. package/ftm-debug/references/phases/PHASE-1-TRIAGE.md +46 -46
  71. package/ftm-debug/references/phases/PHASE-2-WAR-ROOM-AGENTS.md +279 -279
  72. package/ftm-debug/references/phases/PHASE-3-TO-6-EXECUTION.md +436 -436
  73. package/ftm-debug/references/protocols/BLACKBOARD.md +86 -86
  74. package/ftm-debug/references/protocols/EDGE-CASES.md +103 -103
  75. package/ftm-debug.yml +2 -2
  76. package/ftm-diagram/SKILL.md +277 -277
  77. package/ftm-diagram.yml +2 -2
  78. package/ftm-executor/SKILL.md +777 -777
  79. package/ftm-executor/references/STYLE-TEMPLATE.md +73 -73
  80. package/ftm-executor/references/phases/PHASE-0-VERIFICATION.md +62 -62
  81. package/ftm-executor/references/phases/PHASE-2-AGENT-ASSEMBLY.md +34 -34
  82. package/ftm-executor/references/phases/PHASE-3-WORKTREES.md +38 -38
  83. package/ftm-executor/references/phases/PHASE-4-5-AUDIT.md +72 -72
  84. package/ftm-executor/references/phases/PHASE-4-DISPATCH.md +66 -66
  85. package/ftm-executor/references/phases/PHASE-5-5-CODEX-GATE.md +73 -73
  86. package/ftm-executor/references/protocols/DOCUMENTATION-BOOTSTRAP.md +36 -36
  87. package/ftm-executor/references/protocols/MODEL-PROFILE.md +59 -59
  88. package/ftm-executor/references/protocols/PROGRESS-TRACKING.md +66 -66
  89. package/ftm-executor/runtime/ftm-runtime.mjs +252 -252
  90. package/ftm-executor/runtime/package.json +8 -8
  91. package/ftm-executor.yml +2 -2
  92. package/ftm-git/SKILL.md +441 -441
  93. package/ftm-git/evals/evals.json +26 -26
  94. package/ftm-git/evals/promptfoo.yaml +75 -75
  95. package/ftm-git/hooks/post-commit-experience.sh +92 -92
  96. package/ftm-git/references/patterns/SECRET-PATTERNS.md +104 -104
  97. package/ftm-git/references/protocols/REMEDIATION.md +139 -139
  98. package/ftm-git/scripts/pre-commit-secrets.sh +110 -110
  99. package/ftm-git.yml +2 -2
  100. package/ftm-inbox/backend/__pycache__/main.cpython-314.pyc +0 -0
  101. package/ftm-inbox/backend/adapters/_retry.py +64 -64
  102. package/ftm-inbox/backend/adapters/base.py +230 -230
  103. package/ftm-inbox/backend/adapters/freshservice.py +104 -104
  104. package/ftm-inbox/backend/adapters/gmail.py +125 -125
  105. package/ftm-inbox/backend/adapters/jira.py +136 -136
  106. package/ftm-inbox/backend/adapters/registry.py +192 -192
  107. package/ftm-inbox/backend/adapters/slack.py +110 -110
  108. package/ftm-inbox/backend/db/connection.py +54 -54
  109. package/ftm-inbox/backend/db/schema.py +78 -78
  110. package/ftm-inbox/backend/executor/__init__.py +7 -7
  111. package/ftm-inbox/backend/executor/engine.py +149 -149
  112. package/ftm-inbox/backend/executor/step_runner.py +98 -98
  113. package/ftm-inbox/backend/main.py +103 -103
  114. package/ftm-inbox/backend/models/__init__.py +1 -1
  115. package/ftm-inbox/backend/models/unified_task.py +36 -36
  116. package/ftm-inbox/backend/planner/__init__.py +6 -6
  117. package/ftm-inbox/backend/planner/__pycache__/__init__.cpython-314.pyc +0 -0
  118. package/ftm-inbox/backend/planner/__pycache__/generator.cpython-314.pyc +0 -0
  119. package/ftm-inbox/backend/planner/__pycache__/schema.cpython-314.pyc +0 -0
  120. package/ftm-inbox/backend/planner/generator.py +127 -127
  121. package/ftm-inbox/backend/planner/schema.py +34 -34
  122. package/ftm-inbox/backend/requirements.txt +5 -5
  123. package/ftm-inbox/backend/routes/__pycache__/plan.cpython-314.pyc +0 -0
  124. package/ftm-inbox/backend/routes/execute.py +186 -186
  125. package/ftm-inbox/backend/routes/health.py +52 -52
  126. package/ftm-inbox/backend/routes/inbox.py +68 -68
  127. package/ftm-inbox/backend/routes/plan.py +271 -271
  128. package/ftm-inbox/bin/launchagent.mjs +91 -91
  129. package/ftm-inbox/bin/setup.mjs +188 -188
  130. package/ftm-inbox/bin/start.sh +10 -10
  131. package/ftm-inbox/bin/status.sh +17 -17
  132. package/ftm-inbox/bin/stop.sh +8 -8
  133. package/ftm-inbox/config.example.yml +55 -55
  134. package/ftm-inbox/package-lock.json +2898 -2898
  135. package/ftm-inbox/package.json +26 -26
  136. package/ftm-inbox/postcss.config.js +6 -6
  137. package/ftm-inbox/src/app.css +199 -199
  138. package/ftm-inbox/src/app.html +18 -18
  139. package/ftm-inbox/src/lib/api.ts +166 -166
  140. package/ftm-inbox/src/lib/components/ExecutionLog.svelte +81 -81
  141. package/ftm-inbox/src/lib/components/InboxFeed.svelte +143 -143
  142. package/ftm-inbox/src/lib/components/PlanStep.svelte +271 -271
  143. package/ftm-inbox/src/lib/components/PlanView.svelte +206 -206
  144. package/ftm-inbox/src/lib/components/StreamPanel.svelte +99 -99
  145. package/ftm-inbox/src/lib/components/TaskCard.svelte +190 -190
  146. package/ftm-inbox/src/lib/components/ui/EmptyState.svelte +63 -63
  147. package/ftm-inbox/src/lib/components/ui/KawaiiCard.svelte +86 -86
  148. package/ftm-inbox/src/lib/components/ui/PillButton.svelte +106 -106
  149. package/ftm-inbox/src/lib/components/ui/StatusBadge.svelte +67 -67
  150. package/ftm-inbox/src/lib/components/ui/StreamDrawer.svelte +149 -149
  151. package/ftm-inbox/src/lib/components/ui/ThemeToggle.svelte +80 -80
  152. package/ftm-inbox/src/lib/theme.ts +47 -47
  153. package/ftm-inbox/src/routes/+layout.svelte +76 -76
  154. package/ftm-inbox/src/routes/+page.svelte +401 -401
  155. package/ftm-inbox/svelte.config.js +12 -12
  156. package/ftm-inbox/tailwind.config.ts +63 -63
  157. package/ftm-inbox/tsconfig.json +13 -13
  158. package/ftm-inbox/vite.config.ts +6 -6
  159. package/ftm-intent/SKILL.md +241 -241
  160. package/ftm-intent.yml +2 -2
  161. package/ftm-manifest.json +3794 -3794
  162. package/ftm-map/SKILL.md +291 -291
  163. package/ftm-map/scripts/db.py +712 -712
  164. package/ftm-map/scripts/index.py +415 -415
  165. package/ftm-map/scripts/parser.py +224 -224
  166. package/ftm-map/scripts/queries/go-tags.scm +20 -20
  167. package/ftm-map/scripts/queries/javascript-tags.scm +35 -35
  168. package/ftm-map/scripts/queries/python-tags.scm +31 -31
  169. package/ftm-map/scripts/queries/ruby-tags.scm +19 -19
  170. package/ftm-map/scripts/queries/rust-tags.scm +37 -37
  171. package/ftm-map/scripts/queries/typescript-tags.scm +41 -41
  172. package/ftm-map/scripts/query.py +301 -301
  173. package/ftm-map/scripts/ranker.py +377 -377
  174. package/ftm-map/scripts/requirements.txt +5 -5
  175. package/ftm-map/scripts/setup-hooks.sh +27 -27
  176. package/ftm-map/scripts/setup.sh +56 -56
  177. package/ftm-map/scripts/test_db.py +364 -364
  178. package/ftm-map/scripts/test_parser.py +174 -174
  179. package/ftm-map/scripts/test_query.py +183 -183
  180. package/ftm-map/scripts/test_ranker.py +199 -199
  181. package/ftm-map/scripts/views.py +591 -591
  182. package/ftm-map.yml +2 -2
  183. package/ftm-mind/SKILL.md +201 -1943
  184. package/ftm-mind/evals/promptfoo.yaml +142 -142
  185. package/ftm-mind/references/blackboard-protocol.md +110 -0
  186. package/ftm-mind/references/blackboard-schema.md +328 -328
  187. package/ftm-mind/references/complexity-guide.md +110 -110
  188. package/ftm-mind/references/complexity-sizing.md +138 -0
  189. package/ftm-mind/references/decide-act-protocol.md +172 -0
  190. package/ftm-mind/references/direct-execution.md +51 -0
  191. package/ftm-mind/references/environment-discovery.md +77 -0
  192. package/ftm-mind/references/event-registry.md +319 -319
  193. package/ftm-mind/references/mcp-inventory.md +300 -296
  194. package/ftm-mind/references/ops-routing.md +47 -0
  195. package/ftm-mind/references/orient-protocol.md +234 -0
  196. package/ftm-mind/references/personality.md +40 -0
  197. package/ftm-mind/references/protocols/COMPLEXITY-SIZING.md +72 -72
  198. package/ftm-mind/references/protocols/MCP-HEURISTICS.md +32 -32
  199. package/ftm-mind/references/protocols/PLAN-APPROVAL.md +80 -80
  200. package/ftm-mind/references/reflexion-protocol.md +249 -249
  201. package/ftm-mind/references/routing/SCENARIOS.md +22 -22
  202. package/ftm-mind/references/routing-scenarios.md +35 -35
  203. package/ftm-mind.yml +2 -2
  204. package/ftm-ops.yml +4 -0
  205. package/ftm-pause/SKILL.md +395 -395
  206. package/ftm-pause/references/protocols/SKILL-RESTORE-PROTOCOLS.md +186 -186
  207. package/ftm-pause/references/protocols/VALIDATION.md +80 -80
  208. package/ftm-pause.yml +2 -2
  209. package/ftm-researcher/SKILL.md +275 -275
  210. package/ftm-researcher/evals/agent-diversity.yaml +17 -17
  211. package/ftm-researcher/evals/synthesis-quality.yaml +12 -12
  212. package/ftm-researcher/evals/trigger-accuracy.yaml +39 -39
  213. package/ftm-researcher/references/adaptive-search.md +116 -116
  214. package/ftm-researcher/references/agent-prompts.md +193 -193
  215. package/ftm-researcher/references/council-integration.md +193 -193
  216. package/ftm-researcher/references/output-format.md +203 -203
  217. package/ftm-researcher/references/synthesis-pipeline.md +165 -165
  218. package/ftm-researcher/scripts/score_credibility.py +234 -234
  219. package/ftm-researcher/scripts/validate_research.py +92 -92
  220. package/ftm-researcher.yml +2 -2
  221. package/ftm-resume/SKILL.md +518 -518
  222. package/ftm-resume/references/protocols/VALIDATION.md +172 -172
  223. package/ftm-resume.yml +2 -2
  224. package/ftm-retro/SKILL.md +380 -380
  225. package/ftm-retro/references/protocols/SCORING-RUBRICS.md +89 -89
  226. package/ftm-retro/references/templates/REPORT-FORMAT.md +109 -109
  227. package/ftm-retro.yml +2 -2
  228. package/ftm-routine/SKILL.md +170 -170
  229. package/ftm-routine.yml +4 -4
  230. package/ftm-state/blackboard/capabilities.json +5 -5
  231. package/ftm-state/blackboard/capabilities.schema.json +27 -27
  232. package/ftm-state/blackboard/context.json +37 -23
  233. package/ftm-state/blackboard/experiences/doom-statusline-fix.json +26 -0
  234. package/ftm-state/blackboard/experiences/hackathon-pages-site.json +26 -0
  235. package/ftm-state/blackboard/experiences/hindsight-sso-kickoff.json +42 -0
  236. package/ftm-state/blackboard/experiences/index.json +58 -9
  237. package/ftm-state/blackboard/experiences/learning-ragnarok-api-access.json +23 -0
  238. package/ftm-state/blackboard/experiences/nordlayer-members-auto-assign.json +26 -0
  239. package/ftm-state/blackboard/experiences/saml2aws-stale-session-fix.json +41 -0
  240. package/ftm-state/blackboard/patterns.json +6 -6
  241. package/ftm-state/schemas/context.schema.json +130 -130
  242. package/ftm-state/schemas/experience-index.schema.json +77 -77
  243. package/ftm-state/schemas/experience.schema.json +78 -78
  244. package/ftm-state/schemas/patterns.schema.json +44 -44
  245. package/ftm-upgrade/SKILL.md +194 -194
  246. package/ftm-upgrade/scripts/check-version.sh +76 -76
  247. package/ftm-upgrade/scripts/upgrade.sh +143 -143
  248. package/ftm-upgrade.yml +2 -2
  249. package/ftm-verify.yml +2 -2
  250. package/ftm.yml +2 -2
  251. package/hooks/ftm-auto-log.sh +137 -0
  252. package/hooks/ftm-blackboard-enforcer.sh +93 -93
  253. package/hooks/ftm-discovery-reminder.sh +90 -90
  254. package/hooks/ftm-drafts-gate.sh +61 -61
  255. package/hooks/ftm-event-logger.mjs +107 -107
  256. package/hooks/ftm-install-hooks.sh +240 -0
  257. package/hooks/ftm-learning-capture.sh +117 -0
  258. package/hooks/ftm-map-autodetect.sh +79 -79
  259. package/hooks/ftm-pending-sync-check.sh +22 -22
  260. package/hooks/ftm-plan-gate.sh +92 -92
  261. package/hooks/ftm-post-commit-trigger.sh +57 -57
  262. package/hooks/ftm-post-compaction.sh +138 -0
  263. package/hooks/ftm-pre-compaction.sh +147 -0
  264. package/hooks/ftm-session-end.sh +52 -0
  265. package/hooks/ftm-session-snapshot.sh +213 -0
  266. package/hooks/settings-template.json +81 -81
  267. package/install.sh +363 -363
  268. package/package.json +84 -84
  269. 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.