D320 - the orbistoun backlog is generated and tiered by what blocks it

decided - 2026-09-03

docs/backlog/022 began as four hand-picked questions orbistoun could not answer. orbistoun's own ledger has 717 open questions across 504 functions - so four was not a backlog, it was a sample, and a console day spent against it would have answered four things.

Rewritten to carry the whole list, because the point of writing a gap down is that one sweep closes it.

Not curated - joined

The list is orbistoun-cli questions (every unverified claim in its knowledge base, ranked by how often a guest actually calls the function) joined against what this repository can call. Naming the command matters more than the snapshot: a hand-typed list is stale the day after it is written, and nobody can tell which entries went stale.

The three tiers, and why that is the right axis

The axis is what blocks the measurement, not what the function does:

tier blocked on count recorded calls
callable nothing - write the check 137 1,256,209
censused a signature 63 27,511
absent a name 303 221,203

Grouping by library or by subsystem would have read better and planned worse. These three want different work from different people: tier 1 is an afternoon of checks, tier 2 needs a lawful reference confirmed against the vendor form, tier 3 needs names added to data/surface.txt where a wrong one is a harmless false negative (D014) and costs nothing.

The join validates itself. A name cannot be both callable and censused - platform.h declares functions, surface.h declares the same identifiers as const char so the type system forbids calling them - so an overlap of zero is the check that the extraction is right. The first attempt reported an overlap of 67, which was a fact about the regex and not about the headers.

Two things to settle before the sweep, not after

The return width (orbistoun's decision 398) and the out-parameter poisoning (D303) are properties of how every check reports, not of any one check. Retiring them first means the whole of tier 1 is measured once rather than measured and then re-measured. Both are named at the bottom of the backlog for that reason.