audit

Analyze codebase architecture for complexity using Ousterhout's design principles.

7|Updated Apr 2, 2016
One-click install
npx skills add https://github.com/mjwestcott/dotfiles --skill audit-mjwestcott
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: audit
Source: https://github.com/mjwestcott/dotfiles/tree/main/claude/skills/audit
Command: npx skills add https://github.com/mjwestcott/dotfiles --skill audit-mjwestcott

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Analyzes codebase architecture for complexity using Ousterhout's "A Philosophy of Software Design" principles. Use for architecture review or identifying technical debt.

Core Features & Use Cases

  • Module depth assessment
  • Leaky abstractions and information hiding violations detection
  • Consistency issues and complexity hotspots identification
  • Layer quality and abstraction boundary evaluation
  • Architecture debt prioritization and refactoring guidance

Quick Start

Spawn an ousterhout-codebase-review agent with an appropriate scope to analyze the codebase for complexity and architectural debt.

Frequently Asked Questions about audit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I detect technical debt and complexity hotspots in my codebase architecture?

Architecture complexity analysis detects technical debt by evaluating module depth, identifying leaky abstractions, and locating complexity hotspots. It applies Ousterhout's design principles to pinpoint information hiding violations for targeted refactoring.

What is a deep module in software design and how do I assess it?

A deep module provides a powerful interface with a simple implementation, maximizing information hiding. Module depth assessment evaluates the ratio of interface complexity to implementation complexity to identify shallow modules that increase system complexity.

How do I prioritize refactoring tasks across a large monolith or distributed services?

Architecture debt prioritization evaluates consistency issues, layer quality, and abstraction boundaries across monoliths and services. It ranks refactoring targets by complexity impact, guiding technical debt reduction efforts toward the most critical hotspots.

Can I use Ousterhout's design principles to review layer quality and abstraction boundaries?

Yes, Ousterhout's principles provide the framework for layer quality evaluation and abstraction boundary checks. The review process detects leaky abstractions and information hiding violations to ensure clean separation of concerns across architectural layers.

What's the best way to identify leaky abstractions and information hiding violations?

Leaky abstraction detection identifies modules where internal implementation details bleed through the interface. Analyzing codebase architecture reveals these information hiding violations by checking if module boundaries properly encapsulate complexity from callers.