Agent skill · Code Review & Quality

remove-technical-debt

Guided journey from a large aged codebase everyone fears to touch to one that is safe to change, legible, bounded, and resilient - paid down in place without a rewrite. Orchestrates eight skills phase by phase - working-with-legacy-code, refactoring-patterns, clean-code, software-design-philosophy, clean-architecture, pragmatic-programmer, release-it, domain-driven-design - asking the user questions at every decision point and recording results in the project docs/ folder (TESTING.md, TECH-DEBT.md, REMOVE-TECHNICAL-DEBT-PLAN.md) so the journey resumes across sessions. Use when the user wants t

wondelaigithub.com/wondelaiGitHub ↗
claude-codeMIT
Install
npx skills add wondelai/skills --skill remove-technical-debt --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 2
SKILL.md size: 24 KB
Bundled scripts: none
Version: 1.0.0
Declared author: wondelai
Path: remove-technical-debt/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 1,835
Language: Shell
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Guides a user through a phased, interactive process to pay down technical debt in a large legacy codebase without a big rewrite. It coordinates eight underlying skills (working-with-legacy-code, refactoring-patterns, clean-code, software-design-philosophy, clean-architecture, pragmatic-programmer, release-it, domain-driven-design), prompting questions at each decision point and recording results in project docs/ (TESTING.md, TECH-DEBT.md, REMOVE-TECHNICAL-DEBT-PLAN.md) so progress persists across sessions. It starts by building a safety net, then progressively applies small, behavior-preserving changes with tests, documenting outcomes in the docs/ folder and updating a tracker. It emphasizes not touching code absent from a Safety Net Map in Phase 1, and structures work so you can resume later with a tracker in place.

How it works

  • Phase 1 (working-with-legacy-code): Invokes the phase with the starting module chosen at intake. It asks for an effect sketch, pinch points, seams to break, and a minimal characterization-test set. It creates docs/TESTING.md with sections for Test Strategy and Safety Net Map, and docs/TECH-DEBT.md with Debt Ledger and Sprout/Wrap Register. It requires that the target module's behavior is pinned and tests green before unlocking Phase 2.
  • Phase 2 (refactoring-patterns): Names and applies small, behavior-preserving transformations one at a time, each backed by tests, and records results in docs/TECH-DEBT.md under Smell Inventory (location, refactoring, status). It may propose a Branch by Abstraction plan for large migrations.
  • Phase 3 (clean-code): Improves legibility with clearer names, small single-purpose functions, safer error handling, and a dedicated error-handling audit. Updates docs/TECH-DEBT.md with Smell Inventory rows and Adopted Conventions.
  • Phase 4 (software-design-philosophy): Reduces complexity by hiding machinery behind interfaces, consolidating deep modules, and minimizing information leakage. Logs consolidations and conventions in docs/TECH-DEBT.md.
  • Phase 5 (clean-architecture): Ensures business rules govern dependencies, using dependency inversion between use cases and adapters; maps the dependency graph and identifies violations.
  • Phase 6 (pragmatic-programmer) onward: Subsequent phases extend documentation and enforce practices to prevent debt re-accumulation, with artifacts stored in docs/ and tracker updates.

When to use it

Use when you want to tame a legacy codebase, pay down technical debt safely, avoid a big-bang rewrite, or address fear of touching the code. The skill recommends using specific complementary skills (e.g., improve-code-quality, design-code-architecture, improve-app) for related scenarios and provides explicit phase-based flow before touching code.

What it can touch

Uses phase-specific invocations like working-with-legacy-code, refactoring-patterns, clean-code, software-design-philosophy, clean-architecture, pragmatic-programmer, release-it, and domain-driven-design to operate, along with updates to docs/TESTING.md, docs/TECH-DEBT.md, docs/REMOVE-TECHNICAL-DEBT-PLAN.md and the tracker in the project.

Caveats

Phase 1 must pin behavior before any changes; phase commits are single-purpose and pinned tests must pass to progress. Bugs found during characterization are to be pinned in the Debt Ledger, not fixed silently. Phase entries may be deferred for gating phases, and artifacts are stored as uppercase files in docs/.

From the SKILL.md

# Remove Technical Debt Take a large, aged, tangled codebase that everyone is afraid to touch and pay its debt down in place — no big-bang rewrite, the old system always shipping. The instinct to rewrite is the one reliable way to turn a struggling-but-shipping product into a struggling-and-not-shipping one; this journey is the alternative. It is interactive and resumable across eight phases: the agent asks before every decision and records the outcome in your project's `docs/` folder, so you can stop after any phase and pick up later. The first phase builds a safety net at your change points; every phase after it is verifiable because that net exists. ## Core Principle **Feedback over fear: cover and modify, never edit and pray — pay debt down in place on the paths you actually walk, and never stop shipping.** This skill sequences the phases, asks the decision questions, and records every choice in `docs/`. The constituent skills carry the method — invoke them rather than improvising their frameworks. You do not pay down a mountain of debt by rebuilding the mountain; you pay it down one safe, tested step at a time along the paths you already change. Skipping ahead — cleaning befor

What's inside
Steps it walks through
  1. Core Principle
  2. Journey Map
  3. Operating Rules
  4. Intake
  5. Phases
  6. Phase 2 — Restructure with named refactorings (refactoring-patterns)
  7. Phase 3 — Raise legibility where you touch the code (clean-code)
  8. Phase 4 — Reduce complexity with deep modules (software-design-philosophy)
  9. Phase 5 — Draw the dependency boundary (clean-architecture)
  10. Phase 6 — Lock in the habits (pragmatic-programmer)
  11. Phase 7 — Harden the integration points (release-it)
  12. Phase 8 — Carve into bounded contexts (domain-driven-design)
  13. Optional Phases
  14. Common Mistakes
Ships with 1 file
  • references/artifact-templates.md
More from skills
All skills →
About this skill
What does the remove-technical-debt skill do?

Guided journey from a large aged codebase everyone fears to touch to one that is safe to change, legible, bounded, and resilient - paid down in place without a rewrite. Orchestrates eight skills phase by phase - working-with-legacy-code, refactoring-patterns, clean-code, software-design-philosophy, clean-architecture, pragmatic-programmer, release-it, domain-driven-design - asking the user questions at every decision point and recording results in the project docs/ folder (TESTING.md, TECH-DEBT.md, REMOVE-TECHNICAL-DEBT-PLAN.md) so the journey resumes across sessions. Use when the user wants t

How do I install it?

Run `npx skills add wondelai/skills --skill remove-technical-debt --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From wondelai/skills, a repository with 1,835 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going