--- description: "Analyze and fix code quality issues - file sizes, function lengths, complexity" argument-hint: "[--check] [--fix] [--focus=file-size|function-length|complexity] [--path=apps/api|apps/web]" allowed-tools: ["Task", "Bash", "Grep", "Read", "Glob", "TodoWrite", "SlashCommand"] --- # Code Quality Orchestrator Analyze and fix code quality violations for: "$ARGUMENTS" ## CRITICAL: ORCHESTRATION ONLY 🚨 **MANDATORY**: This command NEVER fixes code directly. - Use Bash/Grep/Read for READ-ONLY analysis - Delegate ALL fixes to specialist agents - Guard: "Am I about to edit a file? STOP and delegate." ## STEP 1: Parse Arguments Parse flags from "$ARGUMENTS": - `--check`: Analysis only, no fixes (DEFAULT if no flags provided) - `--fix`: Analyze and delegate fixes to agents with TEST-SAFE workflow - `--dry-run`: Show refactoring plan without executing changes - `--focus=file-size|function-length|complexity`: Filter to specific issue type - `--path=apps/api|apps/web`: Limit scope to specific directory If no arguments provided, default to `--check` (analysis only). ## STEP 2: Run Quality Analysis Execute quality check scripts from the repository root: ```bash cd /Users/ricardocarvalho/DeveloperFolder/Memento && python3 scripts/check-file-size.py 2>&1 || true ``` ```bash cd /Users/ricardocarvalho/DeveloperFolder/Memento && python3 scripts/check-function-length.py 2>&1 || true ``` Capture violations into categories: - **FILE_SIZE_VIOLATIONS**: Files >500 LOC (production) or >800 LOC (tests) - **FUNCTION_LENGTH_VIOLATIONS**: Functions >100 lines - **COMPLEXITY_VIOLATIONS**: Functions with cyclomatic complexity >12 ## STEP 3: Generate Quality Report Create structured report in this format: ``` ## Code Quality Report ### File Size Violations (X files) | File | LOC | Limit | Status | |------|-----|-------|--------| | path/to/file.py | 612 | 500 | ❌ BLOCKING | ... ### Function Length Violations (X functions) | File:Line | Function | Lines | Status | |-----------|----------|-------|--------| | path/to/file.py:125 | _process_job() | 125 | ❌ BLOCKING | ... ### Test File Warnings (X files) | File | LOC | Limit | Status | |------|-----|-------|--------| | path/to/test.py | 850 | 800 | ⚠️ WARNING | ... ### Summary - Total violations: X - Critical (blocking): Y - Warnings (non-blocking): Z ``` ## STEP 4: Delegate Fixes (if --fix or --dry-run flag provided) ### For --dry-run: Show plan without executing If `--dry-run` flag provided, delegate to `safe-refactor` agent with dry-run mode: ``` Task( subagent_type="safe-refactor", description="Dry run: {filename}", prompt="Analyze this file and show refactoring plan WITHOUT making changes: File: {file_path} Current LOC: {loc} Show: 1. Proposed directory/module structure 2. Which functions/classes go where 3. Test files that would be affected 4. Estimated phases and risk assessment" ) ``` ### For --fix: Execute with TEST-SAFE workflow If `--fix` flag is provided, dispatch specialist agents IN PARALLEL (multiple Task calls in single message): **For file size violations → delegate to `safe-refactor`:** ``` Task( subagent_type="safe-refactor", description="Safe refactor: {filename}", prompt="Refactor this file using TEST-SAFE workflow: File: {file_path} Current LOC: {loc} MANDATORY WORKFLOW: 1. PHASE 0: Run existing tests, establish GREEN baseline 2. PHASE 1: Create facade structure (tests must stay green) 3. PHASE 2: Migrate code incrementally (test after each change) 4. PHASE 3: Update test imports only if necessary 5. PHASE 4: Cleanup legacy, final test verification CRITICAL RULES: - If tests fail at ANY phase, REVERT with git stash pop - Use facade pattern to preserve public API - Never proceed with broken tests" ) ``` **For linting issues → delegate to existing `linting-fixer`:** ``` Task( subagent_type="linting-fixer", description="Fix linting errors", prompt="Fix all linting errors found by ruff check and eslint." ) ``` **For type errors → delegate to existing `type-error-fixer`:** ``` Task( subagent_type="type-error-fixer", description="Fix type errors", prompt="Fix all type errors found by mypy and tsc." ) ``` ## STEP 5: Verify Results (after --fix) After agents complete, re-run analysis to verify fixes: ```bash cd /Users/ricardocarvalho/DeveloperFolder/Memento && python3 scripts/check-file-size.py ``` ```bash cd /Users/ricardocarvalho/DeveloperFolder/Memento && python3 scripts/check-function-length.py ``` ## STEP 6: Report Summary Output final status: ``` ## Code Quality Summary ### Before - File size violations: X - Function length violations: Y - Test file warnings: Z ### After (if --fix was used) - File size violations: A - Function length violations: B - Test file warnings: C ### Status [PASS/FAIL based on blocking violations] ### Suggested Next Steps - If violations remain: Run `/code_quality --fix` to auto-fix - If all passing: Run `/pr --fast` to commit changes - For manual review: See .claude/rules/file-size-guidelines.md ``` ## Examples ``` # Check only (default) /code_quality # Check with specific focus /code_quality --focus=file-size # Preview refactoring plan (no changes made) /code_quality --dry-run # Auto-fix all violations with TEST-SAFE workflow /code_quality --fix # Auto-fix only Python backend /code_quality --fix --path=apps/api # Preview plan for specific path /code_quality --dry-run --path=apps/web ```