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.
- package/LICENSE +21 -21
- package/README.md +170 -170
- package/bin/generate-manifest.mjs +463 -463
- package/bin/install.mjs +491 -491
- package/docs/HOOKS.md +243 -243
- package/docs/INBOX.md +233 -233
- package/ftm/SKILL.md +122 -122
- package/ftm-audit/SKILL.md +623 -541
- package/ftm-audit/references/protocols/PROJECT-PATTERNS.md +91 -91
- package/ftm-audit/references/protocols/RUNTIME-WIRING.md +66 -66
- package/ftm-audit/references/protocols/WIRING-CONTRACTS.md +135 -135
- package/ftm-audit/references/strategies/AUTO-FIX-STRATEGIES.md +69 -69
- package/ftm-audit/references/templates/REPORT-FORMAT.md +96 -96
- package/ftm-audit/scripts/run-knip.sh +23 -23
- package/ftm-audit.yml +2 -2
- package/ftm-brainstorm/SKILL.md +498 -498
- package/ftm-brainstorm/evals/evals.json +100 -100
- package/ftm-brainstorm/evals/promptfoo.yaml +109 -109
- package/ftm-brainstorm/references/agent-prompts.md +224 -224
- package/ftm-brainstorm/references/plan-template.md +121 -121
- package/ftm-brainstorm.yml +2 -2
- package/ftm-browse/SKILL.md +454 -454
- package/ftm-browse/daemon/browser-manager.ts +206 -206
- package/ftm-browse/daemon/bun.lock +30 -30
- package/ftm-browse/daemon/cli.ts +347 -347
- package/ftm-browse/daemon/commands.ts +410 -410
- package/ftm-browse/daemon/main.ts +357 -357
- package/ftm-browse/daemon/package.json +17 -17
- package/ftm-browse/daemon/server.ts +189 -189
- package/ftm-browse/daemon/snapshot.ts +519 -519
- package/ftm-browse/daemon/tsconfig.json +22 -22
- package/ftm-browse.yml +4 -4
- package/ftm-capture/SKILL.md +370 -370
- package/ftm-capture.yml +4 -4
- package/ftm-codex-gate/SKILL.md +361 -361
- package/ftm-codex-gate.yml +2 -2
- package/ftm-config/SKILL.md +345 -345
- package/ftm-config.default.yml +82 -80
- package/ftm-config.yml +2 -2
- package/ftm-council/SKILL.md +416 -416
- package/ftm-council/references/prompts/CLAUDE-INVESTIGATION.md +60 -60
- package/ftm-council/references/prompts/CODEX-INVESTIGATION.md +58 -58
- package/ftm-council/references/prompts/GEMINI-INVESTIGATION.md +58 -58
- package/ftm-council/references/prompts/REBUTTAL-TEMPLATE.md +57 -57
- package/ftm-council/references/protocols/PREREQUISITES.md +47 -47
- package/ftm-council/references/protocols/STEP-0-FRAMING.md +46 -46
- package/ftm-council.yml +2 -2
- package/ftm-dashboard/SKILL.md +163 -163
- package/ftm-dashboard.yml +4 -4
- package/ftm-debug/SKILL.md +1037 -1037
- package/ftm-debug/references/phases/PHASE-0-INTAKE.md +58 -58
- package/ftm-debug/references/phases/PHASE-1-TRIAGE.md +46 -46
- package/ftm-debug/references/phases/PHASE-2-WAR-ROOM-AGENTS.md +279 -279
- package/ftm-debug/references/phases/PHASE-3-TO-6-EXECUTION.md +436 -436
- package/ftm-debug/references/protocols/BLACKBOARD.md +86 -86
- package/ftm-debug/references/protocols/EDGE-CASES.md +103 -103
- package/ftm-debug.yml +2 -2
- package/ftm-diagram/SKILL.md +277 -277
- package/ftm-diagram.yml +2 -2
- package/ftm-executor/SKILL.md +777 -767
- package/ftm-executor/references/STYLE-TEMPLATE.md +73 -73
- package/ftm-executor/references/phases/PHASE-0-VERIFICATION.md +62 -62
- package/ftm-executor/references/phases/PHASE-2-AGENT-ASSEMBLY.md +34 -34
- package/ftm-executor/references/phases/PHASE-3-WORKTREES.md +38 -38
- package/ftm-executor/references/phases/PHASE-4-5-AUDIT.md +72 -72
- package/ftm-executor/references/phases/PHASE-4-DISPATCH.md +66 -66
- package/ftm-executor/references/phases/PHASE-5-5-CODEX-GATE.md +73 -73
- package/ftm-executor/references/protocols/DOCUMENTATION-BOOTSTRAP.md +36 -36
- package/ftm-executor/references/protocols/MODEL-PROFILE.md +59 -44
- package/ftm-executor/references/protocols/PROGRESS-TRACKING.md +66 -66
- package/ftm-executor/runtime/ftm-runtime.mjs +252 -252
- package/ftm-executor/runtime/package.json +8 -8
- package/ftm-executor.yml +2 -2
- package/ftm-git/SKILL.md +441 -441
- package/ftm-git/evals/evals.json +26 -26
- package/ftm-git/evals/promptfoo.yaml +75 -75
- package/ftm-git/hooks/post-commit-experience.sh +92 -92
- package/ftm-git/references/patterns/SECRET-PATTERNS.md +104 -104
- package/ftm-git/references/protocols/REMEDIATION.md +139 -139
- package/ftm-git/scripts/pre-commit-secrets.sh +110 -110
- package/ftm-git.yml +2 -2
- package/ftm-inbox/backend/adapters/_retry.py +64 -64
- package/ftm-inbox/backend/adapters/base.py +230 -230
- package/ftm-inbox/backend/adapters/freshservice.py +104 -104
- package/ftm-inbox/backend/adapters/gmail.py +125 -125
- package/ftm-inbox/backend/adapters/jira.py +136 -136
- package/ftm-inbox/backend/adapters/registry.py +192 -192
- package/ftm-inbox/backend/adapters/slack.py +110 -110
- package/ftm-inbox/backend/db/connection.py +54 -54
- package/ftm-inbox/backend/db/schema.py +78 -78
- package/ftm-inbox/backend/executor/__init__.py +7 -7
- package/ftm-inbox/backend/executor/engine.py +149 -149
- package/ftm-inbox/backend/executor/step_runner.py +98 -98
- package/ftm-inbox/backend/main.py +103 -103
- package/ftm-inbox/backend/models/__init__.py +1 -1
- package/ftm-inbox/backend/models/unified_task.py +36 -36
- package/ftm-inbox/backend/planner/__init__.py +6 -6
- package/ftm-inbox/backend/planner/generator.py +127 -127
- package/ftm-inbox/backend/planner/schema.py +34 -34
- package/ftm-inbox/backend/requirements.txt +5 -5
- package/ftm-inbox/backend/routes/execute.py +186 -186
- package/ftm-inbox/backend/routes/health.py +52 -52
- package/ftm-inbox/backend/routes/inbox.py +68 -68
- package/ftm-inbox/backend/routes/plan.py +271 -271
- package/ftm-inbox/bin/launchagent.mjs +91 -91
- package/ftm-inbox/bin/setup.mjs +188 -188
- package/ftm-inbox/bin/start.sh +10 -10
- package/ftm-inbox/bin/status.sh +17 -17
- package/ftm-inbox/bin/stop.sh +8 -8
- package/ftm-inbox/config.example.yml +55 -55
- package/ftm-inbox/package-lock.json +2898 -2898
- package/ftm-inbox/package.json +26 -26
- package/ftm-inbox/postcss.config.js +6 -6
- package/ftm-inbox/src/app.css +199 -199
- package/ftm-inbox/src/app.html +18 -18
- package/ftm-inbox/src/lib/api.ts +166 -166
- package/ftm-inbox/src/lib/components/ExecutionLog.svelte +81 -81
- package/ftm-inbox/src/lib/components/InboxFeed.svelte +143 -143
- package/ftm-inbox/src/lib/components/PlanStep.svelte +271 -271
- package/ftm-inbox/src/lib/components/PlanView.svelte +206 -206
- package/ftm-inbox/src/lib/components/StreamPanel.svelte +99 -99
- package/ftm-inbox/src/lib/components/TaskCard.svelte +190 -190
- package/ftm-inbox/src/lib/components/ui/EmptyState.svelte +63 -63
- package/ftm-inbox/src/lib/components/ui/KawaiiCard.svelte +86 -86
- package/ftm-inbox/src/lib/components/ui/PillButton.svelte +106 -106
- package/ftm-inbox/src/lib/components/ui/StatusBadge.svelte +67 -67
- package/ftm-inbox/src/lib/components/ui/StreamDrawer.svelte +149 -149
- package/ftm-inbox/src/lib/components/ui/ThemeToggle.svelte +80 -80
- package/ftm-inbox/src/lib/theme.ts +47 -47
- package/ftm-inbox/src/routes/+layout.svelte +76 -76
- package/ftm-inbox/src/routes/+page.svelte +401 -401
- package/ftm-inbox/svelte.config.js +12 -12
- package/ftm-inbox/tailwind.config.ts +63 -63
- package/ftm-inbox/tsconfig.json +13 -13
- package/ftm-inbox/vite.config.ts +6 -6
- package/ftm-intent/SKILL.md +241 -241
- package/ftm-intent.yml +2 -2
- package/ftm-manifest.json +3794 -3794
- package/ftm-map/SKILL.md +291 -291
- package/ftm-map/scripts/db.py +712 -712
- package/ftm-map/scripts/index.py +415 -415
- package/ftm-map/scripts/parser.py +224 -224
- package/ftm-map/scripts/queries/go-tags.scm +20 -20
- package/ftm-map/scripts/queries/javascript-tags.scm +35 -35
- package/ftm-map/scripts/queries/python-tags.scm +31 -31
- package/ftm-map/scripts/queries/ruby-tags.scm +19 -19
- package/ftm-map/scripts/queries/rust-tags.scm +37 -37
- package/ftm-map/scripts/queries/typescript-tags.scm +41 -41
- package/ftm-map/scripts/query.py +301 -301
- package/ftm-map/scripts/ranker.py +377 -377
- package/ftm-map/scripts/requirements.txt +5 -5
- package/ftm-map/scripts/setup-hooks.sh +27 -27
- package/ftm-map/scripts/setup.sh +56 -56
- package/ftm-map/scripts/test_db.py +364 -364
- package/ftm-map/scripts/test_parser.py +174 -174
- package/ftm-map/scripts/test_query.py +183 -183
- package/ftm-map/scripts/test_ranker.py +199 -199
- package/ftm-map/scripts/views.py +591 -591
- package/ftm-map.yml +2 -2
- package/ftm-mind/SKILL.md +1943 -1943
- package/ftm-mind/evals/promptfoo.yaml +142 -142
- package/ftm-mind/references/blackboard-schema.md +328 -328
- package/ftm-mind/references/complexity-guide.md +110 -110
- package/ftm-mind/references/event-registry.md +319 -319
- package/ftm-mind/references/mcp-inventory.md +296 -296
- package/ftm-mind/references/protocols/COMPLEXITY-SIZING.md +72 -72
- package/ftm-mind/references/protocols/MCP-HEURISTICS.md +32 -32
- package/ftm-mind/references/protocols/PLAN-APPROVAL.md +80 -80
- package/ftm-mind/references/reflexion-protocol.md +249 -249
- package/ftm-mind/references/routing/SCENARIOS.md +22 -22
- package/ftm-mind/references/routing-scenarios.md +35 -35
- package/ftm-mind.yml +2 -2
- package/ftm-pause/SKILL.md +395 -395
- package/ftm-pause/references/protocols/SKILL-RESTORE-PROTOCOLS.md +186 -186
- package/ftm-pause/references/protocols/VALIDATION.md +80 -80
- package/ftm-pause.yml +2 -2
- package/ftm-researcher/SKILL.md +275 -275
- package/ftm-researcher/evals/agent-diversity.yaml +17 -17
- package/ftm-researcher/evals/synthesis-quality.yaml +12 -12
- package/ftm-researcher/evals/trigger-accuracy.yaml +39 -39
- package/ftm-researcher/references/adaptive-search.md +116 -116
- package/ftm-researcher/references/agent-prompts.md +193 -193
- package/ftm-researcher/references/council-integration.md +193 -193
- package/ftm-researcher/references/output-format.md +203 -203
- package/ftm-researcher/references/synthesis-pipeline.md +165 -165
- package/ftm-researcher/scripts/score_credibility.py +234 -234
- package/ftm-researcher/scripts/validate_research.py +92 -92
- package/ftm-researcher.yml +2 -2
- package/ftm-resume/SKILL.md +518 -518
- package/ftm-resume/references/protocols/VALIDATION.md +172 -172
- package/ftm-resume.yml +2 -2
- package/ftm-retro/SKILL.md +380 -380
- package/ftm-retro/references/protocols/SCORING-RUBRICS.md +89 -89
- package/ftm-retro/references/templates/REPORT-FORMAT.md +109 -109
- package/ftm-retro.yml +2 -2
- package/ftm-routine/SKILL.md +170 -170
- package/ftm-routine.yml +4 -4
- package/ftm-state/blackboard/capabilities.json +5 -5
- package/ftm-state/blackboard/capabilities.schema.json +27 -27
- package/ftm-state/blackboard/context.json +23 -23
- package/ftm-state/blackboard/experiences/index.json +9 -9
- package/ftm-state/blackboard/patterns.json +6 -6
- package/ftm-state/schemas/context.schema.json +130 -130
- package/ftm-state/schemas/experience-index.schema.json +77 -77
- package/ftm-state/schemas/experience.schema.json +78 -78
- package/ftm-state/schemas/patterns.schema.json +44 -44
- package/ftm-upgrade/SKILL.md +194 -194
- package/ftm-upgrade/scripts/check-version.sh +76 -76
- package/ftm-upgrade/scripts/upgrade.sh +143 -143
- package/ftm-upgrade.yml +2 -2
- package/ftm-verify.yml +2 -2
- package/ftm.yml +2 -2
- package/hooks/ftm-blackboard-enforcer.sh +93 -93
- package/hooks/ftm-discovery-reminder.sh +90 -90
- package/hooks/ftm-drafts-gate.sh +61 -61
- package/hooks/ftm-event-logger.mjs +107 -107
- package/hooks/ftm-map-autodetect.sh +79 -79
- package/hooks/ftm-pending-sync-check.sh +22 -22
- package/hooks/ftm-plan-gate.sh +92 -92
- package/hooks/ftm-post-commit-trigger.sh +57 -57
- package/hooks/settings-template.json +81 -81
- package/install.sh +363 -363
- package/package.json +84 -84
- 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
|
+
```
|