skills/refactor/SKILL.md
Analyze code and suggest refactoring opportunities with blast radius assessment, risk evaluation, and recommended order of operations
npx skillsauth add thoreinstein/agents refactorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Analyze code and suggest refactoring opportunities with rationale. This is an analysis-only skill - it identifies and documents refactoring opportunities but does not execute them.
| Pattern | Description | |---------|-------------| | Extract function/method | Pull out reusable logic | | Inline function/variable | Remove unnecessary indirection | | Rename | Improve clarity (with blast radius assessment) | | Move | Relocate to better home (file, package, module) | | Replace conditional with polymorphism | Simplify branching | | Introduce parameter object | Group related parameters | | Dependency inversion | Decouple via interfaces/abstractions |
| Pattern | Description | |---------|-------------| | Extract interface | Define behavior contracts | | Consolidate error handling | Reduce repetitive error checks | | Replace concrete with interface | Improve testability | | Extract middleware | Separate cross-cutting concerns | | Table-driven refactor | Convert repetitive code to data-driven |
| Pattern | Description | |---------|-------------| | Extract component | Break down large components | | Extract custom hook | Reuse stateful logic | | Lift state up | Move state to common ancestor | | Push state down | Colocate state with usage | | Extract render function | Simplify complex JSX | | Memoization | Optimize re-renders |
Document the analysis using the template at references/templates/refactor-analysis.md.
The analysis should include:
Refactoring Analysis: pkg/auth/handler.go
Target:
- Path: pkg/auth/handler.go
- Scope: file
- Concern: complexity
Summary:
The auth handler has grown to 450 lines with 3 code smells identified.
Recommend extracting token validation and session management into
separate services. Low-risk changes that improve testability.
Code Smells Identified:
1. Long Function (validateAndCreateSession)
- Location: handler.go:145-280
- Description: 135-line function handling validation, session
creation, and response formatting
- Impact: Hard to test, multiple responsibilities
2. Feature Envy (token validation)
- Location: handler.go:156-198
- Description: Handler reaches into token package internals
- Impact: Tight coupling, changes ripple across packages
Suggested Refactorings:
1. Extract TokenValidator service
- Type: Extract
- Target: handler.go:156-198
- Rationale: Encapsulates token validation logic
- Blast Radius: handler.go, handler_test.go
- Risk: Low — isolated logic, good test coverage
- Test Impact: Add TokenValidator unit tests
2. Extract SessionManager service
- Type: Extract
- Target: handler.go:200-250
- Rationale: Separates session concerns from HTTP handling
- Blast Radius: handler.go, session.go, handler_test.go
- Risk: Medium — touches session storage
- Test Impact: Update integration tests
Recommended Order:
1. TokenValidator first (lowest risk, no dependencies)
2. SessionManager second (depends on cleaner handler)
Begin by identifying the target code and any specific concerns to focus on.
testing
Consult the whizz-mind knowledge base for documentation and answers. Use when the user asks questions that might be answered by stored documentation or when explicitly asked to check whizz-mind.
development
Comprehensive web quality audit covering performance, accessibility, SEO, and best practices. Use when asked to "audit my site", "review web quality", "run lighthouse audit", "check page quality", or "optimize my website".
testing
Ultra-deep multi-perspective analysis for complex architectural and strategic decisions requiring systematic reasoning across technical, business, user, and system perspectives
data-ai
Optimize for search engine visibility and ranking. Use when asked to "improve SEO", "optimize for search", "fix meta tags", "add structured data", "sitemap optimization", or "search engine optimization".