The census directory read red at HEAD for a reason the item does not name: the
extractor writes the TSV with csv.writer(delimiter='\t') (QUOTE_MINIMAL), and the
CHECK read it back with line.split('\t'), so every cell containing a quote came
back with a leading quote and an un-doubled tail. 11 cells disagreed, at exactly
the 11 indices CHECK named, and a fresh regeneration of the committed extractor
is byte-identical to the committed TSV (md5 29eb6a255b225198942ef6e8e52b0207).
check_workqueue_census.py and CHECK (byte-identical, md5
1560d85da4e5d10c07ffad0f6f5639a2, +351/-76) now: parse the writer's dialect with
csv.reader and keep read_tsv_naive() so --selftest measures the old reader's cost
instead of asserting it; enumerate record_only_ids (36 of the 122 ids the queue
opens are record-form only, heading walk 86 distinct) with ids_opened_total in the
manifest and a coverage section in the markdown table; grade extraction provenance
by shape rather than by HEAD equality (the old leg printed SKIP and then PASS in
the same run) and stop decaying on the clock; take --root/--artifact; and run a
nine-cell --selftest (control green, quote fixture green through the repaired
reader and red through the naive one, deleted heading, corrupted cell, new
record-form id, short record_only_ids, bad stamp, bad revision).
Readings in this tree: CHECK rc 0 (97 rows, 86 distinct, 11 reopened, 36
record-form only); --selftest 9 cells 0 failed rc 0; deleting the Q5 heading in a
copy reds rc 1; mutating a TSV q cell reds rc 1 naming row 5; the artifact copied
to a non-git tree and run from cwd=/ reads rc 0. Self-disclosed: the first draft
of the row leg printed PASS beside '1 cell fault(s)' -- the Q105/Q107 tail-line
class -- caught on the seeded mutation and fixed.
Also lands the Q119 DONE record, whose artifacts are the commit above.
README — workqueue-census
Extract lane: data extraction and tables. One row per ## Q<n> heading in
WORK-QUEUE.md.
Files
- workqueue-census.tsv : tab-separated census (one row per Q heading).
- workqueue-census.md : markdown table of the same rows.
- extract_manifest.json: schema, counts, provenance.
- CHECK : independent verifier (re-derives expected rows from WORK-QUEUE.md; does NOT import this extractor).
Conventions
- A row is created for every line matching '## ...' where is 'Q' followed by digits (continuation labels such as closure, section 9 follow-on, verified, claimed are kept verbatim in the title).
- q : the label 'Q' (dupes kept as separate rows).
- title : verbatim heading text after '## ' (trimmed).
- status : the first '**Status:' line in the block, whitespace collapsed, truncated at the first sentence end, single trailing period; empty when no such marker precedes the next heading.
- done_implies : the first '**Done means:' line in the block, trimmed.
- record_only_ids : ids that open a record in bold-lead form (
**Qnn -- ...or**Qnn (lane) -- OPEN) and have no '## Qnn' heading. A heading-only walk cannot see them, so no table row is created for one (it has no heading title and no block bounds); the manifest carries the list and the markdown table states the coverage it implies. - ids_opened_total : how many distinct ids the queue opens in any form, so rows x record_only_ids x ids_opened_total reconcile in CHECK.
Run
python3 extract_workqueue_census.py # regenerate python3 CHECK # verify against the source