---
slug: "introduction-skill"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/shenaowu0915-SIM/introduction-skill@main/README.md"
repo: "https://github.com/shenaowu0915-SIM/introduction-skill"
source_file: "README.md"
branch: "main"
---
---
name: introduction
description: |
  学术论文引言写作全流程助手。从 Zotero 文献提取、PDF 摘要抽取、参考文献摘要汇总，
  到引言撰写、引用-摘要交叉核验、中英文 DOCX 定稿输出。
  TRIGGER when: 用户需要写论文引言、整理参考文献摘要、校核引用准确性、
  或需要从 Zotero + PDF 批量构建文献摘要库。
  Keywords: 引言, introduction, Zotero, 摘要, abstract, 参考文献, citation check, 校稿
---

# 学术论文引言写作全流程

本 skill 覆盖从文献管理到引言定稿的完整流程，适用于工程/力学领域的学术论文写作。

---

## 流程总览

```
Phase 1: 文献提取    Phase 2: 摘要汇总    Phase 3: 引言写作    Phase 4: 交叉校核    Phase 5: 定稿输出
┌──────────────┐    ┌──────────────┐    ┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│ Zotero 导出   │ -> │ 英文摘要整理  │ -> │ 英文引言撰写  │ -> │ 逐条核对引用  │ -> │ EN .docx     │
│ PDF 提取      │    │ 中文翻译      │    │ 中英双语版本  │    │ 修正错配/删改 │    │ CN .docx     │
│ API 在线获取  │    │ 编号排序      │    │ 参考文献列表  │    │ 重编号        │    │              │
└──────────────┘    └──────────────┘    └──────────────┘    └──────────────┘    └──────────────┘
```

---

## Phase 1: 文献提取与摘要获取

### 1.1 从 Zotero 导出参考文献列表

用户提供 zotero 导出文件（`.sqlite` 或 `.txt`），使用 Python 脚本提取：

**方式 A — 从 SQLite 数据库读取（推荐，信息最全）：**

```python
import sqlite3
db = sqlite3.connect("zotero_copy.sqlite")
rows = db.execute("""
    SELECT iv_doi.value, iv_abs.value, iv_title.value
    FROM items i
    JOIN itemTypes it ON i.itemTypeID = it.itemTypeID
    LEFT JOIN itemData id_doi ON i.itemID = id_doi.itemID AND id_doi.fieldID = 8
    LEFT JOIN itemDataValues iv_doi ON id_doi.valueID = iv_doi.valueID
    LEFT JOIN itemData id_abs ON i.itemID = id_abs.itemID AND id_abs.fieldID = 2
    LEFT JOIN itemDataValues iv_abs ON id_abs.valueID = iv_abs.valueID
    LEFT JOIN itemData id_title ON i.itemID = id_title.itemID AND id_title.fieldID = 1
    LEFT JOIN itemDataValues iv_title ON id_title.valueID = iv_title.valueID
    WHERE iv_doi.value IS NOT NULL AND iv_doi.value != ''
""").fetchall()
```

**方式 B — 从 Zotero 导出的文本文件（`zotero_export.txt`）解析：**

通过正则匹配 `DOI:` 和摘要段落，提取作者、标题、DOI、摘要。

### 1.2 从 PDF 文件提取摘要

对于 Zotero 中缺失摘要的文献，从本地 PDF 文件提取：

```python
import PyPDF2
reader = PyPDF2.PdfReader(pdf_path)
text = ""
for pn in range(min(3, len(reader.pages))):  # 只读前3页
    text += (reader.pages[pn].extract_text() or "") + "\n"
# 正则匹配 Abstract 段落
import re
m = re.search(r'(?:Abstract|A B S T R A C T)[:\s-]*\n?(.+?)(?:\n\n|\n(?:\d\.|[A-Z][a-z]+\s))',
              text, re.DOTALL)
if m:
    abstract = ' '.join(m.group(1).split())
```

注意事项：
- 有些 PDF 的 Abstract 段落格式不规则，提取结果可能混入作者信息或正文
- 扫描版 PDF 无法提取文字，需手动补充
- 提取后标记 `source: "PDF extraction"`

### 1.3 在线 API 获取摘要（备用方案）

当 Zotero 和 PDF 均无摘要时，使用学术 API：

**CrossRef API（优先）：**
```
https://api.crossref.org/works/{DOI}
```
提取 `message.abstract` 字段，清除 HTML 标签。

**Semantic Scholar API（备用）：**
```
https://api.semanticscholar.org/graph/v1/paper/DOI:{DOI}?fields=abstract
```

注意：
- 需要设置 User-Agent header
- 每次请求间隔 ≥ 0.3 秒
- CrossRef 的摘要可能包含 HTML 标签（`<jats:p>` 等），需清理

### 1.4 摘要来源优先级策略

```
Zotero 数据库 > 本地 PDF 提取 > CrossRef API > Semantic Scholar API
```

每条记录标记 `source` 字段（`Zotero` / `PDF extraction` / `CrossRef` / `Semantic Scholar` / `NOT FOUND`），便于后续追溯。

### 1.5 输出格式

所有摘要保存为 JSON：

```json
{
  "1": {
    "authors": "First Author; Second Author; Third Author",
    "title": "A comprehensive review of example research topic",
    "doi": "10.xxxx/example.2025",
    "abstract": "This paper presents a review of...",
    "source": "Zotero"
  }
}
```

同时生成 Markdown 版的摘要汇总（`参考文献摘要汇总.md`），按引言引用顺序 `[1]-[N]` 编号排列。

---

## Phase 2: 中文翻译（如需要）

### 2.1 英文摘要翻译为中文

将英文摘要翻译为中文，使用以下 prompt 约束：

```
请逐句忠实翻译以下英文学术摘要为中文。要求：
1. 逐句翻译，不要概括、删减或改写
2. 保留专业术语的准确性
3. 保持学术语言风格
4. 对缺失摘要的文献标记为"摘要未能获取"
```

### 2.2 生成中文摘要汇总

输出 `参考文献摘要汇总_中文.md`，格式与英文版一一对应，标注数据来源。

---

## Phase 3: 引言写作

### 3.1 引言结构（自适应框架）

**不要使用固定的段落模板。** 引言结构必须根据用户论文的具体研究主题、方法体系和学科背景来定制。以下是一个通用的构建逻辑：

**Step 1 — 分析用户论文的核心要素：**
- 研究对象是什么？（装置/材料/方法/现象）
- 核心方法是什么？（实验/数值/理论/混合）
- 属于哪个学科领域？（土木/机械/航空航天/材料等）
- 本研究的创新点是什么？（新构型/新方法/新机理/新应用）

**Step 2 — 基于要素设计段落逻辑链：**

按学术论文引言的通用"漏斗"逻辑组织，由宽到窄：

| 逻辑层次 | 内容要求 |
|---------|---------|
| **宏观背景** (1-2段) | 研究对象是什么、为什么重要、已有工程应用 |
| **机理/方法基础** (2-3段) | 该领域的核心物理机制或方法学基础。根据论文实际内容确定，例如：如果是数值方法论文，重点写方法发展；如果是机理研究，重点写物理过程。**不要硬套"运动状态→分岔→混沌"的模式。** |
| **本领域关键问题** (1-2段) | 聚焦到论文要解决的具体问题类别（如能量耗散/参数优化/构型设计等），综述已有进展和不足 |
| **研究空白** (1段) | 明确指出已有工作的局限性，自然引出本研究的必要性 |
| **本文工作** (1段) | 研究目标、方法、主要贡献 |
| **论文组织** (1段) | 各节内容概述 |

**Step 2.5 — 段落衔接设计（防止中间段落割裂）**

中间段落（机理/方法基础、本领域关键问题）是衔接断裂的高发区，因为子主题频繁切换且缺少显式桥接，每段容易写成自成一体的独立综述。以下是具体的衔接技术要求。

**（1）钩子句规则**

每个段落的最后 1-2 句必须包含与下一段主题共享的关键词或概念，为下一段的出现做铺垫。不满足此规则的段落视为衔接断裂：

- 写作时先确定段落顺序，再在每段末尾埋入"钩子"
- 钩子句不得引入与下一段无关的新信息
- 如果前段末尾和下一段开头没有共享词汇，必须补一个过渡句

**（2）四种核心衔接模式**

以下为四种通用衔接模式，适用于工程/力学领域引言的常见段落过渡场景：

| 衔接模式 | 适用场景 | 操作要点 |
|---------|---------|---------|
| **挑线头（关键词承接）** | 前段末尾引入一个方法/概念/现象，下一段对其展开详述 | 前段最后一句将目标关键词置于句末或强调位置，后段首句以该词为主语或主题回指。关键词在相邻两段首尾之间形成字面重复或近义替换。 |
| **时间线叙事** | 同一主题下的理论/方法演进，需串联多个子方向 | 以明确的时间标记（早期/随后/近年来/与此并行）开头，每段在时间线上占据一个明确位置。尾句将叙事推进到下一个时间节点，引出下一段。 |
| **对比定位** | 在宏观背景中定位研究对象，或比较不同方法/方案的优劣 | 以 "Compared with / Unlike / In contrast to" 类句式在对比中定位。每次对比均以同一参照物（全文研究对象或其核心特性）为锚点，避免对比散乱。 |
| **问题-回答链** | 从已有限制引出研究空白，或从空白过渡到"本文工作" | 前段末尾以一句明确的开放问题或不足陈述收尾，后段首句直接回应。这是"本领域关键问题→研究空白→本文工作"这一核心推进链路的标准衔接方式。 |

**衔接模式速查表（按漏斗层级之间的过渡）：**

| 从 → 到 | 推荐衔接模式 |
|---------|------------|
| 宏观背景 → 机理/方法基础 | 挑线头 或 对比定位 |
| 机理/方法基础内部段落之间 | 时间线叙事 或 挑线头 |
| 机理/方法基础 → 本领域关键问题 | 挑线头 或 问题-回答链 |
| 本领域关键问题内部段落之间 | 对比定位 或 挑线头 |
| 本领域关键问题 → 研究空白 | 问题-回答链 |
| 研究空白 → 本文工作 | 问题-回答链 |

**（3）中间段专项衔接检查**

机理/方法基础层（2-3 段）和本领域关键问题层（1-2 段）是衔接断裂的高发区，写作完成后必须逐项通过以下 4 项检查：

1. **引子句检查**：每个中间段的首句是否承接了上一段的结尾？如果读起来像一篇独立微型综述的开头（典型信号：首句直接定义一个概念而不与前段发生任何指代关系），说明前段末尾缺少通往本段的钩子，必须在前段末尾或本段开头补入桥接句。

2. **共享词汇检查**：任意相邻两段之间，必须有至少一个核心术语在首尾之间重复或近义替换。若前段末尾讨论的对象（方法/现象/参数）在后段中完全消失，则两段之间存在主题断层，需要补一个过渡句以建立二者的关联。

3. **逻辑显式化检查**：段落之间的逻辑关系（因果/递进/转折/并列）不得仅靠读者脑补。如果两段之间存在逻辑关系（例如前段讨论某种物理机制、后段讨论影响该机制的外部参数），必须有一句话将其显式表达出来。

4. **主题收敛检查**：中间段涉及的所有子主题是否有一条共同的主线串联？如果没有，需要在机理/方法基础层的第一段开头建立这条主线（例如明确声明哪些方面对于理解本文核心问题是必要的），让读者预期到后续各子主题服务于同一个论证目标。

**Step 3 — 验证结构合理性：**
- 每个段落是否有清晰的单一主题？
- 段落之间的逻辑是否连贯（后一段自然承接前一段）？
  - 相邻段落之间是否有共享的核心术语？
  - 每段末尾是否有通往下一段的钩子句？
  - 中间段落的逻辑关系是否已显式化（不得仅靠读者脑补）？
- 是否所有引用的文献都服务于段落主题？
- 中间段（机理/方法基础、本领域关键问题）是否已通过专项衔接检查（见 Step 2.5）？

### 3.2 引用规范

- 每句论述必须有文献支撑，引用紧跟论断之后：`[1,2,3]`
- 多篇引用按编号升序排列
- 优先引用综述类文献支撑宏观论述
- 具体结论和实验数据引用原始研究文献
- 最多 70 篇参考文献

### 3.3 中英文双版

先写英文版（确保术语准确），再翻译为中文版。中文版注意事项：
- 专业术语保持一致（如 "example term" → "示例术语"）
- 调整语序使之符合中文表达习惯
- 长句适当拆分

---

## Phase 4: 交叉校核（审稿模式）

这是最关键的质量控制步骤。必须逐句逐引用核验。

### 4.1 核验方法

对引言正文中**每一句包含引用的论述**，执行以下检查：

1. 定位论述中引用的每个文献编号
2. 在摘要汇总中找到对应摘要
3. 确认摘要内容能够支撑该论述
4. 特别关注：论述是否超出摘要范围？是否存在概念偷换？

### 4.2 常见问题清单

| 问题类型 | 示例 | 严重程度 |
|---------|------|---------|
| **引用贡献交叉错位** | 将文献 A 的方法归于文献 B | **严重** |
| **摘要缺失无法核验** | 引用标记为 NOT FOUND 的文献 | **严重** |
| **文献不完整** | 缺少期刊名/卷号/页码/DOI | **严重** |
| **文献主题不匹配** | 引用不相关领域的论文支撑本领域核心论述 | **严重** |
| **摘要不足以支撑论述** | 摘要说的是 A，论述说的是 B | **中等** |
| **基础文献冒充专论** | 泛领域基础理论文献被当作本领域专论引用 | **中等** |
| **物理概念偏差** | 将概念 X 误用于描述不同的物理现象 Y | **中等** |

### 4.3 修正策略

- **严重问题** → 删除引用或替换为相关文献，必要时修改正文论述
- **中等问题** → 保留引用但调整论述措辞使其更精确
- **轻微问题** → 记录但不阻塞定稿

### 4.4 删除文献后的重编号

如果删除某条参考文献（如原 [66]），则：
- 正文中该引用直接移除
- 所有后续引用编号前移 1
- 参考文献列表中后续条目编号同步前移
- 仅影响被删除文献之后的编号

---

## Phase 5: DOCX 输出

### 5.1 中文版格式

```
字体: 宋体 (SimSun)
字号: 五号 (10.5pt)
行距: 单倍行距 (1.0)
页边距: 上下 2.54cm, 左右 3.18cm
首行缩进: 0.74cm (两字符)
英文字体: Times New Roman (内嵌英文部分)
参考文献字号: 小五号 (9pt)
```

### 5.2 英文版格式

```
字体: Times New Roman
字号: 12pt
行距: 单倍行距 (1.0)
页边距: 上下 2.54cm, 左右 3.18cm
首行缩进: 0.74cm
参考文献字号: 9pt
```

### 5.3 生成 DOCX 的 Python 模板

```python
from docx import Document
from docx.shared import Pt, Cm
from docx.oxml.ns import qn

def setup_doc_cn():
    doc = Document()
    for section in doc.sections:
        section.top_margin = Cm(2.54)
        section.bottom_margin = Cm(2.54)
        section.left_margin = Cm(3.18)
        section.right_margin = Cm(3.18)
    style = doc.styles['Normal']
    style.font.name = '宋体'
    style.font.size = Pt(10.5)
    style.paragraph_format.line_spacing = 1.0
    style.paragraph_format.space_after = Pt(0)
    style.paragraph_format.space_before = Pt(0)
    rPr = style.element.get_or_add_rPr()
    rFonts = rPr.get_or_add_rFonts()
    rFonts.set(qn('w:eastAsia'), '宋体')
    rFonts.set(qn('w:ascii'), 'Times New Roman')
    rFonts.set(qn('w:hAnsi'), 'Times New Roman')
    return doc
```

将 Markdown 文件逐段写入 DOCX，参考文献用小号字体。

---

## 使用方式

### 安装

将本文件复制到 `.claude/skills/introduction.md`：
- **项目级**：`<你的项目>/.claude/skills/introduction.md`（仅当前项目可用）
- **全局级**：`~/.claude/skills/introduction.md`（所有项目都可用，推荐）

### 触发

在 Claude Code 中输入 `/introduction`，或直接说：
- "帮我整理参考文献摘要"
- "根据摘要写引言"
- "校核引言引用准确性"
- "生成中英文 docx 定稿"

### 新项目引导

当在新项目中被调用时，按以下步骤引导：

1. **确认项目准备情况**：询问用户是否有 Zotero 数据库（`.sqlite`）和 PDF 文件
2. **创建参考文献列表**：帮助用户创建 `references_input.json`
3. **按 Phase 1-5 逐步执行**：本 skill 中的所有代码片段均为自包含模板，可直接在当前会话中运行，无需额外脚本文件

---

## 依赖环境

```bash
pip install PyPDF2 python-docx
```

需要的外部资源：
- Zotero 数据库文件（`.sqlite`）或导出文本
- 参考文献 PDF 文件（放在工作目录下）
- 网络访问（CrossRef / Semantic Scholar API）

---

## 输出文件清单

| 文件 | 说明 |
|------|------|
| `abstracts_raw.json` | 原始摘要数据（含来源标记） |
| `abstracts_final.json` | 合并去重后的最终摘要 |
| `参考文献摘要汇总.md` | 英文摘要按引用顺序排列 |
| `参考文献摘要汇总_中文.md` | 中文翻译版摘要汇总 |
| `引言定稿_vN_EN.md` | 第 N 版英文引言 |
| `引言定稿_vN_CN.md` | 第 N 版中文引言 |
| `引言定稿_vN_EN.docx` | 英文 DOCX 定稿 |
| `引言定稿_vN_CN.docx` | 中文 DOCX 定稿 |
