โ€บNavigation

iteration 03 ยท probes built

Parameterless + agnostic probes (runnable)

Two new static/oracle probes, runnable locally on synthetic fixtures like test_leakage.py. Outputs are committed evidence in the audit folder.

Parameterless probe โ€” AST + constants registry

Replaces by-hand "inspection" with a static gate: scan for literals + estimator kwargs + dispatch, classify each against constants_registry.toml (derived / project_wide OK; feature_tunable / inline-literal BLOCK).

candidate implverdictwhy
build_candidate_registry โ†’ bar_svd_entropyPASSreferences project-wide SVD_ORDER / SVD_DELAY
hjorth / petrosian / katz candidatesPASSno literals of concern
codec_foci_eval.add_antropy (same feature)FAILinline order=3/delay=1 + LOOKBACK/LOOKBACK_COUNT drift

Same feature (svd_entropy) is parameterless when pinned to the project-wide constant, non-promotable when it hardcodes its own order/delay โ€” the exact knob to veto.

Agnostic probe โ€” algorithm-invariance

testcaseverdictnumber
A no-dispatchif len>=500: app else permFAILestimator dispatch
B oraclehjorth_mobility (two formulas)PASSabs_diff 6.9e-18
B oraclepetrosian_fd (two counts)PASSabs_diff 0.0
B oracleembedding_entropy order 3 vs 4 (unpinned)FAILrel_diff 3.3%
C doc/codedeclared DFA vs implemented R/SFAILfamily {dfa} โ‰  {rs}
The TEST B FAIL links the axes: the same feature diverges across two correct implementations because its embedding order isn't pinned to the project-wide constant โ€” an unpinned parameter is a parameterless FAIL and an agnostic FAIL.