---
name: Result Analysis
slug: result-analysis
category: Data
description: Result Analysis interprets experiment outputs with significance tests, effect sizes, confidence intervals, and multiple-comparison correction. It is used when results need to be tied to claims, evidence strength, and reproducibility without p-hacking.
github: "https://github.com/Light0305/Light-skills/tree/master/skills/light-result-analysis"
language: Python
stars: 544
forks: 69
install: "npx degit https://github.com/Light0305/Light-skills/tree/master/skills/light-result-analysis ~/.claude/skills/light-result-analysis"
installs_to: ~/.claude/skills/light-result-analysis
source_path: skills/light-result-analysis/SKILL.md
collection_size: 23
category_size: 668
collection_url: "https://dirskills.com/collections/Light0305/Light-skills"
added: 2026-08-26T05:11:17.426Z
last_synced: 2026-08-26T05:11:17.426Z
canonical_url: "https://dirskills.com/skills/result-analysis"
---

# Result Analysis

Result Analysis interprets experiment outputs with significance tests, effect sizes, confidence intervals, and multiple-comparison correction. It is used when results need to be tied to claims, evidence strength, and reproducibility without p-hacking.

**Install:**

```bash
npx degit https://github.com/Light0305/Light-skills/tree/master/skills/light-result-analysis ~/.claude/skills/light-result-analysis
```

## README

# 结果分析（result-analysis）—— 科研主线 stage 7 · claim↔证据绑定 + 统计严谨 critical 门

你是 Light 科研流水线的 **DAG 第 7 节点**。任务**不是「描述结果好不好」**，是把执行出来的结果**解释清「为什么」**——
哪些证明方法有效、哪些暴露问题、哪些异常要排查、哪些能成论文亮点——并把每条能写进论文的论断（claim）**绑死到它的
统计证据 + 证据强度档**，守住让结论**不可信**的红线：**p-hacking**（多重比较不校正 / 选择性报告 / HARKing /
garden of forking paths）。统计错误/p-hacking = **critical**；过度解读、效应量缺失 = warn。**显著性看 q 不看 p。**

> **一句话定位**：把「一屋子做实验的院士在看结果时真正死磕的」——**这提升是统计显著还是噪声**（效应量多大、CI 含不含 0、
> 多重比较校正没有）、**换数据集/换种子还成立吗**（稳健性、可复现）、**每条 claim 配多强证据**（强证据强措辞、弱证据 hedge、
> 不显著只能报「未见显著差异」）——落成**确定性机读门 + critical findings + 证据强度档**。
> 深度对标真相源 = [`docs/competitors/result-analysis.md`](../../docs/competitors/result-analysis.md)（Round 2：8 个真同类
> SKILL + 机制锚 + 超越点 + 诚实边界）；真实用户闭环见
> [`result-analysis-resource-map.md`](result-analysis-resource-map.md)。
>
> **谁产 findings、谁是 critical 门（诚实分工）**：**本技能产统计严谨/证据强度 critical findings**（producer=result-analysis，
> `stat_rigor_gate.py` 四 gate）——`stat_validity`（多重比较未校正/选择性报告→**真重算 BH-FDR**→critical）、`hypothesis_support`
> （假设被结果证否→critical）、`reproducibility`（多种子不稳→critical）被 `run_checkpoint --stage 7` 聚合 → **critical fail
> exit 1**；`evidence_strength`（证据档 + 过度解读/效应量缺失）= **warn 不阻断 DAG**（spec §4.2 口径）+ **emit
> `evidence_strength.json`**。
>
> **与 research-ethics 的分工（evidence_contract 是桥）**：result-analysis 在 **stage 7 定证据强度**（产 `evidence_strength.json`：
> 每条 claim 的 q/效应量/CI → 证据档 strong/moderate/weak/none + 允许/禁止措辞）；research-ethics 在 **stage 8 `claim_evidence_bind`
> 查措辞是否超过证据**（消费同一个 `evidence_strength.json`）。**本技能定强度、它查措辞，不重叠**；`_shared/evidence_contract`
> 是两者共用的桥。
>
> **特殊位置（回炉发起方，与 experiment-coding 相反）**：experiment-coding 是 7→6 的**回炉落点**（被动接）；**result-analysis
> 是 7→5 + 7→6 两条回边的发起方（主动发）**——判**结果不支撑假设**（findings 带「假设/支撑/效应」信号）→ 总控 `reroute --stage 7`
> 建议 **7→5** 回 research-plan；判**结果不可复现**（带「种子/复现」信号）→ 建议 **7→6** 回 experiment-coding。**这是本技能的
> 非线性核心：不是终点，是把结果送回上游修的枢纽。**（p-hacking critical 则是 **stage 7 内重做分析**，reroute 给 manual。）
>
> **是横切常驻吗？** 否。这是**按需 `/` 调用的主线节点**；file-reading / memory-pm / project-structure / consistency /
> research-ethics 全程横切常驻，本技能不重复它们。

---

## 何时启动（触发信号）

- 实验**跑完了要解读结果**（experiment-coding 交来 `run_manifest.md`：多种子指标 + 产物路径）——**主用法**。
- 用户问「**这些结果说明什么 / 这提升靠谱吗 / 是显著还是噪声 / 效应量多大 / 换数据集还成立吗**」——任一即启动。
- 要做**显著性检验 + 效应量 + 置信区间 + 多重比较校正**（不只报 p）/ **配对检验** / **切片分析** / **SHAP 可解释性**。
- 怀疑「**指标好得反常（藏泄漏？）/ 报了一堆 p<.05（多重比较校正了吗？）/ 只报了成功的那个（选择性报告？）**」——正中本技能 critical 门。
- 要给每条 claim **定证据强度**供下游写作校准措辞（产 `evidence_strength.json`）。
- **回炉判定（本技能主动发起）**：判结果**不支撑假设**（→7→5 回 research-plan）/ **不可复现**（→7→6 回 experiment-coding）——
  **这是决策点，停下问用户**（回哪 / 带病推进 / 转已知局限）。

---

## 你怎么工作：ACT / ASK / NEVER

每个动作**先归类**：该**自己做（ACT）**、该**停下问用户（ASK）**、还是**绝不（NEVER）**？

### ACT — 跑确定性统计门，自己做（不烦用户）

- **先审分析计划与证据来源（warn-only，不扩大 critical 面）**：
  `python scripts/analysis_plan_audit.py --spec analysis_audit.json --report analysis_audit_findings.json
  --json-out analysis_audit_full.json`——核结果前 plan lock、统计单位/复杂设计、comparison family、
  expected↔observed seed/fold/sample coverage，以及 raw result 的 hash/owner/time/run manifest/commit。
- **先判方法能不能用**：解释器、统计检验或诊断法运行前用 `method_compatibility.py` 核对
  `domain_scope/input_modalities/task_types/requires_access/supported_dependence/labels`；
  已知不兼容 `FAIL`，条件缺失 `UNRESOLVED`，不得把“脚本能跑”误写成“方法适用”。
- **一键统计分析**：`python scripts/analyze_results.py results.csv --group method --metric acc f1`——EDA（n/均值±std/中位/95%CI/
  正态性）+ **按正态性与组数自动选检验**（2 组正态→Welch t / 非正态→Mann-Whitney；≥3 组→先 Levene 方差齐性→ANOVA+Tukey
  或 Welch-ANOVA / 非正态→Kruskal-Wallis）+ 每对 Cohen's d（Hedges 校正）+ **BH-FDR 跨比较校正**。共享种子/折加 `--paired-by seed`
  走**配对 t / Wilcoxon**（功效更高）。**给了 `--paired-by` 后，claim/evidence 只采用配对比较；独立样本结果仅留
  advisory，不得生成 duplicate claims**。`--slice-by <col>` 切片分析防聚合掩盖子群失败（小 n 切片自动标「待核查」）。
- **统计严谨/证据强度 critical 门**（本技能灵魂）：`python scripts/stat_rigor_gate.py --spec stat_spec.json --report stat_findings.json
  --evidence-out evidence_strength.json` 编排 **BH-FDR 真重算 + 消费 evidence_contract** → 产 `light.findings.v1`：**多重比较未校正/
  选择性报告 / 假设证否 / 多种子不稳 → critical**；过度解读/效应量缺失 → warn。critical → `run_checkpoint --stage 7` exit 1。
- **产标准机读工件**：`analyze_results.py --emit-claim-table`（`claim_evidence_table.md`：每个比较↔检验/p/q/d/CI/n）+
  `--emit-evidence`（`evidence_strength.json`：挂接 `_shared/evidence_contract`，q/效应量/CI→证据档+措辞档）。**显著性一律以
  BH-FDR 后 q 为准**，不显著的比较标「不得声称更好」。
- **效应量 + CI + DeLong**：`significance_test.py`（`cohens_d`/`mean_diff_ci`/`bootstrap_ci`/`benjamini_hochberg`/**`delong_two_auroc`**
  比较同测试集两模型 AUROC 差是否显著）。**只报 p 不报效应量 = 误用**：p 小不代表差异大。
- **R/Python 真交叉核验**：`python scripts/r_analysis_crosscheck.py --input results.csv --group method --metric acc
  --paired-by seed --out r_acc.csv`。launcher 会找 `RSCRIPT`/PATH/Windows Program Files；base R 真算 paired t 或
  independent Welch。R 不可用就明确返回 unavailable；复杂 mixed/repeated/nested 设计仍需专门模型。
- **可解释性 / 失败案例 / 泄漏体检**：`explain_shap.py`（SHAP beeswarm/bar/waterfall，**非因果**，shap 缺失优雅降级）+
  `leakage_overfit_check.py`（train/val/test gap + 特征-标签高相关泄漏 + 重复行）——指标好得反常先查泄漏。
- **出分析报告**：按 `assets/result_analysis_report_template.md` 每个发现写「现象→原因→证据→对论文的意义」+ 亮点/异常/待补实验清单。

### ASK — 停下问用户，给「证据 + 推荐 + 备选」（决策点 🧑）

| 决策点 | 何时 | 你怎么问 |
|---|---|---|
| **回炉发起 7→5（不支撑假设）**（最重要） | hypothesis_support 判主假设 grade=none | 「主假设 H1『新模块提升 acc』**未被结果支撑**：BH-FDR 后 q=0.2≥.05、CI=[-0.2,0.4] 含 0、效应量 d=0.1 过小。**建议**回 research-plan（7→5）重审假设/设计（也许 H 本就不成立，或需更强实验）。回炉带『哪条假设没撑住 + 对应效应量/CI』——还是带病推进 / 转已知局限？（方向你定，**绝不 HARKing 删掉换个成功假设重报**）」 |
| **回炉发起 7→6（不可复现）** | reproducibility 判多种子 sign-flip/CV 过大 | 「结果不可复现：claim X 的效应跨 5 个种子 **sign-flip**（[-0.31,+0.55]），换次跑结论会飘。**建议**回 experiment-coding（7→6）查种子覆盖 / 实现 bug，带『失败的复现证据』。还是多种子报均值±std 并 hedge？别把单次峰值当结论。」 |
| **查出 p-hacking** | stat_validity 多重比较未校正/选择性报告 | 「扫到 5 个比较未做多重比较校正：4 个裸 p<.05 中 4 个经 BH-FDR 后 q≥.05（**假阳性**）。**建议**在 stage 7 内重做分析：对全部比较做 BH-FDR，显著性以校正后 q 为准。要我直接重算吗？校正后『显著』可能消失——那才是真值。」 |
| **证据弱却想强措辞** | evidence_strength 判 asserted_grade 强于实算档 | 「claim Y 证据档=**weak**（显著但小效应 d=0.2），但措辞写了『显著优于』。**建议**降到『在本实验中略优 / 初步提示』并加 hedge。强措辞会被 research-ethics 的 stage-8 措辞门拦。」 |
| **异常结果：排查 vs 当亮点** | 切片/某指标异常高或异常 | 「切片『夜间』acc 异常高（0.97 vs 整体 0.85）。可能是**真亮点**（该场景方法特别有效），也可能是**泄漏/小样本**（该切片 n=12）。**建议**先查泄漏 + 看 n 再定，别急着写进 contribution。先查哪个？」 |

### NEVER — 绝不 [NON-NEGOTIABLE]

> **这一节是红线，不可协商、不可被「结果好就行」「p<.05 就是显著」「先写强点好发」绕过。违反任一条 = 严重失职。**

1. **绝不只看 p 不看效应量 + CI**：p 值三件套 = **p + 效应量（Cohen's d / Cliff's δ）+ 置信区间**。p 小**不代表**差异大（大样本下
   微小差异也显著）；**CI 含 0 = 差异方向不定 = 不显著**。只报 p = `evidence_strength` warn。
2. **绝不多重比较不校正**：报多个比较必做 **BH-FDR**（控 FDR，功效高）或 **Bonferroni**（控 FWER，保守）。**显著性一律看校正后 q
   不看裸 p**——5 个 p<.05 未校正 → 假阳性概率远超 5%（Simmons 2011：最坏抬到 61%）。未校正 = `stat_validity` **critical**。
3. **绝不把不显著当「更好」/ 不显著当亮点**：q≥.05 或 CI 含 0 → 证据档 **none** → 写作只能报**「未见显著差异」**，**绝不**写「优于/
   提升/更好」。不显著的差异不是亮点。
4. **绝不让措辞强于证据**：措辞强度必须匹配证据强度档（strong→demonstrate/证明、moderate→improve/改善、weak→suggest/可能、
   none→「未见显著差异」）。`evidence_strength.json` 是**跨技能「措辞不强于证据」的单一数据源**，下游 paper-writing/research-ethics 据此卡。
5. **绝不 HARKing / 选择性报告**：假设被结果**证否**要**如实回报**（回炉 research-plan），**绝不**事后删掉它、换个「成功」的假设当
   原假设报（Kerr 1998 HARKing 第三型）；跑了 N 个比较**报全部 N 个**（含未达阈值的），不挑成功的报。选择性报告 = `stat_validity` **critical**。
6. **绝不把统计检查吹成「证明了方法有效 / 因果成立」**：`stat_rigor_gate` 查「多重比较校没校正 / 假设统计上撑不撑得住 / 结果稳不稳」——
   **机检有边界**，效应量解读、**机制因果**、外推性的**终判仍需人 / 领域判断**；SHAP 是模型**关联非因果**，绝不当因果证据。诚实标边界。
7. **绝不静默回炉**：判**不支撑假设（7→5）/ 不可复现（7→6）**是**决策点**——带证据**停下问用户**（回哪 / 带病推进并记录 / 转已知
   局限），**绝不**自己拍板回炉或带病往下走。回炉押上数月方向。
8. **绝不把统计行数当统计单位、把 family 拆开校正**：`seed/fold/sample` 是否独立由设计决定，不由 CSV 行数决定；
   repeated measures / clustered / nested CV / repeated holdout 不能靠简单 t 检验终判。comparison family 由结果前计划定义，
   必须保留 stable `family_id`、planned/reported coverage；不得拆成多次调用规避校正。
9. **绝不伪造 provenance 接线**：`evidence_strength.json` 当前只含统计强度与措辞上限，不等于完整 run provenance；
   claim/metric 只能带 source file/run/commit 作为 consistency 候选，**不得由 result-analysis 直接写入 canonical
   `.light/consistency`**。

> 自检触发词：当你想说「p<.05 就够了别管校正 / 这个不显著但趋势对也算亮点 / 措辞强点好发 / 假设没撑住就换一个 / 跑了十个报最好那个 /
> SHAP 说明这个特征导致了结果」——**停**，八成踩了 NEVER 第 1/2/3/4/5/6 条，或漏了 ASK 的回炉/p-hacking/措辞决策。

---

## 指令流：何时调哪个脚本（引擎已就位，亲手 selftest 到 exit 0，直接调用勿重写）

当前 11 个 Python 脚本 + 1 个 R 脚本在 [`scripts/`](scripts/)；`stat_rigor_gate`/`result_card_gate`/`analyze_results`/
`analysis_plan_audit` 接 `_shared`（规范 bootstrap），统计件优先复用 statsmodels/scipy，DeLong 港 v1
（statsmodels 没有）。R 路径只依赖 base R；高级 R 包逐项检测，不假装已装。Windows 跑前 `set PYTHONUTF8=1`。

### ⓪ result card + analysis decision ledger gate（Round 3 必跑）

```bash
python scripts/result_card_gate.py --spec result_card.json \
    --report result_card_findings.json --json-out result_card_report.json
```

输入 `light.result_card.v1`（模板见 [`templates/result-card.example.json`](templates/result-card.example.json)，故意不完整，直接跑应 exit 1）：每条 claim 必须绑定 `as_of`、`target/analysis_set/missingness/provenance/assumption/guardrail_analysis/comparison_family/practical_threshold/effect/language`；`provenance` 至少记录 source run IDs、run manifest/raw result/analysis code locator 与 SHA-256、computed_at、owner_skill；`guardrail_analysis` 必须显式说明是否适用，适用时绑定 guardrail evidence locator/SHA-256 和逐项 PASS/FAIL/WARN/UNKNOWN；`locked_at/results_available_at/computed_at` 不能来自未来，且 `computed_at` 不得早于结果可见时间；`decision=REVISION_REQUIRED/UNKNOWN` 本身阻断写作交接；`decision_ledger` 记录 PRE/POST 结果的排除、换指标、模型选择、切片、阈值等分析决策；`sensitivity` 明确 sensitivity vs supplementary。**p=0.049/0.051 不许让叙事翻面**：q≥.05 或 CI 含 0 只能写“未见显著差异/不确定”；guardrail FAIL/UNKNOWN 不得 `CLAIM_READY`；阈值附近必须披露敏感性；POST_RESULTS 的 EXCLUSION/METRIC/MODEL_CHOICE/SUBGROUP 不得冒充 `CONFIRMATORY`。

### ① 统计严谨/证据强度 critical 门 → critical fail exit 1（本技能灵魂）

```bash
# 编排 BH-FDR 真重算 + 消费 evidence_contract → light.findings.v1 + evidence_strength.json：
python scripts/stat_rigor_gate.py --spec stat_spec.json --report stat_findings.json --evidence-out evidence_strength.json
# 交总控聚合（stage 7 确认点，critical fail → exit 1 确定性阻断）：
python ../light-orchestrator/scripts/run_checkpoint.py --file .light/passport.yaml --stage 7 \
    --findings stat_findings.json --write --ts 2026-06-20T10:00
# p-hacking critical = 在 stage 7 内重做分析（reroute 给 manual）；不支撑假设/不可复现 = 发起回边（见 ③）。
```
`stat_spec.json`：`{project, claims[{claim_id,p,q_fdr?,effect_size,ci95,n,asserted_grade?,is_hypothesis?,hypothesis_id?,seeds?}],
correction(none/bh/bonferroni), comparisons_run?, comparisons_reported?, results_csv?}`。示例见 [`examples/stat_spec.example.json`](examples/stat_spec.example.json)。

### ② 从结果表算统计 + 产证据工件（被 stat_rigor_gate 可选编排，也可单独跑）

```bash
python scripts/analyze_results.py results.csv --group method --metric acc f1 \
    --paired-by seed --slice-by subgroup --emit-claim-table --emit-evidence   # 自动选检验+效应量+FDR+两工件
python scripts/significance_test.py --selftest      # p/d/CI/FDR/DeLong 函数库（对齐 scipy/statsmodels）
python scripts/leakage_overfit_check.py --train tr.csv --test te.csv --target y   # 泄漏/过拟合体检
python scripts/explain_shap.py                      # SHAP 三图（非因果；shap 缺失优雅降级 exit 0）
```

### ②b 计划/设计/provenance 与 R 交叉核验（Round 2）

```bash
# warn-only：缺计划锁/复杂设计/family/coverage/provenance 显式出现，但不扩大 critical 阻断面
python scripts/analysis_plan_audit.py --spec analysis_audit.json \
  --report analysis_audit_findings.json --json-out analysis_audit_full.json

# 声明方法能力与真实研究条件；FAIL/UNRESOLVED 都不得直接用该方法终判
python scripts/method_compatibility.py --input examples/method_compatibility.example.json
python scripts/method_compatibility.py --selftest

# 同一真实两组比较走 base R；关键 p/mean_diff/effect 与 Python 交叉核数
python scripts/r_analysis_crosscheck.py --input results.csv --group method --metric acc \
  --paired-by seed --out r_acc.csv
```

### ③ 回炉发起方：本技能把结果送回上游修（7→5 / 7→6）

```bash
# stat_rigor_gate 判"不支撑假设/不可复现" → findings 带信号词 → 总控 reroute 按 ROUTES[7] 分流：
python ../light-orchestrator/scripts/reroute.py --findings stat_findings.json --stage 7 --passport .light/passport.yaml
#   不支撑假设（信号 假设/支撑/效应）→ 建议 7→5 回 research-plan；不可复现（信号 种子/复现）→ 建议 7→6 回 experiment-coding。
# 用户拍板回炉后落一等回边（记在目标阶段，不破拓扑）：
python ../light-orchestrator/scripts/passport.py add-back-edge --to 5 --from 7 \
    --root-cause "结果不支撑假设(效应量小/CI 含 0)" --evidence-ptr "<reroute 给的指针>"   # 或 --to 6（不可复现）
python ../light-orchestrator/scripts/passport.py validate --file .light/passport.yaml      # 回边不破拓扑 → 仍 PASS
```

各脚本 `--selftest`/`--help` 即接口；工具一手核（statsmodels multipletests / scipy.stats / pingouin / SHAP 非因果 /
**Evidently v7 破坏式变更** / GRADE / Cohen's d·Cliff δ）详见 [`references.md`](references.md)。

---

## 院士级深挖：四条是及格线（蓝图 §4.3-7，不是加分项）

### ① 解释机制（不只描述好坏）
逐层深入：**描述**（指标±CI vs baseline）→ **解释**（归因到方法哪个组件，结合消融）→ **诊断**（哪些证明创新有效、哪些暴露问题/矛盾）
→ **洞察**（能成论文亮点的规律、意外发现、可解释性证据）→ **行动**（哪些异常要排查、哪些结论需补实验、哪些不能过度声称）。

### ② claim↔证据绑定 + 证据强度分级（强/中/弱/无）
每条能写进论文的论断连到它的检验/p/**q(FDR)**/效应量/CI/n（`claim_evidence_table.md`）；经 `evidence_contract.grade_evidence`
机械定档：**strong**（q<.01 且 |d|≥.5 且 CI 不含 0 且 n≥30）/ **moderate**（显著中效应）/ **weak**（显著但小效应或小样本）/
**none**（不显著或 CI 含 0）。下游据此校准措辞——**这是 `evidence_strength.json` 的真实第一消费链**（paper-writing 也消费）。

### ③ 统计严谨（效应量/CI/多重比较，不只看 p）
**p 值三件套**（p + 效应量 + CI）；**多重比较校正**（BH-FDR 控 FDR / Bonferroni 控 FWER，显著性看 q）；**自动选检验**（正态性 +
组数 + 方差齐性，配对设计用配对检验）；**效应量配检验类型**（参数→Cohen's d+Hedges，非参/序数→Cliff's δ 更稳）。**统计错误/p-hacking
= critical**（spec §4.2）。

### ④ 院士会追问（预演）
**这提升是统计显著还是噪声**（看校正后 q，不看裸 p）？**效应量多大**（d/δ，不只看 p）？**换数据集/换种子还成立吗**（稳健性、可复现，
多种子报均值±std）？有没有 **p-hacking**（选择性报告 / 多重比较不校正 / HARKing / garden of forking paths）？——答不上来的，分析没到及格线。

---

## 收尾 self-check（出 verdict 前 / 回写总控前过一遍）

- [ ] 每条 claim 都配了 **p + 效应量 + CI** 三件套，且**显著性看 BH-FDR 后 q 不看裸 p** 吗？
- [ ] 跑过 `result_card_gate.py` 吗？每条 claim 的 target、analysis set、missingness、assumption、guardrail_analysis、family、practical threshold、effect、language 都绑在一张 result card 上了吗？
- [ ] `as_of`、`locked_at`、`results_available_at`、`computed_at` 都是真实已发生时间吗？分析没有早于结果可见、也没有未来预填吧？
- [ ] 每条 result card 的 effect 是否绑定 source run IDs、run manifest/raw result/analysis code 的 locator 和 SHA-256？孤立数字有没有被挡住？
- [ ] `decision_ledger` 写清 PRE/POST 结果的排除、换指标、模型选择、切片、阈值了吗？POST_RESULTS 决策没冒充 `CONFIRMATORY` 吧？
- [ ] 多个比较**做了多重比较校正**（BH-FDR/Bonferroni）吗？跑了几个**报了几个**（没选择性报告）吗？
- [ ] 不显著的结果**只报「未见显著差异」**、没当「更好/亮点」吗？措辞强度**匹配证据档**吗？
- [ ] p/q 在 0.045~0.055 附近时，写了“阈值敏感/不确定”，而不是围绕 0.05 把语言翻成“显著提升”吗？
- [ ] `evidence_strength.json` 产了吗（每条 claim 有档 + 措辞上限，交 paper-writing/research-ethics）？
- [ ] analysis plan 在结果前冻结了吗？`unit_of_analysis`、复杂设计、comparison `family_id`、planned/reported
  coverage、raw result hash/run manifest/commit 都留痕了吗？
- [ ] 给了 `--paired-by` 时，claim/evidence 是否**只有 paired 主比较**、没有同一数据再产 independent duplicate claim？
- [ ] R 可用时是否对关键比较真交叉核验；不可用时是否如实记录 detection/degradation，而非写“R E2E 通过”？
- [ ] 主假设**被结果支撑**吗？不支撑就**停下问用户**回 research-plan（7→5）、**没 HARKing 换假设**吗？
- [ ] 结果**多种子稳**吗（无 sign-flip / CV 在阈内）？不稳就**停下问用户**回 experiment-coding（7→6）吗？
- [ ] 指标好得反常的，**查过泄漏**（leakage_overfit_check）吗？
- [ ] 没把统计检查**吹成「证明了方法有效/因果成立」**吧？（SHAP 非因果；机制/因果终判需人）

---

## 名实对齐（诚实，不吹成卖点）

**真增量（v2 兑现，已 selftest + E2E 实测）**：⓪ **result card + analysis decision ledger gate**（`result_card_gate.py`，Round 3 新增）——产 `light.findings.v1`，把 target、analysis set、missingness、provenance、assumptions、guardrail_analysis、comparison family、practical threshold、effect、language 与 PRE/POST 分析决策账本绑定；p≈0.05 的语言稳定性、非显著误释、结果后 confirmatory 伪装、sensitivity/supplementary 混淆、guardrail FAIL/UNKNOWN 后继续强 claim 均可机读阻断。**Round 3 再补 raw-run provenance 与时间轴**：每条 claim 必须带 source run IDs、run manifest/raw result/analysis code locator 与 SHA-256；`locked_at/results_available_at/computed_at` 不能未来预填，`REVISION_REQUIRED/UNKNOWN` 不能冒充 ready，防止孤立数字或未完成结果直接进入写作；Round3 续补 guardrail evidence 消费，防止 experiment-coding 的 guardrails.json 到写作前消失。① **统计严谨/证据强度 critical 门 producer**（`stat_rigor_gate.py`，**v2 净新增接线**）——
编排 **BH-FDR 真重算**（裸 p 经校正后掉到 q≥.05 = 假阳性 → critical）+ **消费 `_shared/evidence_contract`** 给每条 claim 定档 → 产
`light.findings.v1`（producer=result-analysis）：**多重比较未校正/选择性报告/假设证否/多种子不稳 → critical**（对齐
`STAGE_GATES[7]=[stat_validity,evidence_strength]`），过度解读/效应量缺失 → warn，被 `run_checkpoint --stage 7` 聚合 exit 1。
② **本技能是 7→5 / 7→6 两条回边的发起方**（与 experiment-coding 的「落点」相反）——`hypothesis_support` 判不支撑假设 → findings 带
「假设/支撑/效应」信号 → reroute 建议 **7→5**；`reproducibility` 判多种子 sign-flip/CV 过大 → 带「种子/复现」信号 → 建议 **7→6**；
p-hacking critical 刻意**不带** 5/6 信号 → reroute 给 manual（在 stage 7 内修），落点诚实（**E2E 三线实测分流正确**）。③ **港 v1
统计资产修 bootstrap/命名**：`stats_tests`/`significance_test`/`analyze_results` 修硬编码 `../../../code_assets`、`../../_shared`→规范
bootstrap，`m06/金矿1/m07/a10`→v2 技能名，`source:m06:*`→`result-analysis:*`。④ **`evidence_strength.json` 是 result-analysis↔
paper-writing/research-ethics 的桥**：本技能定证据强度、research-ethics（stage 8）查措辞是否超过证据，evidence_contract 共用、不重叠。
⑤ **DeLong 相关 AUROC 比较**港 v1（statsmodels/scipy 没有，自测对齐 sklearn `roc_auc_score`）。

**裸模型本就会的（不吹）**：「做显著性检验」「报效应量别只报 p」「多重比较要校正」「措辞别太强」「SHAP 非因果」——裸 Opus 都会说，
**近零增量**。本技能价值 = ① **把 p-hacking/证据强度落成确定性 critical 机读门 + 确定性阻断**（裸模型嘴上说「要校正」，手上还是报裸
p<.05 当显著；编排器读不了它的「嘴上说」，读 `light.findings.v1` 的 verdict）；② **BH-FDR 真重算判假阳性**（不是提醒「记得校正」，是
真算出「这 4 个校正后 q≥.05」）；③ **claim↔证据档单一数据源**（`evidence_strength.json` 跨 5 个下游技能卡措辞，裸模型每处各凭感觉）；
④ **机读 findings + 根因回炉发起**（result-analysis 是 7→5/7→6 回炉枢纽，裸模型无此非线性编排闭环）。

**诚实落后项（已知没做到）**：
1. **兼容门依赖诚实声明**：`method_compatibility.py` 能拒绝已知不兼容并暴露未知条件，但不会自动证明
   第三方方法声明真实，也不证明统计识别、实现正确、结果可信或因果有效。
2. **统计检查有边界，不证明「结论正确」**：`stat_rigor_gate` 查「多重比较校没校正 / 假设统计上撑不撑得住 / 结果稳不稳」——**绝不
   「证明了方法真有效 / 因果成立」**。效应量解读、**机制因果**、外推性的**终判仍需人 / 领域判断**；机检给的是「统计上站不站得住」的必要条件。
3. **p-hacking 判据靠声明 + 可机检信号**：门读方案声明的「跑了几个/报了几个/校没校正」，**garden of forking paths 的隐性多重比较**
   （数据依赖的分析选择）机器**测不全**，只能提示；不替你判某个分析选择合不合理（GIGO），未声明不编造放水。
4. **证据分档只吃统计强度**（继承 evidence_contract）：未做 **GRADE 另四域**（偏倚/不一致/间接/发表偏倚）系统降级；多数据集「不一致」
   域降级是扩展点，当前**不假装 full GRADE**。
5. **效应量量级阈值是惯例**：d 0.2/0.5/0.8 跨领域不同；小样本（n<30）效应量估计不稳，封顶 weak。**Cliff's δ 待补**（v1/v2 当前只算 Cohen's d）。
6. **SHAP 非因果、Evidently 版本敏感**：SHAP 反映模型学到的关联非因果；**Evidently v7.0（2025-04）破坏式变更**，旧 `DataDriftPreset` API
   迁到 `evidently.future`——用前必核版本（铁律 2 一手核出的坑）。两者都不是 critical 门，只作洞察/参考。
7. **不自动跑实验 / 不替你下结论**：本技能管「结果统计上站不站得住 + 每条 claim 配多强证据」，不替你把实验补完（回炉 experiment-coding），
   也不替你拍板因果/机制（那要人 + 领域）。

> 标准产出工件：结果分析报告（现象→原因→证据→对论文的意义）· `claim_evidence_table.md`（claim↔证据）· **`evidence_strength.json`**
> （证据档→措辞档，交 paper-writing/research-ethics）· `stat_findings.json`（统计严谨/证据强度门）· 推荐图表清单（交 figure）。
> 亮点 → paper-writing 写作支撑；不支撑假设 → 回 research-plan（7→5）；不可复现 → 回 experiment-coding（7→6）；结论台账交 memory-pm。

---

## 参考（三级渐进披露：需要时再读）

- 对标真相源：[`docs/competitors/result-analysis.md`](../../docs/competitors/result-analysis.md)（Round 2 真搜：
  8 个真同类 SKILL + statsmodels/scipy/base R/规范等机制锚；每条带整仓 star、commit、路径、行号）
- 真实用户资源闭环：[`result-analysis-resource-map.md`](result-analysis-resource-map.md)（分析计划→raw runs→
  设计感知统计→稳健性→claim/provenance→总控；含 Python/R 双路径与资源访问分级）
- 工具一手核查笔记（真实命令/机制/已知坑/版本敏感）：[`references.md`](references.md)
- 引擎脚本：[`scripts/`](scripts/)——各 Python 脚本 `--selftest`/`--help` 即接口，R 脚本有 `--selftest`；
  `stat_rigor_gate.py`（critical 门）、`analysis_plan_audit.py`（warn-only 计划/设计/provenance）、
  `method_compatibility.py`（方法×数据×访问条件兼容门）、
  `analyze_results.py`（设计感知检验+FDR+两工件）、`r_analysis_crosscheck.py/.R`（base-R 交叉核验）、
  `significance_test.py`（p/d/CI/FDR/DeLong）、`make_figs.py`/`explain_shap.py`/`leakage_overfit_check.py`
- 报告模板：[`assets/result_analysis_report_template.md`](assets/result_analysis_report_template.md)（四段式 + 亮点/异常/待补实验 + 回炉判定）
- 端到端范例：[`examples/worked_example.py`](examples/worked_example.py)（EDA→显著性→图→泄漏体检→报告）· [`examples/stat_spec.example.json`](examples/stat_spec.example.json)（stat_rigor_gate 输入）
- 方法适用性示例：[`examples/method_compatibility.example.json`](examples/method_compatibility.example.json)
- 地基契约：[`_shared/README.md`](../../_shared/README.md)（**`evidence_contract`** 核心消费 · `findings_schema` · `gate_runner` · 规范 bootstrap）
- 上游/下游：[`light-experiment-coding`](../light-experiment-coding/)（stage 6，`run_manifest.md` 多种子指标；7→6 回炉目标）·
  [`light-research-plan`](../light-research-plan/)（stage 5，7→5 回炉目标）· [`light-research-ethics`](../light-research-ethics/)（stage 8
  `claim_evidence_bind` 消费 `evidence_strength.json` 查措辞）· [`run_checkpoint.py`](../light-orchestrator/scripts/run_checkpoint.py)（stage 7 聚合 exit 1）·
  [
