One claim per row, with the number that makes it falsifiable.

A ledger rather than a blog: each row is a sentence you could argue with in a design review, and a status saying how far I have actually taken it.

Test rig · 4 vCPU · 7.6 GB · no GPU Specs read 1 Nov 2026 · 2 claims · 0 measured

01 / Ledger

The ledger

0.98recall@10

A vector index sitting at recall@10 = 0.98 can still ship a search system that feels broken, because recall@k measures fidelity to brute force over your own embedding space, not whether the right answer is in that space at all.

Preliminary Argued 12 May 2026 ↗

50Mvectors

Past roughly 50 million vectors the HNSW index stops being the hard part. Shard semantically and the shard router becomes a second layer of approximate search: it fails silently, and it accounts for most of the recall loss.

Preliminary Argued 5 May 2026 ↗

02 / Status

What each status means

Measured

I ran it on the box named above, and the raw rows, the scripts and the chart regenerated from them are published alongside the claim.

Preliminary

I argued it in writing and have not tested it. Both rows in the ledger are preliminary. Nothing here is measured yet, and a page that promised numbers it did not have would be the opposite of the point.

Retracted

I was wrong, and the corrected number is in the row. Retractions stay on the page. A number I corrected is worth more to you than a number I quietly deleted.

03 / Corrections

What I got wrong

None yet

The first time a number on this page changes, the old one stays here with the date it was published, what replaced it, and what found the error. Rows are corrected in place and marked Retracted; nothing is quietly deleted. An empty section here is a commitment, not an achievement — the ledger is two rows old.

04 / Method

How a row gets here

A claim earns a row when it is a single sentence, contains a number, and names the condition the number holds under. It becomes measured when the run exists: fixed hardware, pinned versions, a stated dataset and repetition count, the raw rows committed, and the chart regenerated from them rather than drawn by hand.

Limitations go above the reproduction command, not below it, and there are always three of them. That is where the judgement is; a method section only shows diligence.