Skip to content

Commit f54d20d

Browse files
committed
feat(loop): assign model tiers per role — fable builder and plan gate
1 parent 71bf9cb commit f54d20d

8 files changed

Lines changed: 13 additions & 11 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ Hopper → Deming
6565

6666
Requirements → spec → review → scout → build → test/security/perf/UX → code review → visual → docs → commit → observe. One iteration at a time. Von Braun handles release builds separately via `/great:deploy`.
6767

68+
Each role runs on the model tier its job demands: Fable for the builder and the plan-approval gate, Opus for testing, security audit, specs, and code review (security roles stay on Opus deliberately — Fable's cyber safety classifiers can refuse security-focused analysis), Sonnet for scouting, UX, visual, perf, docs, and deploys, Haiku for commits. Deming, the team lead, is your own session — run it on Opus or Fable.
69+
6870
```sh
6971
great loop install # registers the plugin with Claude Code
7072
great loop install --project # adds .tasks/ working state to the current repo

loop/.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"name": "great",
3-
"version": "0.2.0",
3+
"version": "0.3.0",
44
"description": "great.sh Loop — 16-role AI agent orchestration"
55
}

loop/agents/davinci.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: davinci
33
description: "Leonardo da Vinci — Builder. Teammate. Turns specs into working code."
44
tools: [Read, Write, Edit, Glob, Grep, Bash, Task, mcp__context7__*]
5-
model: opus
5+
model: fable
66
memory: project
77
---
88

loop/agents/dijkstra.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: dijkstra
33
description: "Edsger Dijkstra — Code Reviewer. Reviews code quality, complexity, and structure. Gate between build and commit."
44
tools: [Read, Glob, Grep]
5-
model: sonnet
5+
model: opus
66
memory: project
77
---
88

loop/agents/socrates.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: socrates
33
description: "Socrates — Adversarial Spec Reviewer. Questions every assumption. Plan approval gate."
44
tools: [Read, Glob, Grep]
5-
model: opus
5+
model: fable
66
memory: project
77
---
88

loop/skills/loop/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Execute the full 16-agent great.sh Loop.
2424

2525
**2. Lovelace** (Opus) — Write spec. Use Context7 MCP for library/framework docs. Output to `.tasks/ready/`.
2626

27-
**3. Socrates** (Opus) — **Plan approval gate.** Adversarial review with structured elenchus. Max 3 Lovelace<->Socrates rounds. You (Deming) decide after 3 if still rejected.
27+
**3. Socrates** (Fable) — **Plan approval gate.** Adversarial review with structured elenchus — ambiguity and contradiction hunting is where the top-tier model earns its cost: an error caught at spec time saves a full build cycle. Max 3 Lovelace<->Socrates rounds. You (Deming) decide after 3 if still rejected.
2828

2929
**4. Humboldt** (Sonnet) — Scout codebase. Map files, patterns, dependencies.
3030

@@ -34,9 +34,9 @@ Create an agent team with four teammates working in parallel:
3434

3535
```
3636
Spawn a team of four teammates:
37-
- Da Vinci (builder, Opus): implement spec using Context7 MCP. Run quality gates. Message Turing and Kerckhoffs when ready. Require plan approval before implementing.
38-
- Turing (tester, Opus): prove the build is broken. Adversarial tests. Regression watchdog. Message Da Vinci with failures.
39-
- Kerckhoffs (security, Opus): audit for credential leakage, permission errors, input validation gaps, supply chain risks. CRITICAL/HIGH block commit. Message Da Vinci with fixes.
37+
- Da Vinci (builder, Fable): implement spec using Context7 MCP. Run quality gates. Message Turing and Kerckhoffs when ready. Require plan approval before implementing.
38+
- Turing (tester, Opus — not Fable: its security probing can trip Fable's cyber classifiers): prove the build is broken. Adversarial tests. Regression watchdog. Message Da Vinci with failures.
39+
- Kerckhoffs (security, Opus — deliberately not Fable: security-focused analysis is excluded from Fable's gains and risks classifier refusals mid-audit): audit for credential leakage, permission errors, input validation gaps, supply chain risks. CRITICAL/HIGH block commit. Message Da Vinci with fixes.
4040
- Nielsen (UX, Sonnet): walk affected user journeys. Playwright MCP for web. Can block commit. Message Da Vinci for issues.
4141
4242
Give each teammate the approved spec and scout report, and state what "done"
@@ -60,7 +60,7 @@ Collect teammate reports:
6060
- Performance regression -> Da Vinci fixes, Wirth re-measures (max 2 cycles)
6161
- Non-blocking -> Nightingale files as P2/P3
6262

63-
Run **Dijkstra** (subagent, Sonnet) — Code quality review. REJECTED -> Da Vinci fixes, Dijkstra re-reviews (max 2 cycles).
63+
Run **Dijkstra** (subagent, Opus) — Code quality review. REJECTED -> Da Vinci fixes, Dijkstra re-reviews (max 2 cycles).
6464

6565
## Phase 4: Finish
6666

loop/teams-config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"description": "Leonardo da Vinci — Builder",
77
"instructions": "Implement the provided spec. Use Context7 MCP for library docs. Run all quality gates. Message teammates directly for coordination. Broadcast when build is ready.",
88
"tools": ["Read", "Write", "Edit", "Bash", "Glob", "Grep"],
9-
"model": "opus"
9+
"model": "fable"
1010
},
1111
"turing": {
1212
"description": "Alan Turing — Tester/Breaker",

src/cli/loop_cmd.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -663,7 +663,7 @@ fn run_install(project: bool, force: bool, _non_interactive: bool) -> Result<()>
663663
output::header("great.sh Loop installed!");
664664
println!();
665665
output::info("16 roles: 4 teammates + 11 subagents + 1 team lead");
666-
output::info("All Claude: Opus + Sonnet + Haiku");
666+
output::info("All Claude: Fable + Opus + Sonnet + Haiku");
667667
println!();
668668
if project {
669669
output::info("Usage: claude -> /great:loop [task description]");

0 commit comments

Comments
 (0)