Install
openclaw skills install @ivangdavila/tech-debtReckless versus prudent categorization, tracking the inventory, and a payoff cadence that does not freeze delivery.
openclaw skills install @ivangdavila/tech-debtThe quadrant that matters is reckless vs prudent; the deliberate/inadvertent split is post-hoc. The #1 adds the axis that drives action: does the debt accrue interest?
Every item carries three. The #1 ranks with all three; the #1000 ranks by gut annoyance.
A debt register is a living doc, not tickets scattered among features. The #1 maintains one; the #1000 keeps debt "in our heads."
debt label AND keep the aggregate register. Tracker-only scatters debt among features and hides it; register-only rots because engineers do not live there. Both: tickets for execution, register for the view.The #1 amortizes continuously; the #1000 oscillates between "ship only features" and "stop everything to clean up." Both ends of that oscillation are failures.
Each type has a different interest curve and fix order. Know the type before choosing the play.
The #1 reads the interest from behavior, not from a complexity dashboard. Metrics are lagging; behavior is current.
The #1000 pays debt to feel clean; the #1 pays it to unblock a specific future move or to stop a measured bleed. Refuse to pay when:
Default: refactor. Rewrite is the trap that keeps giving. The conditions for rewrite are narrow and all must hold.
The financial metaphor is for non-engineers; for engineers it is a prioritization frame. Know where it buys alignment and where it breaks.
| Situation | Play |
|---|---|
| PM won't approve cleanup time | Don't ask for a debt sprint. Price the fork: "feature Y is 8 days as-is, 5 days if we first fix auth." The ~15-25% allocation lives inside feature estimates, not a separate ask. |
| A module nobody wants to touch | Measure cycle time + bug rate there. If both trend up it is accruing interest: schedule payoff tied to the next feature that touches it, characterization tests first. |
| Inherited codebase, no tests | Don't refactor first. Ship the next feature behind a characterization test on the behavior you depend on; build the harness incrementally. A big "add tests" effort stalls. |
| New tech lead proposes a rewrite | Default to refactor + strangler. Rewrite only if the seam is fundamentally wrong, the old can run in parallel, and there is a migration path. Parity-first scope. |
| Flaky tests are everywhere | Fix order: flaky first (they poison the signal), then speed (> ~10 min pushes skips), then coverage in the scary module. Never disable a flaky test. |
| A dependency is going EOL | Forced payoff with a deadline. Schedule 1-2 quarters before the EOL date; security overrides the queue. Not optional debt. |
| Two teams duplicated the same service | Only pay if both copies are still evolving. If one is frozen, leave it; the coupling from extracting is not worth it. Rule of three before extracting. |
| Register has 200 items, nothing gets paid | It is a graveyard. Triage to ~10-20 items with triggers and carry costs; archive the rest. A long register demoralizes; a short acted-on one pays. |
| "We'll clean it up after launch" | Get a date and an owner in the plan now, or treat the debt as permanent. Without both, the promise is rarely honored. |
| Velocity dropped, team "got slower" | Check whether the drop tracks a module that got harder to change. 20-30% throughput drop on similar scope in 6-12 months with stable headcount = debt, not morale. |
| A refactor PR touches 50 files | Reject or split. One concern per commit; bundled "cleanup" hides bugs and blocks review. |
debt-labeled tickets for execution, a register for the aggregate view and prioritization. One without the other fails in opposite directions.Install with clawhub install <slug> if the user confirms:
legacy-code - inherited codebases and the no-tests scenario where characterization tests pin behavior before any payoffrefactoring - the extract, rename, and strangler-fig mechanics behind every payoff that is not a rewritetdd - test debt, characterization tests, and the suite health that test debt erodesreview-code - the review surface where debt is caught at merge and "fix now vs record" gets decidedci-cd - the test and staged-rollout safety net that makes payoff low-regression-risk