alterlab-results-transparency — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited alterlab-results-transparency (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Skill type: DISCIPLINE-ENFORCING. This skill is not a how-to for running statistics. It is a gate that stands between analyses you ran and the sentence you are about to write in the Results section. It exists to stop the single most common integrity failure in quantitative write-ups: reporting the analyses that "worked" and quietly dropping the rest.
It orchestrates, it does not reimplement:
checks assumptions (its alterlab-statistical-analysis/scripts/assumption_checks.py), computes effect sizes and CIs, and produces the APA-formatted numbers. This skill checks that those outputs are all present and disclosed before a claim is written.
frozen plan. This skill checks that confirmatory claims match it and that deviations are labelled.
registration links, data/code availability).
only enforces reporting completeness.
NO RESULTS CLAIM WITHOUT REPORTING EVERY ANALYSIS RUNViolating the letter of full reporting is violating the spirit of the science. "Reporting every analysis" means every test you actually executed against the data for this hypothesis — including the ones that returned p > .05, the specification you abandoned, and the outlier rule you tried first. A Results section is a census of what you did, not a highlight reel of what confirmed you.
Invoke it the moment a results claim is being written or defended:
If you are choosing which test to run, checking assumptions, or computing an effect size, that is alterlab-statistical-analysis — come back here when you move from computing numbers to claiming findings.
| The request is really about… | Route to |
|---|---|
| Choosing/running a test, assumption checks, computing effect size or CI | alterlab-statistical-analysis |
| Whether the analysis plan was frozen before data; HARKing / optional stopping | alterlab-preregistration-discipline |
| Picking the right test before seeing the p-value (test-shopping guard) | alterlab-test-selection-guard |
| Where/how to disclose: TOP Guidelines, registration link, data/code availability | alterlab-open-science |
| Judging evidence quality (GRADE, risk of bias, confounding, design validity) | alterlab-scientific-thinking |
| Verifying cited references exist / are not fabricated | alterlab-citation-verifier |
| Section-by-section peer review and an accept/revise/reject verdict | alterlab-paper-reviewer |
| Drafting the full IMRaD manuscript from a finished synthesis | alterlab-paper-writer |
| Writing the grant's final/technical report narrative | alterlab-grant-reporting |
Before any results claim is written, run these steps in order. This mirrors the verification-before-completion gate (obra/superpowers): evidence before assertions, always.
including the ones that did not "work" (p > .05, abandoned specs, alternative exclusion rules). If the list has more entries than the write-up mentions, STOP — the gap is selective reporting.
results from alterlab-statistical-analysis/scripts/assumption_checks.py (normality, homogeneity, linearity, outliers) must appear in the write-up, with the remediation taken if any were violated.
95% confidence interval*, not a bare p-value. A p-value alone never clears the gate (see the sufficiency table).
frozen plan (alterlab-preregistration-discipline) is named and labelled confirmatory vs. exploratory.
p, effect size + CI, and the confirmatory/exploratory label.
A self-contained checker that enforces steps 2–5 over a small JSON manifest of the claim is scripts/reporting_gate.py (stdlib only; see Quick Start).
Analogous to the verification-gap table: the left column does not clear the gate; the right column is the actual requirement.
| Looks done (NOT sufficient) | Actual requirement to clear the gate |
|---|---|
| "p < .05" | Test name, statistic, df, exact p, effect size + 95% CI |
| "the effect was significant" | The direction, magnitude (effect size + CI), and the n it rests on |
| Only the significant tests shown | Every test run on this hypothesis, significant or not |
| "assumptions were fine" | The reported normality / homogeneity / linearity / outlier results |
| Results match the paper's story | Results match the frozen plan, with deviations labelled exploratory |
| "we removed outliers" | The pre-specified rule, or a sensitivity analysis with and without them |
Seeded from the rationalizations that precede selective reporting. When you hear yourself think the left column, the right column is the truth.
| Excuse | Reality |
|---|---|
| "I'll just report the analyses that worked." | The ones that did not work are data. Omitting them is selective reporting — report all planned analyses, significant or not. |
| "It's only a p-value, the effect size is obvious." | A bare p-value is not interpretable. Effect size + 95% CI is mandatory; existence is not magnitude. |
| "We dropped 3 outliers so the test would pass." | Outlier rules must be pre-specified or reported as a sensitivity analysis — not chosen because they flip significance. |
| "The covariate obviously belongs in the model." | A covariate added after seeing the result is a researcher degree of freedom. Pre-specify it or label the model exploratory. |
| "We switched to a non-parametric test, it's more appropriate." | If you switched after the parametric test was non-significant, that is test-shopping. Decide before, via alterlab-test-selection-guard. |
| "This subgroup is interesting (we didn't predict it)." | Unplanned subgroups are exploratory. Report them as hypothesis-generating, never as confirmatory. |
| "Reporting the failed analyses will confuse readers." | A supplementary table of all analyses run is standard transparency (TOP). Clarity is not a license to hide. |
| "The pre-registration was too rigid; I'm following the scientific spirit." | Iterate in the exploratory section. The confirmatory claim needs the frozen plan. |
If you catch yourself thinking any of these, STOP. You are about to exploit a researcher degree of freedom. Either report it in full or label it exploratory.
All of these mean: STOP. Run the Gate Function. Report everything, or label it exploratory.
Mirrors the systematic-debugging "3 failures = wrong approach" rule:
Ran 3+ tests on the same hypothesis searching for significance? STOP. This is multiple comparisons / test-shopping. Either correct for all of them (Bonferroni / FDR — via alterlab-statistical-analysis) or declare the analysis exploratory. Do not run test #4 to find p < .05.# 1. Build a tiny manifest of the claim and what was actually run (see references).
# 2. Run the gate; non-zero exit = claim is not clear to write.
uv run python skills/methodology/alterlab-results-transparency/scripts/reporting_gate.py claim.jsonThe script is a deterministic transparency linter, not a statistics engine: it checks that the manifest lists all runs, that an effect size + CI accompany every reported claim, that assumption results are present, and that deviations are labelled. It never computes a p-value or an effect size — that is alterlab-statistical-analysis's job.
references/gate_function.md — the full gate walkthrough, the claim-manifestschema, and a worked pass/fail example.
references/transparency_standards.md — what a complete Results reportcontains (CONSORT 2025/STROBE results items, the TOP 2025 Results Transparency check, APA results requirements) and how this skill maps onto sibling skills.
alterlab-statistical-analysis reported?Part of the AlterLab Academic Skills suite.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.