[Community] brooks-lint: Claude Code plugin for book-backed code reviews (6 classic SE books)
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Claude Code's code reviews are smart but often vague. Findings like "this function is too long" or "consider breaking this up" don't explain why the pattern is risky, which principle it violates, or what breaks if you ignore it.
The result: developers nod, maybe fix the obvious stuff, and move on. The deeper structural decay continues because there's no framework forcing the review to be specific about consequence.
What's missing is a way to anchor AI code review feedback to the body of knowledge that already answers these questions — the classic software engineering books that every experienced developer has read.
Proposed Solution
I built brooks-lint — a Claude Code plugin that anchors every code review finding to a specific chapter in one of six classic SE books.
Every finding follows the Iron Law (4-part structure):
- Symptom → what the code is doing
- Source → which book + chapter describes this exact pattern
- Consequence → what breaks if you ignore it
- Remedy → concrete fix
Example output:
Symptom:UserServicehas 847 lines handling auth, billing, and notifications. Source: Clean Architecture, Ch. 7 — SRP violation. Consequence: Any billing change risks breaking auth; test isolation impossible. Remedy: ExtractBillingServiceandNotificationService.
Four review modes:
/brooks-lint:brooks-review # PR review
/brooks-lint:brooks-audit # Architecture audit
/brooks-lint:brooks-debt # Tech debt classification
/brooks-lint:brooks-test # Test quality review
Six source books: The Mythical Man-Month, Clean Code/Refactoring, Clean Architecture, Code Complete, The Pragmatic Programmer, Domain-Driven Design.
Install:
/plugin marketplace add hyhmrright/brooks-lint
/plugin install brooks-lint@brooks-lint-marketplace
Eval results: 94% of findings included a book citation + structured consequence analysis with the plugin vs. 16% without.
Alternative Solutions
Running /brooks-review or /brooks-audit without the plugin works, but produces generic feedback without book citations or structured consequence analysis. The plugin enforces a discipline that plain prompting doesn't maintain consistently.
Priority
Medium - Would be very helpful
Feature Category
Configuration and settings
Use Case Example
- Reviewing a PR where
AuthControllerhas grown to 600+ lines - Run
/brooks-lint:brooks-review - Without the plugin: Claude might say "AuthController is too large, consider refactoring"
- With brooks-lint: Claude says: "Symptom: AuthController handles authentication, session management, and password reset. Source: Clean Architecture Ch. 7 — SRP violation. Consequence: Password reset changes require retesting authentication flows; team members can't work on auth and session features in parallel. Remedy: Extract SessionManager and PasswordResetService, inject via constructor."
The structured output maps directly to a Jira ticket: the Source becomes the justification, the Consequence becomes the risk section, the Remedy becomes the acceptance criteria.
Additional Context
- GitHub: https://github.com/hyhmrright/brooks-lint
- License: MIT
- Install: Available via plugin marketplace (
/plugin marketplace add hyhmrright/brooks-lint) - Named after: Fred Brooks (The Mythical Man-Month, 1975) — a reminder that the hard problems in software aren't new
Why "6 classic books" matters: Each book covers a distinct decay axis. MMM → complexity/team. Clean Code/Refactoring → code-level rot. Clean Architecture → dependency violations. Code Complete → construction craft. Pragmatic Programmer → adaptability. DDD → semantic drift. Together they cover the full spectrum of ways codebases decay over time.
I'd love to see brooks-lint considered for the official community plugins directory. Happy to open a PR similar to the Bark plugin (#39309 / #39320).
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗