Catalogue · Imprint
How every entry in this catalogue is checked
Second edition, corrected. In force since 2026-08-14. It adds a link liveness sweep, so every entry can carry a state and not only the ones with a repository; it adds two states, NRND and WITHDRAWN, to separate “still works, do not start here” from “alive”; and it moves ACTIVE from 180 days to 90. The thresholds that changed are printed below; the entries they moved are listed on the errata leaf.
Under the first edition, 17 of the 153 entries carried a different state and 90 carried none at all, because the first edition had no link liveness sweep and could only rate entries that had a repository. The 107 entries those two changes moved are printed in full on the errata leaf, with the superseded value struck and the replacing value beside it.
The numbering rule. A new edition when a threshold, a source field or an endpoint changes — that is, when the rule changes. A new printing when only the data is re-swept — that is, when the world changes. The folio therefore reads 2ND ED., 1ST PRINTING , and the two numbers answer two different questions. Editions are counted in ordinals and dated, the way a reference work counts them, and superseded editions stay in print at /method/1 because a catalogue that deletes its old rules cannot be audited against them.
The thresholds in force, tested in this order
| State | Set when | Why that number |
|---|---|---|
| DEAD | the last HTTP check returned 400 or worse, or did not complete — or the repository has no push within 1095 days | Tested first, because an unreachable URL cannot be rescued by any other field. |
| WITHDRAWN | the URL answers with a permanent redirect to another entry | A 301 is the maintainer telling you where the work went. Nothing is inferred; the status code is the evidence. |
| ARCHIVED | GitHub archived flag is true | Unchanged from the first edition, and still outranks every date rule. |
| NRND | pushed 365–1095 days before the field check — or pushed more than 180 days ago while an entry in this registry declares it superseded and that successor is ACTIVE | Not Recommended for New Designs, borrowed from the component catalogues. The second clause is the one that catches undetected-chromedriver and the original curl-impersonate: both work, and neither is where you should start. |
| SEMI | pushed 90–365 days before the field check | The old ACTIVE bucket, split. A quarter of silence in this field is a fact worth printing. |
| ACTIVE | pushed within 90 days of the field check | Moved from 180. Detection vendors ship faster than that, so a six-month-old evasion is not current. |
| Fallback when pushed_at was not captured | the latest release date stands in for the push date | Printed as PUSHED —, with the release date carrying the derivation. Three entries in this printing use it. |
| Non-repository entries | state comes from the HTTP check alone: 200–399 is ACTIVE, 400 and worse is DEAD | A test page that answers is a test page that works. This is the clause the first edition did not have. |
What each state means when you read it
- ACTIVE — Shipping. Safe to build on today. see them
- SEMI — Alive but slowing. Watch it. see them
- NRND — Not Recommended for New Designs. Works; do not start here. see them
- WITHDRAWN — The source itself says this moved. see them
- ARCHIVED — The maintainer closed it. Historical reference only. see them
- DEAD — Unreachable, or untouched past the outer threshold. see them
The endpoints this edition reads
- GET https://api.github.com/repos/{owner}/{repo}
- GET https://api.github.com/repos/{owner}/{repo}/releases/latest
- HEAD, then GET on failure, against the listed URL, redirects not followed
Every entry's evidence drawer prints the endpoint it was read from and the instant it was read — 2026-08-14T09:12:00Z for this printing. Where an entry has a repository, the drawer also carries a button that re-runs the same GitHub request from your own browser, unauthenticated, and prints what it returns now beside what this printing recorded. A live read never changes what is printed. The site records that you pressed it, with the visit; what GitHub returned is not kept.
Two things this rubric deliberately does not do
It publishes no score and no ranking. There is no measured population of tools behind this catalogue, so there is no honest denominator for a percentile, a rarity or a rating of an entry. Every figure printed here is a date, a count, an identifier or a status code with the endpoint that produced it named beside it.
It publishes no detection-test results. No entry here has been run against Cloudflare, DataDome, Kasada, reCAPTCHA or anyone else by this register. Where a project's README claims it is undetected, the register records that the claim was made and does not repeat it as a finding.
The star-velocity note
There are no charts here and no sparklines. Where a repository's stars divided by its age in days exceeds 25 a day sustained since creation, the entry receives a plain marginal note reading VERIFY INDEPENDENTLY. Two measured numbers, one printed threshold, no accusation, and no effect on the entry's state.
The sweep, and what is not yet automated
This printing was produced by one manual sweep on 2026-08-14 , recorded in the field log with its failures. The nightly automated sweep the rubric is written for — GitHub metadata under a server-side token, plus a cross-origin liveness check for the non-repository entries — is not yet in service, and until it is, the correction date in the folio is the honest statement of how current this catalogue is. Nothing here is dated later than that check.
Questions about how these states are produced
Every answer below is a restatement of a rule printed on this page, not an addition to it.
What is the difference between an edition and a printing?
A new edition when a threshold, a source field or an endpoint changes — when the rule changes. A new printing when only the data is re-swept — when the world changes. The folio carries both, and they answer two different questions. The field log records every sweep and the superseded first edition stays in print.
Why does this registry publish no score?
Because it has tested no tool. Every number printed about an entry is a date, a count, an SPDX identifier or an HTTP status that can be re-fetched from the endpoint named beside it. A score would be an opinion wearing a number's clothes.
How long can a project be quiet before it is marked NRND?
Three hundred and sixty-five days since the last push, or one hundred and eighty days when another entry in this register declares it superseded and that successor itself reads ACTIVE. Both clauses are printed above with the exact wording that fires them, and every entry they currently reach is listed together.
What happens to an entry when the rules change under it?
Nothing is deleted. The superseded value is struck and the replacing value is printed beside it, with the field and the timestamp that produced the change, on the errata leaf for this printing. Any entry whose state was set by a superseded edition carries that note inline until it is re-swept.
Can I recompute these maintenance states myself?
That is the point of publishing the rubric at all. Take the CC0 data files, apply the thresholds above to the measured columns, and the result must agree with the printed page. Where it does not, this register is wrong and the correction is issued as an errata leaf against a named edition.
First edition, superseded 2026-08-14 · Errata leaf · Field check log · The data, CC0