From dev-org
This skill should be used when the user asks about "code complexity", "cyclomatic complexity", "cognitive complexity", "code metrics", "maintainability index", "code coverage", or when measuring code quality quantitatively. Provides metrics thresholds and measurement techniques.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dev-org:skills/code-quality-metricsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Code quality metrics provide quantitative measures of code characteristics. This skill covers complexity metrics, maintainability indices, and their practical thresholds across different languages.
Code quality metrics provide quantitative measures of code characteristics. This skill covers complexity metrics, maintainability indices, and their practical thresholds across different languages.
Measures the number of linearly independent paths through code.
Calculation: CC = E - N + 2P
Simplified: Count decision points + 1
if, elif, else, for, while, case, catch, &&, ||, ?: adds 1Thresholds:
| Range | Risk | Action |
|---|---|---|
| 1-10 | Low | Simple, well-structured |
| 11-20 | Moderate | More complex, consider refactoring |
| 21-50 | High | Complex, difficult to test |
| >50 | Very High | Untestable, must refactor |
Measures how difficult code is to understand (introduced by SonarQube).
Key differences from CC:
Calculation rules:
if, for, while, switch, catch, ?:)&&, ||)Thresholds:
| Range | Assessment |
|---|---|
| 0-7 | Easy to understand |
| 8-15 | Moderate complexity |
| 16-24 | High complexity, refactor |
| 25+ | Very high, immediate refactoring |
Example:
def process(items): # 0
for item in items: # +1 (loop)
if item.active: # +1 (if) +1 (nesting=1)
if item.valid: # +1 (if) +2 (nesting=2)
handle(item)
return items # Total: 6
Based on counting operators and operands:
| Metric | Formula | Meaning |
|---|---|---|
| Vocabulary | n = n1 + n2 | Unique operators + operands |
| Length | N = N1 + N2 | Total operators + operands |
| Volume | V = N × log2(n) | Size of implementation |
| Difficulty | D = (n1/2) × (N2/n2) | Error-proneness |
| Effort | E = D × V | Mental effort to understand |
Composite metric combining complexity, size, and comments.
Formula: MI = 171 - 5.2 × ln(V) - 0.23 × CC - 16.2 × ln(LOC)
Thresholds:
| Range | Maintainability |
|---|---|
| 85-100 | High maintainability |
| 65-84 | Moderate maintainability |
| 0-64 | Low maintainability |
| Metric | Description | Threshold |
|---|---|---|
| Physical LOC | All lines including blanks/comments | Method: <100, Class: <500 |
| Logical LOC | Executable statements | Method: <30, Class: <200 |
| Comment Ratio | Comments / Total | 10-30% typical |
Number of classes that depend on this class.
Number of classes this class depends on.
I = Ce / (Ca + Ce)
Measures how related methods are within a class.
LCOM1: Number of method pairs without shared instance variables
LCOM4: Number of connected components in method-field graph
1 = Multiple responsibilities
| Metric | Tool | Good | Warning | Critical |
|---|---|---|---|---|
| Cyclomatic | ESLint, SonarQube | ≤10 | 11-20 | >20 |
| Cognitive | SonarQube | ≤15 | 16-24 | >24 |
| Method LOC | - | ≤30 | 31-50 | >50 |
| Class LOC | - | ≤300 | 301-500 | >500 |
| Parameters | ESLint | ≤3 | 4-5 | >5 |
| Nesting Depth | ESLint | ≤3 | 4 | >4 |
| LCOM4 | - | 1 | 2 | >2 |
npx eslint --rule 'complexity: ["error", 10]' src/
sonar-scanner -Dsonar.projectKey=myproject
radon cc src/ -a -s # Cyclomatic complexity
radon mi src/ -s # Maintainability index
For detailed measurement techniques:
references/measurement-tools.md - Tool configurations and usagereferences/thresholds-by-language.md - Language-specific thresholdsCombine with:
solid-principles for structural analysisrefactoring-patterns for improvement strategiesnpx claudepluginhub shabaraba/shabaraba-cc-plugins --plugin dev-orgAnalyzes code complexity metrics including cyclomatic, cognitive, Halstead, maintainability index, and nesting depth. Reports per-function/file details, top issues, and refactoring recommendations.
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.
Measuring and reducing cyclomatic complexity and cognitive complexity to improve maintainability.