This skill guides the agent through the process of auditing the codebase for refactoring opportunities, validating findings, drafting implementation plans, and creating GitHub issues.
1. Analyze Codebase
Goal: Identify high-value refactoring targets by looking for specific code smells.
- God Classes: Look for files > 1000 lines or classes with too many responsibilities (e.g.,
App.axaml.cshandling UI, Startup, and Logic). - Low Cohesion: Look for "Utils" or "Helpers" classes that contain unrelated methods (e.g., String manipulation mixed with API calls).
- OCP Violations: Look for giant
switchstatements or massive configuration classes that require modification for every new feature type (e.g.,UploadersConfig).
Actions:
- Use
list_dirto exploresrcand subdirectories. - Use
view_fileto inspect largest files. - Use
grep_searchto find "Helper" or "Manager" classes.
2. Verify Findings
Goal: Ensure the identified "pain point" isn't already solved or constrained by design.
- Check for existing solutions: Search for terms like "Bootstrapper", "Factory", "Service" to see if a better pattern already exists but isn't used.
- Check for constraints: Ensure the potential refactor doesn't violate specific project architectures (e.g., Avalonia specific patterns).
3. Draft Implementation Plans
Goal: Create a structured plan for each refactoring before creating issues.
Format: For each identified issue, draft a markdown section with:
- Title:
[Refactor] <Title> - Goal Description: What is the problem and why fix it?
- Proposed Changes: Specific classes/interfaces to create or modify.
- Implementation Plan: Checklist of steps.
- Verification Plan: How to verify the refactor (Manual/Automated).
Action:
- Save these drafts to a temporary file (e.g.,
refactoring_plans.md) or thetask.mdartifact for user review.
4. Create GitHub Issues
Goal: proper tracking of the work.
Action:
- Use
gh issue createto submit the vetted plans. - Use the
--titleand--body-filearguments. - Clean up: Delete temporary body files after creation.
Example Command:
gh issue create --title "[Refactor] Split GeneralHelpers.cs" --body-file "c:/path/to/body.md"