audit: cycle metric-vocabulary tidy — ledger records the retired #147 deferral
Cycle-close audit (architect: drift_found, design core clean). What holds, architect-confirmed: C18 bit-identity for RunMetrics (prose derived byte-identically, rng order preserved, registry suite unchanged); the C10 wall (monomorphic R-gates, r_based in the R vocabulary, cross-vocabulary refusal tested both ways — no leak); C28 direction (trait in aura-analysis, vocabulary supplied from the outer rungs, zero Cargo edge changes); C1 determinism pinned through the generic path. Drift items, all resolved as fixes in this commit: - design ledger: the C28 #147 disposition now records item 2 SHIPPED (the A1 cut) with A2 still deliberately deferred; the #136 one-implementor clause carries a supersession note (the IC is the second implementor). - seven stale doc comments describing the pre-#147 or mid-cycle state (analysis trait + estimator docs, registry check_r_metric C9 claim, engine re-export note, campaign PER_MEMBER_METRICS roster note, member-seam guard comment, research vocabulary note) updated to the shipped state. - R_BASED_METRICS is now oracle-pinned against RunMetricKey::r_based() in the vocabulary test (it feeds the NonRMetric refusal prose; a divergence would have misreported the R-gate silently). Noted, not amended (history stays): commit 6744f67's body says 'three syntax-only edits' where the test module actually took five. No regression scripts are configured (the bench is report-only); the architect review is the gate. Verification: extended vocabulary test, campaign suites, analysis/research suites green; clippy --workspace -D warnings clean. refs #147
This commit is contained in:
@@ -236,9 +236,9 @@ pub fn permute<T>(xs: &mut [T], rng: &mut SplitMix64) {
|
||||
|
||||
/// Per-metric vocabulary a report payload supplies to the registry's
|
||||
/// ranking/deflation machinery (#147). Narrow by design (#136): exactly the
|
||||
/// surface the backtest metrics (the sole implementor so far) and the
|
||||
/// measurement IC (deflatable today via its own permutation-null path, not
|
||||
/// yet through this trait) are expected to share. The registry owns the
|
||||
/// surface the two production implementors — the backtest metrics
|
||||
/// (`RunMetrics`, centred moving-block null) and the measurement IC
|
||||
/// (within-run permutation null) — demonstrably share. The registry owns the
|
||||
/// family fold — best-of-K, p95, Laplace, dispersion floor — the payload
|
||||
/// owns what each metric IS: its name, direction, value read, and what one
|
||||
/// draw of its null statistic means.
|
||||
@@ -266,9 +266,8 @@ pub trait MetricVocabulary: Sized {
|
||||
|
||||
/// One-sided Laplace-smoothed tail estimate `(ge + 1) / (n + 1)`: the
|
||||
/// probability mass at-or-above an observed statistic given that `ge` of `n`
|
||||
/// null draws reached it. Intended as the single source of the formula the
|
||||
/// registry's R deflation arm and the CLI's IC reduction each compute inline
|
||||
/// today; wiring those call sites to this function is deferred follow-up.
|
||||
/// null draws reached it. The single source of the formula: the registry's
|
||||
/// R deflation arm and the CLI's IC reduction both call it.
|
||||
pub fn one_sided_p_laplace(ge: usize, n: usize) -> f64 {
|
||||
(ge + 1) as f64 / (n + 1) as f64
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user