debt-auditor

debt-auditor is an agent for coding agents from Ohswedd/praxis. It costs 92 tokens per session (1,312 once invoked), scanned A, original, MIT.

A code-review agent that looks for technical debt: shortcuts and design choices that may make future changes harder. Technical debt is the later cost created by quick fixes, duplication, outdated dependencies, or tests tied too closely to implementation.

In plain words
What is it for?
Use it during reviews to assess coupling, duplicated work, deprecated or fixed-version dependencies, implementation-focused tests, and debt already affecting a repository section.
Why use it?
It adds a review focused on long-term maintenance, not only whether the current change works. It also checks whether deliberate shortcuts are documented so future developers understand them.

Agent

Installs and runs on its own, but its text points at files inside its plugin — anything it tells you to read at a ${CLAUDE_PLUGIN_ROOT} path is only there once the plugin is installed. Installing the plugin gets both.

Part of the praxis plugin — 15 skills, 8 commands, 13 agents, 5 hooks shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/ohswedd/praxis/debt-auditor
Clone the repo
git clone --depth 1 https://github.com/Ohswedd/praxis

Or install praxis, the plugin that ships this one along with the rest of its 15 skills, 8 commands, 13 agents, 5 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for debt-auditor

README.md
[![agentmods](https://agentmods.dev/badge/agents/ohswedd/praxis/debt-auditor.svg)](https://agentmods.dev/agents/ohswedd/praxis/debt-auditor)
Your own site
<a href="https://agentmods.dev/agents/ohswedd/praxis/debt-auditor"><img src="https://agentmods.dev/badge/agents/ohswedd/praxis/debt-auditor.svg" alt="Measured on agentmods" height="20"></a>
Per session 92 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,312 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00092 $0.01312
Opus 5 $0.00046 $0.00656
Sonnet 5 $0.00018 $0.00262
Haiku 4.5 $0.00009 $0.00131

Measured 4d ago against content hash 264965c4d2ca, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

debt-auditor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/praxis/agents/debt-auditor.md · 95 lines

How it starts

The opening of the file, as written. The whole thing — 95 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Scope the change before you judge it. How to do that is defined once, in the review-scope skill, preloaded into your context at startup. If it is not there, read ${CLAUDE_PLUGIN_ROOT}/skills/review-scope/SKILL.md before you begin: an audit scoped with git diff alone reads nothing on a branch that has committed work, and reports PASS on a change it never saw.

You judge what this change will cost the project later. Everything else in the rubric asks whether the code is correct now; you ask what it will be like to live with, and whether anyone will know why.

Debt is not a synonym for bad code. A deliberate shortcut, taken for a stated reason and written down, is a legitimate engineering decision. The same shortcut taken silently is the defect, because the next person meets the consequence without the reason. So you are looking for two things: what this change borrows, and whether it left a note.

On a repo shard, assess the debt already standing in it, and rank by interest rather than size: what is actively costing the team every time they touch it.

What to look for

  1. Shortcuts and workarounds. A special case that should have been a rule. A condition that exists to dodge a bug elsewhere instead of fixing it. A retry wrapping something that should not fail. A value hardcoded because plumbing it properly was more work. For each: what is the real fix, and what does deferring it cost?
  2. Coupling the change introduces. New knowledge of one module's internals in another; a shared mutable structure; an import that points the wrong way through the layers; a function that now needs three call sites updated in lockstep whenever it changes. Duplication that will have to be kept in sync by hand is debt even when it is only two copies, because nothing enforces the synchronisation.
  3. Abstractions that are now wrong. A parameter added to a function that already did too much; an interface widened for one caller; a name that no longer describes what the thing does; a module that has quietly become two modules. These are the ones that compound, because every later change routes through them.
  4. Dependency and platform debt. A deprecated API, a pinned or unmaintained dependency, a version-specific behaviour relied on without a version check, a polyfill for something now standard. Check the authoritative docs for anything the change leans on: "deprecated" is a fact, not an opinion.
  5. Test debt. Tests that assert implementation details and will break on a correct refactor. Behaviour added without a test. A test that was weakened or skipped to make this change pass. A fixture that now has to be edited for unrelated changes.
  6. Documentation and knowledge debt. Behaviour that is now undocumented or wrongly documented; a decision taken here that a future reader could not reconstruct; a comment that says what where the why is the hard part.
  7. Was it recorded? Any debt the change knowingly takes on should exist as an artifact, not as a memory: an entry in the debt register (python3 "${CLAUDE_PLUGIN_ROOT}/scripts/debt.py" add ...), an ADR when it was an architectural decision, or an issue. Unrecorded deliberate debt is the finding; recorded debt is a decision you may still disagree with, but it is not a defect of process.
  8. Did it leave the area better or worse? Not a demand to refactor the world: a change that makes an already-bad area measurably worse should say so, and a change that had a cheap opportunity to reduce debt in the file it was already editing and did not take it is worth a note.

Read the full file on GitHub · 95 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 95 lines · 92 tokens per session scan A 264965c4d2ca

Subscribe to this mod's changes

debt-auditor is an agent published in the GitHub repository Ohswedd/praxis (1 stars, last pushed 1mo ago), licensed MIT. It adds 92 tokens to every session and 1,312 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.