brooks-lint

AI code reviewer grounded in classic software engineering books for catching design smells, coupling issues, and architectural risks.

5 stars

Best use case

brooks-lint is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

AI code reviewer grounded in classic software engineering books for catching design smells, coupling issues, and architectural risks.

Teams using brooks-lint should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/brooks-lint/SKILL.md --create-dirs "https://raw.githubusercontent.com/FrancoStino/opencode-skills-collection/main/bundled-skills/brooks-lint/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/brooks-lint/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How brooks-lint Compares

Feature / Agentbrooks-lintStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

AI code reviewer grounded in classic software engineering books for catching design smells, coupling issues, and architectural risks.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Brooks Lint

## Overview

Brooks Lint is a Claude Code skill that reviews your code through the lens of 12 classic software engineering books. Instead of checking style rules, it asks: "What would the authors of *The Pragmatic Programmer*, *Clean Code*, and *Designing Data-Intensive Applications* say about this code?"

It synthesizes the principles from landmark engineering books into actionable, structured feedback — catching design smells, tight coupling, missing abstractions, and architectural risks that linters and AI tools typically miss.

Named after Fred Brooks, author of *The Mythical Man-Month* — because the hardest bugs are conceptual, not syntactic.

## The 12 Books

| Book | Key Principles Applied |
|------|----------------------|
| *The Pragmatic Programmer* | DRY, orthogonality, tracer bullets |
| *Clean Code* | Naming, function size, comment clarity |
| *The Mythical Man-Month* | Conceptual integrity, second-system effect |
| *Designing Data-Intensive Applications* | Data consistency, fault tolerance, scalability |
| *A Philosophy of Software Design* | Deep modules, information hiding, complexity |
| *Refactoring* | Code smells, extract method, encapsulation |
| *Working Effectively with Legacy Code* | Seams, characterization tests, dependency breaking |
| *Domain-Driven Design* | Ubiquitous language, bounded contexts, aggregates |
| *Release It!* | Stability patterns, timeouts, bulkheads, circuit breakers |
| *Structure and Interpretation of Computer Programs* | Abstraction, recursion, metalinguistic abstraction |
| *The Art of UNIX Programming* | Modularity, composability, rule of least surprise |
| *Extreme Programming Explained* | YAGNI, simple design, collective ownership |

## When to Use This Skill

- Use when you want architectural feedback beyond what linters provide
- Use before major refactors to identify structural debt
- Use when reviewing code that "works but feels wrong"
- Use when onboarding to a codebase to quickly map risk areas
- Use for design reviews before starting a new module or service

## How It Works

Brooks Lint applies each book's core principles as a review lens:

1. **Smell detection**: Flags violations of DRY, SRP, Law of Demeter, etc.
2. **Coupling analysis**: Identifies tight dependencies and missing abstraction layers
3. **Naming critique**: Applies Clean Code naming rules to variables, methods, classes
4. **Architecture review**: Checks for DDIA-style data consistency and fault tolerance gaps
5. **Stability patterns**: Flags missing timeouts, retries, and circuit breakers (Release It!)
6. **Complexity scoring**: Applies APOSD complexity metrics to identify over-engineered sections

## Installation

```bash
# Install via Claude Code plugin marketplace
# Search: "brooks-lint" in Claude Code > Extensions

# Or install via NPX (Antigravity)
npx antigravity-awesome-skills --claude
# Then invoke: @brooks-lint
```

## Examples

### Example 1: Review a Service Class

```
@brooks-lint review src/services/PaymentService.ts
```

**Brooks Lint output:**
```
[Pragmatic Programmer] DRY violation: payment validation logic duplicated in 3 places
[Clean Code] Method processPayment() does 4 things — violates Single Responsibility
[Release It!] No timeout on external payment gateway call — risk of cascade failure
[DDIA] No idempotency key — retry on network error will double-charge
[APOSD] PaymentService knows too much about UserRepository — high coupling
```

### Example 2: Full Codebase Architecture Review

```
@brooks-lint analyze the overall architecture of this codebase
```

### Example 3: Pre-Refactor Review

```
@brooks-lint what are the biggest design smells in this module before I refactor it?
```

## Review Categories

| Category | Books Applied | What It Catches |
|----------|--------------|-----------------|
| **DRY / Duplication** | PP, Refactoring | Copy-paste code, shared logic not extracted |
| **Naming** | Clean Code, DDD | Unclear names, domain language violations |
| **Coupling** | APOSD, PP | Tight dependencies, missing interfaces |
| **Stability** | Release It! | Missing timeouts, no retry logic, no circuit breakers |
| **Data Integrity** | DDIA | Race conditions, non-idempotent operations |
| **Complexity** | APOSD, SICP | Over-engineering, unnecessary abstraction |
| **Legacy Debt** | WELC | Hard-to-test code, missing seams |
| **Domain Clarity** | DDD, XP | Anemic models, missing bounded contexts |

## Best Practices

- Run `@brooks-lint` after writing new service layers or data pipelines
- Combine with `@logic-lens` for full coverage: logic bugs + design smells
- Use `@brooks-lint analyze architecture` weekly on growing codebases
- Focus on CRITICAL and HIGH findings first — LOW findings are style suggestions

## Related Skills

- `@logic-lens` — Complementary: catches logic bugs; brooks-lint catches design issues
- `@security-auditor` — Specialized security-only deep scan
- `@lint-and-validate` — Style/syntax linting to run alongside design review

## Additional Resources

- [GitHub Repository](https://github.com/hyhmrright/brooks-lint)
- [Dev.to Article: I Synthesized 12 Classic Engineering Books into an AI Code Reviewer](https://dev.to/hyhmrright/i-synthesized-12-classic-engineering-books-into-an-ai-code-reviewer-heres-what-it-caught-3ed1)
- [Related skill: logic-lens](https://github.com/hyhmrright/logic-lens)

## Limitations

Use this skill only when the task clearly matches the scope described above (design review and architectural analysis). Brooks Lint applies AI-powered analysis grounded in established engineering principles. It should complement — not replace — human design review for production-critical decisions. Results reflect the principles of the 12 source books and may not apply to all architectural styles or domains.

Related Skills

lint-and-validate

5
from FrancoStino/opencode-skills-collection

MANDATORY: Run appropriate validation tools after EVERY code change. Do not finish a task until the code is error-free.

accesslint-scan

5
from FrancoStino/opencode-skills-collection

Audit a live page for accessibility issues, locate each WCAG violation precisely, and return a selector-grounded fix worklist without editing.

accesslint-diff

5
from FrancoStino/opencode-skills-collection

Diff a live page's accessibility violations against a baseline — by default compares uncommitted changes (stash-based), or pass --branch [<name>] to diff against a branch. Reports only new violations introduced, violations fixed, and pre-existing count. Use `scan` for a full audit with no diffing.

accesslint-audit

5
from FrancoStino/opencode-skills-collection

Find and fix WCAG 2.2 accessibility issues. Two modes — report (sweep a codebase or page, produce a prioritized written report, no edits) and fix (audit→edit→verify loop on a target). Prefers direct-CDP live-DOM auditing; falls back to a browser-MCP composition or HTML-string audits.

zustand-store-ts

5
from FrancoStino/opencode-skills-collection

Create Zustand stores following established patterns with proper TypeScript types and middleware.

zoom-automation

5
from FrancoStino/opencode-skills-collection

Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.

zoho-crm-automation

5
from FrancoStino/opencode-skills-collection

Automate Zoho CRM tasks via Rube MCP (Composio): create/update records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.

zod-validation-expert

5
from FrancoStino/opencode-skills-collection

Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.

zipai-optimizer

5
from FrancoStino/opencode-skills-collection

Ultra-dense token optimizer skill for prompt caching, log pruning, AST-based inspection, and minified JSON payloads.

zeroize-audit

5
from FrancoStino/opencode-skills-collection

Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C/C++/Rust code handling secrets, keys, passwords, or other sensitive data.

zendesk-automation

5
from FrancoStino/opencode-skills-collection

Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.

zapier-make-patterns

5
from FrancoStino/opencode-skills-collection

No-code automation democratizes workflow building. Zapier and Make (formerly Integromat) let non-developers automate business processes without writing code. But no-code doesn't mean no-complexity - these platforms have their own patterns, pitfalls, and breaking points.