--- name: cui-javascript-maintenance description: Standards for identifying, prioritizing, and verifying JavaScript code maintenance and refactoring work allowed-tools: [Read, Grep, Glob] --- # CUI JavaScript Maintenance Skill **REFERENCE MODE**: This skill provides reference material. Load specific standards on-demand based on current task. Standards for systematic JavaScript code maintenance including violation detection, prioritization frameworks, and compliance verification. ## Purpose This skill provides comprehensive standards for: - **Detecting** when code needs refactoring (trigger criteria) - **Prioritizing** maintenance work (impact-based framework) - **Verifying** standards compliance (comprehensive checklist) - **Improving** test quality (test standards and patterns) ## When to Use This Skill Activate this skill when: **Planning Maintenance Work:** - Conducting code quality audits - Planning refactoring sprints - Identifying technical debt - Analyzing codebases for violations **During Refactoring:** - Need trigger criteria for when to refactor - Need prioritization guidance - Verifying standards compliance after changes **Code Reviews:** - Assessing code quality systematically - Identifying improvement opportunities - Validating maintenance work completeness **Test Quality Improvement:** - Identifying test anti-patterns - Improving test coverage - Refactoring test code ## Workflow ### Step 1: Load Core Maintenance Standards **Load all four standards files** (always loaded together): ``` Read: standards/refactoring-triggers.md Read: standards/maintenance-prioritization.md Read: standards/compliance-checklist.md Read: standards/test-quality-standards.md ``` These standards work together as a complete maintenance framework: 1. **Triggers** - Identify WHAT needs fixing (detection criteria) 2. **Prioritization** - Decide WHEN to fix it (impact framework) 3. **Checklist** - Verify fixes are COMPLETE (compliance verification) 4. **Test Quality** - Ensure tests are EFFECTIVE (test standards) ### Step 2: Apply Standards Based on Task **For Code Analysis Tasks:** 1. Use refactoring-triggers.md to scan for violations: - Vanilla JavaScript enforcement opportunities - Test/mock code in production files - Modularization issues - Package.json problems - JSDoc gaps 2. Document all findings with locations and descriptions **For Test Analysis Tasks:** 1. Use test-quality-standards.md to identify issues: - Common test anti-patterns - Framework compliance violations - Mock management problems - Coverage gaps - Async handling issues 2. Document test quality findings **For Prioritization Tasks:** 1. Use maintenance-prioritization.md to categorize findings: - HIGH: Critical violations (security, bugs, fundamental design) - MEDIUM: Maintainability issues (code quality, modernization) - LOW: Style and speculative optimizations 2. Consider contextual factors: - Impact scope - Technical debt interest - Team context - Risk assessment 3. Create prioritized work list **For Verification Tasks:** 1. Use compliance-checklist.md to verify fixes: - Work through each checklist section - Mark compliant/non-compliant items - Address all non-compliant findings - Re-verify after fixes - Document intentional deviations 2. Execute build verification: - Build: `npm run build` - Tests: `npm test` - Coverage: `npm run test:coverage` - Lint: `npm run lint` - Format: `npm run format:check` ### Step 3: Load Implementation Standards (Optional) When implementing fixes, load relevant implementation skills: **For code implementation:** ``` Skill: pm-dev-frontend:cui-javascript ``` Provides actual implementation patterns for: - Core patterns and modern JavaScript - Vanilla JavaScript alternatives - ES modules and modern features **For linting work:** ``` Skill: pm-dev-frontend:cui-javascript-linting ``` Provides ESLint configuration and rules. **For documentation work:** ``` Skill: pm-dev-frontend:cui-jsdoc ``` Provides JSDoc standards and patterns. **For testing work:** ``` Skill: pm-dev-frontend:cui-javascript-unit-testing ``` Provides Jest testing standards and patterns. **For E2E testing:** ``` Skill: pm-dev-frontend:cui-cypress ``` Provides Cypress E2E testing standards. ### Step 4: Report Findings Provide structured output: **For Analysis:** ``` Violations Found: - HIGH Priority: [count] issues - [Category]: [specific violations] - MEDIUM Priority: [count] issues - [Category]: [specific violations] - LOW Priority: [count] issues - [Category]: [specific violations] Recommended Actions: 1. Address HIGH priority items first 2. [Specific recommendations] ``` **For Verification:** ``` Compliance Verification Results: ✅ Vanilla JavaScript: Compliant ✅ Test Code Separation: Compliant ⚠️ Modularization: 3 files over 400 lines ⚠️ Package.json: 5 outdated dependencies ✅ JSDoc Coverage: Compliant ... Next Steps: - Fix identified non-compliant items - Re-run verification ``` ## Common Patterns and Examples ### Pattern 1: Code Quality Audit ```markdown ## Step 1: Load Maintenance Standards Skill: cui-javascript-maintenance ## Step 2: Analyze Codebase Use Grep/Glob to scan for violations based on trigger criteria: - Search for jQuery usage: $ function calls - Search for test imports in production files - Check for missing package.json scripts - Identify files > 400 lines ## Step 3: Categorize and Prioritize Apply prioritization framework: - Security issues → HIGH - Test code in production → HIGH - Large files → MEDIUM - Missing scripts → MEDIUM ## Step 4: Create Action Plan Generate prioritized list of fixes needed. ``` ### Pattern 2: Refactoring Verification ```markdown ## Step 1: Load Maintenance Standards Skill: cui-javascript-maintenance ## Step 2: Apply Compliance Checklist Work through checklist for modified files: - Vanilla JavaScript ✅ - Test Code Separation ✅ - Modularization ⚠️ (2 files still large) - Package.json ✅ - JSDoc Coverage ✅ ## Step 3: Fix Non-Compliant Items Split large files to comply with standards. ## Step 4: Re-Verify Run through checklist again and verify build passes. ``` ### Pattern 3: File-by-File Maintenance ```markdown ## Step 1: Load Maintenance Standards Skill: cui-javascript-maintenance ## Step 2: For Each File 1. Apply trigger criteria to identify violations 2. Prioritize using framework 3. Implement fixes using cui-javascript 4. Verify using compliance checklist 5. Commit file changes ## Step 3: Final Verification Verify all files pass build and tests. ``` ### Pattern 4: Test Quality Improvement ```markdown ## Step 1: Load Maintenance Standards Skill: cui-javascript-maintenance ## Step 2: Analyze Test Files Use test-quality-standards.md to identify: - Overly complex setup - Missing async handling - Hardcoded test data - DOM cleanup issues ## Step 3: Prioritize Improvements Focus on business logic tests first. ## Step 4: Apply Test Patterns Use test-quality-standards.md patterns to refactor. ## Step 5: Verify Coverage Ensure coverage maintained or improved. ``` ## Integration with Commands This skill is designed to be used by: **`/js-refactor-code` command:** - Loads this skill for detection, prioritization, and verification - Orchestrates systematic refactoring workflow - Uses trigger criteria to identify issues - Uses prioritization to order work - Uses checklist to verify completeness **`/js-maintain-tests` command:** - Loads this skill for test quality improvement - Uses test-quality-standards.md for detection - Uses prioritization for test work ordering - Ensures no production code changes **Other maintenance commands:** - Any command performing code quality work - Automated refactoring commands - Code review automation ## Relationship with Other Skills ### Complementary Skills **cui-javascript** - Implementation standards: - This skill identifies WHAT needs fixing - cui-javascript provides HOW to implement fixes **cui-jsdoc** - Documentation standards: - This skill detects documentation gaps - cui-jsdoc provides documentation patterns **cui-javascript-unit-testing** - Testing standards: - This skill identifies testing needs - cui-javascript-unit-testing provides testing patterns **cui-javascript-linting** - Linting standards: - This skill detects linting violations - cui-javascript-linting provides ESLint configuration **cui-cypress** - E2E testing standards: - This skill identifies E2E test quality issues - cui-cypress provides E2E testing patterns ### Clear Separation of Concerns **This skill (cui-javascript-maintenance):** - ✅ Detection criteria (WHEN to refactor) - ✅ Prioritization framework (WHAT order) - ✅ Verification checklist (HOW to verify) - ✅ Test quality standards (HOW to test) - ❌ Implementation patterns (see cui-javascript) - ❌ Workflow orchestration (see /js-refactor-code command) **Implementation skills (cui-javascript, etc.):** - ✅ Implementation patterns (HOW to implement) - ✅ Code examples and templates - ✅ Best practices for writing code - ❌ Detection criteria - ❌ Prioritization decisions ## Standards Organization ``` standards/ ├── refactoring-triggers.md # Detection criteria ├── maintenance-prioritization.md # Priority framework ├── compliance-checklist.md # Verification checklist └── test-quality-standards.md # Test quality standards ``` **Design principles:** - Self-contained standards (no external references except URLs) - Markdown format for compatibility - Practical examples included - Clear decision guidance - Agent-friendly structure ## Quality Verification Before completing maintenance work: 1. [ ] All trigger criteria have been checked 2. [ ] Violations prioritized using framework 3. [ ] High priority items addressed 4. [ ] Compliance checklist completed 5. [ ] Build verification passed 6. [ ] Tests passing with adequate coverage 7. [ ] Lint and format checks passing 8. [ ] Deviations documented with rationale ## Example Usage ### In a Command ```markdown --- name: my-maintenance-command --- ## Step 1: Load Maintenance Standards ``` Skill: cui-javascript-maintenance ``` This loads refactoring triggers, prioritization framework, compliance checklist, and test quality standards. ## Step 2: Analyze Code Apply trigger criteria from refactoring-triggers.md to identify violations. ## Step 3: Prioritize Work Use maintenance-prioritization.md to order fixes by impact. ## Step 4: Implement Fixes For implementation patterns, load cui-javascript or other implementation skills. ## Step 5: Verify Compliance Use compliance-checklist.md to verify all standards met. ``` ### In an Agent ```markdown ## Maintenance Analysis Agent ### Step 1: Load Standards ``` Read: standards/refactoring-triggers.md Read: standards/maintenance-prioritization.md ``` ### Step 2: Scan Codebase Apply trigger criteria to identify all violations. ### Step 3: Apply Prioritization Use prioritization framework to categorize findings. ### Step 4: Report Results Return structured analysis with prioritized action items. ``` ## Error Handling If issues arise during maintenance: 1. **Build failures**: Use npm-builder agent to diagnose and fix 2. **Test failures**: Review test output and fix broken tests 3. **Coverage regressions**: Add tests for uncovered code paths 4. **Lint issues**: Run `npm run lint:fix` for auto-fixable issues 5. **Ambiguous violations**: Ask user for guidance on priority ## References **Internal Standards:** - standards/refactoring-triggers.md - Detection criteria - standards/maintenance-prioritization.md - Priority framework - standards/compliance-checklist.md - Verification checklist - standards/test-quality-standards.md - Test quality standards **Related Skills:** - cui-javascript - Core implementation patterns - cui-jsdoc - Documentation standards - cui-javascript-unit-testing - Testing standards - cui-javascript-linting - Linting standards - cui-cypress - E2E testing standards **Related Commands:** - /js-refactor-code - Systematic refactoring workflow - /js-maintain-tests - Test quality improvement workflow - /javascript-coverage-report - Coverage analysis