skills/cc-refactoring-guidance/SKILL.md
Guides safe refactoring using Code Complete's fix-first-then-refactor discipline: decides between refactor, rewrite, and fix-first; enforces separate commits; applies small-change rigor to high-error-rate one-liners.
npx skillsauth add ryanthedev/code-foundations cc-refactoring-guidanceInstall 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.
Refactoring is behavior-preserving change to working code. Three rules govern it:
| Rule | Value | Source | |---|---|---| | Small-change error rate | Peaks at 1–5 lines | Weinberg 1983 | | First-attempt success | <50% for any change | Yourdon 1986b | | Review effect on 1-line changes | 55% → 2% error rate | Freedman and Weinberg 1982 |
Shared thresholds (routine length, parameters, cohesion): Read(${CLAUDE_PLUGIN_ROOT}/references/cc-foundations.md). The full 40-item refactoring checklist: Read(${CLAUDE_SKILL_DIR}/checklists.md).
Definitions:
Refactor toward something, not just away from bad code. Find the best examples of the target pattern in this codebase, the module's conventions, and how similar refactorings were structured; match the existing pattern exactly, or — if none exists — be deliberate about the precedent you're setting. Full gate: Read(${CLAUDE_PLUGIN_ROOT}/references/pattern-reuse-gate.md).
Guide the refactoring decision and the safe process.
When production is down: fix only — no refactoring or cleanup — deploy, then refactor as a separate activity when stable. Combining the two raises complexity and error likelihood.
Refactor vs rewrite:
Safe process (priority order):
If tests fail after a refactoring: don't debug extensively — back out the change, take a smaller step, and reconsider whether you understood the code.
When prerequisites are missing:
Read(${CLAUDE_PLUGIN_ROOT}/skills/welc-legacy-code/SKILL.md) and write characterization tests first; if impossible, document expected behavior, write a manual test script, and increase review rigor.Transform code smells into clean code while preserving all observable behavior (same tests pass before and after): setup/takedown smell → encapsulated interface; tramp data → direct access or restructure; duplicated code → extracted routine; speculative "design ahead" code → remove it. Behavior changes are fixing, not refactoring — fix first.
If you mixed fix and refactor in one commit:
git reset --soft HEAD~1, separate the changes, re-commit properly.If you skipped review on a small change:
Fixing a violation post-commit still costs less than the bugs it would otherwise cause.
| After | Next |
|---|---|
| Refactoring complete | Read(${CLAUDE_PLUGIN_ROOT}/skills/cc-control-flow-quality/SKILL.md) |
| Structure changed | Read(${CLAUDE_PLUGIN_ROOT}/skills/cc-routine-and-class-design/SKILL.md) |
| Reviewing a refactoring | Read(${CLAUDE_PLUGIN_ROOT}/skills/aposd-reviewing-module-design/SKILL.md) |
devops
Implements the Standard/Full planning pipeline for Medium and Complex tasks: multi-step discovery, phase decomposition with skill matching, cross-cutting concerns, and plan emission with Gate fields.
development
Provides all 23 Gang of Four patterns as a decision guide: maps code symptoms to patterns, then loads the structural recipe for the selected pattern.
development
Applies Code Complete's scientific debugging method: STABILIZE → LOCATE → HYPOTHESIZE → EXPERIMENT → FIX → TEST → SEARCH. For active bug investigation, not QA process design or test coverage planning.
development
Generates or updates docs/code-standards.md by scanning the codebase for actual conventions. Produces an example-rich standards file optimized for LLM consumers, grounded in the project's real patterns.