skills/absolute-debt/SKILL.md
Lint and typecheck debt paydown: clear pre-existing repo-wide lint/type violations and suppressions (@ts-ignore, # type: ignore) one rule per wave, fixing causes not symptoms. Runs on green main. For diff-scoped quality use absolute-simplify. Triggers on "absolute debt", "fix our lint warnings", "clear the type errors", "get to strict mode", "burn down suppressions".
npx skillsauth add absolutelyskilled/absolutelyskilled absolute-debtInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Start your first response with the 🧾 emoji.
Pay down accumulated lint and type-checker debt across the repo — existing warnings,
errors, and suppressions that built up over time — in safe waves, by rule, with tests green
after each. The goal is a genuinely clean lint + typecheck, not a quieter one.
Runs the shared engine in references/health-engine.md — read it for the
DETECT → SCAN → TRIAGE → FIX → VERIFY → REPORT loop and the safety contract. This file
covers only what's specific to lint/type debt.
tsconfig strictness) and clearing the fallout.eslint-disable / @ts-ignore / # type: ignore suppressions.debt vs simplify: simplify improves your working diff's quality. debt clears
pre-existing repo-wide lint/type violations on green main. Use debt for standing
cleanup, not for changes you're actively making.
| Ecosystem | Lint debt | Type debt |
|---|---|---|
| JS/TS | eslint . (full report, by rule) | tsc --noEmit |
| Python | ruff check / flake8 | mypy / pyright |
| Go | golangci-lint run | go vet ./..., staticcheck |
Also inventory suppressions as debt in their own right: eslint-disable*,
@ts-ignore/@ts-expect-error, # type: ignore, # noqa, //nolint. Each is a hidden
violation. Count violations grouped by rule (not by file) — that's how you wave them.
| Wave | Class | Default |
|---|---|---|
| 1 | autofixable lint (eslint --fix, ruff --fix, gofmt) | fix now — mechanical, safe |
| 2 | manual lint by rule, low behavioral risk (unused, style, imports) | fix this pass, one rule at a time |
| 3 | type errors, and lint rules that can change behavior if "fixed" wrong | gated — review each, may need real logic |
| 4 | removing suppressions (@ts-ignore etc.) | gated — each may surface a real bug |
Fix one rule across the repo per wave, not one file across all rules — keeps diffs reviewable and regressions bisectable. Config tightening (enable rule / raise strictness) is itself a finding: propose it, then clear what it surfaces.
any/add # type: ignore.@ts-ignore to clear a type error adds debt. Forbidden here.any / cast to win. Silences the checker, keeps the bug. Fix the real type.--fix can change behavior (e.g. prefer-const on a
reassigned var via a bug). Run tests after autofix too./absolute simplify — quality of code you're currently changing./absolute prune — many unused-var/import warnings vanish once dead code is pruned./absolute work — if clearing the debt needs real refactoring, hand off.development
Use when the user wants to simplify, clean up, refactor, tidy, or refine code — their staged/unstaged git changes or a target file/path. Reduces complexity, flattens nesting, removes redundancy and dead code, scores each change by value (holding low-value churn), then runs tests to prove nothing broke. Invoke on: "simplify", "simplify this", "simplify my code/changes", "clean up", "clean this up", "clean up my changes", "refactor this", "make this cleaner", "tidy this up", "reduce complexity", "flatten this", "remove dead code", "make it more readable", "polish before commit", or "absolute simplify". Acts on your working diff; for repo-wide dead code use absolute-prune; for lint/type debt use absolute-debt.
testing
Dependency upgrades: outdated/vulnerable deps planned into semver waves (patch/minor batched, majors gated and changelog-read), applied incrementally with lockfiles regenerated and tests green after each. Runs on green main. Triggers on "absolute upgrade", "upgrade our dependencies", "bump deps", "update packages", "move off the deprecated X", "clear the Dependabot backlog".
development
Lightweight standalone design spec for AI coding agents: codebase scan → bounded clarify pass (3–5 questions, not a grill) → reviewed design doc written to docs/plans/ → independent scored review → stop. No task board, no build. Use when you want a spec to discuss, hand off, or review before committing to implementation. Chains into absolute-work when ready to build. Triggers on "absolute spec", "write a spec", "spec out this feature", "draft a design doc", "I want a spec to hand off / review, don't build it yet".
tools
Dead code and dependency cleanup, repo-wide: unused deps, unreferenced exports, unreachable code, orphaned files — removed only with tool evidence, in reversible waves. Runs on green main. For diff-scoped cleanup use absolute-simplify. Triggers on "absolute prune", "remove dead code", "find unused deps/exports", "what can we delete", "clean up orphaned files".