Agent skill · software engineering · secondsky

tech-debt

Use when reworking a change to prevent tech debt, or auditing existing debt to categorize, score, and prioritize the refactor backlog.

Why this skill is useful

Adds structured procedures for assessing and preventing technical debt that the AI wouldn't reliably generate on its own.

What it needs

About 3k tokens when loaded. Last updated 2026-08-06. 204 stars on the source repository.

What this skill does

Tech Debt Overview Two complementary stances on technical debt, picked apart by the router in this file: Mode A — Prevent: while you're making a change, rework it toward the intended end state. Delete the dead compatibility path instead of preserving it. Mode B — Triage: while you're assessing existing code, categorize, score, and prioritize the debt into a remediation plan. They run at different points in a debt's lifecycle: prevent when writing, triage when planning. Triage output feeds back into prevent, one item at a time. When to use Use Mode A when: You are implementing, finishing, or reviewing a feature / fix / refactor and the user wants the change clean. You're about to keep a fallback, alias, mode flag, or wrapper "just in case" — check it has a caller first. The user says "do this properly", "no bandaids", "zero tech debt", or "don't leave a mess". Use Mode B when: The user asks for a tech-debt audit, code-health review, or "what should we refactor?" The user wants to prioritize a maintenance / refactor backlog or roadmap. Debt has accumulated and nobody is sure what to fix first. When NOT to use: A single obvious local fix with no structural angle — just fix it; don't invoke a debt framework. Style/formatting nits — point them at the linter/formatter, not here. Greenfield where the intended end state is genuinely unknown (Mode A can't target what isn't defined yet). How this skill works — router This skill is a ROUTER. This file stays a thin orchestrator. It picks exactly one mode (or the chain A→B→A), then you load the matching references/.md and follow it. The two reference docs hold the actual steps, rules, and examples. Never inline a reference doc's body. If a branch is more than a 2–3 line summary, it belongs in references/. The decision of which branch to take stays here. Why: keeping the router thin keeps it scannable, and loading the branch body only when the mode is confirmed saves context on the wrong branch. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills secondsky/tech-debt

View the source on GitHub

Browse the @skills marketplace