2.7 KiB
description, argument-hint
| description | argument-hint | |
|---|---|---|
| Fix linting and quality issues following root-cause-first philosophy |
|
Fix Quality Issues
Fix quality issues in {{ARGS}} (files, glob pattern, or . for entire project).
Priority Order
1. Fix Root Cause (ALWAYS first)
- Remove unused imports/variables
- Fix type errors properly
- Add missing return types
- Fix naming violations
2. Maintain/Improve Safety & Reliability (if #1 complicates)
- Find alternative approach that keeps code at least as safe as before
- Don't add hacks or workarounds that deteriorate quality
- Refactor to simpler patterns if needed
- Add proper validation/checks
3. Local Ignores (ONLY when #1 and #2 both complicate)
- Use most LOCAL scope: inline > file > pattern > global
- Document WHY (comment above ignore)
- Use specific rule name (not blanket disable)
Process
1. Gather & Categorize Run linting and type checking tools to collect all issues. Group by: root cause fixable, needs alternative approach, legitimate ignore.
For large codebases (>20 issues): Use TodoWrite to track fixes by category:
☐ Root cause fixes (X issues)
☐ Remove unused imports (N files)
☐ Fix type errors (N issues)
☐ Add missing return types (N functions)
☐ Safety alternatives (Y issues)
☐ Legitimate ignores (Z issues)
☐ Validate all checks pass
☐ Run full test suite
2. Fix in Priority Order
- Root causes: Remove unused, fix types, add return types
- Safety alternatives: Refactor without deteriorating quality
- Ignores: Document reason, choose local scope, specific rule
Mark todos completed as you fix each category. This prevents losing track when interrupted.
3. Validate All linting checks + full test suite must pass.
4. Report
✅ Quality Fixed: X root cause, Y alternatives, Z ignores
All checks ✓ | Tests X/X ✓
Locality Hierarchy (for ignores)
- Inline: Single line ignore
- Block: Section/function ignore
- File: Entire file ignore
- Pattern: Glob pattern ignore (e.g., test files, generated code)
- Global: Config-level disable (LAST RESORT)
Anti-Patterns
❌ Blanket disable without justification ❌ Global disable for local issue ❌ Ignoring without understanding why ❌ Fixing symptoms instead of root cause ❌ Making code less safe to silence warnings
Valid Ignore Reasons
- Test code needs flexibility for mocking third-party APIs
- Generated code shouldn't be modified
- Performance-critical code needs specific optimization
- Third-party contract requires specific implementation
Notes
- Run full test suite after fixes
- Review ignores periodically (some may become fixable)
- If >10% needs ignores, reconsider the rule