Turn a pile of technical-debt complaints, TODOs and incident notes into a ranked register: each item with where it lives, the cost it imposes today backed by evidence, the size of the fix, a decision (pay now, schedule, accept or watch) with the trigger that reopens it, and an owner if one was given. It ends with the few items worth paying down this quarter and why. Use when the user asks for a tech debt register, a debt inventory or backlog, "what debt should we pay down", "prioritise our tech debt", or wants to make the case for refactoring time.
Pack dev-teamTier standardJob Build and review softwarev0.1.0
In Claude Code, with the dev-team plugin installed, invoke it as:
/dev-team:tech-debt-register
Try it
A realistic prompt from the skill's acceptance evals:
We have planning next week and I want to argue for debt time. My notes are in debt-notes.md. Turn them into a register and tell me what to pay down this quarter.
What a good result looks like
Every cost has evidence or says it has none. No invented hours, incident counts, percentages or money.
Every item has a place or is listed as unlocated.
Every item has a decision and a trigger.
The top of the list is defensible: evidenced cost, fix the team can finish.
It fits a planning meeting. One table, one short lead-in.
How it's checked
Measured against plain Claude Code (2026-10-23): it met 86% of its checks, against 70% without it, and a blind judge preferred it. How skills are checked
36 assertions across 5 acceptance evals, and 8 trigger queries. Every skill's checks
What the output must do
The two notes about the order export (CSV string concatenation and the comma bug) are merged into one item, and the merge is stated
The export item cites its evidence from the notes (three incidents in Q3, INC-311, INC-318 and INC-327) and is among the items to pay down this quarter
The 22-minute CI build is recorded with its evidence (the measured time and the 14 engineers waiting on it)
The 'rewrite the frontend in TypeScript' note is recorded as having no evidence of cost and is not ranked as pay-now
Every item has a decision (pay now, schedule, accept or watch) and a trigger
Owners are filled only where the notes name one (Priya for the export); others are unassigned
It does not invent hours lost, incident counts, money or percentages that are not in the notes
The lead-in names three or fewer items for this quarter, above the table
The retry-without-idempotency-key TODO in payments/charge.py is linked to the duplicate-charge incidents in incidents.md and ranked at or near the top
TODOs with no matching incident or stated cost are marked as having no evidence of cost, with decision watch or accept
Each item names a file or module from todos.txt
Duplicate or near-duplicate TODOs (the two about hard-coded currency) are merged
Fix sizes are given as S, M or L, without invented day counts beyond the scale
It does not invent incidents, dates or customer impact beyond what incidents.md states
Every item has a trigger that is an event, not only a date
It produces a register with the four items rather than refusing or asking a list of questions first
Each item's cost is marked as not evidenced or unknown, because the prompt gives no numbers
It does not invent deploy times, flake rates, hours lost or incident counts
The Python 3.8 item notes that 3.8 is past end of life as a known fact, or asks to confirm, without inventing a specific vulnerability or deadline
It states what evidence would firm up the ranking (for example deploy duration, flaky-test rate, incidents traced to billing)
It adds no debt items beyond the four the user listed
Owners are unassigned
Puts the scanner TLS certificate renewal among this quarter's work, citing the 2026-12-01 expiry and that the person who renewed it has left with no known notes
Treats the stock-sync notes (Marta's and Ines's split-pallet complaints) as one item
Recommends the roughly 3-day split-pallet patch rather than the two-person, full-quarter sync rewrite for this quarter, because the rewrite does not fit 3 engineer-weeks, and the items picked for the quarter fit within the 3 weeks
Flags at least one disagreement between the notes and the incident log, such as the claimed 40 engineer-hours on sync failures against 5 logged hours, or the label printer crashing 'every week' against two logged incidents, instead of silently using one figure
Does not recommend the Perl reporting rewrite for this quarter, since the notes give no evidence of what it costs today
Does not invent costs, hours, incident counts, owners or dates beyond those in the two files
Fits about one page
Puts the missing database backups and the plain-text passwords at the top, saying in plain words what could go wrong for the bakery
Does not rank the copied code or the missing tests above those two
Treats the old PHP version as a real risk because it no longer gets security fixes, without inventing a specific vulnerability or attack
Does not invent costs, hours, incidents or customer numbers that are not in the message
Says what the two weeks should go on first, rather than only listing the items
Is a short list in plain language, without unexplained jargon
Answers without first asking questions
When it should and shouldn't activate
Should activate:
Build a tech debt register from these notes
Which of our technical debt should we pay down this quarter?
I need to make the case to my director for refactoring time. Here's what's wrong with the codebase.
Turn this TODO/FIXME grep into a prioritised debt backlog
Should leave to another skill:
Plan the migration from our monolith's Postgres 12 to 16 with a rollback
Triage these 40 incoming bug reports by severity
Clean up our Jira backlog: find duplicates and stale tickets
Build a risk register for the office relocation project