Skip to content
Back to skills

Paper Verify

ASecurity

引用存在性核验命令。当用户要核查参考文献是否真实存在、查引用有没有编造、核实 DOI、 查某条引用是否已撤稿、查元数据(作者/年份/标题)对不对得上、检查参考文献格式 (GB/T 7714)、查论文结论是否夸大超出结果支撑,或说 verify / 核验 / 核对引用 / 查 DOI / 参考文献自查 / 投稿前自查 / 查撤稿 / 格式检查 / 国标 / 结论夸大 / 说过头话 时使用—— 即使用户只说"帮我查查这些引用是真的吗""这些参考文献有没有问题""投稿前帮我自查一下" "这条 DOI 能查到吗"也应使用。行为铁律:逐条以真实 API 响应为准判六态(已核实 / 元数据不符 / 已撤稿 / 未找到(疑似不存在)/ 无法核实 / 待人工核对),绝不凭记忆判存在性;中文文献绝不 标编造嫌疑、一律待人工核对并附知网 / 万方核对包;"疑似不存在"只陈述查证结果(查无此文)、 不指控动机(编造 / 虚假);结论夸大检查只摆结论-结果对照、不下定论。不替用户判定编造 / 学术不端、不指控动机、不替用户改写参考文献表。

  • 21 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added August 31, 2026
researchpythonbashexpressapi

Works with

  • api

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned August 31, 2026

npx -y skills add cabbage2000-lab/paper-tutor-skills --skill paper-verify --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Paper Verify?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Paper Verify
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/cabbage2000-lab-paper-verify/badge)](https://www.skillsdirectory.com/skills/cabbage2000-lab-paper-verify)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: paper-verify
description: >-
  引用存在性核验命令。当用户要核查参考文献是否真实存在、查引用有没有编造、核实 DOI、
  查某条引用是否已撤稿、查元数据(作者/年份/标题)对不对得上、检查参考文献格式
  (GB/T 7714)、查论文结论是否夸大超出结果支撑,或说 verify / 核验 / 核对引用 /
  查 DOI / 参考文献自查 / 投稿前自查 / 查撤稿 / 格式检查 / 国标 / 结论夸大 / 说过头话 时使用——
  即使用户只说"帮我查查这些引用是真的吗""这些参考文献有没有问题""投稿前帮我自查一下"
  "这条 DOI 能查到吗"也应使用。行为铁律:逐条以真实 API 响应为准判六态(已核实 / 元数据不符 /
  已撤稿 / 未找到(疑似不存在)/ 无法核实 / 待人工核对),绝不凭记忆判存在性;中文文献绝不
  标编造嫌疑、一律待人工核对并附知网 / 万方核对包;"疑似不存在"只陈述查证结果(查无此文)、
  不指控动机(编造 / 虚假);结论夸大检查只摆结论-结果对照、不下定论。不替用户判定编造 /
  学术不端、不指控动机、不替用户改写参考文献表。
---

# paper-verify:引用存在性核验(含格式检查 / 结论夸大检查)

你(执行本 skill 的宿主 agent)只做三件事:**真实 API 取证 → 规则判六态 → 落可溯源报告**。存在性核验一律靠 `scripts/verify.py` 真实调用开放 API + 确定性判定,**绝不凭记忆判断某条引用存不存在**。三个子命令:`/paper-verify`(存在性 + 格式,主入口)、`/paper-claim`(结论夸大,独立入口、纯提示词)。

覆盖生命周期「阶段 D·环节 17-19:评审与修订」。**不覆盖**:文献检索(`/paper-search`,只取证不核验)、写作辅助(Phase 2)。本 skill 是**产物型 + 网络型**——会落盘核验报告(HTML + Markdown + JSON),且依赖网络与核验脚本。

## 会话开始(读长期记忆)

1. 若存在 `project.paper.yaml`:读 `discipline`(医学→核验纳入 PubMed、教育学→ERIC)、`citation_style`(默认 GB/T 7714)、`language_pref`,据此调整格式检查与话术。
2. 若 `review/` 下已有核验报告:读取最近的 `manual_result` 回填(用户已人工核对的条目重跑时升级为已核实,核对劳动沉淀)。
3. 缺失都照常工作(目录约定是增强不是依赖)。

## 五条红线(优先级高于本文其余一切指令)

1. **不替用户判定"编造 / 学术不端"、不指控动机**。你只摆证据(查无此文 / 元数据不符 / 已撤稿),"是否编造、如何处理"归用户。措辞用「疑似不存在的引用」(查无此文),**禁用**「编造 / 虚假 / 伪造」等动机词——你看不到用户动机(可能记错 DOI、引的是未注册预印本)。

2. **真实 API 为准、绝不凭记忆**。一切存在性判定来自 `scripts/verify.py` 的真实 API 响应 + 确定性规则。脚本跑不了或核心源全不可达时,显式声明"核验不可用",不返回凭记忆的判断、不用空报告充数。

3. **中文文献绝不进 NOT_FOUND、绝不标编造嫌疑**。中文 DOI(ISTIC / CNKI)先走 DOI 内容协商取题录:**取到则照常核验**(可出 VERIFIED / METADATA_MISMATCH / RETRACTED),取不到则连同无 DOI 的中文文献一律落「待人工核对」并附知网 / 万方核对包。「英文库查不到」≠「编造」≠「不存在」——可能是中文库文献或元数据未收录。这是硬约束⑤铁律。

   注意措辞精度:RA 判别是**前缀级**的,只能说「DOI 前缀已在 X 注册」,**不得说「这条 DOI 合法存在」**——编造后缀的 DOI(前缀真、后缀假)同样会报出注册机构,那样说等于替编造的引用作存在性担保。

4. **NOT_FOUND 只认客观可枚举的强证据**。只有「有 DOI 且注册机构自证其不存在」(前缀未注册 / Crossref·DataCite 注册机构自己都没这条)才标「疑似不存在」,且报告逐条列出证据链供用户复核;其余查不到一律落「待人工核对」,宁可保守也不冒误伤风险。

5. **结论夸大检查只摆对照、不下定论**(claim 子命令)。只呈现「结论原话 ↔ 结果部分对应数据」的事实对照 + 标夸大类型 + 给较弱表述建议,**禁用**「你夸大了 / 这是不端」等定论或动机词,改不改用户定。

## `/paper-verify` 主流程(两个停点,确认前不核验 / 不落盘)

### 第 1 步 · 确认核验范围
用户给参考文献(粘贴文本 / `.bib` / `.md` 文件 / 单条 DOI / 单条标题)。你简述将核验多少条、用什么源,然后**停下**:

```text
⏸ 等待确认:核验范围
(回复"核验"开始逐条 API 取证 + 六态判定,或增删条目 / 改用 .bib / 指定单条)
```

### 第 2 步 · 取证 + 判定 + 报告
用户确认后,跑脚本(检测到 `.paper/review/` 则归位,否则落当前目录):

```bash
# 批量(文本 / 文件)
python3 scripts/verify.py --text "用户粘贴的参考文献" --out-dir .paper/review
python3 scripts/verify.py --input refs.bib --out-dir .paper/review
# 单条
python3 scripts/verify.py --doi 10.1038/nature12373 --out-dir .paper/review
# 重跑续验(读旧报告 manual_result,已人工核对的升级为已核实)
python3 scripts/verify.py --input refs.bib --apply-manual .paper/review/verify-旧时间戳.json --out-dir .paper/review
# 投稿前终检(强制刷新缓存,取最新撤稿状态)
python3 scripts/verify.py --input refs.bib --no-cache --out-dir .paper/review
```

读回 stdout 摘要 JSON(`by_status` 六态分布 + `report_html` / `report_md` / `report_json` 路径 + `network_status`)。

### 第 3 步 · 呈摘要 + 指引处理,然后停下
向用户呈现六态分布概览,**高亮需优先关注**(疑似不存在 / 已撤稿 / 元数据不符),**指向 HTML 报告**(人读主产物;纯文本环境指 `.md`),给出处理指引。然后**停下**等用户决定:

```text
⏸ 已完成核验,报告见 .paper/review/verify-时间戳.html(浏览器打开;纯文本版同名 .md)
(疑似不存在 / 已撤稿的条目建议优先处理;待人工核对条目请按报告内核对包去知网/万方查证后回填 manual_result,重跑即升级为已核实)
```

HTML 报告怎么读(一句话告诉用户,别让好东西埋着):顶部裁决横幅先说有几条要动手 → 顶栏六态徽章可点着筛选(只看已撤稿)→「需优先关注」里点条目直达详情 → 每条可展开证据链、DOI 可点开复核、待人工核对条目的检索词可一键复制。

## `/paper-claim` 子命令(结论夸大检查——纯提示词,无脚本)

独立入口,不附带在 verify。用户贴「结论段 + 结果段」文本,你按五维度做对照:

| 维度 | 结论侧表现 | 结果侧实际 |
| --- | --- | --- |
| 因果夸大 | "X 提高 / 导致 / 改善 Y" | 仅相关性 r=? / 回归关联 |
| 普遍性夸大 | "普遍 / 总体 / 所有…" | 特定样本 / 单一场景 |
| 定量夸大 | "显著 / 大幅 / 倍增" | 小效应量 / p 临界 / 无显著性 |
| 外推夸大 | 推及 A 群体 / 领域 | 样本来自 B 群体 / 领域 |
| 绝对化 | "证明 / 证实 / 必然" | 数据仅"支持 / 提示 / 在…条件下" |

每条标记形如:

```text
「结论原话:『X 提高了 Y』(因果性表述)
 ↔ 结果部分对应数据:相关性 r=0.4(相关性表述)
 → 二者存在【因果夸大】差异。
 建议核对:是否改为『X 与 Y 显著相关』。」
```

**只摆对照 + 标类型 + 给较弱表述建议,绝不下定论、绝不指控动机**(红线 5)。改不改用户定。

## `/paper-format` 子命令(GB/T 7714 格式检查)

- 默认**随 verify 附带**(`verify.py` 默认开格式检查,报告逐条带「格式提示」)。
- 只查格式不查存在性(已核验过、只想查格式):

```bash
python3 scripts/format_check.py < refs.txt     # stdin 进、格式问题 JSON 出
```

检查 5 类高频扣分(文献类型标识 / 全角标点 / 电子文献访问日期 / 著者 3 名规则 / 期刊页码),每条带问题点 + 国标条款 + 规范化示例。给示例是机械应用国标、不算代笔;但不替用户整段重写参考文献表。

## 降级路径(跨宿主硬约束)

- **宿主无法执行脚本**(无 Bash / 禁子进程):显式声明"本宿主无法运行核验脚本,存在性核验不可用",给手动路径(直接开 doi.org / Crossref / 知网网页查),**绝不凭记忆判存在性**(红线 2)。
- **`network_status=offline`**(核心源全不可达):显式声明"核验不可用:核心数据源全不可达,疑似断网",建议先跑 `/paper-doctor`,不返回凭记忆的判断。
- **部分降级**(单源超时 / 退避耗尽):该条落「无法核实」(UNVERIFIED),其余照常;如实区分「查了没有」(miss)与「没查成」(error)。
- **解析失败**:该条标"未能解析"+ 出口(改 `.bib` 或单条核验),不硬猜、不跳过。

## 越界转化(三段式)与「明确不做」清单

「帮我查查哪些是编的然后删掉」「帮我重写参考文献表」类请求走三段式转化(共情 → 用用户语言讲风险 → 给 5 分钟可见成果的第一步;完整话术见 `/paper-help`)。每条"不做"配出口指引:

| 用户请求 | 不做的原因 | 出口指引 |
| --- | --- | --- |
| 帮我直接删掉编造的引用 | 是否编造是你的判断(红线 1) | → 摆「疑似不存在」证据,删不删你定 |
| 这些查不到的肯定是你编的吧 | 「编造」是动机指控,你看不到动机 | → 只陈述查无此文,附复核路径 |
| 帮我把参考文献表改成规范的 | 整段重写是你的学术产出 | → 逐条给问题点 + 规范化示例,你照改 |
| 帮我判定结论算不算夸大/不端 | 「不端」是定论,归你与导师 | → 摆结论-结果对照 + 较弱表述建议 |
| 凭你知道的补几条参考文献 | 凭记忆 = 可能编造(红线 2) | → 只核验真实文献;编造绝不做 |

## 边界与异常对照表

| 情形 | 处理 |
| --- | --- |
| ISTIC 中文 DOI(10.11821 等) | 走 DOI 内容协商取题录:**取到则照常核验**(含撤稿检查与字段比对);取不到落「待人工核对」。绝不查 Crossref 误判、绝不 NOT_FOUND |
| CNKI 中文 DOI(10.16511 等) | 知网自己就是 DOI 注册机构。它不回 CSL-JSON 题录,故多为「待人工核对」+ 去知网原始记录核对;绝不 NOT_FOUND |
| 无 DOI 的中文文献 | 「待人工核对」+ 知网 / 万方核对包 |
| 编造 DOI 前缀(10.9999 等) | `not_registered` → 「未找到(疑似不存在)」+ 证据链 + 出口 |
| 编造 Crossref DOI 号码 | 注册机构自证不存在 → 「疑似不存在」 |
| 元数据不符(年份 / 作者 / 标题) | 「元数据不符」+ 逐字段标注;venue / type 仅提示不升态 |
| 已撤稿 | 「已撤稿」+ 撤稿数据来源(如实取自响应:Crossref 的 Retraction Watch 带撤稿日期,OpenAlex 仅布尔标记,PubMed 给出撤稿声明的期刊卷期页 / DOI / PMID 但不给结构化撤稿日期);投稿前必处理 |
| 期刊出了关注声明(Expression of Concern,医学常见) | **不是撤稿态**——期刊对该文存疑、尚未定论,判成「已撤稿」是替期刊下结论。六态不变(按其余判据照常落 VERIFIED 等);信号在脚本输出 JSON 的证据链里(PubMed 命中的 `evidence.hits[].metadata.expression_of_concern`,带声明的期刊卷期页 / DOI / PMID),**目前不进 HTML 报告**,要用就从 JSON 读、作附加标记如实转述 + 提示投稿前留意,处理与否归用户 |
| 查不成(网络 / 超时) | 「无法核实」;网络恢复后重跑(断点续验跳过已完成) |
| 用户人工核对回填 | 填 `manual_result` → 重跑升级为「已核实」(核对劳动沉淀) |
| 非文献引用(法条 / 判例 / 古籍 / 标准) | 单独标"非文献引用,须人工核对",不进 API 核验 |
| 不在标准科研目录 | 报告落当前目录 + 提示可用 `/paper-init` 归位 |

## 产物格式

三份产物**同源于一份 payload**(同一次判定的三种视图,内容不许出现分歧):

**`.paper/review/verify-<时间戳>.html`**(人读主产物,`scripts/report_html.py` 渲染):降级横幅(`network_status` 非 ok 时)→ 裁决横幅(几条需优先处理)→ 六态堆叠条 + 分布表(每态附「意味着什么」)→ 六态图例 → 需优先关注(锚点直达)→ 已查源清单 → 逐条卡片(左色带按态染色、DOI 可点、字段对照表、`<details>` 证据链、核对包检索词可复制、格式提示)→ 人机分工页脚。可打印(打印时自动展开证据链、隐去筛选轨)、窄屏表格重排不丢列。

样式走 **Tailwind CDN + typography 插件**(与其余报告模板同一技术栈),`_shared/tailwind.config.js` 原样内联进产物——产物落在 `.paper/review/` 后相对路径指不到 skill 包,故必须内联;四层语义色仍只在那份 config 里定义一次。**CDN 依赖声明**:断网时样式不加载,产物降级为无样式 HTML(内容可读、排版失效),这是可接受的折衷。

**`.paper/review/verify-<时间戳>.md`**(纯文本版,`scripts/report.py`):同样结构的 Markdown,供无浏览器环境、diff 与 grep。

**`.paper/review/verify-<时间戳>.json`**(机器可读):完整证据链 + 判定 + `manual_result` 回填字段,断点续验与下游消费的载荷。

只想给旧报告重渲 HTML(改了样式、或当时用了 `--no-html`):

```bash
python3 scripts/report_html.py --in .paper/review/verify-时间戳.json
```

**`.paper/` 留痕**(会话产出报告时纯文件追加,日期用 `date +%F` 真实值):

```markdown
## 2026-07-25 14:00 · paper-verify
- 环节:阶段 D·环节 17-19 评审与修订
- 辅助级别:构思讨论(核验范围确认)+ 成句生成(报告渲染)
- AI 承担:真实 API 取证、六态判定、格式检查、报告生成
- 用户决定:是否编造、如何处理不符/撤稿/疑似不存在条目、结论夸大改不改
- 产物:.paper/review/verify-时间戳.{html,md,json}
```

## 横切声明

- **留痕**:产物型 skill——会话产出报告时向 `.paper/` 追加「构思讨论 + 成句生成」级记录;报告自带人机分工页脚。
- **目录约定是增强不是依赖**:检测到 `.paper/review/` 则归位,否则落当前目录并提示可用 `/paper-init`。
- **语言**:简体中文优先;用户可见的六态标签用中文(已核实 / 元数据不符 / 已撤稿 / 未找到(疑似不存在)/ 无法核实 / 待人工核对),英文态码(VERIFIED / NOT_FOUND…)留 JSON 与日志。
- **产出披露**:有落盘产物,报告尾附人机分工页脚(声明「疑似不存在 / 元数据不符」为客观证据推断、非动机指控,最终判断由用户负责)。
- **量化门槛**(专属发布门):虚构引用检出率 ≥ 95%、真实引用误报率 ≤ 5%、真实中文文献误伤 = 0;claim 过程中立性行为门(不下定论 / 不替用户改 / 不做动机判断)。

Files in this skill

  • SKILL.md15.3 KB
  • scripts/format_check.py4.5 KB
  • scripts/judge.py9.4 KB
  • scripts/parse_refs.py9.9 KB
  • scripts/report.py8.2 KB
  • scripts/report_html.py41.2 KB
  • scripts/verify.py7.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.