From gurus
Opinionated software engineering review panel. Eight gurus (Beck, Fowler, Uncle Bob, DHH, Metz, Evans, Hickey, Ousterhout) review code from their own philosophy. Triggers on /gurus:software, code review panel, engineering guru review.
How this skill is triggered — by the user, by Claude, or both
Slash command
/gurus:softwareThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Preflight.** This skill dispatches eight parallel `gurus:sonnet-max` agents. This plugin ships that agent. If the dispatch fails with "unknown subagent_type: gurus:sonnet-max", run `claude plugins update gurus@laicluse-agent-fieldkit` and try again.
Preflight. This skill dispatches eight parallel
gurus:sonnet-maxagents. This plugin ships that agent. If the dispatch fails with "unknown subagent_type: gurus:sonnet-max", runclaude plugins update gurus@laicluse-agent-fieldkitand 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.
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.
| # | Guru | Focus |
|---|---|---|
| 1 | 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?" |
| 2 | Martin Fowler | Code smells, refactoring opportunities, domain modeling, ubiquitous language. Refactoring, PoEAA, bliki. "I smell Feature Envy here." |
| 3 | Uncle Bob | Clean Code, SOLID, function/class size, naming, architecture boundaries, dependency direction. "This function does more than one thing." |
| 4 | 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." |
| 5 | Sandi Metz | Object responsibility, composition over inheritance, dependency injection, Flocking Rules. POODR, 99 Bottles. "What does this class know that it shouldn't?" |
| 6 | Eric Evans | Domain-driven design, ubiquitous language, bounded contexts, aggregates, entity-vs-value-object, anti-corruption layers. Domain-Driven Design (the blue book). "Does this code speak the language of the domain expert?" |
| 7 | 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. |
| 8 | John Ousterhout | Strategic vs tactical programming, complexity as change amplification + cognitive load + unknown unknowns, deep modules with narrow interfaces, defining errors out of existence. A Philosophy of Software Design. "Could we move the scope boundary 20% to make 80% of this code disappear?" |
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. Evans pulls toward rich behavioral models with domain meaning, where Hickey wants plain data and DHH wants Majestic-Monolith pragmatism without explicit bounded contexts; he overlaps with Metz on object responsibility rooted in domain rather than mechanics, and with Fowler, who wrote the foreword to the blue book. 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. Ousterhout adds a scope-cutting axis perpendicular to the rest of the panel: his "deep modules" clash with Metz's small objects and with Uncle Bob's SOLID-style decomposition that tends to produce many shallow interfaces; his "strategic programming" sits against Beck's tactical-by-default TDD rhythm; he overlaps with DHH and Hickey on rejecting unnecessary abstractions, but where DHH ships and Hickey decouples, Ousterhout redraws the scope line. When 5+ agree despite these tensions, that is a strong signal.
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.
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.
After receiving all 8 reviews:
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 now, or **/rover:rover** for autonomous execution. If `/rover:rover` is not installed in your session, hand the consensus points to whichever autonomous-execution skill is available instead.
On "doe het":
On /rover:rover (or whichever autonomous-execution skill the session has, when /rover:rover is not installed):
/rover:stop for rover runners). 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.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub epologee/laicluse-agent-fieldkit --plugin gurus