# Epi Project Audit

> 六层审查流行病学与生物统计项目的数据链、代码、结果、表图、正文和交付一致性，并以证据判定是否可正式交付。用于项目质控、结果复核、审稿前自查或全面一致性检查；只审查时不修改文件。开工先遵循 biostat-principles，含咨询包时同时核对 consulting-delivery。单个 Word、表格、图片、PDF 或一段文字的局部修改与文件检查使用对应内容和文件操作 skill，不触发本技能。

- Skill: `kangwang42/epi-project-audit` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add kangwang42/epi-project-audit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kangwang42/epi-project-audit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: kangwang42 (https://skillmd.com/u/kangwang42)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kangwang42/epi-project-audit

---


# 流行病学与生物统计项目审查

L 局部产物只检查本次修改影响的部分，不触发本 skill；P 日常项目执行使用日常检查；只有用户明确要求全面质控、投稿、外发或归档时才进行 R 正式发布检查。

只审查模式严格只读，不修改文件、不补日志、不更新 BACKLOG、不重命名、不重跑会覆盖正式结果的脚本。用户同时明确要求修复时，先完成审查并确认修改范围，再调用相应工作流实施。

## 1. 两种检查范围

### 日常检查

用于日常项目任务，只检查本轮受影响的输入、目标脚本实际运行结果、关键断言、结果名称、实际使用结果的文件和异常日志。输出简短结论，不对整个项目作是否可发布的判断。

### 正式发布检查

用于 R 正式发布，完整审查六层并明确说明项目是否可以发布。运行确定性检查：

```text
python <epi-project-audit>/scripts/run_check_project.py <项目根> --json
```

自动检查只是证据之一，不能替代研究设计、统计解释、报告规范和数据授权审查。

论文正式投稿或返修时，本 skill 负责项目数据、代码、结果来源及其流向稿件的证据链，并把结论交给 `academic-publishing` 的投稿前确认使用。稿件内容功能、引文支持、逐条返修闭合和 Word/PDF 页面显示分别由对应 skill 负责；已有检查的输入、方法和对象未变时引用其最近一次成功证据，不在本 skill 重复运行同义检查。没有项目级数据、代码或结果来源的外部稿件不为使用本 skill 擅自初始化项目，按作者声明的只读证据范围审查稿内一致性。

## 2. 严重度

| 级别 | 定义 | 发布影响 |
| --- | --- | --- |
| ERROR | 可能改变科学结论，或违反科研诚信、伦理、隐私、授权、结果追溯、核心复现要求 | 阻止正式发布 |
| WARN | 可接受限制、非关键不一致、需要责任人解释的风险或重要结构问题 | 不自动阻止；必须处置或明确接受 |
| INFO | 风格、命名、目录偏好或优化建议 | 不阻止发布 |

根目录文件数量、脚本是否连续编号、是否同时提供 PNG/PDF、目录名称风格等结构偏好一般是 WARN/INFO。只有它们实际导致错用数据、误运行脚本、无法确认结果来源或无法复现时，才按对应的科学或追溯风险升级。

## 3. 六层证据链

详细清单见 [审查清单](references/audit-checklist.md)。每层都继续审查，不因前层失败而停止，以便一次给出完整问题集。

1. **数据与设计**：权威输入、原始数据只读、研究对象、时间零点、分析集、纳排、终点和 estimand。
2. **代码与执行**：总运行脚本中每个步骤的实际输入、输出和研究职责，脚本依赖、随机设置、异常、最近一次成功运行的自动记录和环境说明。
3. **结果及其来源**：核对 `results/results.yaml` 中实际生成结果的脚本（`producer`）、输入文件或其哈希值、分析集、运行编号（`run_id`）、脚本中提取结果的对象或查询（`source`），以及实际使用该结果的文件（`consumers`）；旧路径仍可读取。
4. **表图与正文**：分母、估计、区间、P 值、方向、单位、表图编号和正文表述一致。
5. **解释与报告**：论断强度、局限、预设与探索性区分、适用报告规范、引用和披露。
6. **交付、授权与隐私**：当前版、授权范围、隐私、凭证、交付内容清单、文件可打开性和接收方复现条件。

校准斜率、效应方向和论断强度等解释按 [论断校准](references/claim-calibration.md) 核对；需要外部方法依据时用 `evidence-research`。

## 4. 结果一致性

可运行 [scripts/check_consistency.py](scripts/check_consistency.py) 比较 `results/results.yaml` 与论文、报告、PPT 中的置信区间和 P 值。它支持第 2 版结构的 `display` 和旧版结构的 `rendered`，但自动文本匹配只能发现可能的差异，必须回到生成脚本、相应运行记录和实际使用结果的位置判断。

新的 `results/results.yaml` 不保存解释或总体结论。审查正文解释时，应按每项结果的固定名称核对论断与依据，并结合 `DECISIONS.md` 判断；不得用 `interp_review` 或人工清除标记代替作者判断。

## 5. 发布结论

- **通过**：无 ERROR，且没有尚未处理的实质性 WARN。
- **有明确限制地通过**：无 ERROR；WARN 已由对此负责的研究者或项目负责人明确接受，并在报告中写明依据和影响。
- **不通过**：存在至少一项 ERROR，或缺少关键材料，因而无法判断科学、合规、隐私、结果来源或复现风险。

审查报告只记录用户或项目材料中已经提供的审查人姓名、职责和时间；未提供时写“未记录”，不得虚构签字或人工复核。

## 6. 审查报告

每个问题应记录：严重程度、所属层级、材料位置或结果名称、观察到的事实、可能影响、处理建议和验证方式。结尾说明项目是否可以发布、ERROR 数、WARN 数、已接受的限制和未能审查的范围。

只审查时建议不等于已修复。无原始数据、无权限或无法运行时明确限定“可复现性未验证”或“仅审查报告一致性”，不得声称数据真实、计算正确或已完成正式确认。

