SUPERSEDED: the recommendation below is withdrawn. It hides poor narrowband safety in an average score and its rho-based recovery erases remembered gain when excitation stops. Retained as a record of the earlier study only. Use paper_code_bridge_study results for the code-matching investigation. Paper 2 simple indicator changes -- 2026-10-01 Recommendation: recovery='drive', guard=0.02. All other switches/default values unchanged. Run: R = run_paper_benchmark(0.4, struct('recovery','drive','guard',0.02)); Selection and seed protocol - Original seeds: 11,12,21,22, shared between fixed/active lambda cases. - Tested 12 single changes and all 52 compatible pairs on these seeds. - Original-seed winner: drive-ratio recovery + eta_q=0.12, J=0.02368. - First holdout: add 1000,2000,3000 to each original seed (24 cases). Original-seed winner J=0.03773. Recovery alone J=0.02878. - After this failed generalization, first holdout became development data. Eight already-tested alternative pairs were evaluated on these same seeds. - Select using mean J over the original and three development seed sets. Exclude the existing soft confirmation gate from the recommendation because it introduces two constants (slope 2 and floor 0.1). It remains a comparator. Recovery + guard 0.02 wins among the evaluated eligible alternatives: development J=0.02987, including original seeds with equal weight per set. - Freeze recommendation before the final untouched offsets 4000,5000,6000. Final seeds are {4011,4012,4021,4022}, {5011,5012,5021,5022}, {6011,6012,6021,6022}. No tuning after seeing these results. Original J First holdout J Final unseen J Code as is 0.02029 0.02231 0.02597 Paper as written 0.06101 0.04365 0.04965 Recovery + slow average 0.02368 0.03773 0.02761 Recovery + guard 0.02 0.03699 0.02750 0.02907 The slow-average pair again scores well on the final seeds, but its first holdout was substantially worse. Retain the preselected guard pair. Across all seven seed sets, its mean J is 0.02953 versus 0.03139 for the slow-average pair. These are descriptive pooled results, not an additional untouched test. Final unseen metrics, averaged over three seed sets: Method Error wide Error narrow Unsafe % Rough wide Travel Code as is 0.011971 0.032876 3.551 3.124 1.329 Paper as written 0.015396 0.056556 13.678 10.904 1.824 Recovery + guard 0.02 0.015058 0.028092 7.491 11.027 2.863 Remaining gap: unsafe time, roughness, and lambda travel. The recommendation does not include smoothing. J does not penalize roughness or travel. Final per-set J for the recommendation: 0.0298,0.0248,0.0325. Exact equations are in paper_simple_equations.tex. Section 3.1.2 retains the per-bin power fit. Only its recovery condition changes. Section 3.1.4 gains the target offset h. Recovery adds no tuned parameter, guard adds only h. Parameters for recommended run New: h=0.02 (guard). Unchanged: fs=2048 Hz, Delta t=0.125 s, Tw=0.5 s, band=2--80 Hz excluding 58--62 Hz, eta_s=eta_q=0.39, eta_A=4.54, sigma_u=0.0575/4.54, l_floor=0.001, eta_g=0.12, r_g=0.73, g_th=1.75, kappa=0.625, b_tar=0.4, lambda_min=0.2, t_ref=1.5 s (12 estimator reference updates), G=logspace(log10(0.5),log10(6),25). lambda initially 1, log(g_s) initially 0. All other modifications are off. The denominator safeguard is machine eps. Definitions used for comparison J=mean absolute margin error over eight cases + mean unsafe percentage over cases 5--8 divided by 1000. Unsafe means true margin <0.38, evaluated t>=5 s. Wide/narrow errors average cases [1,2,5,6]/[3,4,7,8]. Roughness is the mean wideband 1000*median(abs(second difference of estimated margin)). Use exactly the supplied runner's chordal loop margin and second-smallest estimator-bin reduction. These results concern this benchmark and its noise seeds, not a proof of safety or other plants/excitation regimes. Artifacts and reproduction - paper_simple_search.csv: all 105 evaluated method/stage rows. - paper_simple_search.mat: one top-level result struct, options, seed-wise metrics and saved per-case tables. Original single/pair tables can be regenerated from the runner without changing the benchmark. - run_paper_benchmark_seeds.m: copy of runner, changes RNG offset and save behavior only. Offset zero matches the original runner exactly. - paper_simple_search.m: run stages single 1:14, pair 1:52, holdout 1:15, develop 1:8, final 1:16, in order. 'holdout' stores the first validation, subsequently reused as development data, not the final unseen evaluation. - paper_simple_baseline.mat: saved as-written baseline before these edits. Checks: as-written output unchanged exactly; seed-copy offset zero matches that baseline exactly; Code Analyzer has zero notices for all changed/new MATLAB source files. No changes to main checkout main/, manuscript or builder. No physical workflows or commits.