Code Quality Assessment
Guide for comprehensive code quality analysis through automated linting, formatting verification, test execution, coverage analysis, and maintainability assessment.
When to Use This Skill
Activate when:
- Running code quality checks across a codebase
- Analyzing test coverage and identifying gaps
- Measuring code complexity and maintainability
- Enforcing coding standards and style guides
- Generating quality reports for CI/CD pipelines
- Assessing technical debt and prioritizing improvements
Quality Assessment Process
Phase 1: Tool Discovery
- Analyze project structure for technology stack
- Detect configuration files (eslint, prettier, pytest, etc.)
- Identify available quality tools
- Plan execution order and dependencies
Phase 2: Linting and Static Analysis
- Execute available linting tools
- Parse output for errors, warnings, style violations
- Categorize issues by severity
- Identify patterns in violations
- Generate recommendations
Phase 3: Code Formatting
- Run formatting tools
- Identify inconsistencies
- Assess auto-fix impact
- Generate formatting reports
Phase 4: Test Suite and Coverage
- Execute test suites (unit, integration, e2e)
- Analyze results for failures and performance
- Generate coverage reports:
- Line coverage
- Branch coverage
- Function coverage
- Statement coverage
- Identify coverage gaps
- Prioritize missing test scenarios
Phase 5: Complexity Analysis
- Calculate cyclomatic complexity
- Identify functions exceeding thresholds
- Assess maintainability metrics
- Calculate technical debt estimates
- Detect code duplication
Tool Detection by Project Type
JavaScript/TypeScript
- Linting: ESLint, TSLint
- Formatting: Prettier
- Testing: Jest, Vitest, Mocha
- Complexity: plato, jscpd
Python
- Linting: pylint, flake8, ruff
- Formatting: Black, isort
- Testing: pytest
- Complexity: radon, mccabe
Rust
- Linting: clippy
- Formatting: rustfmt
- Testing: cargo test
- Coverage: tarpaulin, llvm-cov
Elixir
- Linting: credo
- Static Analysis: dialyzer
- Formatting: mix format
- Testing: ExUnit
- Security: sobelow
Go
- Linting: golint, staticcheck
- Formatting: gofmt
- Testing: go test
- Complexity: gocyclo
Quality Report Structure
# Code Quality Assessment Report
**Project**: [Name]
**Date**: [Date]
**Overall Score**: [Score/Grade]
## Executive Summary
- **Critical Issues**: [Number]
- **Test Coverage**: [Percentage]%
- **Quality Gate**: [Pass/Fail]
## Linting Results
### Critical Issues (Errors)
- [Issue with file:line]
- [Recommended fix]
### Warnings
- [Warning description]
- [Severity assessment]
## Test Results
### Execution Summary
- **Total Tests**: [Number]
- **Passed**: [Number] ([%])
- **Failed**: [Number] ([%])
### Coverage Analysis
- **Overall**: [%]%
- **Line**: [%]%
- **Branch**: [%]%
- **Function**: [%]%
### Critical Coverage Gaps
- [Uncovered critical functionality]
- [Security-sensitive code without tests]
## Complexity Metrics
### Cyclomatic Complexity
- **Average**: [X]
- **Max**: [Y]
- **Functions >10**: [Number]
### Maintainability
- **Index**: [Score]/100
- **Duplication**: [%]%
- **Technical Debt**: [Hours]
## Action Items
### Critical (Immediate)
1. [Fix with instructions]
### High Priority (This Sprint)
1. [Improvement]
### Medium Priority (Next Sprint)
1. [Enhancement]
## Quality Gate Status
- [ ] Linting: Passed
- [ ] Coverage: >80%
- [ ] Security: Passed
Complexity Thresholds
- Simple (1-5): Acceptable complexity
- Moderate (6-10): Monitor for growth
- Complex (11-20): Consider refactoring
- Very Complex (>20): Refactor required
Key Principles
- Tool-Agnostic: Detect and use available tools
- Actionable Results: Provide specific recommendations
- Prioritized Output: Organize by criticality
- Context-Aware: Consider project type and stage
- Trend Analysis: Compare against baselines
- CI/CD Ready: Generate machine-readable outputs
1---2name: code-quality-assessment3description: Activate when analyzing code quality through linting, formatting, testing, coverage analysis, and maintainability metrics4license: MIT5---6
7# Code Quality Assessment
8
9Guide for comprehensive code quality analysis through automated linting, formatting verification, test execution, coverage analysis, and maintainability assessment.
10
11## When to Use This Skill
12
13Activate when:
14- Running code quality checks across a codebase
15- Analyzing test coverage and identifying gaps
16- Measuring code complexity and maintainability
17- Enforcing coding standards and style guides
18- Generating quality reports for CI/CD pipelines
19- Assessing technical debt and prioritizing improvements
20
21## Quality Assessment Process
22
23### Phase 1: Tool Discovery
241. Analyze project structure for technology stack
252. Detect configuration files (eslint, prettier, pytest, etc.)
263. Identify available quality tools
274. Plan execution order and dependencies
28
29### Phase 2: Linting and Static Analysis
301. Execute available linting tools
312. Parse output for errors, warnings, style violations
323. Categorize issues by severity
334. Identify patterns in violations
345. Generate recommendations
35
36### Phase 3: Code Formatting
371. Run formatting tools
382. Identify inconsistencies
393. Assess auto-fix impact
404. Generate formatting reports
41
42### Phase 4: Test Suite and Coverage
431. Execute test suites (unit, integration, e2e)
442. Analyze results for failures and performance
453. Generate coverage reports:
46 - Line coverage
47 - Branch coverage
48 - Function coverage
49 - Statement coverage
504. Identify coverage gaps
515. Prioritize missing test scenarios
52
53### Phase 5: Complexity Analysis
541. Calculate cyclomatic complexity
552. Identify functions exceeding thresholds
563. Assess maintainability metrics
574. Calculate technical debt estimates
585. Detect code duplication
59
60## Tool Detection by Project Type
61
62### JavaScript/TypeScript
63- Linting: ESLint, TSLint
64- Formatting: Prettier
65- Testing: Jest, Vitest, Mocha
66- Complexity: plato, jscpd
67
68### Python
69- Linting: pylint, flake8, ruff
70- Formatting: Black, isort
71- Testing: pytest
72- Complexity: radon, mccabe
73
74### Rust
75- Linting: clippy
76- Formatting: rustfmt
77- Testing: cargo test
78- Coverage: tarpaulin, llvm-cov
79
80### Elixir
81- Linting: credo
82- Static Analysis: dialyzer
83- Formatting: mix format
84- Testing: ExUnit
85- Security: sobelow
86
87### Go
88- Linting: golint, staticcheck
89- Formatting: gofmt
90- Testing: go test
91- Complexity: gocyclo
92
93## Quality Report Structure
94
95```markdown
96# Code Quality Assessment Report
97
98**Project**: [Name]
99**Date**: [Date]
100**Overall Score**: [Score/Grade]
101
102## Executive Summary
103- **Critical Issues**: [Number]
104- **Test Coverage**: [Percentage]%
105- **Quality Gate**: [Pass/Fail]
106
107## Linting Results
108### Critical Issues (Errors)
109- [Issue with file:line]
110- [Recommended fix]
111
112### Warnings
113- [Warning description]
114- [Severity assessment]
115
116## Test Results
117### Execution Summary
118- **Total Tests**: [Number]
119- **Passed**: [Number] ([%])
120- **Failed**: [Number] ([%])
121
122### Coverage Analysis
123- **Overall**: [%]%
124- **Line**: [%]%
125- **Branch**: [%]%
126- **Function**: [%]%
127
128### Critical Coverage Gaps
129- [Uncovered critical functionality]
130- [Security-sensitive code without tests]
131
132## Complexity Metrics
133### Cyclomatic Complexity
134- **Average**: [X]
135- **Max**: [Y]
136- **Functions >10**: [Number]
137
138### Maintainability
139- **Index**: [Score]/100
140- **Duplication**: [%]%
141- **Technical Debt**: [Hours]
142
143## Action Items
144### Critical (Immediate)
1451. [Fix with instructions]
146
147### High Priority (This Sprint)
1481. [Improvement]
149
150### Medium Priority (Next Sprint)
1511. [Enhancement]
152
153## Quality Gate Status
154- [ ] Linting: Passed
155- [ ] Coverage: >80%
156- [ ] Security: Passed
157```
158
159## Complexity Thresholds
160
161- **Simple (1-5)**: Acceptable complexity
162- **Moderate (6-10)**: Monitor for growth
163- **Complex (11-20)**: Consider refactoring
164- **Very Complex (>20)**: Refactor required
165
166## Key Principles
167
168- **Tool-Agnostic**: Detect and use available tools
169- **Actionable Results**: Provide specific recommendations
170- **Prioritized Output**: Organize by criticality
171- **Context-Aware**: Consider project type and stage
172- **Trend Analysis**: Compare against baselines
173- **CI/CD Ready**: Generate machine-readable outputs