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,60 +1,60 @@
1
- # Claude Investigation Prompt Template
2
-
3
- Use this for spawning the Claude subagent in Step 1 (and rebuttal rounds). Spawning via subagent keeps the investigation isolated from the orchestrator's accumulated context — this is critical for independent research.
4
-
5
- ## Round 1: Independent Research
6
-
7
- ```
8
- You are one of three AI peers in a deliberation council. The other two peers are Codex (OpenAI) and Gemini (Google). Your job is to independently investigate the following problem by reading the codebase, then give your honest, well-reasoned position.
9
-
10
- IMPORTANT: Do your own research. Read files, search code, trace through logic. Your position must be grounded in what you actually find in the code, not assumptions. Cite specific files and line numbers.
11
-
12
- PROBLEM:
13
- {council_prompt}
14
-
15
- WORKING DIRECTORY: {cwd}
16
-
17
- Instructions:
18
- 1. Start by exploring the relevant parts of the codebase — read files, search for patterns, trace dependencies
19
- 2. Take notes on what you find as you go
20
- 3. After you've done sufficient research, formulate your position
21
-
22
- Give your response in this format:
23
- 1. RESEARCH SUMMARY: What files you examined, what you found (with file:line references)
24
- 2. POSITION: Your clear stance (1-2 sentences)
25
- 3. REASONING: Why you believe this, grounded in specific code you read
26
- 4. CONCERNS: What could go wrong with your approach
27
- 5. CONFIDENCE: High/Medium/Low and why
28
- ```
29
-
30
- ## Rebuttal Rounds (Rounds 2-5)
31
-
32
- The rebuttal subagent also runs isolated so it doesn't anchor on the orchestrator's context.
33
-
34
- ```
35
- Round {N} of the deliberation council.
36
-
37
- Here's what happened in the previous round. Each model independently researched the codebase and formed a position:
38
-
39
- PEER 1's research and position:
40
- {peer1_previous_full}
41
-
42
- PEER 2's research and position:
43
- {peer2_previous_full}
44
-
45
- YOUR previous research and position:
46
- {claude_previous_full}
47
-
48
- Now respond. You may do additional codebase research if you want to verify claims the other models made or investigate angles they raised. Then:
49
-
50
- 1. Directly address the strongest point from each other model
51
- 2. If another model cited code you haven't looked at, go read it and see if you agree with their interpretation
52
- 3. State whether you've changed your position (and why, or why not)
53
- 4. If you agree with another model, say so explicitly
54
-
55
- UPDATED POSITION: [same/changed] ...
56
- NEW EVIDENCE (if any): [anything new you found by following up on other models' research]
57
- KEY RESPONSE TO PEER 1: ...
58
- KEY RESPONSE TO PEER 2: ...
59
- REMAINING DISAGREEMENTS: ...
60
- ```
1
+ # Claude Investigation Prompt Template
2
+
3
+ Use this for spawning the Claude subagent in Step 1 (and rebuttal rounds). Spawning via subagent keeps the investigation isolated from the orchestrator's accumulated context — this is critical for independent research.
4
+
5
+ ## Round 1: Independent Research
6
+
7
+ ```
8
+ You are one of three AI peers in a deliberation council. The other two peers are Codex (OpenAI) and Gemini (Google). Your job is to independently investigate the following problem by reading the codebase, then give your honest, well-reasoned position.
9
+
10
+ IMPORTANT: Do your own research. Read files, search code, trace through logic. Your position must be grounded in what you actually find in the code, not assumptions. Cite specific files and line numbers.
11
+
12
+ PROBLEM:
13
+ {council_prompt}
14
+
15
+ WORKING DIRECTORY: {cwd}
16
+
17
+ Instructions:
18
+ 1. Start by exploring the relevant parts of the codebase — read files, search for patterns, trace dependencies
19
+ 2. Take notes on what you find as you go
20
+ 3. After you've done sufficient research, formulate your position
21
+
22
+ Give your response in this format:
23
+ 1. RESEARCH SUMMARY: What files you examined, what you found (with file:line references)
24
+ 2. POSITION: Your clear stance (1-2 sentences)
25
+ 3. REASONING: Why you believe this, grounded in specific code you read
26
+ 4. CONCERNS: What could go wrong with your approach
27
+ 5. CONFIDENCE: High/Medium/Low and why
28
+ ```
29
+
30
+ ## Rebuttal Rounds (Rounds 2-5)
31
+
32
+ The rebuttal subagent also runs isolated so it doesn't anchor on the orchestrator's context.
33
+
34
+ ```
35
+ Round {N} of the deliberation council.
36
+
37
+ Here's what happened in the previous round. Each model independently researched the codebase and formed a position:
38
+
39
+ PEER 1's research and position:
40
+ {peer1_previous_full}
41
+
42
+ PEER 2's research and position:
43
+ {peer2_previous_full}
44
+
45
+ YOUR previous research and position:
46
+ {claude_previous_full}
47
+
48
+ Now respond. You may do additional codebase research if you want to verify claims the other models made or investigate angles they raised. Then:
49
+
50
+ 1. Directly address the strongest point from each other model
51
+ 2. If another model cited code you haven't looked at, go read it and see if you agree with their interpretation
52
+ 3. State whether you've changed your position (and why, or why not)
53
+ 4. If you agree with another model, say so explicitly
54
+
55
+ UPDATED POSITION: [same/changed] ...
56
+ NEW EVIDENCE (if any): [anything new you found by following up on other models' research]
57
+ KEY RESPONSE TO PEER 1: ...
58
+ KEY RESPONSE TO PEER 2: ...
59
+ REMAINING DISAGREEMENTS: ...
60
+ ```
@@ -1,58 +1,58 @@
1
- # Codex Investigation Prompt Template
2
-
3
- Use this for spawning Codex via CLI. The `--full-auto` flag gives Codex sandboxed read access to the workspace so it can explore files on its own.
4
-
5
- ## Round 1: Independent Research
6
-
7
- ```bash
8
- cd {cwd} && codex exec --full-auto "You are one of three AI peers in a deliberation council. The other two peers are a subagent investigator and Gemini (Google). Your job is to independently investigate the following problem by reading the codebase, then give your honest, well-reasoned position.
9
-
10
- IMPORTANT: Do your own research. Read files, search code, trace through logic. Your position must be grounded in what you actually find in the code, not assumptions. Cite specific files and line numbers.
11
-
12
- PROBLEM:
13
- {council_prompt}
14
-
15
- Instructions:
16
- 1. Start by exploring the relevant parts of the codebase — read files, search for patterns, trace dependencies
17
- 2. Take notes on what you find as you go
18
- 3. After you have done sufficient research, formulate your position
19
-
20
- Give your response in this format:
21
- 1. RESEARCH SUMMARY: What files you examined, what you found (with file:line references)
22
- 2. POSITION: Your clear stance (1-2 sentences)
23
- 3. REASONING: Why you believe this, grounded in specific code you read
24
- 4. CONCERNS: What could go wrong with your approach
25
- 5. CONFIDENCE: High/Medium/Low and why"
26
- ```
27
-
28
- ## Rebuttal Rounds (Rounds 2-5)
29
-
30
- Use `--full-auto` in rebuttal rounds as well — Codex may want to verify another model's claims by reading files it hadn't looked at before.
31
-
32
- ```bash
33
- cd {cwd} && codex exec --full-auto "Round {N} of the deliberation council.
34
-
35
- Here's what happened in the previous round. Each model independently researched the codebase and formed a position:
36
-
37
- PEER 1's research and position:
38
- {peer1_previous_full}
39
-
40
- PEER 2's research and position:
41
- {peer2_previous_full}
42
-
43
- YOUR previous research and position:
44
- {codex_previous_full}
45
-
46
- Now respond. You may do additional codebase research if you want to verify claims the other models made or investigate angles they raised. Then:
47
-
48
- 1. Directly address the strongest point from each other model
49
- 2. If another model cited code you haven't looked at, go read it and see if you agree with their interpretation
50
- 3. State whether you've changed your position (and why, or why not)
51
- 4. If you agree with another model, say so explicitly
52
-
53
- UPDATED POSITION: [same/changed] ...
54
- NEW EVIDENCE (if any): [anything new you found by following up on other models' research]
55
- KEY RESPONSE TO PEER 1: ...
56
- KEY RESPONSE TO PEER 2: ...
57
- REMAINING DISAGREEMENTS: ..."
58
- ```
1
+ # Codex Investigation Prompt Template
2
+
3
+ Use this for spawning Codex via CLI. The `--full-auto` flag gives Codex sandboxed read access to the workspace so it can explore files on its own.
4
+
5
+ ## Round 1: Independent Research
6
+
7
+ ```bash
8
+ cd {cwd} && codex exec --full-auto "You are one of three AI peers in a deliberation council. The other two peers are a subagent investigator and Gemini (Google). Your job is to independently investigate the following problem by reading the codebase, then give your honest, well-reasoned position.
9
+
10
+ IMPORTANT: Do your own research. Read files, search code, trace through logic. Your position must be grounded in what you actually find in the code, not assumptions. Cite specific files and line numbers.
11
+
12
+ PROBLEM:
13
+ {council_prompt}
14
+
15
+ Instructions:
16
+ 1. Start by exploring the relevant parts of the codebase — read files, search for patterns, trace dependencies
17
+ 2. Take notes on what you find as you go
18
+ 3. After you have done sufficient research, formulate your position
19
+
20
+ Give your response in this format:
21
+ 1. RESEARCH SUMMARY: What files you examined, what you found (with file:line references)
22
+ 2. POSITION: Your clear stance (1-2 sentences)
23
+ 3. REASONING: Why you believe this, grounded in specific code you read
24
+ 4. CONCERNS: What could go wrong with your approach
25
+ 5. CONFIDENCE: High/Medium/Low and why"
26
+ ```
27
+
28
+ ## Rebuttal Rounds (Rounds 2-5)
29
+
30
+ Use `--full-auto` in rebuttal rounds as well — Codex may want to verify another model's claims by reading files it hadn't looked at before.
31
+
32
+ ```bash
33
+ cd {cwd} && codex exec --full-auto "Round {N} of the deliberation council.
34
+
35
+ Here's what happened in the previous round. Each model independently researched the codebase and formed a position:
36
+
37
+ PEER 1's research and position:
38
+ {peer1_previous_full}
39
+
40
+ PEER 2's research and position:
41
+ {peer2_previous_full}
42
+
43
+ YOUR previous research and position:
44
+ {codex_previous_full}
45
+
46
+ Now respond. You may do additional codebase research if you want to verify claims the other models made or investigate angles they raised. Then:
47
+
48
+ 1. Directly address the strongest point from each other model
49
+ 2. If another model cited code you haven't looked at, go read it and see if you agree with their interpretation
50
+ 3. State whether you've changed your position (and why, or why not)
51
+ 4. If you agree with another model, say so explicitly
52
+
53
+ UPDATED POSITION: [same/changed] ...
54
+ NEW EVIDENCE (if any): [anything new you found by following up on other models' research]
55
+ KEY RESPONSE TO PEER 1: ...
56
+ KEY RESPONSE TO PEER 2: ...
57
+ REMAINING DISAGREEMENTS: ..."
58
+ ```
@@ -1,58 +1,58 @@
1
- # Gemini Investigation Prompt Template
2
-
3
- Use this for spawning Gemini via CLI. The `--yolo` flag lets Gemini auto-approve file reads so it can explore without getting stuck on permission prompts.
4
-
5
- ## Round 1: Independent Research
6
-
7
- ```bash
8
- cd {cwd} && gemini -p "You are one of three AI peers in a deliberation council. The other two peers are a subagent investigator and Codex (OpenAI). Your job is to independently investigate the following problem by reading the codebase, then give your honest, well-reasoned position.
9
-
10
- IMPORTANT: Do your own research. Read files, search code, trace through logic. Your position must be grounded in what you actually find in the code, not assumptions. Cite specific files and line numbers.
11
-
12
- PROBLEM:
13
- {council_prompt}
14
-
15
- Instructions:
16
- 1. Start by exploring the relevant parts of the codebase — read files, search for patterns, trace dependencies
17
- 2. Take notes on what you find as you go
18
- 3. After you have done sufficient research, formulate your position
19
-
20
- Give your response in this format:
21
- 1. RESEARCH SUMMARY: What files you examined, what you found (with file:line references)
22
- 2. POSITION: Your clear stance (1-2 sentences)
23
- 3. REASONING: Why you believe this, grounded in specific code you read
24
- 4. CONCERNS: What could go wrong with your approach
25
- 5. CONFIDENCE: High/Medium/Low and why" --yolo
26
- ```
27
-
28
- ## Rebuttal Rounds (Rounds 2-5)
29
-
30
- Use `--yolo` in rebuttal rounds as well — Gemini may want to verify another model's claims by reading files it hadn't looked at before.
31
-
32
- ```bash
33
- cd {cwd} && gemini -p "Round {N} of the deliberation council.
34
-
35
- Here's what happened in the previous round. Each model independently researched the codebase and formed a position:
36
-
37
- PEER 1's research and position:
38
- {peer1_previous_full}
39
-
40
- PEER 2's research and position:
41
- {peer2_previous_full}
42
-
43
- YOUR previous research and position:
44
- {gemini_previous_full}
45
-
46
- Now respond. You may do additional codebase research if you want to verify claims the other models made or investigate angles they raised. Then:
47
-
48
- 1. Directly address the strongest point from each other model
49
- 2. If another model cited code you haven't looked at, go read it and see if you agree with their interpretation
50
- 3. State whether you've changed your position (and why, or why not)
51
- 4. If you agree with another model, say so explicitly
52
-
53
- UPDATED POSITION: [same/changed] ...
54
- NEW EVIDENCE (if any): [anything new you found by following up on other models' research]
55
- KEY RESPONSE TO PEER 1: ...
56
- KEY RESPONSE TO PEER 2: ...
57
- REMAINING DISAGREEMENTS: ..." --yolo
58
- ```
1
+ # Gemini Investigation Prompt Template
2
+
3
+ Use this for spawning Gemini via CLI. The `--yolo` flag lets Gemini auto-approve file reads so it can explore without getting stuck on permission prompts.
4
+
5
+ ## Round 1: Independent Research
6
+
7
+ ```bash
8
+ cd {cwd} && gemini -p "You are one of three AI peers in a deliberation council. The other two peers are a subagent investigator and Codex (OpenAI). Your job is to independently investigate the following problem by reading the codebase, then give your honest, well-reasoned position.
9
+
10
+ IMPORTANT: Do your own research. Read files, search code, trace through logic. Your position must be grounded in what you actually find in the code, not assumptions. Cite specific files and line numbers.
11
+
12
+ PROBLEM:
13
+ {council_prompt}
14
+
15
+ Instructions:
16
+ 1. Start by exploring the relevant parts of the codebase — read files, search for patterns, trace dependencies
17
+ 2. Take notes on what you find as you go
18
+ 3. After you have done sufficient research, formulate your position
19
+
20
+ Give your response in this format:
21
+ 1. RESEARCH SUMMARY: What files you examined, what you found (with file:line references)
22
+ 2. POSITION: Your clear stance (1-2 sentences)
23
+ 3. REASONING: Why you believe this, grounded in specific code you read
24
+ 4. CONCERNS: What could go wrong with your approach
25
+ 5. CONFIDENCE: High/Medium/Low and why" --yolo
26
+ ```
27
+
28
+ ## Rebuttal Rounds (Rounds 2-5)
29
+
30
+ Use `--yolo` in rebuttal rounds as well — Gemini may want to verify another model's claims by reading files it hadn't looked at before.
31
+
32
+ ```bash
33
+ cd {cwd} && gemini -p "Round {N} of the deliberation council.
34
+
35
+ Here's what happened in the previous round. Each model independently researched the codebase and formed a position:
36
+
37
+ PEER 1's research and position:
38
+ {peer1_previous_full}
39
+
40
+ PEER 2's research and position:
41
+ {peer2_previous_full}
42
+
43
+ YOUR previous research and position:
44
+ {gemini_previous_full}
45
+
46
+ Now respond. You may do additional codebase research if you want to verify claims the other models made or investigate angles they raised. Then:
47
+
48
+ 1. Directly address the strongest point from each other model
49
+ 2. If another model cited code you haven't looked at, go read it and see if you agree with their interpretation
50
+ 3. State whether you've changed your position (and why, or why not)
51
+ 4. If you agree with another model, say so explicitly
52
+
53
+ UPDATED POSITION: [same/changed] ...
54
+ NEW EVIDENCE (if any): [anything new you found by following up on other models' research]
55
+ KEY RESPONSE TO PEER 1: ...
56
+ KEY RESPONSE TO PEER 2: ...
57
+ REMAINING DISAGREEMENTS: ..." --yolo
58
+ ```
@@ -1,57 +1,57 @@
1
- # Rebuttal Round Prompt Template
2
-
3
- Use this to construct the prompt sent to each model in rebuttal rounds (Steps 3-4). The prompt must be fully self-contained — Codex and Gemini are stateless between rounds, so every round's prompt must include the full history.
4
-
5
- ## Template
6
-
7
- ```
8
- Round {N} of the deliberation council.
9
-
10
- Here's what happened in the previous round. Each model independently researched the codebase and formed a position:
11
-
12
- MODEL A's research and position:
13
- {model_a_previous_full}
14
-
15
- MODEL B's research and position:
16
- {model_b_previous_full}
17
-
18
- MODEL C's research and position:
19
- {model_c_previous_full}
20
-
21
- Now respond. You may do additional codebase research if you want to verify claims the other models made or investigate angles they raised. Then:
22
-
23
- 1. Directly address the strongest point from each other model
24
- 2. If another model cited code you haven't looked at, go read it and see if you agree with their interpretation
25
- 3. State whether you've changed your position (and why, or why not)
26
- 4. If you agree with another model, say so explicitly
27
-
28
- UPDATED POSITION: [same/changed] ...
29
- NEW EVIDENCE (if any): [anything new you found by following up on other models' research]
30
- KEY RESPONSE TO MODEL A: ...
31
- KEY RESPONSE TO MODEL B: ...
32
- REMAINING DISAGREEMENTS: ...
33
- ```
34
-
35
- ## Construction Rules
36
-
37
- - Replace `{model_a/b/c_previous_full}` with each model's complete response from the prior round — research summary, position, reasoning, concerns, and confidence
38
- - Do NOT summarize or truncate prior responses — the full research context is what allows models to verify each other's findings
39
- - Include ALL prior rounds' positions if building a multi-round history, not just the most recent
40
- - Use the same CLI flags as Round 1 (`--full-auto` for Codex, `--yolo` for Gemini) so models can do follow-up research
41
-
42
- ## Orchestrator State
43
-
44
- Between rounds, the orchestrator holds all state. Keep a running record of:
45
- - Each model's research findings per round (files examined, what was found)
46
- - Each model's position per round
47
- - Whether any model changed position and why
48
-
49
- This record feeds the next round's rebuttal prompt. Without it, models cannot engage meaningfully with each other's evidence.
50
-
51
- ## What to Watch For
52
-
53
- When presenting round results to the user, highlight:
54
- - **Position changes**: which model moved and what evidence caused the shift
55
- - **New research**: if a model read files others hadn't looked at
56
- - **Convergence signal**: models independently finding the same evidence
57
- - **Persistent divergence**: models who've both read the same code and still disagree — this is a genuine hard problem
1
+ # Rebuttal Round Prompt Template
2
+
3
+ Use this to construct the prompt sent to each model in rebuttal rounds (Steps 3-4). The prompt must be fully self-contained — Codex and Gemini are stateless between rounds, so every round's prompt must include the full history.
4
+
5
+ ## Template
6
+
7
+ ```
8
+ Round {N} of the deliberation council.
9
+
10
+ Here's what happened in the previous round. Each model independently researched the codebase and formed a position:
11
+
12
+ MODEL A's research and position:
13
+ {model_a_previous_full}
14
+
15
+ MODEL B's research and position:
16
+ {model_b_previous_full}
17
+
18
+ MODEL C's research and position:
19
+ {model_c_previous_full}
20
+
21
+ Now respond. You may do additional codebase research if you want to verify claims the other models made or investigate angles they raised. Then:
22
+
23
+ 1. Directly address the strongest point from each other model
24
+ 2. If another model cited code you haven't looked at, go read it and see if you agree with their interpretation
25
+ 3. State whether you've changed your position (and why, or why not)
26
+ 4. If you agree with another model, say so explicitly
27
+
28
+ UPDATED POSITION: [same/changed] ...
29
+ NEW EVIDENCE (if any): [anything new you found by following up on other models' research]
30
+ KEY RESPONSE TO MODEL A: ...
31
+ KEY RESPONSE TO MODEL B: ...
32
+ REMAINING DISAGREEMENTS: ...
33
+ ```
34
+
35
+ ## Construction Rules
36
+
37
+ - Replace `{model_a/b/c_previous_full}` with each model's complete response from the prior round — research summary, position, reasoning, concerns, and confidence
38
+ - Do NOT summarize or truncate prior responses — the full research context is what allows models to verify each other's findings
39
+ - Include ALL prior rounds' positions if building a multi-round history, not just the most recent
40
+ - Use the same CLI flags as Round 1 (`--full-auto` for Codex, `--yolo` for Gemini) so models can do follow-up research
41
+
42
+ ## Orchestrator State
43
+
44
+ Between rounds, the orchestrator holds all state. Keep a running record of:
45
+ - Each model's research findings per round (files examined, what was found)
46
+ - Each model's position per round
47
+ - Whether any model changed position and why
48
+
49
+ This record feeds the next round's rebuttal prompt. Without it, models cannot engage meaningfully with each other's evidence.
50
+
51
+ ## What to Watch For
52
+
53
+ When presenting round results to the user, highlight:
54
+ - **Position changes**: which model moved and what evidence caused the shift
55
+ - **New research**: if a model read files others hadn't looked at
56
+ - **Convergence signal**: models independently finding the same evidence
57
+ - **Persistent divergence**: models who've both read the same code and still disagree — this is a genuine hard problem
@@ -1,47 +1,47 @@
1
- # Prerequisites: Tool Availability Checks
2
-
3
- ## Required CLI Tools
4
-
5
- The council requires both external CLI tools to be installed and authenticated:
6
-
7
- - **Codex**: `npm install -g @openai/codex` (authenticated via `codex login`)
8
- - **Gemini**: `npm install -g @google/gemini-cli` (authenticated via Google)
9
-
10
- ## Availability Check
11
-
12
- Before the first round, verify both tools are available:
13
-
14
- ```bash
15
- which codex && which gemini
16
- ```
17
-
18
- ## Fallback Logic
19
-
20
- | Scenario | Action |
21
- |---|---|
22
- | Both tools missing | Tell the user what to install and stop — don't attempt a degraded council |
23
- | One tool missing | Report which tool is missing. A 2-model debate loses the tiebreaker benefit — ask the user if they want to proceed or install the missing tool first |
24
- | Auth failure at runtime | Report the error to the user. Continue with the remaining models. A 2-model debate is better than nothing |
25
- | Rate limit or sandbox error at runtime | Report the error. Continue with the remaining models |
26
-
27
- **Do not silently proceed with a degraded council.** Always tell the user which tool is unavailable and why. The tiebreaker value of a 3-model council is significant for close decisions.
28
-
29
- ## Runtime Timeout Configuration
30
-
31
- Set timeouts per round type:
32
-
33
- - **Round 1 (Independent Research)**: 300s (5 minutes) — models are reading files and searching code
34
- - **Rebuttal rounds (2-5)**: 180s — less exploration, more focused follow-up
35
-
36
- If one model times out in any round, report it and continue with the other two.
37
-
38
- ## Working Directory
39
-
40
- Make sure both CLI tools run from the same working directory as the current session. This ensures all models look at the same codebase.
41
-
42
- Pass `cd {cwd} &&` before CLI commands if needed:
43
-
44
- ```bash
45
- cd /path/to/project && codex exec --full-auto "..."
46
- cd /path/to/project && gemini -p "..." --yolo
47
- ```
1
+ # Prerequisites: Tool Availability Checks
2
+
3
+ ## Required CLI Tools
4
+
5
+ The council requires both external CLI tools to be installed and authenticated:
6
+
7
+ - **Codex**: `npm install -g @openai/codex` (authenticated via `codex login`)
8
+ - **Gemini**: `npm install -g @google/gemini-cli` (authenticated via Google)
9
+
10
+ ## Availability Check
11
+
12
+ Before the first round, verify both tools are available:
13
+
14
+ ```bash
15
+ which codex && which gemini
16
+ ```
17
+
18
+ ## Fallback Logic
19
+
20
+ | Scenario | Action |
21
+ |---|---|
22
+ | Both tools missing | Tell the user what to install and stop — don't attempt a degraded council |
23
+ | One tool missing | Report which tool is missing. A 2-model debate loses the tiebreaker benefit — ask the user if they want to proceed or install the missing tool first |
24
+ | Auth failure at runtime | Report the error to the user. Continue with the remaining models. A 2-model debate is better than nothing |
25
+ | Rate limit or sandbox error at runtime | Report the error. Continue with the remaining models |
26
+
27
+ **Do not silently proceed with a degraded council.** Always tell the user which tool is unavailable and why. The tiebreaker value of a 3-model council is significant for close decisions.
28
+
29
+ ## Runtime Timeout Configuration
30
+
31
+ Set timeouts per round type:
32
+
33
+ - **Round 1 (Independent Research)**: 300s (5 minutes) — models are reading files and searching code
34
+ - **Rebuttal rounds (2-5)**: 180s — less exploration, more focused follow-up
35
+
36
+ If one model times out in any round, report it and continue with the other two.
37
+
38
+ ## Working Directory
39
+
40
+ Make sure both CLI tools run from the same working directory as the current session. This ensures all models look at the same codebase.
41
+
42
+ Pass `cd {cwd} &&` before CLI commands if needed:
43
+
44
+ ```bash
45
+ cd /path/to/project && codex exec --full-auto "..."
46
+ cd /path/to/project && gemini -p "..." --yolo
47
+ ```