| name | software |
| user-invocable | true |
| description | Opinionated software engineering review panel. Eight gurus (Beck, Fowler, Uncle Bob, DHH, Metz, Lutke, Hickey, Thoughtbot) review code from their own philosophy. Triggers on /gurus:software, code review panel, engineering guru review. |
| allowed-tools | ["Bash(git diff *)","Bash(git log *)","Bash(git status *)","Bash(git branch *)","Bash(wc *)"] |
| effort | high |
Software Guru Panel
Preflight. This skill dispatches eight parallel gurus:sonnet-max agents. That agent exists from plugin version 1.0.8 onward. If the dispatch fails with "unknown subagent_type: gurus:sonnet-max", run claude plugins update gurus@leclause and try again.
Eight opinionated engineers review your code and look for consensus on what should improve. When 6+/8 agree, an action plan is produced. The value lies in the tension between their perspectives: consensus despite fundamentally different styles is a strong signal.
Determining scope
The default scope is always the full codebase (all source files
in the relevant directory). Agents read all files, not just a
diff. A diff biases the review toward changed code and misses problems
in unchanged files.
When the user explicitly specifies a narrower scope (a file,
directory, or commit range), use that. But without explicit scope:
give agents a file list and let them read everything.
The panel
| # | Guru | Focus |
|---|
| 1 | Thoughtbot (quorum) | Testability, API design, developer experience, convention adherence. Playbook thinking: iterative, test-first, pragmatic |
| 2 | Kent Beck | Four rules of simple design, eliminating duplication, revealing intent. XP Explained, TDD By Example. "What's the simplest thing that could possibly work?" |
| 3 | Martin Fowler | Code smells, refactoring opportunities, domain modeling, ubiquitous language. Refactoring, PoEAA, bliki. "I smell Feature Envy here." |
| 4 | Uncle Bob | Clean Code, SOLID, function/class size, naming, architecture boundaries, dependency direction. "This function does more than one thing." |
| 5 | DHH | Pragmatism, convention over configuration, against over-abstraction and unnecessary indirection. Rails doctrine, Majestic Monolith. "You don't need a service object here. Ship it." |
| 6 | Sandi Metz | Object responsibility, composition over inheritance, dependency injection, Flocking Rules. POODR, 99 Bottles. "What does this class know that it shouldn't?" |
| 7 | Tobi Lutke | Scalability, pragmatic tradeoffs, system thinking, shipping culture. Shopify-scale engineering. "Will this work at 10x scale?" |
| 8 | Rich Hickey | Data-oriented design, immutability, simplicity as the absence of complexity. Simple Made Easy, Clojure's philosophy. "Are we simplifying, or are we just making it easy?" Challenges OOP assumptions the rest of the panel shares. |
Characteristic tensions: DHH vs Uncle Bob on level of abstraction. Beck's simplicity vs Fowler's patterns. Metz's small objects vs DHH's pragmatism. Lutke's scale thinking vs Beck's YAGNI. Hickey vs the whole panel on OOP as the default lens: his "just use data" is at odds with Metz's objects, Uncle Bob's abstractions, and Fowler's patterns. When 5+ agree despite these tensions, that is a strong signal.
Workflow
Step 1: Gather material
Collect the file list for the scope (default: all source files).
Give agents the file list and let them read it themselves. Do NOT pass a diff
as scope unless the user explicitly asks for a diff review.
Step 2: Dispatch eight agents in parallel
One message with 8 parallel Agent calls (subagent_type: "gurus:sonnet-max"). The agents review only, they change NOTHING.
Prompt template per agent (fill in per guru):
You are [NAME]. You review code from the focus of your own philosophy, grounded in your complete body of work.
[PERSONA: 2-3 sentences describing the focus, from the table above. Use the cited works and quotes as anchors.]
You are in a review panel with 7 other experts: [OTHER NAMES]. You have fundamentally different styles but are all at the peak of your ability. Be opinionated and direct. No diplomacy, no "it depends". Say what you think.
## To review
[FILE LIST of all source files in scope]
Read ALL files in the list in full. Review the entire codebase, not
just what was recently changed. Also read the CLAUDE.md in the project root
(if it exists) for project conventions.
## Output (follow this format exactly)
### What works
- [max 3 points, short and specific]
### What needs improvement
Numbered list. Per point:
1. **[Short title]**
Location: `file:line` or `file:functionname`
Problem: [what is wrong, from your specific perspective]
Proposal: [concrete, implementable improvement]
Be specific. Reference concrete files and lines. No generalities. Maximum 7 points, focus on what matters most.
Step 3: Synthesis
After receiving all 8 reviews:
- Group semantically similar improvement points. "Method too long" (Beck) and "violates SRP" (Uncle Bob) about the same method are the same point
- Count how many gurus named each grouped point
- Sort by consensus (highest first)
- Split at the 6/8 threshold (6 or more of the 8 panel members)
- Preserve singleton points. A point that reaches only 1/8 consensus is not by definition invalid. Present all points with 1+ gurus in the discussion section. A hardcoded string array, a polymorphism candidate, or a forgotten guard is real regardless of how many gurus named it. The user decides what to do with it, not the consensus level
Step 4: Present
Use this format:
## Guru Panel Review
### Reviewed
[Branch or scope], [X files, Y lines total if scope is full codebase; Y lines diff when user explicitly requested a diff scope]
---
### Consensus (6+/8): Action plan
1. **[Title]** (X/8: [names of gurus who agree])
[Synthesis of the problem from the different perspectives]
**Location:** `file:line`
**Proposal:** [concrete improvement, merged from the proposals]
---
### Discussion points (<6/8)
2. **[Title]** (X/8: [names])
[Description]
**Proposal:** [concrete improvement]
*Dissent: [names] think [counter-argument]*
---
### What works
[Summary of highlights that multiple gurus mentioned]
---
Type **"doe het"** to apply the consensus points, or **/auto-loop** for autonomous execution.
Step 5: Execution
On "doe het":
- Execute consensus points sequentially
- One commit per logically independent point
- Normal commit rules (intent validation)
On /auto-loop:
- Start an auto-loop with the consensus points as tasks
- Autonomous execution
- The auto-loop Context section must indicate that the loop stops itself
(CronDelete +
/recap) when all guru points have been
completed and committed. Guru work is finite: there is no external
input to wait for after committing.
Discussion points are only executed when the user explicitly approves them.