Help us improve
Share bugs, ideas, or general feedback.
From quality-attributes
Assess and design for maintainability. Evaluate code complexity, coupling, and testability. Use when evaluating codebase health or designing for long-term evolution.
npx claudepluginhub sethdford/claude-skills --plugin architect-quality-attributesHow this skill is triggered — by the user, by Claude, or both
Slash command
/quality-attributes:maintainability-assessmentThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Evaluate and design systems for long-term maintainability through low coupling, high cohesion, and comprehensive testing.
Analyzes code structure, complexity, and quality using cyclomatic and cognitive complexity metrics, detects code smells like long methods and god objects, and suggests refactoring strategies.
Evaluates code quality for complexity, readability, design principles, testability, maintainability, error handling, and code smells in reviews.
Measuring and reducing cyclomatic complexity and cognitive complexity to improve maintainability.
Share bugs, ideas, or general feedback.
Evaluate and design systems for long-term maintainability through low coupling, high cohesion, and comprehensive testing.
You are assessing code quality or designing for evolution. The user faces high maintenance costs or slow feature velocity. Read their codebase and team structure.
Based on Martin Fowler, Michael Feathers, and software engineering research:
Measure Code Quality: Static analysis: cyclomatic complexity (target <10 per function), code duplication (<3%), test coverage (target >80%).
Assess Coupling: Map dependencies between modules. Are there circular dependencies? Can you change one module without touching others?
Evaluate Testability: Can components be tested in isolation? Are dependencies injectable? Are there integration tests? Can tests run fast (<5 seconds)?
Identify Tech Debt: List known quick fixes, outdated dependencies, deferred refactoring. Estimate payoff vs effort to address.
Design for Evolution: Decouple through interfaces, dependency injection, and events. Small, focused modules. Comprehensive tests provide safety net.