From gotrino-assistant
Surface code-level debt — TODO/FIXME markers, deprecated APIs, dead code, oversized units, magic numbers. Use when reviewing a module, planning cleanup work, or before a release. Not a linter — observes patterns and assesses impact.
How this skill is triggered — by the user, by Claude, or both
Slash command
/gotrino-assistant:code-debtThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Surface code-level debt and understand what it's costing the project.
Surface code-level debt and understand what it's costing the project.
"What does our code still owe us that we haven't paid?"
Every TODO is a promise. Every deprecated call is a migration the team chose to defer. Every commented-out block is a decision someone hasn't made. Code-debt names those debts so the team can decide which to pay.
Not a linter. A linter asks "does this match a rule?" This skill asks "what have we left unfinished, and what's it costing us?"
The user may specify a file path, glob pattern, or directory. If not specified, ask: "Which path or module would you like to analyze?"
Follow the migration preflight in references/config-migration.md.
After preflight, read .assistant-config.md for:
code-debt.max-function-lines, etc.)If no config exists, use heuristic defaults from references/code-debt-patterns.md.
Glob for manifest files to infer language conventions:
package.json → JavaScript/TypeScriptpyproject.toml / requirements.txt → PythonGemfile → Rubygo.mod → GoCargo.toml → RustShow detected stack in the output header. If unclear, proceed with language-agnostic patterns only.
Read a representative file or two from the scope to understand the codebase's style. Note whether the project already tracks debt in comments (e.g. TODO(#1234) with issue refs) — those are tracked items, not untracked debt.
Use Grep for each pattern category. See references/code-debt-patterns.md for the full list. Collect raw findings with file:line locations.
For rename/identifier drift, scan the whole project tree — not just source. Config files, .gitignore, agent definitions, CI configs, and docs commonly hold the old name after a source-only rename. The point of this check is the blast radius.
Organize findings by module/directory, not by pattern type. A file with a TODO, a deprecated import, and a magic number is one location with three findings — not three scattered items.
For each location group, judge:
/triage.references/code-debt-patterns.md — what counts, what doesn'treferences/debt-output-format.md — required output formatreferences/config-migration.md — config migration preflightFollow references/debt-output-format.md exactly. The umbrella skill parses this format.
A linter would flag every TODO as noise. This skill:
/triage or pasting into a trackerThe value is judgment, not detection.
npx claudepluginhub hereinthehive/gotrino-assistant --plugin gotrino-assistantIdentifies, categorizes, and prioritizes technical debt across seven dimensions using graph analysis (fan-in × complexity, cycles, blast radius) and marker scanning. Generates remediation plans with effort estimates.
Analyzes and prioritizes technical debt in code, architecture, testing, docs, and infra with metrics dashboard, ROI roadmaps, effort estimates, and prevention strategies.
Systematically identify, classify, and prioritize technical debt in codebases using SQALE model and Fowler's quadrant. Guides static analysis, debt register creation, and ROI-based remediation.