context debt /ˈkɒn.tekst det/ · n. — the expired code your AI reads, and you pay for, every day

Your AI reads expired code. You pay for it.

Workarounds for bugs fixed upstream years ago. Polyfills for browsers you dropped. Retries tuned for defaults that no longer exist. The reason died — the code stayed. Now your agents read it on every task, learn from it, and bill you for it.

OUT NOW
Read The Context Debt Report →
1,813 of the most-starred repositories on GitHub. 201 million lines. 978 cited issues checked — 679 of those fixes had already shipped, a median of 4.2 years ago. Every claim published as data and re-checked before every publish.
You're on the list. The next report lands in your inbox first.

The next one will be found by the watcher, not by hand — those 1,813 repositories are being re-checked as the issues their workarounds cite get closed. No spam, ever.

OR SEE YOURS RIGHT NOW — FREE, RUNS LOCALLY
npx contextdebt
Scans your repo for self-admitted workarounds and flags the ones whose cited issues are already closed. Your code never leaves your machine.

Receipts

This is real. We checked.

Every diagnosis comes with an evidence chain: the commit that created it, the upstream cause, and the proof that the cause is dead.

axios · ~50M downloads/week Still checks whether you're running Internet Explorer. On every page load. In 2026. Added Nov 2015 for an IE port quirk · IE retired Jun 2022 · carefully carried over in a 2024 refactor
express · the web framework Ships a workaround for a V8 bug from 2016. We benchmarked it on Node 22: 0.0% difference. Commit f90f9dde · V8 issue #4730 · dead for years, dodged on every res.json()
cal.com · Ghost · directus Workarounds referencing upstream issues that closed in 2021, 2016 and 2022 — still shipping today. Next.js #8592 at 4 call sites · buffer PR #148 merged Dec 2016 · rollup #1329
20
repos scanned so far
5.5M
lines of production code
491
self-admitted workarounds ("until we upgrade…")
3/3
sampled upstream issues: already fixed, years ago

How it works

Flag fast. Diagnose slow.

01 · LEAD

The code testifies

Markers, cited issues, dates — your codebase already confesses which lines exist because of somebody else's bug. A comment is testimony: people can write anything, or nothing. So a lead opens a case. It never closes one. What a returnable note looks like →

02 · EVIDENCE

Facts that cannot lie

Your lockfile. The shipped artifact. The vendor's own end-of-life record. Even a closed issue is only testimony — someone clicked a button — so the case advances on evidence matched against the versions you actually run, and nothing else.

03 · DIAGNOSIS

Sure over fast

A diagnosis needs independent evidence agreeing and a human reading the code in place. It ships with its receipts: origin commit, upstream cause, proof the cause is dead, your own tests passing without it. Code that survived fifteen years can wait a week for that.

We never ask you to trust a diff. We hand you the evidence and you press the button. No auto-merge. Ever.