thesis-qc — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited thesis-qc (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.
版本:0.2.0-draft 创建日期:2026-04-13 最后更新:2026-04-13 来源:从真实论文项目的多版本MASTER_QC_STATUS、bug report、三层验证体系、critical review提炼 变更:v0.1→v0.2 架构从巨型skill改为编排器;M8拆出为独立skill;加入设计哲学;M4双模式;全人工切换 变更:v0.2→v0.3 六个机械模块全部实现并验证;加入脚本对照表
| 模块 | 脚本 | 调用方式 | 必需输入 | 可选输入 | |
|---|---|---|---|---|---|
| M1 | m1_ref_integrity.py | python m1_ref_integrity.py <txt> <bib> [-d deleted.json] [-o dir] | thesis_full.txt, refs.bib | deleted_refs.json | |
| M2 | m2_modification_landing.py | python m2_modification_landing.py <txt> <guide.md> [-o dir] | thesis_full.txt, modification_guide.md | ||
| M3 | m3_citation_cross_ref.py | python m3_citation_cross_ref.py <txt> [-o dir] | thesis_full.txt | ||
| M5 | m5_cross_chapter_consistency.py | python m5_cross_chapter_consistency.py <txt> [-v vars.json] [-o dir] | thesis_full.txt | variable_definitions.json | |
| M6 | m6_format_scan.py | python m6_format_scan.py <txt> [-o dir] | thesis_full.txt | ||
| M9 | m9_bug_regression.py | `python m9_bug_regression.py <txt> <bugs.md\ | bugs.json> [-o dir]` | thesis_full.txt, old bug report | |
| M4 | 无脚本 | 编排层调用ref-verifier | citation_map.json (M3产出) | ||
| M7 | 无脚本 | LLM+视觉运行时 | 图片文件 + thesis_full.txt | ||
| M8 | 无脚本 | 调用thesis-critical-review | thesis_full.txt |
所有脚本位于 skills/thesis-qc/ 目录下。输出默认存到输入文件同目录,-o 指定输出目录。
thesis-qc是monitor,不是executor。
这个skill的本质是一个带结构的人类质控放大器。它追踪进度、提醒遗漏、结构化检查结果,但绝不替人做决定,不自动修改任何论文文件。质控对风险的容忍度为零——不做"大概率没问题就跳过"的优化。
四条不可违反的约束:
在"AI辅助下的论文"仍处于灰色地带的时期,这个skill的设计选择是宁可低效也不冒风险。
以下任一情况出现时触发:
thesis-qc 是一个编排器(orchestrator),管理MASTER_QC.md并按阶段调用独立skill或执行内置轻量模块。
thesis-qc(编排层)
│
├── 内置模块(轻量,thesis-qc自身实现)
│ ├── M1 引用完整性(S3+S4+S5) [机械]
│ ├── M2 修改落地验证(S2) [机械]
│ ├── M3 跨章引用交叉(S7) [机械提取 + LLM判断]
│ ├── M5 跨章一致性 [机械 + LLM]
│ ├── M6 格式扫描 + AI痕迹检测 [机械]
│ └── M9 Bug回归 [机械 + LLM]
│
├── 外部skill调用
│ ├── M4 引用溯源 → 调用 ref-verifier(已有skill)
│ │ thesis-qc负责:分层筛选目标、格式转换、backlog管理
│ │ ref-verifier负责:核心claim-abstract判定逻辑
│ │
│ ├── M7 图表审查 → [未来可独立成skill]
│ │
│ └── M8 讨论层批判审查 → 调用 thesis-critical-review(独立skill)
│
└── MASTER_QC.md 管理
├── 状态追踪(人确认后才翻转)
├── Action Items汇总
├── 文件清单维护
└── 交叉验证规则执行核心理念:
按Phase顺序执行。每个Phase完成后更新MASTER_QC.md,报告结果,等待用户确认后进入下一Phase。
Phase 0: 初始化 → MASTER_QC.md创建 + 输入文件注册
Phase 1: M1 引用完整性
Phase 2: M2 修改落地验证 [可选]
Phase 3: M3 跨章引用交叉
Phase 4: M4 引用溯源(调用ref-verifier)
Phase 5: M5 跨章一致性
Phase 6: M6 格式扫描
Phase 7: M7 图表审查 [需图片文件]
Phase 8: M8 讨论层批判审查(调用thesis-critical-review)
Phase 9: M9 Bug回归 [需旧bug report]用户指定运行某个模块。如"检查跨章一致性"→ 只执行M5。
输入旧bug report + 新版docx → M9 + M1 + M5。
用户手动执行质控,skill只做:
用户可以在任何Phase中途切换到全人工模式,也可以从全人工模式切回自动模式。
[机械]输入: thesis_full.txt + refs.bib + deleted_refs.json(可选)
处理:
输出格式(integrity_report.md): 每条发现必须包含:
### [CRITICAL] 字段不匹配: [29] Smith 2015
**bib标题:** Primary outcome X in population Y...
**PubMed标题:** Secondary outcome X' in population Y...
**匹配度:** 0.72 (阈值0.85)
**原文上下文:**
> ......关键预测因子是唯一显著的危险因素(adj.OR=1.128, **[29]**),与Smith等......
> (Ch2, 约第215行)全人工模式: 用户自己逐条检查bib。skill只维护检查进度表,记录每条的验证状态(✅/❌/⬜)。
人类检查点: MISMATCH条目。历史经验:约15%是误报(publisher-side DOI交叉)。不自动处理。
[机械]输入: thesis_full.txt + modifications.json
处理:
输出: landing_report.md
全人工模式: 用户自行对照修改记录检查docx。skill记录检查结果。
[机械提取 + LLM判断]输入: thesis_full.txt
处理:
覆盖率校验: 输出"检测到N个唯一引用编号,bib有M条"。差异非零时告警——可能是提取遗漏或bib冗余。
全人工模式: skill只输出citation_map.json(引用在哪里出现的地图),用户自行检查高频引用的使用一致性。
[调用ref-verifier]这是全管线中最关键也最耗时的模块。支持三种操作粒度。
粒度A:逐句模式(最精细,用于承重引用)
用户:粘贴一句含[N]的原文
skill:识别引用编号 → 查bib → 拉摘要 → 输出比对结果
用户:判定 → 下一句skill在这个模式下是辅助工具——拉数据、格式化比对、记录结果。判定由用户在对话中完成。
粒度B:batch模式(中等,用于框架引用)
skill:从citation_map中按分层筛选目标 → 分批(≤10ref/≤30claim)
→ 调用ref-verifier核心判定逻辑 → 输出批次报告
用户:审核FAIL和PARTIAL-A条目 → 确认后skill处理下一批batch间有人类检查窗口。用户可以在任何一批后切换到逐句模式或全人工模式。
粒度C:全人工模式(用于用户想完全自控的部分)
用户:自行逐句核查
skill:记录结果、更新MASTER、提醒未覆盖的引用推荐的分层策略:
输出格式要求: 无论哪种粒度,每条判定都必须附带:
**[29] Smith 2015, Ch2 约第215行**
> ......关键预测因子是唯一显著的危险因素(adj.OR=1.128, **[29]**),与Smith等......
**Claim:** 关键预测因子是主结局的独立危险因素
**Severity:** strict(引用了具体OR值)
**摘要关键段:** "...the key predictor was significantly associated with the primary outcome (OR=1.13, 95%CI 1.01-1.25)..."
**判定:** PASS (NUM_OK: 1.128 ≈ 1.13, 差异在四舍五入范围内)Backlog机制: API失败、CrossRef无摘要、数值需全文验证的条目进入backlog.md,下一轮接续处理。
[机械 + LLM]输入: thesis_full.txt + variable_definitions.json(可选)
检测维度:
| 维度 | 方法 | 示例 |
|---|---|---|
| 公式方向 | 搜索公式定义,比对各章符号 | (T2-T1)/T1 vs (T1-T2)/T1(方向相反) |
| 分析单位 | 搜索"例""部位/位点"在各章方法段的使用 | 第一章"患者" vs 第二章"部位" |
| 样本量 | 提取各章N值,检测子集关系 | 示例嵌套:N1 → N2 → N3 |
| 术语 | 搜索核心术语变体 | 同一概念的中英/同义表述不统一(需按自己研究领域的概念族定制) |
| 阈值定义 | 搜索二分类阈值 | >=X% vs >X%(开闭区间不一致) |
| 处理/测量方法 | 比对各章方法描述 | AI自动处理 vs 手动处理 |
输出: consistency_report.md。每条不一致附带各章原文引用。
全人工模式: skill输出变量定义提取结果("在Ch1中,变量X定义为...;在Ch2中,定义为..."),用户自行比对判断。
[纯机械]输入: thesis_full.txt
检测项:
输出: format_report.md
全人工模式: skill输出检测项清单作为手动检查的对照表。
[机械 + LLM]输入: old_bugs.json + thesis_full.txt(新版)
处理:
全人工模式: skill输出旧bug清单+新版对应位置的上下文,用户逐条人脑判定是否修复。
当前作为thesis-qc内置模块实现。如果复杂度增长,未来可独立。
输入: 图片文件 + thesis_full.txt + 数据表格(可选)
4维度检查:
输出: figure_audit_report.md
全人工模式: skill输出图表-正文引用对照表,用户逐图检查。
独立skill,有自己的SKILL.md(见 skills/thesis-critical-review/SKILL.md)。
thesis-qc在Phase 8调用它。用户也可以随时独立触发(/thesis-critical-review)。
thesis-qc的职责限于:在MASTER中记录M8的执行状态和发现数。
---
创建日期:YYYY-MM-DD
论文版本:[文件名]
bib版本:[文件名]
最后更新:YYYY-MM-DD
更新者:[人/Claude]
---
# MASTER_QC
## 当前状态
[一句话]
## 管线进度
| Phase | 模块 | 模式 | 状态 | 完成日期 | 报告文件 | CRITICAL | MAJOR | 用户确认 |
|-------|------|------|------|---------|---------|----------|-------|---------|
| 0 | 初始化 | — | ⬜ | | | | | ⬜ |
| 1 | M1 引用完整性 | auto/manual | ⬜ | | | | | ⬜ |
| 2 | M2 修改落地 | auto/manual | ⬜ | | | | | ⬜ |
| 3 | M3 跨章引用 | auto/manual | ⬜ | | | | | ⬜ |
| 4 | M4 引用溯源 | A/B/C | ⬜ | | | | | ⬜ |
| 5 | M5 跨章一致性 | auto/manual | ⬜ | | | | | ⬜ |
| 6 | M6 格式扫描 | auto/manual | ⬜ | | | | | ⬜ |
| 7 | M7 图表审查 | auto/manual | ⬜ | | | | | ⬜ |
| 8 | M8 批判审查 | — | ⬜ | | | | | ⬜ |
| 9 | M9 Bug回归 | auto/manual | ⬜ | | | | | ⬜ |
## 交叉验证规则
1. 脚本输出"严重问题" → 换方法重跑再信
2. 结论导致不可逆操作 → 换路径确认
3. 不同会话给出不同结论 → 回溯确认
## 已决事项
(人确认后记录,不再讨论)
## 已撤回/拒绝事项
(不再复活)
## Action Items
| 优先级 | 来源 | 问题 | 原文证据 | 处置 | 状态 | 用户确认 |
|--------|------|------|---------|------|------|---------|
## 文件清单
| 文件 | 类型 | 来源模块 | 说明 |
|------|------|---------|------|{
"meta": {
"skill": "thesis-qc",
"module": "M1",
"version": "0.2.0",
"generated_at": "2026-04-13T14:00:00",
"input_files": ["thesis_full.txt", "refs.bib"],
"thesis_version": "v10.0"
},
"data": { ... }
}# [报告标题]
> 生成时间: YYYY-MM-DD HH:MM
> 技能版本: thesis-qc 0.2.0
> 模块: M[N]
> 运行模式: auto / manual / 混合
> 输入文件: [列表]
> 论文版本: [版本号]所有判定类条目必须包含:
**[引用编号] 作者 年份, 章节 约第N行**
> ......前一句。**包含引用标记的句子**。后一句......未来新skill只需遵循三条约定即可被thesis-qc挂载:
thesis_full.txt 或 thesis-qc的标准JSON中间文件xxx_report.md(人读) + xxx.json(管线读),遵循通用头thesis-qc负责在MASTER进度表中加一行、在合适的Phase调用新skill。不需要预建adapter。
| skill | 关系 |
|---|---|
| ref-verifier | M4调用其核心判定逻辑。thesis-qc负责分层筛选和backlog管理 |
| thesis-critical-review | M8调用。独立skill,可单独触发 |
| literature-search-omfs | M4发现FAIL时,可能需要搜索替代引用。手动触发 |
| dr-reconstruct | 如果论文使用了DR产出,在M1之前应先跑dr-reconstruct |
| humanizer / humanizer-zh | 不在QC管线内。M8产出建议文字时,提醒用户写入论文前过humanizer |
| self-verify | M4交叉验证是其扩展版 |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.