Files
gh-dhruvbaldawa-ccconfigs-e…/commands/fix-quality.md
2025-11-29 18:20:33 +08:00

2.7 KiB

description, argument-hint
description argument-hint
Fix linting and quality issues following root-cause-first philosophy
FILES OR PATTERN

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)

  1. Inline: Single line ignore
  2. Block: Section/function ignore
  3. File: Entire file ignore
  4. Pattern: Glob pattern ignore (e.g., test files, generated code)
  5. 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