zero-tech-debt — Claude Code skill: refactor patches without legacy
Rebuilds a change from the end state you actually want, dropping dead compatibility paths and accidental complexity along the way.
npx skills add jnsahaj/skills --skill zero-tech-debt -a claude-codeWhat zero-tech-debt does
The skill makes the agent name the target outcome in a sentence or two before touching code. Then it goes looking for real callers. Any mode, prop, wrapper, route alias or fallback nobody calls right now gets deleted.
Shape follows the shipped product surface: one clear component or flow beats a pile of flags. Splitting is fine only where a boundary is obvious, such as state, layout, controls or domain commands. Shared logic like feature flags, permissions, route gating, URL state and command names belongs in a single spot, not copied across pages or buried in view components.
Last step is verification of the new flow plus the assumptions you removed that touched navigation, permissions or persisted state. The skill optimises for the code that should remain, not for the smallest diff, yet it rules out building a generic framework for one feature and keeps the refactor inside what makes the final shape coherent.
What it helps with
- strip dead compatibility branches from a patch
- collapse mode flags into a single flow
- pull duplicated permission checks into one place
- rename things after product intent instead of edit history
- confirm removed assumptions did not break navigation
Example prompts for the agent
- Describe the end state this change is aiming at, then delete everything that only exists for backward compatibility.
- Go through the patch and remove modes, flags and wrappers that have no current callers.
- Move the flags and permission checks from several pages into one place, then verify the flow.
How to install zero-tech-debt
1Skills CLI (Vercel)
npx skills add jnsahaj/skills --skill zero-tech-debt -a claude-code2Manually: put the files in place
~/.claude/skills/zero-tech-debt/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/zero-tech-debt/
1Skills CLI (Vercel)
npx skills add jnsahaj/skills --skill zero-tech-debt -a codex2Manually: put the files in place
.agents/skills/zero-tech-debt/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add jnsahaj/skills --skill zero-tech-debt -a cursor2Manually: put the files in place
.cursor/skills/zero-tech-debt/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install jnsahaj/skills zero-tech-debt2Manually: put the files in place
.github/skills/zero-tech-debt/SKILL.md1Skills CLI (Vercel)
npx skills add jnsahaj/skills --skill zero-tech-debt -a gemini-cli2Platform CLI
gemini skills install https://github.com/jnsahaj/skills --path skills/zero-tech-debtManually: put the files in place
.devin/skills/zero-tech-debt/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add jnsahaj/skills --skill zero-tech-debt -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about zero-tech-debt
How do I install zero-tech-debt in Claude Code?
Run npx skills add jnsahaj/skills --skill zero-tech-debt -a claude-code. The skill lands in ~/.claude/skills/zero-tech-debt/SKILL.md.
What does zero-tech-debt do?
It pushes the agent to rework a change from the intended end state: state the goal, hunt for real callers, remove unused paths and gather shared rules in one spot.
Will it rewrite my whole project?
No. The refactor stays within what makes the final shape coherent, and the skill forbids inventing a generic framework for a single feature.