2026-06-16-candidate-registry-robustness-sota · iteration 02 · 2026-06-16
Surveyed how 8 mature ecosystems keep a registry trustworthy, then combined them into one concrete, prioritized hardening plan for our ledger — now written into the shared-data folder.
InChIKey and DVC: identify a candidate by a content hash of its definition, not its name — so 'Permutation Entropy' and 'Ordinal Pattern Entropy' resolve to the same thing, and an exact duplicate is caught in one dictionary lookup. Borrowing from databases: make the ledger an append-only log with a file lock + atomic rename, so the parallel bigblack panes can never clobber each other (the failure class behind the old 29,908-duplicate incident).banned → promoted simply cannot happen.promoting if all three axes PASS, the verdicts are pinned to an exact data/code snapshot, and both leakage gates pass. A stale or unprovenanced verdict cannot promote — this is what makes an orthogonality claim defensible. (Two DISTINCT gates: novelty = catalogue-unique against the chronicles, the earlier dedup gate; orthogonality = information-unique against existing columns, this gate. A novel candidate is not automatically orthogonal.)findings/evolution/shared_data/REGISTRY-ROBUSTNESS-BLUEPRINT.md. Raw 8-angle evidence: registry-sota-research.json. Everything is implementable in pure Python over the JSONL — stdlib + a few pure-wheel libraries, no external services.candidate_ledger.py: the three-tier dedup funnel (content-hash → blocked lexical → optional semantic, emitting covered/unique/needs_review) and the append-only + flock + CAS + atomic-rename write path.migrate() that upgrades the existing 44 rows in place (computing content hashes + stable ids, keeping old ids as aliases)./registry:doctor and /registry:check-full per the Eon slash-command standard; emit iteration-03 HTML and re-sync the live dashboard.| # | priority | weakness today | borrowed fix |
|---|---|---|---|
| D1 | P0 | dedup is name-only (misses renamed dups, false-fires) | content-hash + blocked lexical + review band (DVC, InChIKey, Fellegi–Sunter) |
| D2 | P0 | full-file rewrite races the fleet (lost/half writes) | append-only + flock + CAS + atomic rename (event-sourcing, Stripe idempotency) |
| D3 | P1 | stage is a free string; any move is legal | FSM transition table + per-edge guards (ISO/IEC 11179, ClearML) |
| D4 | P1 | manual num collides; id tied to display number | stable opaque id from content hash, never reused (HGNC, CAS) |
| D5 | P2 | verdicts not pinned to an input snapshot | input-lock + subject digest, auto-invalidate on drift (Nix, in-toto) |
| D6 | P2 | history is a soft list, no integrity | hash-chained PROV/RO-Crate events (W3C PROV, Certificate Transparency) |
findings/evolution/shared_data/REGISTRY-ROBUSTNESS-BLUEPRINT.md · raw evidence: registry-sota-research.json (8 domains, 9 agents).