---
name: Paper Import
slug: paper-import
category: Writing
description: Import bibliography entries from CNKI, Zotero, or EndNote into a literature notes table. Checks consistency between citations and manuscript drafts, flagging discrepancies without making judgments.
github: "https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-import"
language: Python
stars: 18
forks: 5
install: "npx degit https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-import ~/.claude/skills/paper-import"
installs_to: ~/.claude/skills/paper-import
source_path: skills/paper-import/SKILL.md
collection_size: 24
category_size: 1012
collection_url: "https://dirskills.com/collections/cabbage2000-lab/paper-tutor-skills"
added: 2026-08-11T07:22:50.132Z
last_synced: 2026-08-11T07:22:50.132Z
canonical_url: "https://dirskills.com/skills/paper-import"
---

# Paper Import

Import bibliography entries from CNKI, Zotero, or EndNote into a literature notes table. Checks consistency between citations and manuscript drafts, flagging discrepancies without making judgments.

**Install:**

```bash
npx degit https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-import ~/.claude/skills/paper-import
```

## README

# paper-import：题录导入（题录整理器 + 题录-草稿一致性核对器）

帮用户把**从知网 / Zotero / EndNote 导出的题录**批量整理入文献笔记表（`literature/笔记表.md`），并做**题录-草稿一致性核对**。你（执行本 skill 的宿主 agent）做的事：**读题录文件 + 识别格式 + 解析字段 → 检测草稿 → 整理入笔记表 + 一致性核对陈列 → 停检查点等确认 → 落 HTML+MD 双产物**。

本 skill 覆盖学术研究「5 阶段 23 环节」标尺中**阶段 C｜成文**的**环节 16（题录导入 / 引用管理）**；**不覆盖**引用存在性 API 核验（归 `/paper-verify`）、GB/T 7714 格式检查（归 `/paper-format`）、文献检索（归 `/paper-search`）。上游消费用户导入的题录文件（必要）、可选 draft 草稿；下游供 `/paper-verify`（题录入库后做存在性核验）。本 skill 是**产物型** skill——会往 `literature/笔记表.md` 追加题录条目、往 `literature/` 落一份 HTML 核对报告（+ `.md` 兜底）、往 `.paper/` 写使用留痕；无网络依赖（题录即用户从权威库导出的证据、不需 API），断网宿主照常可用。

**核心立场（这条决定本 skill 长什么样）**：中文文献批量整理是研究者痛点——知网 / 万方无免费开放 API（PRD §319），研究者手工导出题录、再逐条整理进笔记表，耗时易错。系统是一个**整理器 + 核对器**：只整理用户**实际导入**的题录（题录即证据、不凭记忆补）、按笔记表五字段结构归位（题录能填的填、不能填的标占位）、并客观陈列题录与草稿引用的一致性关系。**整理如实、核对陈列、判断留用户**。这既是项目「核心分工原则」在题录管理环节的落地，也是 import 区别于裸模型的核心差异化：裸模型面对"帮我整理题录"会忍不住凭记忆补全字段、甚至编造题录——正是核对必穿帮的失败模式。

**与 verify 的分工（关键）**：verify 做**存在性 API 核验**（题录是否真实存在于 Crossref/OpenAlex/知网）、import 做**题录-草稿一致性核对**（用户导出的题录与草稿引用是否字段对应）——题录本身即用户从权威库导出的证据（PRD §128），import 不重复 API 核验。二者衔接：import 先整理入库、verify 再核验存在；**verify 把中文文献判成「待人工核对」时，用户导入的题录就是现成的核对依据**——import 按下面「人工核对凭据」一节备一段可粘贴片段，**回填与否由用户决定、import 不代判存在性**（不变②）。

## 三条不变（优先级最高，高于本文其余一切）

**① 题录不编**——只整理用户**实际导入**的题录文件（知网 .ris/.txt、Zotero .ris/.csv/.json 等）；题录里没有的字段标"⚠️ 题录未含此字段"、**绝不凭模型记忆补全**作者/年份/DOI/标题；不凭空生成题录条目；五字段（研究问题/方法/数据/结论/不足）题录通常不含、一律标"⚠️ 待用户或 /paper-search 补"。

**② 一致性核对客观陈列**——题录-草稿一致性核对只陈列对应关系（哪些草稿引用有对应题录 / 哪些无 / 哪些题录未被引 / 字段级差异），**不判"引用对错"**；"无对应题录"的草稿引用标"⚠️ 可能需进一步核验（交 /paper-verify）"、**不直接判编造**（可能用户漏导）；"字段差异"只陈列、不判"哪个对"。

**③ 产物如实披露整理来源**——笔记表条目标明来源（📋 从用户题录文件提取）、五字段里题录能填的填、不能填的标占位；一致性核对报告顶部固定声明"核对基于题录与草稿的字段对应、**非存在性核验**（存在性核验归 /paper-verify）"。

这三条是本 skill 的内核，凡本文其余任何指令与之冲突，以这三条为准。

## 学科适配（跨学科通用、不设让路）

题录格式跨学科通用——知网题录（中文文献为主）、Zotero 题录（多学科、多类型）的导出格式各学科一致。故 import **不设学科让路**。学科仅影响题录来源提示（看 `project.paper.yaml` 的 `discipline`）：

- 中文文献（文学 / 历史 / 哲学 / 法学 / 教育学等）→ 知网 / 万方导出为主
- 英文文献（理工 / 社科）→ Zotero / EndNote 导出为主
- 混合 → 用户据实导入

import 读 `discipline` 仅作来源提示、不改变整理流程。

## 会话开始：读题录 + 检测草稿

会话开始先做三件事：

1. **读题录文件**——用户粘贴题录文本、或指明文件路径。常见格式：知网 `.ris`/`.txt`、Zotero `.ris`/`.csv`/`.json`/`.bib`、EndNote `.enw`/`.xml`。读不到 → 提示"请先从知网 / Zotero 导出题录文件并粘贴 / 指明路径"。
2. **识别格式 + 解析字段**——据文件扩展名 / 内容特征识别格式（参考 [`references/题录格式说明.md`](./references/题录格式说明.md) 字段映射表）；失败字段标"⚠️ 字段解析失败"、不强猜。
3. **检测 draft 草稿**——`manuscript/正文*.md` 在则启用一致性核对、无则只整理。

**三档降级矩阵：**

| 输入组合 | 深度 | 产物标注 |
|---|---|---|
| 题录文件 + draft 草稿 | 整理 + 一致性核对 | 正常 |
| 题录文件单（无草稿） | 只整理、不做核对 | 顶部声明"未检测到草稿、仅整理题录、未做一致性核对" |
| 题录文件格式无法识别 | 提示确认格式或粘贴原文 | 让用户确认格式或重导 |
| 题录文件缺 | ❌ 不做 | 提示"请先导出题录文件" |

## 主流程（三步、一个确认停点）

### 第 1 步 · 读题录 + 解析 + 检测草稿（不停）

完成「会话开始」的三件事。完成后**不停**，直接进第 2 步。

### 第 2 步 · 整理入表 + 一致性核对（停检查点）

两件事并行产出：

**整理入笔记表**：把解析出的题录条目按笔记表结构陈列（作者/标题/期刊/年份/卷期页/DOI/URL + 五字段占位），每条标"📋 从用户题录文件提取"。检测到 `literature/笔记表.md` 已存在 → 追加、不覆盖；不存在 → 提示将新建。

**一致性核对**（检测到草稿时）——客观陈列三种对应关系：

| 核对维度 | 陈列内容 | 状态标注 |
|---|---|---|
| **草稿引用 → 题录** | 每条草稿引用有无对应题录 | ✅ 有对应 / ⚠️ 无对应（可能漏导、交 verify） |
| **题录 → 草稿引用** | 每条题录有无被草稿引用 | ✅ 被引 / 📋 未引（冗余导入） |
| **字段级差异** | 草稿引用的作者/年份/标题与题录是否字段一致 | ✅ 一致 / ⚠️ 差异（陈列差异） |

**不判对错**——只陈列对应关系。"无对应题录"**不直接判编造**；"字段差异"只陈列。

完整呈现整理结果 + 核对报告后**停下**：

```text
⏸ 等待确认：题录整理 + 一致性核对结果
（回复"落盘"归档到 literature/，或指出要补的字段 / 修正解析 / 决定先回 verify 核验无对应题录的引用）
```

**确认前零文件落盘**——整理 + 核对全程在对话里呈现，只有用户明确"落盘"后才一次性写文件（与同构命令「确认前零创建」同源）。

### 第 3 步 · 落盘 + 留痕 + 交棒

用户确认后做四件事：

1. **探测落点**：检测到标准科研目录（有 `literature/`）→ 追加到 `literature/笔记表.md`（已存在则追加、不覆盖）、落 `literature/题录核对报告.md` 与 `literature/题录核对报告.html`；否则落**当前目录**。
2. **写双产物 + 自检**：由你**直接写 HTML 文本 + Markdown 文本**。落款用真实日期（`date +%F`）。HTML 模板见 [`references/报告样式模板.html`](./references/报告样式模板.html)（整段复制后替换 `<尖括号占位>`）。写完自检：`grep -iE "https?://|<script src|cdn" 题录核对报告.html` 期望 0 命中；`grep '[<>]' 题录核对报告.md` 自检无残留占位尖括号。
3. **写留痕**：往 `.paper/` 追加一条「构思讨论」级使用记录（见「留痕」）。
4. **交棒**：提示下一步——"题录整理 + 核对归档了。接下来可以：① 对'无对应题录'的草稿引用用 `/paper-verify` 做存在性核验；② 若 `/paper-verify` 已把某条中文文献判成'待人工核对'，你导入的题录就是现成的核对依据——我可以照题录备一段可粘贴的回填片段，**填不填、算不算核实由你定**；③ 用 `/paper-format` 检查参考文献 GB/T 7714 格式；④ 五字段（研究问题/方法/数据/结论/不足）请补全或用 `/paper-search` 补。"

   第 ② 项**只在用户开口要时才做**（交棒只提一句，不主动生成片段、不追问），做法见下面「人工核对凭据」一节。

## 人工核对凭据（按需备、用户决定回填）

中文文献常被 `/paper-verify` 判成「待人工核对」，而 verify 的人工核对包会指引用户**回知网 / 万方检索**——可用户往往正是从知网导出题录才走到 import 这一步的，等于让他再查一遍已经查过的库。这一节就是把这段重复劳动省掉：**照题录备好可粘贴的回填片段，交给用户自己决定填不填。**

**触发条件（三条全中才做）**：① 用户开口要（交棒提过一句，不主动生成、不追问）；② 该条在一致性核对里是「✅ 有对应题录」；③ 用户手上有 verify 报告判成「待人工核对」的条目。任一条不满足就不备——尤其**「⚠️ 无对应题录」的条目绝不备**，那正是要交给 verify 真查的（不变②）。

**三条硬约束**：

**① 字段只从题录实际解析所得。** 题录未含的字段**整个省掉、不留空串、绝不凭记忆补**（不变①）。题录里没有 DOI 就不写 `doi` 字段。

**② `note` 必须写明依据来源与出处。** 「导入了一份知网题录」与「手工去知网逐条核对过」是两种证据强度，**不得含糊成「人工核对确认」**——这是留痕如实底线在本环节的落点。粘贴的题录文本无文件名时写「用户粘贴的题录文本第 N 条」。

**③ 只备片段、不代写不代判。** 不自动改写 verify 的报告 JSON（用户明确要求代填才动手）；措辞里**不出现「已为你核实 / 已核验通过 / 确认存在」**——判定由 verify 的确定性规则做（`judge.py` 无 LLM、无网络），import 只提供依据。

**片段格式**（`/paper-verify` 报告同名 JSON 里该条的 `manual_result` 字段）：

```json
{
  "verified": true,
  "doi": "<题录里的 DOI；题录未含则整个删掉本行>",
  "note": "依据：用户导入的<知网 / Zotero / EndNote>题录《<文件名或「用户粘贴的题录文本」>》第 <N> 条；题名与作者与草稿引用一致",
  "checked_at": "<date +%F 的真实日期>"
}
```

给出片段时**一并交回判断权**，话术示例：

```text
照你导入的题录备了一段（依据：知网题录《export.ris》第 3 条，题名与作者与草稿引用一致）。

粘到 review/引用核验报告.json 里该条的 manual_result 字段，再跑：
  python3 skills/paper-verify/scripts/verify.py --apply-manual review/引用核验报告.json

❓ 要不要把它算作「已核实」由你定——题录能证明这条记录在你导出的库里真实存在；
   若这份题录你手工编辑过，这个前提就不成立，建议仍走 verify 的人工核对。
```

**已知边界**：本 skill 是纯提示词层，片段由你（宿主 agent）照题录写出、非脚本机械生成，所以**片段里每个字段都必须能在题录原文里逐字指出来源**；做不到就标占位、不硬凑。

## 产物模板：题录整理 + 核对报告（HTML + `.md` 兜底）

产物有两份：

**（a）笔记表条目**（追加到 `literature/笔记表.md`）——每条题录按笔记表结构陈列、标"📋 从用户题录文件提取"、五字段标占位。

**（b）一致性核对报告**（`literature/题录核对报告.md` + `.html`）——元信息 + 三表（草稿→题录 / 题录→草稿 / 字段差异）+ 汇总 + 页脚。

**四层内容标注（与同体系）**：👤 用户题录原文 / 📋 从用户题录提取 / 🪞 系统归纳（可追溯）/ ❓ 待用户决定。**没有"AI 的新判断"层**——核对里某句判了"这条引用错了 / 这条是编造"，即判越界、不得写入。

**技术形态**：**单文件、纯静态、离线可打开**——样式内联，**不引外部 CDN / JS**。

**HTML 模板见 [`references/报告样式模板.html`](./references/报告样式模板.html)（样式权威）**：复用四层语义色，新增三表陈列（`.check-table`）+ 状态徽章（`.st-ok` ✅ / `.st-warn` ⚠️ / `.st-info` 📋）+ 核对范围声明徽章（`.scope-badge`）。

`.md` 兜底版（同三表内容、纯 Markdown 表格；四层标签按归属行内保留；状态用 ✅/⚠️/📋 文字）：

````markdown
# 题录-草稿一致性核对报告

| 项 | 内容 |
| --- | --- |
| 日期 | <日期> |
| 题录来源 | <知网 / Zotero / EndNote · 格式 · N 条> |
| 草稿来源 | <manuscript/正文.md · 有/无> |
| 核对范围声明 | 本核对基于题录与草稿的字段对应、**非存在性核验**（存在性核验归 /paper-verify） |
| 内容标注 | 📋 从用户题录提取　·　🪞 系统归纳（可追溯）　·　❓ 待用户决定 |

## 一、草稿引用 → 题录（每条草稿引用有无对应题录）

| 草稿引用 | 对应题录 | 状态 |
|---|---|---|
| [Smith 2023] | Smith J. (2023). Title... | ✅ 有对应 |
| [张三 2022] | — | ⚠️ 无对应题录（可能漏导、交 /paper-verify 核验） |

## 二、题录 → 草稿引用（每条题录有无被引）

| 题录 | 被草稿引用 | 状态 |
|---|---|---|
| Smith J. (2023). | [Smith 2023] | ✅ 被引 |
| Lee K. (2021). | — | 📋 未引（冗余导入、可能备而未用） |

## 三、字段级差异（草稿引用 vs 题录元数据）

| 草稿引用字段 | 题录字段 | 差异 |
|---|---|---|
| 作者"Smith 2023" | 作者"Smith J., 2022"、年份 2022 | ⚠️ 年份差异（草稿 2023 vs 题录 2022） |
| 标题"ChatGPT and Writing" | 标题"ChatGPT and Academic Writing" | ⚠️ 标题略异 |

## 四、核对汇总　🪞 系统归纳

- 草稿引用 N 条：有对应题录 X 条、无对应 Y 条
- 题录 M 条：被引 X' 条、未引 Y' 条
- 字段差异 Z 处

*本核对由 AI 陈列题录与草稿的字段对应关系；"无对应题录"不直接判编造（交 /paper-verify 核验）、字段差异只陈列不判对错。*
````

## 留痕（产物型 skill 的义务）

往 `.paper/` 追加一条「构思讨论」级使用记录（import 整理 + 核对属构思讨论、无新内容生成，与 topic / method / logic / disclose 同级）。纯文件追加。格式：

```markdown
## <日期时间> · paper-import 题录导入

- 环节：阶段 C｜成文（环节 16，题录导入 / 引用管理）
- 辅助级别：构思讨论（AI 整理题录入表 + 核对一致性、未替用户做存在性判断）
- AI 承担：题录格式识别、字段解析、笔记表整理、一致性核对陈列、产双产物
- 用户决定：五字段补全、无对应引用的核验决定、字段差异取舍、冗余题录去留
- 题录来源：<知网 / Zotero / EndNote · N 条>；草稿：<有/无>
- 核对汇总：草稿引用 N 条（有对应 X / 无对应 Y）、题录 M 条（被引 X' / 未引 Y'）、字段差异 Z 处
- 产物：<落盘路径>/笔记表.md（追加）、<落盘路径>/题录核对报告.md
```

`.paper/` 随 git 入库、绝不写进 `.gitignore`。

## 越界转化（三段式）

| 用户请求 | 定性 | 出口指引 |
|---|---|---|
| 帮我编几条题录凑数 / 题录不够帮我补编 | 越界：编造（违反不变① + PRD 不编造底线） | → 三段式：共情文献不够 → 讲风险（编造题录核对必穿帮、且是学术不端）→ 给合法路径（回 /paper-search 补检索、或从知网 / Zotero 重新导出真实题录） |
| 帮我判断无对应题录的引用是不是编造 | 越界：替用户下存在性判断（违反不变②、存在性核验归 verify） | → 让路说明：import 只陈列"无对应题录"、不判编造；存在性核验请用 /paper-verify（真实 API 响应为准） |
| 题录都导进来了、把这些引用直接标成核验通过 / 把整份报告的"待人工核对"都填成已核实 | 越界：替用户下存在性判断（违反不变②）＋ 批量顶替核验 | → 让路说明：题录能当**依据**、不能代替**判定**；只对"✅ 有对应题录"的条目备可粘贴回填片段、填不填由用户逐条定（见「人工核对凭据」），批量刷成已核实一律不做 |
| 帮我凭记忆补全题录里没有的 DOI / 作者 | 越界：编造（违反不变①） | → 拒绝；提示"题录未含的字段标占位、绝不凭记忆补；请回知网 / Zotero 原始记录核对或用 /paper-verify 核验" |
| 帮我把这些题录里的五字段（研究问题/方法等）也填了 | 越界：编内容（五字段需读全文、题录不含） | → 提示"五字段需读文献全文、题录通常不含；标占位请用户读后补、或用 /paper-search 检索时补" |
| 帮我整理这些题录入笔记表 + 核对草稿一致性 | **不越界（正常能力）** | → 直接进第 1 步流程 |

## 边界与异常对照表

| 情形 | 处理 |
|---|---|
| 题录文件缺 | 提示"请先从知网 / Zotero 导出题录文件并粘贴 / 指明路径" |
| 题录格式无法识别 | 提示用户确认格式、或粘贴题录原文让 AI 解析；不强猜 |
| 题录字段解析失败（部分字段） | 失败字段标"⚠️ 字段解析失败"、不强猜；其余字段照整理 |
| 草稿缺 | 只整理题录入笔记表、不做一致性核对；顶部声明 |
| `literature/笔记表.md` 已存在 | 追加新题录条目、不覆盖已有 |
| 用户要求编题录凑数 | 拒绝（不变①）；指路 search / 知网重导 |
| 用户要求凭记忆补字段 | 拒绝（不变①）；标占位 |
| 用户要求判"无对应引用是不是编造" | 让路 verify（存在性核验归 verify、import 只陈列） |
| 用户要给"⚠️ 无对应题录"的条目备回填片段 | 拒绝（不变②）；那正是要交 verify 真查的条目 |
| 题录文件用户手工编辑过 | 照常备片段，但须提示"题录即库中真实记录"的前提已不成立、建议仍走 verify 人工核对 |
| 整理 + 核对结果出来但用户不确认 | 停检查点等修改；确认前零文件落盘 |
| 不在标准科研目录里 | 双产物落当前目录并提示可用 /paper-init |
| 宿主无 Bash / 无结构化提问工具 | 流程本是纯对话、不受影响；题录粘贴文本直接解析、核对表降级为 Markdown 表格 |

## 横切声明（与同构命令同模板）

- **留痕**：产物型命令，写 `.paper/`「构思讨论」级——与 topic / method / logic / disclose 同级（整理 + 核对、无新内容生成）。
- **目录约定是增强不是依赖**：检测到标准目录则追加 `literature/笔记表.md` + 落核对报告，否则落当前目录。
- **语言**：简体中文优先；术语中文为主、英文括注，如题录（bibliographic record）、一致性核对（consistency check）、文献笔记表（literature notes table）。
- **产出披露**：双产物自带人机分工页脚 + 核对报告顶部核对范围声明（非存在性核验），如实披露 AI 整理 + 陈列、存在性判断归 verify。
