为研究项目搭建标准科研工作目录的脚手架命令。当用户要开始一个新研究项目或新论文、想初始化或规范科研项目的目录结构、要搭多项目科研工作区,或提到 paper-init、科研工作目录时使用——即使用户只是说"帮我建个放论文材料的文件夹"也应使用。行为铁律:一轮提问,方案确认前零创建;只建目录骨架加 README 加 .gitignore 加 project.paper.yaml(项目信息配置,长期记忆),可选为用户选定的宿主生成项目配置文件;不建留痕目录、不生成任何研究内容。目标目录里已有 .paper/ 的进行中项目不适用本 skill。
Scanned 8/31/2026
Install via CLI
openskills install cabbage2000-lab/paper-tutor-skills---
name: paper-init
description: 为研究项目搭建标准科研工作目录的脚手架命令。当用户要开始一个新研究项目或新论文、想初始化或规范科研项目的目录结构、要搭多项目科研工作区,或提到 paper-init、科研工作目录时使用——即使用户只是说"帮我建个放论文材料的文件夹"也应使用。行为铁律:一轮提问,方案确认前零创建;只建目录骨架加 README 加 .gitignore 加 project.paper.yaml(项目信息配置,长期记忆),可选为用户选定的宿主生成项目配置文件;不建留痕目录、不生成任何研究内容。目标目录里已有 .paper/ 的进行中项目不适用本 skill。
---
# 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 产物的人机分工说明,不另加页脚。
No comments yet. Be the first to comment!