โ€บNavigation
Closing reconciliation

Asked to stop the research loop from re-testing feature ideas it had already tested. Came back with an automatic have-we-seen-this-before filter plus a registry that cannot be silently corrupted, promoted without evidence, or edited behind your back.

What it measured
QuantityValueMeaning
Iterations closed11 of 11every manifest row marked done
Catalog covered44 rowsprovenance hash and chained history backfilled onto all 44
Novelty-engine self-tests8 of 8 on the live catalogexact, case/space, alias, novel, abbreviation, sibling-distinctness
Detection funnel3 tiers; lexical bands >= 95 / 85-95 / < 85duplicate / human-review gray zone / new
Robustness dimensions implemented6 of 6 (D1-D6) plus structural validation and Tier-3full blueprint
Ecosystems surveyed8source material for the blueprint
How it ran
FiringWhat it did
02Surveyed 8 mature ecosystems and turned them into one prioritized hardening plan
03Operator caught a conflation of novelty and orthogonality; every artifact corrected
04Three-tier duplicate-detection engine shipped, stdlib only, checked against the real catalog
06Illegal stage jumps refused; every row stamped with a content-identity hash
09A candidate can no longer be promoted on a stale or unprovenanced verdict
11Abbreviation synonyms now flagged for review instead of slipping through as new
What it produced
Carries forward

Iteration 11's own recommendation: review and merge PR #535 and stop the loop. Remaining work is polish only โ€” extend the abbreviation map as new families appear; an embedding-based semantic tier stays optional behind the same gate. The 44 existing ids were deliberately not re-minted because content identity already lives in spec_hash.

Why it is closed

'Semantic Tier-3 (abbreviation expansion) โ€” the last gap closed, blueprint complete.' All 11 manifest rows read DONE; the iter-11 page recommends closing the campaign.

Lifecycle status is process state, not a judgement of the findings. Results are stated as numbers with their uncertainty. Generated between CLOSING-RECONCILIATION markers โ€” regenerate rather than edit.

Dashboard โ€บ Three-Axis Probes โ€บ Candidate Registry Robustness

opendeviationbar-py ยท three-axis probes ยท loop campaign

Candidate Registry Robustness

A self-paced loop that makes the candidate registry โ€” the sign-in sheet that tracks every feature idea stage-by-stage โ€” more robust, and turns the slow manual "is this already covered?" check into a fast, automatic, evidence-backed pre-filter. Each iteration below explains, in plain language, what has been grounded, what is next, and how it moves us toward finding new orthogonal features.

Why this matters: the expensive step is testing a candidate for orthogonality on real market data. Re-testing something we already shipped or ruled out is pure waste. This loop guarantees that before any candidate reaches that step it is proven catalogue-unique (not already in the project) and carries an explicit lifecycle status.

Iterations

#iterationstatusheadline
01Grounding the registry + standing up the campaignDONEMapped the whole candidate-tracking system end-to-end and stood up this loop's dashboard so every step is visible.
02SOTA research synthesized into a robustness blueprintDONESurveyed 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.
03Operator steer โ€” Novelty โ‰  Orthogonality (terminology locked)DONEThe operator caught a conflation in iteration 02: novelty and orthogonality are two DISTINCT gates. Locked the definition and corrected every artifact that blurred them.
04P0 shipped โ€” the novelty gate is now runnable, tested codeDONEBuilt the three-tier novelty dedup engine (the fast catalogue-uniqueness pre-filter) as a stdlib-only module and verified it against the real 44-candidate catalog โ€” 8/8 checks pass.
05Novelty gate wired into the ledger + fleet-safe writes (D2)DONEAdding a candidate now AUTO-runs the novelty check and records the result, and the ledger can no longer be corrupted or lose appends when multiple sessions write at once โ€” verified end-to-end without touching the real ledger.
06Lifecycle moves now policed (D3) + provenance backfilled onto all 44 rowsDONEStage changes are now checked against a legal transition table (illegal jumps are refused), and every existing candidate was stamped with a content-identity hash so the dedup system covers the whole catalog.
07Promotion machine-enforced + the registry is now /registry:* commandsDONEA candidate can no longer be promoted without evidence, and every registry capability is now a discoverable slash command with a one-glance health check โ€” making the PR capability-complete per the Eon standard.
08Tamper-evident, hash-chained history (P2/D6)DONEEvery change to a candidate is now a hash-chained event โ€” editing any past entry out-of-band breaks the chain and the registry detects it. Backfilled onto all 44 rows and verified.
09Verdicts pinned to a data/code snapshot โ€” evidence before promotion (P2/D5)DONEA candidate can no longer be promoted on a stale or unprovenanced verdict: each axis verdict is now bound to the exact data + code that produced it, and promotion requires that pin to be complete.
10Collision-proof IDs + typo-proof validation + a README โ€” blueprint substantially completeDONENew candidates now get a collision-proof id automatically, stray/typo fields are rejected, and a README ties the whole subsystem together. All six robustness dimensions are implemented.
11Semantic Tier-3 (abbreviation expansion) โ€” the last gap closed, blueprint completeDONEThe novelty gate now also catches abbreviation synonyms (e.g. A-MF-DFA โ‰ก Asymmetric MF-DFA) โ€” dependency-free, conservative, flag-for-review. Every blueprint dimension is now implemented.

The end goal (so direction is checkable)

Discover new orthogonal candidate features for the Open Deviation Bar, cheaply and without duplication. This campaign hardens the registry and the coverage check that gate the discovery loop โ€” if an iteration is not making that pre-filter faster, more robust, or better tracked, the loop is off-course.