afcp(): thin Average Feature Choice Probability estimator over a matchup. se_type now defaults to NULL, deferring to lm_robust()’s own default (CR2 when clustered, HC2 otherwise); the previous hard-coded "stata" silently changed the standard errors. New min_clusters argument (default 2) drops groups with too few clusters to estimate, matching the study-level behavior in the meta-analysis pipeline. Validated to reproduce the paper’s Shiny-app estimates bit-for-bit on the full 163-study corpus.
Bug fix: get_matchups() with an unconstrained side (an empty A or B list) no longer errors with phantom _1/_2 columns (a paste0() zero-length recycling gotcha).
Bug fix: afcp() now drops a degenerate study (e.g. a single cluster) whose fit returns unusable components, instead of erroring during coefficient extraction; the tryCatch covers extraction, not just the model fit.
Test coverage raised to ~99% (added tests for weights, unconstrained-side matchups, degenerate-fit handling, and the input-validation error paths).