Skip to content
Agent Orchestration
Skill

/tech-debt

Track, categorize and prioritize technical debt across the codebase — scans for debt indicators, maintains a register.

From plugin
claude-code-game-studios
39k78 skills49 agents

Claude Code

$ npx -y skills add Donchitos/Claude-Code-Game-Studios --skill tech-debt --agent claude-code

SKILL.md

tech-debt.SKILL.md
name: tech-debt
description: "Track, categorize and prioritize technical debt across the codebase — scans for debt indicators, maintains a register."
argument-hint: "[scan|add|prioritize|report]"
user-invocable: true
allowed-tools: Read, Glob, Grep, Write, Edit, AskUserQuestion, Bash(bash "*/.claude/skills/tech-debt/../../hooks/yaml-helper.sh" resolve_config *)
model: sonnet

!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,workflow`

Tech Debt

Every `AskUserQuestion` call follows `.claude/docs/automation-modes.md` (collaborative asks always · guided major-only · autonomous logs and proceeds; `automation_always_ask` categories always prompt).

Phase 1: Parse Subcommand

Determine the mode from the argument:

  • `scan` — Scan the codebase for tech debt indicators
  • `add` — Add a new tech debt entry manually
  • `prioritize` — Re-prioritize the existing debt register
  • `report` — Generate a summary report of current debt status

If no subcommand is provided, output usage and stop. Verdict: **FAIL** — missing required subcommand.

---

Phase 2A: Scan Mode

Search the **code root** (resolve per `.claude/docs/code-root-resolution.md`: `src/`, `Assets/` or `Source/` by engine) for debt indicators:

  • `TODO` comments (count and categorize)
  • `FIXME` comments (these are bugs disguised as debt)
  • `HACK` comments (workarounds that need proper solutions)
  • `@deprecated` markers
  • Duplicated code blocks (similar patterns in multiple files)
  • Files over 500 lines (potential god objects)
  • Functions over 50 lines (potential complexity)

Categorize each finding:

  • **Architecture Debt**: Wrong abstractions, missing patterns, coupling issues
  • **Code Quality Debt**: Duplication, complexity, naming, missing types
  • **Test Debt**: Missing tests, flaky tests, untested edge cases
  • **Documentation Debt**: Missing docs, outdated docs, undocumented APIs
  • **Dependency Debt**: Outdated packages, deprecated APIs, version conflicts
  • **Performance Debt**: Known slow paths, unoptimized queries, memory issues

**Before presenting anything, establish that there was something to scan.** Count the source files the scan actually covered. If the code root is unresolved, report `NOT ASSESSED — code root unresolved` and stop as below. If that count is **zero** — the code root is absent, or holds no source files — report:

> **NOT ASSESSED — no source files to scan.** The code root contains no code, so > "no debt indicators found" would be a statement about an empty search, not > about the codebase. Run this once implementation is under way.

and stop. Do not write to the register and do not emit a COMPLETE verdict.

The distinction is the whole point of the scan: **zero findings over 400 files is a clean codebase; zero findings over zero files is no information at all.** Rendering both as "COMPLETE — scan findings written to register" reads as the first. State the denominator whenever findings are reported, including when it is large and the count is genuinely zero.

Present the findings to the user.

Ask: "May I write these findings to `docs/tech-debt-register.md`?"

If yes, update the register, never overwriting it. **Match before appending:** a finding with the same file and the same kind of debt as an existing `Open` entry updates that entry instead of adding a duplicate. An existing `Open` entry whose pattern is no longer in its file is proposed as `Resolved [date]` — list those and include them in the same approval. Verdict: **COMPLETE** — scan findings written to register.

If no, stop here. Verdict: **BLOCKED** — user declined write.

---

Phase 2B: Add Mode

Ask the user for the description and affected files (plain text prompts).

**Run as a subagent?** `lead-programmer` preloads this skill, and a subagent has no `AskUserQuestion`. Return the three questions below (category, effort, impact) in one reply, each as a short list of its options, and stop: whoever called you asks the user. Nothing goes into the register until the answers come back.

Then use `AskUserQuestion` to collect the **category**:

  • Prompt: "What category does this tech debt belong to?"
  • Options:
  • `[A] Architecture Debt — wrong abstractions, missing patterns, coupling issues`
  • `[B] Code Quality Debt — duplication, complexity, naming, missing types`
  • `[C] Test Debt — missing tests, flaky tests, untested edge cases`
  • `[D] Documentation Debt — missing/outdated docs, undocumented APIs`
  • `[E] Dependency Debt — outdated packages, deprecated APIs, version conflicts`
  • `[F] Performance Debt — known slow paths, memory issues, unoptimized queries`

Then use `AskUserQuestion` to collect the **estimated fix effort**:

  • Prompt: "What is the estimated effort to fix this item?"
  • Options:
  • `[A] S — Small (under 1 day)`
  • `[B] M — Medium (1–3 days)`
  • `[C] L — Large (3–7 days)`
  • `[D] XL — Extra Large (over 1 week)`

Then use `AskUserQuestion` to collect the **impact if left unfixed** — the register's Impact column, which `/tech-debt prioritize` scores:

  • Prompt: "What does this cost if it is never fixed?"
  • Options: `[A] Low` / `[B] Med` / `[C] High` / `[D] Critical`

Present the complete new entry to the user.

**Match before appending:** if an existing `Open` entry already has the same file and the same category, show it to the user and ask whether to update that entry instead of adding a duplicate.

Ask: "May I append this entry to `docs/tech-debt-register.md`?" (or, on a match, "May I update the existing entry instead?")

If yes, append the entry (or update the matched one). Verdict: **COMPLETE** — entry added to register.

If no, stop here. Verdict: **BLOCKED** — user declined write.

---

Phase 2C: Prioritize Mode

Read the debt register at `docs/tech-debt-register.md`. If it does not exist: Verdict: **NOT ASSESSED** — no register at `docs/tech-debt-register.md`; run `/tech-debt scan` first. Stop.

Score each item from its own columns: `impact ÷ effort`, with Impac

Read more
@donchitos
Ships withclaude-code-game-studios

Turn Claude Code into a full game dev studio — 49 AI agents, 72 workflow skills, and a complete coordination system mirroring real studio hierarchy.

39k78 skills49 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
39.0k
Star history of Donchitos/Claude-Code-Game-Studios on GitHub, a chart by star-history.com

Other skills on claude-code-game-studios.

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

clawdis2w393k
@steipete@steipeteInstall Skill
computer-use

computer-use

Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and…

orca2w111k
@stablyai@stablyaiInstall Skill
agentmail

agentmail

Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…

paperclip2w109k
@paperclipai@paperclipaiInstall Skill
adr-create

adr-create

Create a new Architecture Decision Record with sequential numbering and AgentDB registration

@ruvnet@ruvnetInstall Skill

Questions about tech-debt.

Which coding agents can use tech-debt?
tech-debt installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.