Backlog Roast
Back to the grill

A little heat.
A useful next step.

Backlog Roast reads a bounded sample of public GitHub issues, finds the joke in the unfinished work, and gives you a starting point with the evidence behind it.

Built by @mach_builds, a developer who wanted a funny backlog review worth checking. Free, with no account, email collection or follow requirement.

What we actually read

Up to 50 open issues from at most three GitHub feed pages, ordered by recent updates. Pull requests are filtered out. This is not a representative sample of the whole backlog. GitHub's repository open count includes pull requests, so we never turn it into an issue coverage percentage.

Issue bodies, README text and a shallow list of paths are bounded. A path outside that list is unobserved, not necessarily missing. Each receipt links model output to a supplied source excerpt. A valid citation alone does not prove the interpretation is correct.

How grades work

The tonight count includes only supported judgments. Unknown issues remain in the displayed sample size. A provider failure is not a verdict about the backlog and has no effort estimate.

Method receipts-v2 withholds a grade if any sampled issue lacks a supported judgment. Otherwise the deterministic joke grade starts at 75, adds up to 25 for the share of bounded coding work, and subtracts up to 25 for suggested closures, 25 for median issue age, 20 for the share over a year old, and 10 for issues over 90 days with at least 10 upvotes. Archived repositories lose 10 points. Unknown dates receive half of the age penalties, weighted by their share. Age and popularity do not prove neglect.

S starts at 90, A at 80, B at 70, C at 55, D at 35, and F below 35. A known empty issue and PR queue scores 100 before archival adjustment. An empty bounded sample with an unknown or positive open-item count is ungraded. These are product rules for a joke, not statistical confidence or a measure of maintainer ability.

Old saved grades stay unchanged and are labeled legacy. Battle requires matching mode and methodology, equally sized nonempty samples, complete judgments and no partial flag. Otherwise it has no winner.

One useful next step

“Start with this issue” ranks available evidence and a checkable plan, not the smallest minute estimate. Handoffs include the issue, timestamp, goal, unknowns and verification steps. Read local instructions, the current issue and relevant code first. Investigation and proposed closure do not authorize edits, comments or closing anything.

What changed?

A recheck happens only when you request it. It reads one issue and bounded public history, with no AI call. Each observation keeps its own timestamp. Closed does not prove a fix or release, and we never claim credit for someone else's work. Incomplete history cannot establish that nothing happened.

Snapshots and removal

Versioned links, text, cards and exports use the same saved analysis. A later roast creates a separate snapshot. Visits, social crawlers, image downloads and badges never start paid analysis.

Owners can remove a repository or account by proving control with a public topic or file. Removing a whole organization needs a marker in its profile description instead. A live opt-out deletes results and blocks historical receipts, observations, exports and new analysis. Demo verification only affects demo data. Images already downloaded or cached elsewhere cannot be recalled.

Privacy

We store public repository metadata, sampled issue titles, dates, labels, bounded source excerpts (at most 500 characters of each body or README excerpt), validated judgments, prompts and observations. We do not store full issue bodies or full README files. Live analysis sends bounded public excerpts to OpenRouter and its configured model provider. Repository content is untrusted data and never runs on our server.

IP abuse limits use keyed hashes, not raw addresses. Analytics removes query strings and fragments and excludes removal pages. Allowed events contain only public repository names, issue numbers and finite action labels. No issue bodies, prompts, emails, fingerprints or cross-device identifiers are sent. Buttons report intent, not a published post, completed download, follow or completed fix.

Vercel custom events require a compatible plan and an explicit configuration check. Without that setup, analytics is disabled. Bots, self-visits, ad blockers and lost referrers prevent exact attribution or a reliable count of unique people.

Demo results contain invented issues and mock judgments. Live model quality, hosted database behavior and production analytics delivery need separate verification.

Backlog Roast is not affiliated with GitHub or OpenAI. Codex is a trademark of OpenAI.