---
name: Paper Init
slug: paper-init
category: Writing
description: Scaffolds a consistent directory structure for research projects, generating config files (project.paper.yaml) to enable other tools to understand the project context. Use when initializing a new paper or research project to standardize file organization.
github: "https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-init"
language: Python
stars: 18
forks: 5
install: "npx degit https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-init ~/.claude/skills/paper-init"
installs_to: ~/.claude/skills/paper-init
source_path: skills/paper-init/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.410Z
last_synced: 2026-08-11T07:22:50.410Z
canonical_url: "https://dirskills.com/skills/paper-init"
---

# Paper Init

Scaffolds a consistent directory structure for research projects, generating config files (project.paper.yaml) to enable other tools to understand the project context. Use when initializing a new paper or research project to standardize file organization.

**Install:**

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

## README

# paper-init：科研工作目录脚手架

把一个研究项目（一篇论文 / 一个研究问题（RQ））的产物落盘约定，变成"一轮提问即可就绪"的目录骨架。你（执行本 skill 的宿主 agent）只做三件事：**问清 → 呈现方案等确认 → 只建骨架并交接**。建骨架的同时顺带收齐项目信息，落成 `project.paper.yaml`——这是后续全体 paper 命令的长期记忆，让它们一上来就懂这个项目，不用每次重新问。

本 skill 是工作台基础设施，不覆盖、不对应学术研究"5 阶段 23 环节"中的任何研究环节；无网络依赖，断网宿主照常可用。目录约定对其他 paper 命令是**增强而非依赖**——用户不经本命令，其他命令也照常可用，所以永远不要向用户强推它。

## 四条红线（优先级高于本文其余一切指令）

1. **确认前零创建**。用户明确确认方案之前，禁止任何改变文件系统的动作——mkdir、写文件、git init 都算。只读探测不受限：零创建 ≠ 零读取。
2. **只建骨架**：目录 + README + .gitignore + `project.paper.yaml`（项目信息配置），此外一律不建。尤其严禁预建 `.paper/` 目录与任何 skill 产物文件（哪怕空文件、占位文件）。`project.paper.yaml` 是项目说明书（骨架的一部分，记录学科 / 阶段 / 引用偏好等，供后续命令读取），不是 skill 产物——它与 README/.gitignore 并列、同样"交付即可用"。可选生成的宿主配置文件（CLAUDE.md / AGENTS.md）同理属骨架，见第 3 步。为什么严禁预建 `.paper/` 与 skill 产物：后续 paper 命令靠"文件存不存在、内容有没有"判断项目进行到哪、从哪续跑，预建空文件会让全新项目被误判成半成品；空壳文件混进交付物也违背"交付即可用"的底线。
3. **绝不动既有内容**：目标位置已有的任何文件与目录，不覆盖、不移动、不删除、不编辑。README 或 .gitignore 已存在 → 保留原文件一字不动，仅提示用户自行核对内容是否满足需要。
4. **只增不删**：全程只允许创建目录、创建新文件、`git init`、`git add <本次新建的文件>`、`git commit`。禁止 `rm`、`mv`、覆盖式 `cp`、`>` 截断已有文件、`sed -i` 等一切修改或删除既有内容的命令，也禁止 `git clean` / `git reset` / `git checkout -- ` / `git rm`。

## 何时不做

- **目标目录里发现 `.paper/`**：这是进行中的 Paper-Tutor-Skills 项目。向用户说明这一点，建议直接用对应子命令续作（留痕与进度都在 `.paper/` 里），然后就此打住——不提问、不呈现方案、不创建任何东西。
- **用户只想用某个单点能力**（查文献、核引用、聊选题），没打算建目录：不要把本 skill 当前置步骤强加给用户。
- **与科研项目无关的目录整理**：本 skill 不适用，按普通任务处理。
- **"建好目录后直接帮我写一篇论文"类请求**：目录照建；代写部分不做，走三段式转化——先共情目标（赶时间、想先看到成果），再用用户自己的语言讲清风险（AI 代写的文稿经不起答辩追问与学术诚信核查，署名责任在用户），最后给一个 5 分钟内可见成果的第一步（把标准目录建好、把已有材料归位，再从选题澄清起步）。绝不代生成研究想法与正文。

## 流程

### 第 1 步：一轮提问

一次性收齐六项；触发语里已说明的项不再问：

1. **项目名**：将成为项目目录名。例如"ChatGPT 对本科生写作效率的影响"。
2. **规划范围**：a) 只做这一个研究项目；b) 多项目并行（追问工作区名，默认"科研工作区"）。
3. **位置**：建在哪个目录下，默认当前目录 `./`；用户给绝对路径或 `~` 路径时原样使用，不做二次猜测。
4. **git 版本管理**：默认要；用户明确说不要才跳过。
5. **项目信息配置**（长期记忆，**全部可选——逐项留空也照常建骨架**，落成 `project.paper.yaml`，后续 paper 命令会话读取以提供精准辅助）：
   - **用户身份**：研究生 / 高校教师 / 科研工作者 / 其他——影响话术语气与默认建议（学位论文 vs 期刊投稿）。
   - **学科领域**：自由文本（如"计算机科学""法学""历史学"），影响数据源默认路由与术语库。
   - **当前研究阶段**：选题 / 文献调研 / 执行实验 / 成文 / 评审 / 投稿（对应"5 阶段 23 环节"标尺），影响 paper-help 推荐与交接指引。
   - **引用格式偏好**：APA / GB/T 7714 / Chicago / IEEE / 暂不确定（留空）。
   - **语言偏好**：简中优先 / 英文优先 / 视投稿目标定。

   **落盘映射**：用户用中文回答，写入 `project.paper.yaml` 时按模板注释里的英文态码落值——用户身份研究生→`graduate_student`、高校教师→`faculty`、科研工作者→`researcher`、其他→`other`；当前阶段选题→`topic`、文献调研→`literature`、执行实验→`execution`、成文→`writing`、评审→`review`、投稿→`submission`；引用格式 APA→`apa`、GB/T 7714→`gb-t-7714`、Chicago→`chicago`、IEEE→`ieee`；语言简中优先→`zh-first`、英文优先→`en-first`、视投稿目标定→`by-target`。学科领域为自由文本原样写入。用户答"暂不确定/留空"的字段写空字符串 `""`。
6. **宿主配置文件**（可选增强）：你主要用哪个宿主配合本目录工作？a) Claude Code（生成 CLAUDE.md）；b) Codex（生成 AGENTS.md）；c) 其他 / 不要（跳过，不生成）。生成的内容从 `project.paper.yaml` 派生，让该宿主 agent 一打开项目就懂它的学科、阶段与协作边界。

**提问方式（优先结构化选择）**：优先用宿主的结构化提问工具（Claude Code 的 AskUserQuestion 等）把**有固定选项的项做成选择题**让用户点选，减少打字——规划范围（只做这一个 / 多项目并行）、git（要 / 不要）、用户身份（研究生 / 高校教师 / 科研工作者 / 其他）、当前研究阶段（选题 / 文献调研 / 执行实验 / 成文 / 评审 / 投稿）、引用格式（APA / GB/T 7714 / Chicago / IEEE / 暂不确定）、语言偏好（简中优先 / 英文优先 / 视投稿目标定）、宿主配置文件（Claude Code / Codex / 其他或不要）。每题都带"留空 / 其他"兜底（项目信息全可选，不想答的直接跳过）。**自由文本三项**（项目名、位置、学科领域）不适合做选项：工具支持自由输入兜底（如 AskUserQuestion 的"其他"自填）则并入同一轮，否则在结构化提问前后用一句普通文本问清——合起来仍是"一轮提问"（一轮 = 一次收齐、确认前不停顿）。按工具能力分批（每批问题数与选项数不超工具上限），一轮收齐六项即可，不强制单次弹窗。

**降级路径（必须保留）**：宿主不提供结构化提问工具、工具不可用，或用户说"不要用结构化提问"时，立即降级为**编号列表一次列出全部问题**，等待文本回复，按语义宽松解析（"1 效率研究 2 就一个 3 就这儿 4 要 5 研究生 计算机 文献调研 apa 简中 6 claude"这类简写要能读懂），只对真有歧义的一项追问。结构化提问是**可选增强**，这条纯文本降级是底线——不得依赖任何宿主专有机制（PRD 跨宿主约束①、skills/README·横切要求 1）。

项目名规则：可中可英（英文目录名约定只约束标准子目录，不约束用户的项目名）；不含路径分隔符；不以 `.` 开头；书名号《》只出现在对话与 README 正文，目录名不带。

### 第 2 步：只读探测 → 呈现方案 → 停下等确认

**先做只读探测**（必须做，且只允许只读命令）：

```bash
ls -A <目标位置>                                    # 是否存在、是否非空、有无 .paper/、有无 README/.gitignore/project.paper.yaml
git -C <目标位置> rev-parse --show-toplevel 2>/dev/null   # 有输出 = 已处于某 git 仓库内
git --version                                      # git 是否可用
date +%F                                           # README 与 project.paper.yaml 落款用真实日期，不凭记忆写
test -e <目标位置>/<CLAUDE.md 或 AGENTS.md>         # 用户选了宿主时：检查目标宿主文件是否已存在（影响第 3 步生成与否）
```

然后**在一条不包含任何写动作的回复里**完整呈现方案。呈现方案的这条回复中不得出现任何改变文件系统的工具调用——这条规则让"确认前零创建"变成你可以逐条自查的硬约束。方案包含四块：

1. **最终形态预览**：目录树，含 `.paper/` 与各命令将来会写入的代表性产物，逐项注明"由 X 会话创建——本次不建"（见下方预览树示例）。让用户看到最终形态，同时不误以为本次会建它们。预览树含本次要建的 `project.paper.yaml`（及用户选了宿主时的 CLAUDE.md / AGENTS.md），注明"本次创建"。
2. **本次创建清单**：单独一张清单，逐条列出本次真正要建的目录与文件——含 `project.paper.yaml`；用户选了 Claude Code / Codex 且目标无既有宿主文件时，清单还含对应 CLAUDE.md / AGENTS.md（目标已有该文件则**不列入清单**，改在"关键选择及理由"里说明保留不动）。**这是第 3 步唯一的施工依据**——预览树里注明"本次不建"的条目，一个都不许出现在施工里。
3. **关键选择及理由**：单项目还是工作区分层；git 建在哪层（或为何跳过 / 为何建议保留）；`.gitignore` 为什么忽略 PDF 却绝不忽略 `.paper/` 与 `project.paper.yaml`；用户选了宿主但目标已有该宿主文件时，说明保留不动、请用户自行核对（红线 3）。
4. **目标非空时**：现有内容清单 + 处理方式（全部保留不动，只补缺失的部分）。

结尾用停点原文，然后结束回复、等待用户：

```text
⏸ 等待确认：工作目录方案（回复"确认"开始创建，或直接提出修改）
```

**确认循环**：用户提出修改 → 更新方案后**重新完整呈现**再等确认，循环到用户明确确认为止。"确认，但位置改一下"这类混合答复按修改处理（修改优先于确认）——改完重新呈现，再等一次确认。

### 第 3 步：创建与交接

开工前自检三问，全部为"是"才允许执行第一条写命令：

1. 用户最近一条消息是不是对当前方案的明确确认，且不含未处理的修改？
2. 目标现状是否已探测过、并已在方案里如实呈现？
3. 接下来要执行的动作是否全部在红线 4 的允许清单内？

按序施工（只照"本次创建清单"施工）：

1. `mkdir -p` 建目录骨架（见"两种布局"）；
2. **git**：探测显示已处于 git 仓库内 → 跳过 `git init` 并向用户说明：外层仓库会直接跟踪这些项目文件，再嵌一层仓库反而让外层看不到内容；同时**不要替用户向外层仓库暂存或提交任何东西**——外层仓库归用户管，新建文件保持未跟踪即可。否则（用户要 git 且 git 可用）→ 在正确层级 `git init`：单项目建在项目根，工作区建在工作区根；
3. 按下方模板实例化 README（工作区模式写两份：工作区 README + 项目 README）；
4. 写 `.gitignore`（模板见下；已存在则跳过并提示用户自行核对）；
5. **写 `project.paper.yaml`**（模板见下）：按用户在第 1 步第 5 项的回答实例化，用户留空的字段写空字符串 `""` 占位——一个都不填也照建，后续可手工补。单项目建在项目根；**工作区模式只在项目子目录建，工作区根不建**（项目信息是项目级的）。已存在则跳过并提示用户自行核对（红线 3）。写完用 `grep '[<>]' project.paper.yaml` 自检无残留尖括号；
6. **生成宿主配置文件**（仅当用户在第 1 步第 6 项选了 Claude Code 或 Codex）：先 `test -e <目标宿主文件>`——已存在则**保留不动**（红线 3），不列入本次创建，施工跳过此项；不存在则按下方"宿主配置文件模板"生成，文件名取 CLAUDE.md（Claude Code）或 AGENTS.md（Codex），内容从 `project.paper.yaml` 派生。单项目建在项目根；工作区模式建在项目子目录。用户选"其他 / 不要"则整步跳过；
7. 本次执行过 `git init` 的，`git add <本次新建的全部文件>` 后提交，提交信息固定为 `init: 科研工作目录（paper-init 创建）`——让仓库历史第一条就说清目录从哪来。首次提交**只含本次新建的文件**：用户的既有文件收不收进仓库，是用户自己的决定；
8. 打印成果与交接指引：

```text
✅ 科研工作目录就绪：<实际路径>
接下来对我说：<取"命令发布映射表"中第一条已发布命令的交接语>
（.paper/ 留痕目录将在你首次使用任一 paper 命令时自动创建）
```

映射表中一条已发布命令都没有时，中间一行改为：

```text
paper 系列研究命令（选题澄清 / 文献检索 / 引用核验）尚未发布；可以先把已有材料归位——文献 PDF 放 literature/pdfs/，数据放 data/，草稿放 manuscript/。命令发布后即可在此目录直接使用。
```

## 两种布局

### 单项目

```text
<项目名>/                     ← git 仓库根（若要 git）
├── README.md                # 本次创建：工作说明书
├── .gitignore               # 本次创建
├── project.paper.yaml         # 本次创建：项目信息配置（长期记忆），后续 paper 命令读取
├── topic/  literature/  data/  analysis/  manuscript/  review/  submission/   # 本次创建（空目录）
└── .paper/                    # 留痕与状态——各 paper 命令会话自动创建，本次不建
```

### 多项目工作区

```text
<工作区名>/                   ← git 仓库根建在这一层（一库多项目）
├── README.md                # 本次创建：工作区版说明（项目清单 + 目录约定）
├── .gitignore               # 本次创建：工作区级一份即可，项目层不再建
└── <项目名>/                 # 本次创建：七个子目录 + 标准版项目 README + project.paper.yaml；不各建 git、不各建 .gitignore
```

git 建在工作区根而非每项目各建：研究历史集中一处，跨项目共用的文献素材有统一归属，用户不必维护 N 个仓库。工作区只做两层，不按学科或年度再分层——层级越深，指引越长越易错。

**向既有工作区追加新项目**：呈现现有内容清单 → 确认后只新建缺失的项目子目录及其 README。**绝不编辑既有的工作区 README**——哪怕只是想把新项目加进项目清单，那也是修改既有文件，违反红线 3；正确做法是把建议补充的清单行打印在对话里，请用户自行粘贴。

**infra 类产物目录不预建**：`/paper-daily` 这类跨阶段 infra 命令有自己的产物目录（`daily/`），但**不预建在初始骨架里**——infra 产物是可选的（用户可能从不需要做抢发检测），预建会让每个新项目都背一个空目录；首次使用时由对应命令自建（见 paper-daily SKILL.md「目录自建约定」）。研究阶段产物目录（topic/ literature/ manuscript/ review/ submission/）则相反——是研究项目的核心分区、必预建。

### 方案呈现用的预览树示例（单项目）

```text
<项目名>/
├── README.md                 ← 本次创建（工作说明书）
├── .gitignore                ← 本次创建
├── project.paper.yaml          ← 本次创建（项目信息配置，长期记忆）
├── CLAUDE.md / AGENTS.md     ← 本次创建（仅当用户选了宿主；否则不建）
├── topic/                    ← 本次创建（空目录）
│   └── RQ澄清记录.md          ← 由 /paper-topic 会话创建——本次不建
├── literature/               ← 本次创建
│   ├── 文献笔记表.md           ← 由 /paper-search 会话创建——本次不建
│   └── pdfs/                  ← 收 PDF 全文（不入 git）——本次不建
├── data/                     ← 本次创建（原始数据，你本人维护，AI 不进场）
├── analysis/                 ← 本次创建（分析脚本与结果，你本人维护，AI 不进场）
├── manuscript/               ← 本次创建（大纲、草稿、摘要的落点）
├── review/                   ← 本次创建
│   └── 引用核验报告.md         ← 由 /paper-verify 会话创建——本次不建
├── submission/               ← 本次创建（投稿材料的落点）
└── .paper/                     ← 使用留痕与进度——各 paper 命令会话自动创建，本次不建
```

## 命令发布映射表

README 写入者列、README"下一步"、交接语，三处**只准从本表推导**。发布状态以本表为准，不要靠探测目录或凭记忆猜测哪些命令可用。

> **命令主清单**在 [`_shared/commands.yaml`](../_shared/commands.yaml)（单一事实来源，记录全部命令的名称 / 阶段 / 定位 / 状态）。本表是 paper-init 专用的**派生呈现**——额外承载落盘目录、README"下一步"行、交接语这三个 paper-init 产物专属字段。状态列须与主清单一致：主清单是 `released` 的本表写"已发布"，其余写"未发布"。

| 命令 | 落盘目录 | 发布状态 | README"下一步"行（已发布时用） | 交接语（已发布时用） |
| --- | --- | --- | --- | --- |
| /paper-topic | topic/ | 已发布 | 只有模糊方向：对助手说"用 /paper-topic 帮我澄清选题" | 用 /paper-topic 澄清选题，落盘目录用 <项目目录路径> |
| /paper-search | literature/ | 已发布 | 已有 RQ 要查文献："用 /paper-search 检索「你的 RQ」" | 用 /paper-search 检索文献，落盘目录用 <项目目录路径> |
| /paper-screen | literature/ | 已发布 | 要做系统综述、需要 PRISMA 筛选记录："用 /paper-screen 建筛选台账 + 出流程图" | 用 /paper-screen 做系统综述筛选，落盘目录用 <项目目录路径> |
| /paper-method | topic/ | 已发布 | 有 RQ 要定方法："用 /paper-method 参谋方法-RQ 匹配 / 涉人伦理提示" | 用 /paper-method 参谋研究设计，落盘目录用 <项目目录路径> |
| /paper-verify（含 /paper-format、/paper-claim） | review/ | 已发布 | 已有草稿要自查："用 /paper-verify 核验草稿引用" | 用 /paper-verify 核验草稿引用，落盘目录用 <项目目录路径> |
| /paper-proposal | topic/ | 已发布 | 有 RQ+文献+方法要组装开题："用 /paper-proposal 组装开题报告草案" | 用 /paper-proposal 组装开题报告，落盘目录用 <项目目录路径> |
| /paper-import | literature/ | 已发布 | 有知网/Zotero 题录要整理："用 /paper-import 整理题录 + 核对草稿一致性" | 用 /paper-import 整理题录，落盘目录用 <项目目录路径> |
| /paper-outline | manuscript/ | 已发布 | 文献读得差不多要搭骨架："用 /paper-outline 起草论文大纲" | 用 /paper-outline 起草大纲，落盘目录用 <项目目录路径> |
| /paper-draft | manuscript/ | 已发布 | 有大纲要逐段写正文："用 /paper-draft 分段共写正文" | 用 /paper-draft 分段共写正文，落盘目录用 <项目目录路径> |
| /paper-style | manuscript/ | 已发布 | 各章文风要查一致性、或想把自己的写作风格存成基线："用 /paper-style 校准全文风格" | 用 /paper-style 校准全文风格，落盘目录用 <项目目录路径> |
| /paper-logic | manuscript/ | 已发布 | 初稿成形要查论证链："用 /paper-logic 检查 RQ→方法→结果→结论 对应" | 用 /paper-logic 检查论证链，落盘目录用 <项目目录路径> |
| /paper-anchor | literature/ | 未发布 | 导师或审稿人说某段缺文献支撑："用 /paper-anchor 定位零引用段 + 定向找支撑" | 用 /paper-anchor 补文献支撑，落盘目录用 <项目目录路径> |
| /paper-abstract | manuscript/ | 已发布 | 正文写完要凝练摘要："用 /paper-abstract 从正文提炼摘要" | 用 /paper-abstract 提炼摘要，落盘目录用 <项目目录路径> |
| /paper-figure | manuscript/ | 已发布 | 有图要查或没图要建议："用 /paper-figure 做图表诊断或设计建议" | 用 /paper-figure 做图表诊断或建议，落盘目录用 <项目目录路径> |
| /paper-plot | manuscript/ | 已发布 | 要生成绘图代码："用 /paper-plot 生成 matplotlib/ggplot2 代码" | 用 /paper-plot 生成绘图代码，落盘目录用 <项目目录路径> |
| /paper-review | review/ | 已发布 | 投稿/答辩前预演评审："用 /paper-review 模拟多视角评审" | 用 /paper-review 模拟评审，落盘目录用 <项目目录路径> |
| /paper-revise | review/ | 已发布 | 收到审稿意见要逐条修订并写回复信："用 /paper-revise 起草修订对照表 + 逐点回复信" | 用 /paper-revise 起草修订与回复，落盘目录用 <项目目录路径> |
| /paper-disclose | submission/ | 已发布 | 要生成 AI 使用说明："用 /paper-disclose 汇编 .paper/ 留痕" | 用 /paper-disclose 汇编 AI 使用说明，落盘目录用 <项目目录路径> |
| /paper-daily | daily/ | 已发布 | 有研究想法想抢发检测 / 泛读新发："用 /paper-daily 拉双轨（抢发对照 + 新发自动）" | 用 /paper-daily 跑每日雷达，落盘目录用 <项目目录路径> |
| /paper-submit | submission/ | 已发布 | 论文写完要投稿、要整理投稿材料清单："用 /paper-submit 整理投稿 checklist + 期刊要求陈列 + cover letter 骨架" | 用 /paper-submit 整理投稿准备，落盘目录用 <项目目录路径> |
| /paper-typeset | submission/ | 已发布 | 期刊要 Word/LaTeX/PDF 版稿件、或参考文献要按国标渲染："用 /paper-typeset 转格式 + 国标著录" | 用 /paper-typeset 转投稿格式，落盘目录用 <项目目录路径> |

维护说明：某命令通过发布门时，其发布任务须在同一次提交里把 `_shared/commands.yaml` 中该命令的 `status` 翻转为 `released`，并同步把本表对应状态格翻转为"已发布"（见 skills/README·发布联动）。主清单是权威，本表状态列与其对齐。**新增命令（无论是否已发布）同样须在那次提交里补进本表**，落盘目录、"下一步"行、交接语一并预填——这样发布时只需改一个状态格。漏补的代价不止本表不准：README 的"谁写入"列只准从本表推导，本表漏一条，真机生成的 README 就在对应目录行漏标一个写入者（paper-style / paper-typeset 自 v0.1.0 首发起就没进过本表、paper-anchor 同样漏了，直到 v0.1.7 才补）。[`tests/test_manifest_consistency.py`](../../tests/test_manifest_consistency.py) 现在机械守着本表与主清单在命令集合、落盘目录、发布状态三处一致。

**"下一步"列一律不含尖括号**——需要读者自己填的占位符写成「你的 RQ」这类中文引号形态。本列会被整句抄进 README 正文，而 README 实例化的自检是 `grep '[<>]' README.md` 期望零命中；列里留一个"故意不替换"的尖括号，既让自检必然误报，也让实例化时分不清哪个该替换（本表原先的 `<你的 RQ>` 就同时踩了这两条）。交接语列不受此限：它只打印在对话里、不进 README，`<项目目录路径>` 本就该替换成真实路径。

## README 模板（单项目版）

实例化规则：

- 尖括号项全部替换为真实值；`<按映射表：X目录>` 表示查上表——把该目录中状态为"已发布"的命令依次填入，一条都没有则填"（后续版本）"；data/、analysis/、.paper/ 三行的"谁写入"列是固定文案；新增的"为什么这样分"列全部固定、不查表；
- "下一步"小节：每条已发布命令占一行（用映射表里的"下一步"行）；一条已发布命令都没有时，整节换成模板内注明的降级两行；
- 日期用探测到的真实日期；
- **写完通读一遍**：确认没有残留尖括号、没有待填空白（可用 `grep '[<>]' README.md` 自检，正文不应含任何尖括号）。

````markdown
# <项目名>

本目录是《<项目名>》的科研工作目录，由 paper-init 于 <日期> 创建。
按产物类型分区，每类产物只有一个落点；各目录按需使用，空着不碍事。

## 目录约定

每个目录的分区背后是一个研究方法论原则——理解了原则能举一反三，不只记住"放哪"。

| 目录 | 放什么 | 谁写入 | 为什么这样分 |
| --- | --- | --- | --- |
| topic/ | RQ 澄清记录、开题报告 | <按映射表：topic/> | 选题是研究主权起点，后续产物都围绕 RQ |
| literature/ | 文献笔记表、题录、检索方案；PDF 放 literature/pdfs/（不入 git） | <按映射表：literature/> | 文献是地基——笔记（你思考）与 PDF（他人成果）分归属 |
| data/ | 原始数据与数据说明 | 你——AI 不采集数据 | 原始数据不可改，是结论的事实基础 |
| analysis/ | 分析脚本与结果 | 你——AI 不代跑分析 | 与 data/ 分离：数据不可篡改、分析可重跑（可复现性） |
| manuscript/ | 大纲、草稿、摘要 | <按映射表：manuscript/> | 写作渐进收敛，分文件留痕让思路演化可回溯 |
| review/ | 引用核验报告、格式检查、模拟评审 | <按映射表：review/> | 投稿前诚信兜底，核验报告是"自查过"的过程证据 |
| submission/ | 投稿材料、AI 使用说明 | <按映射表：submission/> | 发表环节合规出口，AI 使用说明是"敢用"的前提 |
| .paper/ | AI 使用留痕与进度状态——自动维护，勿手工编辑 | 各 skill 会话 | 人机分工过程证据，事后无法重构，随 git 可追溯 |

另有 `project.paper.yaml`（项目信息配置，长期记忆）在项目根，记录用户身份 / 学科 / 阶段 / 引用偏好——各 paper 命令会话开始时读取它以提供精准辅助；你可随时手工编辑补充。

## 三条提醒

- **data/ 中涉个人可识别信息的原始数据（访谈转录、问卷原始记录）不要输入 AI**——匿名化之前，它们只属于这个目录。
- **.paper/ 是你的人机分工过程证据，事后无法重构**——不要删除，不要写进 .gitignore。
- **project.paper.yaml 是后续命令的长期记忆**——丢了它们就得每次重新问你的学科与偏好；随仓库走，不要写进 .gitignore。

## 下一步

<按映射表生成：每条已发布命令一行；一条都没有时，本节固定为下面两行>
- 把已有材料先归位：文献 PDF 放 literature/pdfs/，数据放 data/，草稿放 manuscript/
- paper 系列研究命令（选题澄清 / 文献检索 / 引用核验）发布后，即可在本目录直接使用
````

**工作区版差异**（其余与单项目版相同）：

- 首段换成：`本目录是《<工作区名>》科研工作区，由 paper-init 于 <日期> 创建，一个工作区管多个研究项目。`（工作区名就是默认的"科研工作区"时，省略书名号部分，直接写"本目录是科研工作区，由……"，避免名称重复）
- 首段之后加"项目清单"小节：`| 项目 | 说明 |` 两列表，每个项目子目录一行，说明取自用户描述、没有则填"—"；
- "目录约定"表前加一句：`以下约定适用于每个项目子目录：`；
- 工作区内每个项目子目录仍放一份标准单项目版 README（首段中的目录路径写项目子目录）。

## .gitignore 模板

单项目版（写入项目根）：

```gitignore
# 系统与编辑器杂项
.DS_Store
Thumbs.db
*.swp

# 文献 PDF 全文：体积与版权（题录与笔记表入库）
literature/pdfs/

# 大体积原始数据按需自行添加，例如：
# data/raw/
```

工作区版（写入工作区根，全工作区就这一份）：PDF 行改为 `**/literature/pdfs/`，并把示例注释改为 `# 某项目/data/raw/`。为什么：gitignore 里带路径分隔符的模式锚定在 .gitignore 所在目录，不加 `**/` 前缀就管不到各项目子目录里的 pdfs。

三条明文禁令：**`.paper/` 与 `data/` 与 `project.paper.yaml` 三者绝不写进 .gitignore**。`.paper/` 是人机分工的过程证据，只能在使用当时留下、事后无法重构，必须随仓库走；`project.paper.yaml` 是后续命令的长期记忆，丢了就得每次重新问学科与偏好；`data/` 因项目而异（小数据入库有版本价值，敏感数据本就不该进任何仓库或 AI），由用户自行决定，脚手架不代做判断。

## project.paper.yaml 模板

项目根（工作区模式：项目子目录）实例化。尖括号项替换为真实值；用户留空的字段写空字符串 `""`——一个都不填也照建，后续可手工补。写完通读一遍，用 `grep '[<>]' project.paper.yaml` 自检无残留尖括号。

```yaml
# Paper-Tutor-Skills 项目信息配置（长期记忆）
# 由 paper-init 于 <日期> 生成，后续 paper 命令会话读取本文件以提供精准辅助。
# 你可随时手工编辑补充；字段均可留空。

project_name: "<项目名>"
created_at: "<日期>"          # 由 paper-init 写入真实日期，不凭记忆
created_by: "paper-init"

# 用户身份：graduate_student / faculty / researcher / other
user_role: ""

# 学科领域（自由文本，影响数据源路由与术语库）
discipline: ""

# 当前研究阶段：topic / literature / execution / writing / review / submission
current_stage: ""

# 引用格式偏好：apa / gb-t-7714 / chicago / ieee / ""（暂不确定）
citation_style: ""

# 语言偏好：zh-first / en-first / by-target
language_pref: ""
```

工作区模式：工作区根**不建**此文件（项目信息是项目级的）；每个项目子目录各建一份。

## 宿主配置文件模板（可选）

仅当用户在第 1 步选了 Claude Code（生成 `CLAUDE.md`）或 Codex（生成 `AGENTS.md`）时使用。两个模板**正文相同、文件名不同**，内容从 `project.paper.yaml` 派生——核心是把项目信息交给该宿主 agent 的指令通道，让它一打开项目就懂学科、阶段与协作边界。正文精简，不与 README.md 大量重复。

先 `test -e <目标文件>`：已存在则**保留不动**（红线 3），跳过生成并在交接提示里说明；不存在则按下方模板实例化生成。尖括号项替换为真实值，`project.paper.yaml` 字段为空时填"未指定"。写完用 `grep '[<>]' <文件>` 自检无残留。

````markdown
# <项目名> · 宿主协作指令

本目录是《<项目名>》的科研工作目录，由 paper-init 于 <日期> 创建，配合 Paper-Tutor-Skills 系列命令使用。

## 项目信息（派生自 project.paper.yaml）

- 用户身份：<user_role 或 "未指定">
- 学科：<discipline 或 "未指定">
- 当前研究阶段：<current_stage 或 "未指定">
- 引用格式偏好：<citation_style 或 "未指定">
- 语言偏好：<language_pref 或 "未指定">

## 目录约定（摘要）

按产物类型分区，完整版见项目根 `README.md`：topic/（选题）、literature/（文献）、data/（原始数据，AI 不进场）、analysis/（分析，AI 不代跑）、manuscript/（手稿）、review/（评审）、submission/（投稿）。`.paper/` 是 AI 使用留痕与进度状态，自动维护，勿手工编辑。

## 协作边界

Paper 是 AI 辅导员，不是 AI 代笔：不代生成研究想法与正文、不代跑实验与代码、不编造数据与引用。每条 paper 命令会话自动在 `.paper/` 留下人机分工记录。详见项目根 `README.md`。
````

工作区模式：宿主文件建在**项目子目录**（与 `project.paper.yaml` 同层），工作区根不建。

**跨宿主说明**：本文件服务于用户选定的单一宿主，不影响 Paper-Tutor-Skills 本身的宿主中立性——`project.paper.yaml` 才是宿主中立的 Paper-Tutor-Skills 专属配置；用户换宿主时可手工补一份对应文件，或重跑 paper-init（探测到既有内容会保留不动）。

## 边界与异常对照表

| 情形 | 处理 |
| --- | --- |
| 目标目录已存在且非空 | 方案中呈现现有内容清单；确认后只补缺失部分，既有文件一律不动 |
| 目标目录里有 `.paper/` | 进行中的 Paper-Tutor-Skills 项目：说明情况、建议用对应子命令续作，就此打住 |
| README / .gitignore 已存在 | 保留原文件一字不动，仅提示用户自行核对 |
| `project.paper.yaml` 已存在 | 保留原文件一字不动，仅提示用户自行核对（红线 3） |
| 用户第 1 步项目信息全留空 | `project.paper.yaml` 照建，字段为空字符串占位，后续可手工补 |
| 用户选了宿主但目标已有该宿主文件 | 保留不动，交接提示请用户自行核对（红线 3） |
| 用户选"其他 / 不要"宿主文件 | 跳过宿主文件生成，不建 CLAUDE.md / AGENTS.md |
| 工作区模式 | `project.paper.yaml` 与宿主文件只建在项目子目录，工作区根不建 |
| 目标已处于某 git 仓库内 | 跳过 git init，说明原因（外层会直接跟踪，嵌套反而让外层看不到内容）；不代用户向外层仓库暂存或提交 |
| 宿主没有 git | 方案中说明无法初始化版本管理，建议装好后手动 `git init`；其余照常 |
| 用户明确不要 git | 跳过 git 整节，但方案中说明放弃了什么：论文写作以月计，版本保护值回票价 |
| 用户中途不回复 / 会话中断 | 什么都不建——确认前零创建的自然结果 |

## 横切声明

- **留痕**：本 skill 不创建 `.paper/`、不写使用留痕——留痕由各产物型命令的会话负责；脚手架动作的过程证据就是 git 首次提交本身。
- **长期记忆**：`project.paper.yaml` 是后续全体 paper 命令的共享读取约定；各命令会话开始时读取本文件，据 `user_role` / `discipline` / `current_stage` / `citation_style` / `language_pref` 调整话术与默认值。本文件随 git 入库（绝不写进 .gitignore）。
- **宿主配置文件**：CLAUDE.md / AGENTS.md 是可选产物，从 `project.paper.yaml` 派生、服务于用户选定的单一宿主；Paper-Tutor-Skills 本身保持宿主中立——`project.paper.yaml` 才是宿主中立的 Paper-Tutor-Skills 专属配置。
- **语言**：全部用户可见输出用简体中文；术语中文为主、英文括注，如研究问题（RQ）。
- **产出披露**：README 首段"由 paper-init 于某日创建"即本 skill 产物的人机分工说明，不另加页脚。
