feed-the-machine 1.6.1 → 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,66 +1,66 @@
1
- # Phase 4 — Agent Dispatch Prompt Template
2
-
3
- ## Full Prompt Template
4
-
5
- Use this structure for every agent dispatched in Phase 4. Fill in bracketed fields from the plan and execution context.
6
-
7
- ```
8
- You are working in an isolated git worktree at: [worktree path]
9
- Your working directory is: [worktree path]
10
-
11
- ## Your Assignment
12
-
13
- Execute the following tasks from the plan:
14
-
15
- [paste the relevant task sections verbatim from the plan doc]
16
-
17
- ## Plan Context
18
-
19
- Full plan: [plan path]
20
- Your tasks: [task numbers]
21
- Dependencies satisfied: [list what was already completed in prior waves]
22
-
23
- ## Execution Loop
24
-
25
- For EACH task, follow this cycle:
26
-
27
- 1. **Implement** — Follow the plan's steps exactly. Read files before modifying them. Use the project's existing patterns.
28
-
29
- 2. **Commit** — Stage and commit your changes with a clear message describing what was done. Never reference AI/agent tools in commit messages.
30
-
31
- 2.5. **Document** — Every commit must include documentation updates:
32
- - Update the module's INTENT.md: add entries for new functions, update entries for changed functions (Does/Why/Relationships/Decisions format)
33
- - Update the module's DIAGRAM.mmd: add nodes for new functions, update edges for changed dependencies
34
- - If you created a new module directory, also create its INTENT.md and DIAGRAM.mmd, and add rows to root INTENT.md module map and root ARCHITECTURE.mmd
35
- - Reference STYLE.md for code standards — your code must comply with all Hard Limits and Structure Rules
36
-
37
- 3. **Review** — After committing, review your own changes:
38
- - Run `git diff HEAD~1` to see what changed
39
- - Check for: bugs, missing error handling, type errors, style inconsistencies
40
- - Run any verification commands the plan specifies
41
- - Run the project's linter/typecheck if available
42
-
43
- 4. **Fix** — If the review surfaces issues:
44
- - Fix them immediately
45
- - Commit the fixes
46
- - Review again
47
- - Repeat until clean
48
-
49
- 5. **Continue** — Move to the next task. Do not stop to ask questions. If something is ambiguous, make the best technical decision and document it in your commit message.
50
-
51
- ## Rules
52
-
53
- - NEVER stop to ask for input. Make decisions and keep going.
54
- - ALWAYS commit after each task (not one big commit at the end).
55
- - ALWAYS review after each commit. The review-fix loop is not optional.
56
- - Follow the plan's steps exactly — don't improvise unless the plan is clearly wrong.
57
- - Stay in your worktree. Don't touch files outside your assigned scope.
58
- - If a verification step fails and you can't fix it in 3 attempts, note it in a commit message and move on.
59
- - Run tests/build after each task if the project supports it.
60
- - Read STYLE.md at the project root before writing code. Follow all Hard Limits and Structure Rules.
61
- - Every commit must include: code changes + tests + INTENT.md update + DIAGRAM.mmd update. A commit without documentation updates is incomplete.
62
- ```
63
-
64
- ## Model Selection
65
-
66
- Pass the `execution` model from ftm-config as the `model` parameter when spawning dispatch agents. If the profile specifies `inherit`, omit the `model` parameter.
1
+ # Phase 4 — Agent Dispatch Prompt Template
2
+
3
+ ## Full Prompt Template
4
+
5
+ Use this structure for every agent dispatched in Phase 4. Fill in bracketed fields from the plan and execution context.
6
+
7
+ ```
8
+ You are working in an isolated git worktree at: [worktree path]
9
+ Your working directory is: [worktree path]
10
+
11
+ ## Your Assignment
12
+
13
+ Execute the following tasks from the plan:
14
+
15
+ [paste the relevant task sections verbatim from the plan doc]
16
+
17
+ ## Plan Context
18
+
19
+ Full plan: [plan path]
20
+ Your tasks: [task numbers]
21
+ Dependencies satisfied: [list what was already completed in prior waves]
22
+
23
+ ## Execution Loop
24
+
25
+ For EACH task, follow this cycle:
26
+
27
+ 1. **Implement** — Follow the plan's steps exactly. Read files before modifying them. Use the project's existing patterns.
28
+
29
+ 2. **Commit** — Stage and commit your changes with a clear message describing what was done. Never reference AI/agent tools in commit messages.
30
+
31
+ 2.5. **Document** — Every commit must include documentation updates:
32
+ - Update the module's INTENT.md: add entries for new functions, update entries for changed functions (Does/Why/Relationships/Decisions format)
33
+ - Update the module's DIAGRAM.mmd: add nodes for new functions, update edges for changed dependencies
34
+ - If you created a new module directory, also create its INTENT.md and DIAGRAM.mmd, and add rows to root INTENT.md module map and root ARCHITECTURE.mmd
35
+ - Reference STYLE.md for code standards — your code must comply with all Hard Limits and Structure Rules
36
+
37
+ 3. **Review** — After committing, review your own changes:
38
+ - Run `git diff HEAD~1` to see what changed
39
+ - Check for: bugs, missing error handling, type errors, style inconsistencies
40
+ - Run any verification commands the plan specifies
41
+ - Run the project's linter/typecheck if available
42
+
43
+ 4. **Fix** — If the review surfaces issues:
44
+ - Fix them immediately
45
+ - Commit the fixes
46
+ - Review again
47
+ - Repeat until clean
48
+
49
+ 5. **Continue** — Move to the next task. Do not stop to ask questions. If something is ambiguous, make the best technical decision and document it in your commit message.
50
+
51
+ ## Rules
52
+
53
+ - NEVER stop to ask for input. Make decisions and keep going.
54
+ - ALWAYS commit after each task (not one big commit at the end).
55
+ - ALWAYS review after each commit. The review-fix loop is not optional.
56
+ - Follow the plan's steps exactly — don't improvise unless the plan is clearly wrong.
57
+ - Stay in your worktree. Don't touch files outside your assigned scope.
58
+ - If a verification step fails and you can't fix it in 3 attempts, note it in a commit message and move on.
59
+ - Run tests/build after each task if the project supports it.
60
+ - Read STYLE.md at the project root before writing code. Follow all Hard Limits and Structure Rules.
61
+ - Every commit must include: code changes + tests + INTENT.md update + DIAGRAM.mmd update. A commit without documentation updates is incomplete.
62
+ ```
63
+
64
+ ## Model Selection
65
+
66
+ Pass the `execution` model from ftm-config as the `model` parameter when spawning dispatch agents. If the profile specifies `inherit`, omit the `model` parameter.
@@ -1,73 +1,73 @@
1
- # Phase 5.5 — Codex Gate (Wave Boundary Validation)
2
-
3
- ## When to Invoke
4
-
5
- - After EVERY wave completes and is merged — this is the heavy validation gate
6
- - For single-task plans, invoke on task completion instead of wave completion
7
-
8
- ## Inputs for ftm-codex-gate
9
-
10
- - `file_list`: All files changed across the wave (`git diff --name-only` against pre-wave state)
11
- - `acceptance_criteria`: Combined acceptance criteria from all tasks in the wave
12
- - `wave_context`: Summary of what the wave accomplished (task titles + brief descriptions)
13
- - `project_root`: The project working directory
14
- - `mode`: `"wave"` for multi-task waves, `"single-task"` for single-task runs
15
-
16
- ## Result Interpretation
17
-
18
- **PASS (no issues found):**
19
- - Log in PROGRESS.md: "Codex gate PASSED — 0 issues"
20
- - Proceed to next wave (or Phase 6 if this was the last wave)
21
-
22
- **PASS_WITH_FIXES (issues found and auto-fixed by Codex):**
23
- - Codex committed fixes directly — review the fix commits
24
- - Diff each fix commit against INTENT.md entries for the affected functions
25
- - No INTENT.md conflict → accept the fixes, log in PROGRESS.md and DEBUG.md, proceed
26
- - INTENT.md conflict detected → see INTENT.md Conflict Resolution below
27
-
28
- **FAIL (issues Codex could not fix):**
29
- - Attempt to fix them yourself (you have full context from the wave)
30
- - If fixed, commit and re-run the Codex gate
31
- - If unresolved after 2 attempts, report to user:
32
- ```
33
- Codex gate FAILED for Wave [N] — manual intervention needed:
34
- - [remaining issue 1]
35
- - [remaining issue 2]
36
- Codex attempted [N] fixes but these remain unresolved.
37
- ```
38
- Wait for user input before continuing.
39
-
40
- ## INTENT.md Conflict Resolution
41
-
42
- A conflict exists when Codex's fix changes a function's behavior, reverts a deliberate choice, or changes a signature that INTENT.md documents.
43
-
44
- **Step 1 — Detect:** Compare the Codex fix diff against the INTENT.md entry for the affected function.
45
-
46
- **Step 2 — Invoke ftm-council** with this structured payload:
47
- ```
48
- CONFLICT TYPE: Codex fix contradicts INTENT.md
49
-
50
- ORIGINAL INTENT (from INTENT.md):
51
- [paste the full INTENT.md entry for the affected function]
52
-
53
- CODEX'S CHANGE:
54
- [paste the diff of what Codex changed]
55
-
56
- CODEX'S REASONING:
57
- [paste Codex's explanation from the gate results]
58
-
59
- THE CODE IN QUESTION:
60
- [file path and relevant code section]
61
-
62
- DEBUG.md HISTORY:
63
- [paste relevant entries from DEBUG.md so the council doesn't suggest already-failed approaches]
64
-
65
- QUESTION FOR THE COUNCIL:
66
- Should we (A) update INTENT.md to match Codex's fix, or (B) revert Codex's fix and keep the original intent?
67
- ```
68
-
69
- **Step 3 — Execute the verdict:**
70
- - Verdict A (update intent): Update the INTENT.md entry. Commit: "Update intent: [function] — council verdict [round N]"
71
- - Verdict B (revert fix): Revert Codex's fix commit. Commit: "Revert codex fix: [function] — council verdict preserves original intent"
72
- - Log full decision + reasoning in DEBUG.md
73
- - Continue to next wave after all conflicts are resolved
1
+ # Phase 5.5 — Codex Gate (Wave Boundary Validation)
2
+
3
+ ## When to Invoke
4
+
5
+ - After EVERY wave completes and is merged — this is the heavy validation gate
6
+ - For single-task plans, invoke on task completion instead of wave completion
7
+
8
+ ## Inputs for ftm-codex-gate
9
+
10
+ - `file_list`: All files changed across the wave (`git diff --name-only` against pre-wave state)
11
+ - `acceptance_criteria`: Combined acceptance criteria from all tasks in the wave
12
+ - `wave_context`: Summary of what the wave accomplished (task titles + brief descriptions)
13
+ - `project_root`: The project working directory
14
+ - `mode`: `"wave"` for multi-task waves, `"single-task"` for single-task runs
15
+
16
+ ## Result Interpretation
17
+
18
+ **PASS (no issues found):**
19
+ - Log in PROGRESS.md: "Codex gate PASSED — 0 issues"
20
+ - Proceed to next wave (or Phase 6 if this was the last wave)
21
+
22
+ **PASS_WITH_FIXES (issues found and auto-fixed by Codex):**
23
+ - Codex committed fixes directly — review the fix commits
24
+ - Diff each fix commit against INTENT.md entries for the affected functions
25
+ - No INTENT.md conflict → accept the fixes, log in PROGRESS.md and DEBUG.md, proceed
26
+ - INTENT.md conflict detected → see INTENT.md Conflict Resolution below
27
+
28
+ **FAIL (issues Codex could not fix):**
29
+ - Attempt to fix them yourself (you have full context from the wave)
30
+ - If fixed, commit and re-run the Codex gate
31
+ - If unresolved after 2 attempts, report to user:
32
+ ```
33
+ Codex gate FAILED for Wave [N] — manual intervention needed:
34
+ - [remaining issue 1]
35
+ - [remaining issue 2]
36
+ Codex attempted [N] fixes but these remain unresolved.
37
+ ```
38
+ Wait for user input before continuing.
39
+
40
+ ## INTENT.md Conflict Resolution
41
+
42
+ A conflict exists when Codex's fix changes a function's behavior, reverts a deliberate choice, or changes a signature that INTENT.md documents.
43
+
44
+ **Step 1 — Detect:** Compare the Codex fix diff against the INTENT.md entry for the affected function.
45
+
46
+ **Step 2 — Invoke ftm-council** with this structured payload:
47
+ ```
48
+ CONFLICT TYPE: Codex fix contradicts INTENT.md
49
+
50
+ ORIGINAL INTENT (from INTENT.md):
51
+ [paste the full INTENT.md entry for the affected function]
52
+
53
+ CODEX'S CHANGE:
54
+ [paste the diff of what Codex changed]
55
+
56
+ CODEX'S REASONING:
57
+ [paste Codex's explanation from the gate results]
58
+
59
+ THE CODE IN QUESTION:
60
+ [file path and relevant code section]
61
+
62
+ DEBUG.md HISTORY:
63
+ [paste relevant entries from DEBUG.md so the council doesn't suggest already-failed approaches]
64
+
65
+ QUESTION FOR THE COUNCIL:
66
+ Should we (A) update INTENT.md to match Codex's fix, or (B) revert Codex's fix and keep the original intent?
67
+ ```
68
+
69
+ **Step 3 — Execute the verdict:**
70
+ - Verdict A (update intent): Update the INTENT.md entry. Commit: "Update intent: [function] — council verdict [round N]"
71
+ - Verdict B (revert fix): Revert Codex's fix commit. Commit: "Revert codex fix: [function] — council verdict preserves original intent"
72
+ - Log full decision + reasoning in DEBUG.md
73
+ - Continue to next wave after all conflicts are resolved
@@ -1,36 +1,36 @@
1
- # Phase 1.5 — Documentation Layer Bootstrap
2
-
3
- ## Purpose
4
-
5
- Before dispatching any agents, ensure the project has the required documentation layer. This bootstrap runs once at the start of execution. If all files already exist, skip this phase entirely.
6
-
7
- ## Files to Check and Create
8
-
9
- **1. INTENT.md** (project root)
10
-
11
- If missing, bootstrap from the plan's Vision and Architecture Decisions sections. Use the ftm-intent skill's root template format.
12
-
13
- **2. ARCHITECTURE.mmd** (project root)
14
-
15
- If missing, bootstrap by scanning the codebase for modules and their import relationships. Use the ftm-diagram skill's root template format.
16
-
17
- **3. STYLE.md** (project root)
18
-
19
- If missing, copy from `~/.claude/skills/ftm-executor/references/STYLE-TEMPLATE.md` into the project root.
20
-
21
- **4. DEBUG.md** (project root)
22
-
23
- If missing, create with this header:
24
-
25
- ```markdown
26
- # Debug Log
27
-
28
- Failed approaches and their outcomes. Append here — never retry what's already logged.
29
- ```
30
-
31
- ## Bootstrap Rules
32
-
33
- - Check all four files first, then create only the ones that are missing
34
- - Do not overwrite existing files — presence check only
35
- - Creation order: STYLE.md (copy) → DEBUG.md (header only) → INTENT.md (plan-derived) → ARCHITECTURE.mmd (scan-derived)
36
- - Bootstrap content is minimal scaffolding — agents will expand it as they work
1
+ # Phase 1.5 — Documentation Layer Bootstrap
2
+
3
+ ## Purpose
4
+
5
+ Before dispatching any agents, ensure the project has the required documentation layer. This bootstrap runs once at the start of execution. If all files already exist, skip this phase entirely.
6
+
7
+ ## Files to Check and Create
8
+
9
+ **1. INTENT.md** (project root)
10
+
11
+ If missing, bootstrap from the plan's Vision and Architecture Decisions sections. Use the ftm-intent skill's root template format.
12
+
13
+ **2. ARCHITECTURE.mmd** (project root)
14
+
15
+ If missing, bootstrap by scanning the codebase for modules and their import relationships. Use the ftm-diagram skill's root template format.
16
+
17
+ **3. STYLE.md** (project root)
18
+
19
+ If missing, copy from `~/.claude/skills/ftm-executor/references/STYLE-TEMPLATE.md` into the project root.
20
+
21
+ **4. DEBUG.md** (project root)
22
+
23
+ If missing, create with this header:
24
+
25
+ ```markdown
26
+ # Debug Log
27
+
28
+ Failed approaches and their outcomes. Append here — never retry what's already logged.
29
+ ```
30
+
31
+ ## Bootstrap Rules
32
+
33
+ - Check all four files first, then create only the ones that are missing
34
+ - Do not overwrite existing files — presence check only
35
+ - Creation order: STYLE.md (copy) → DEBUG.md (header only) → INTENT.md (plan-derived) → ARCHITECTURE.mmd (scan-derived)
36
+ - Bootstrap content is minimal scaffolding — agents will expand it as they work
@@ -1,59 +1,59 @@
1
- # Phase 0.7 — Model Profile and Agent Mode Loading
2
-
3
- ## Reading ftm-config.yml
4
-
5
- Read `~/.claude/ftm-config.yml` to determine which models and permission mode to use when spawning agents. If the file doesn't exist, use these balanced defaults:
6
-
7
- | Role | Default Model |
8
- |------|--------------|
9
- | Planning agents | opus |
10
- | Execution agents | sonnet |
11
- | Review/audit agents | sonnet |
12
-
13
- ## Model Assignment by Phase
14
-
15
- When spawning agents in subsequent phases, pass the `model` parameter based on role:
16
-
17
- | Phase | Agent Role | Model Key |
18
- |-------|-----------|-----------|
19
- | Phase 0.5 (plan checking) | Planning | `planning` |
20
- | Phase 2 (team assembly) | Planning | `planning` |
21
- | Phase 4 (task execution) | Execution | `execution` |
22
- | Phase 4.5 (audit) | Review | `review` |
23
-
24
- If the profile specifies `inherit` for a role, omit the `model` parameter entirely — the agent uses the session default.
25
-
26
- ## Agent Permission Mode
27
-
28
- Read `execution.agent_mode` from ftm-config.yml. Pass this as the `mode` parameter on **every** Agent tool call in all phases. This controls the permission level for spawned agents.
29
-
30
- | Value | Behavior |
31
- |-------|----------|
32
- | `bypassPermissions` | Agent runs without prompting user (default) |
33
- | `acceptEdits` | Agent can edit files but prompts for other actions |
34
- | `dontAsk` | Agent makes all decisions autonomously |
35
- | `default` | Uses Claude Code's default permission behavior |
36
- | `auto` | Automatic permission selection |
37
-
38
- If `agent_mode` is not set in config, default to `bypassPermissions`.
39
-
40
- ## Example ftm-config.yml Structure
41
-
42
- ```yaml
43
- execution:
44
- agent_mode: bypassPermissions # permission mode for all spawned agents
45
-
46
- profiles:
47
- balanced:
48
- planning: opus
49
- execution: sonnet
50
- review: sonnet
51
- fast:
52
- planning: sonnet
53
- execution: sonnet
54
- review: sonnet
55
- quality:
56
- planning: opus
57
- execution: opus
58
- review: opus
59
- ```
1
+ # Phase 0.7 — Model Profile and Agent Mode Loading
2
+
3
+ ## Reading ftm-config.yml
4
+
5
+ Read `~/.claude/ftm-config.yml` to determine which models and permission mode to use when spawning agents. If the file doesn't exist, use these balanced defaults:
6
+
7
+ | Role | Default Model |
8
+ |------|--------------|
9
+ | Planning agents | opus |
10
+ | Execution agents | sonnet |
11
+ | Review/audit agents | sonnet |
12
+
13
+ ## Model Assignment by Phase
14
+
15
+ When spawning agents in subsequent phases, pass the `model` parameter based on role:
16
+
17
+ | Phase | Agent Role | Model Key |
18
+ |-------|-----------|-----------|
19
+ | Phase 0.5 (plan checking) | Planning | `planning` |
20
+ | Phase 2 (team assembly) | Planning | `planning` |
21
+ | Phase 4 (task execution) | Execution | `execution` |
22
+ | Phase 4.5 (audit) | Review | `review` |
23
+
24
+ If the profile specifies `inherit` for a role, omit the `model` parameter entirely — the agent uses the session default.
25
+
26
+ ## Agent Permission Mode
27
+
28
+ Read `execution.agent_mode` from ftm-config.yml. Pass this as the `mode` parameter on **every** Agent tool call in all phases. This controls the permission level for spawned agents.
29
+
30
+ | Value | Behavior |
31
+ |-------|----------|
32
+ | `bypassPermissions` | Agent runs without prompting user (default) |
33
+ | `acceptEdits` | Agent can edit files but prompts for other actions |
34
+ | `dontAsk` | Agent makes all decisions autonomously |
35
+ | `default` | Uses Claude Code's default permission behavior |
36
+ | `auto` | Automatic permission selection |
37
+
38
+ If `agent_mode` is not set in config, default to `bypassPermissions`.
39
+
40
+ ## Example ftm-config.yml Structure
41
+
42
+ ```yaml
43
+ execution:
44
+ agent_mode: bypassPermissions # permission mode for all spawned agents
45
+
46
+ profiles:
47
+ balanced:
48
+ planning: opus
49
+ execution: sonnet
50
+ review: sonnet
51
+ fast:
52
+ planning: sonnet
53
+ execution: sonnet
54
+ review: sonnet
55
+ quality:
56
+ planning: opus
57
+ execution: opus
58
+ review: opus
59
+ ```
@@ -1,66 +1,66 @@
1
- # Progress Tracking — PROGRESS.md Template and Update Rules
2
-
3
- ## Enabling Progress Tracking
4
-
5
- If `progress_tracking` is enabled in `~/.claude/ftm-config.yml` (default: true), create `PROGRESS.md` in the project root at the start of Phase 3.5.
6
-
7
- ## Initial File Template
8
-
9
- Create the file with this structure, filling in plan details:
10
-
11
- ```markdown
12
- # FTM Executor — Progress
13
-
14
- **Plan:** [plan title]
15
- **Started:** [timestamp]
16
- **Status:** IN PROGRESS
17
-
18
- ## Execution Summary
19
- | Wave | Tasks | Status | Started | Completed |
20
- |------|-------|--------|---------|-----------|
21
- | 1 | [task list] | PENDING | — | — |
22
- | 2 | [task list] | PENDING | — | — |
23
- | ... | | | | |
24
-
25
- ## Task Status
26
- | # | Title | Agent | Status | Audit | Notes |
27
- |---|-------|-------|--------|-------|-------|
28
- | 1 | [title] | [agent] | PENDING | — | |
29
- | 2 | [title] | [agent] | PENDING | — | |
30
- | ... | | | | | |
31
-
32
- ## Activity Log
33
- [reverse chronological — newest first]
34
- ```
35
-
36
- ## Update Events
37
-
38
- Update PROGRESS.md at these events:
39
-
40
- - **Wave starts** → update wave status to `IN PROGRESS`, add timestamp to Started column
41
- - **Task agent returns** → update task status to `COMPLETE` or `FAILED`, add audit result
42
- - **Wave completes** → update wave status to `COMPLETE`, add timestamp to Completed column
43
- - **Merge completes** → add to activity log
44
- - **Errors/blockers** → add to activity log with details
45
-
46
- ## Activity Log Format
47
-
48
- Each entry uses this format:
49
- ```
50
- ### [HH:MM] [event type]
51
- [brief description]
52
- ```
53
-
54
- Example entries (newest first):
55
- ```
56
- ### 14:32 Wave 1 complete
57
- Tasks 1-4 merged to main. All audits passed. 2 auto-fixes applied.
58
-
59
- ### 14:15 Task 3 audit — auto-fix
60
- Added missing import for UserPreferences in SettingsView.tsx
61
-
62
- ### 13:45 Wave 1 started
63
- Dispatching 4 agents in parallel: frontend (tasks 1,2), backend (task 3), testing (task 4)
64
- ```
65
-
66
- This file is for human consumption — the user can check it at any time without interrupting execution. Keep entries concise and informative.
1
+ # Progress Tracking — PROGRESS.md Template and Update Rules
2
+
3
+ ## Enabling Progress Tracking
4
+
5
+ If `progress_tracking` is enabled in `~/.claude/ftm-config.yml` (default: true), create `PROGRESS.md` in the project root at the start of Phase 3.5.
6
+
7
+ ## Initial File Template
8
+
9
+ Create the file with this structure, filling in plan details:
10
+
11
+ ```markdown
12
+ # FTM Executor — Progress
13
+
14
+ **Plan:** [plan title]
15
+ **Started:** [timestamp]
16
+ **Status:** IN PROGRESS
17
+
18
+ ## Execution Summary
19
+ | Wave | Tasks | Status | Started | Completed |
20
+ |------|-------|--------|---------|-----------|
21
+ | 1 | [task list] | PENDING | — | — |
22
+ | 2 | [task list] | PENDING | — | — |
23
+ | ... | | | | |
24
+
25
+ ## Task Status
26
+ | # | Title | Agent | Status | Audit | Notes |
27
+ |---|-------|-------|--------|-------|-------|
28
+ | 1 | [title] | [agent] | PENDING | — | |
29
+ | 2 | [title] | [agent] | PENDING | — | |
30
+ | ... | | | | | |
31
+
32
+ ## Activity Log
33
+ [reverse chronological — newest first]
34
+ ```
35
+
36
+ ## Update Events
37
+
38
+ Update PROGRESS.md at these events:
39
+
40
+ - **Wave starts** → update wave status to `IN PROGRESS`, add timestamp to Started column
41
+ - **Task agent returns** → update task status to `COMPLETE` or `FAILED`, add audit result
42
+ - **Wave completes** → update wave status to `COMPLETE`, add timestamp to Completed column
43
+ - **Merge completes** → add to activity log
44
+ - **Errors/blockers** → add to activity log with details
45
+
46
+ ## Activity Log Format
47
+
48
+ Each entry uses this format:
49
+ ```
50
+ ### [HH:MM] [event type]
51
+ [brief description]
52
+ ```
53
+
54
+ Example entries (newest first):
55
+ ```
56
+ ### 14:32 Wave 1 complete
57
+ Tasks 1-4 merged to main. All audits passed. 2 auto-fixes applied.
58
+
59
+ ### 14:15 Task 3 audit — auto-fix
60
+ Added missing import for UserPreferences in SettingsView.tsx
61
+
62
+ ### 13:45 Wave 1 started
63
+ Dispatching 4 agents in parallel: frontend (tasks 1,2), backend (task 3), testing (task 4)
64
+ ```
65
+
66
+ This file is for human consumption — the user can check it at any time without interrupting execution. Keep entries concise and informative.