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