paper-init:科研工作目录脚手架
SkillDev toolsScaffold command for setting up a standard research working directory for a research project. Use when the user wants to start a new research project or paper, wants to initialize or standardize a research project's directory structure, wants to build a multi-project research workspace, or mentions
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the paper-init:科研工作目录脚手架 skill
What this skill tells your AI
The instructions your AI receives, as published by cabbage2000-lab/paper-tutor-skills in skills/paper-init/SKILL.md and read by ahel’s review.
把一个研究项目(一篇论文 / 一个研究问题(RQ))的产物落盘约定,变成"一轮提问即可就绪"的目录骨架。你(执行本 skill 的宿主 agent)只做三件事:问清 → 呈现方案等确认 → 只建骨架并交接。建骨架的同时顺带收齐项目信息,落成 project.paper.yaml——这是后续全体 paper 命令的长期记忆,让它们一上来就懂这个项目,不用每次重新问。
本 skill 是工作台基础设施,不覆盖、不对应学术研究"5 阶段 23 环节"中的任何研究环节;无网络依赖,断网宿主照常可用。目录约定对其他 paper 命令是增强而非依赖——用户不经本命令,其他命令也照常可用,所以永远不要向用户强推它。
四条红线(优先级高于本文其余一切指令)
- 确认前零创建。用户明确确认方案之前,禁止任何改变文件系统的动作——mkdir、写文件、git init 都算。只读探测不受限:零创建 ≠ 零读取。
- 只建骨架:目录 + README + .gitignore +
project.paper.yaml(项目信息配置),此外一律不建。尤其严禁预建.paper/目录与任何 skill 产物文件(哪怕空文件、占位文件)。project.paper.yaml是项目说明书(骨架的一部分,记录学科 / 阶段 / 引用偏好等,供后续命令读取),不是 skill 产物——它与 README/.gitignore 并列、同样"交付即可用"。可选生成的宿主配置文件(CLAUDE.md / AGENTS.md)同理属骨架,见第 3 步。为什么严禁预建.paper/与 skill 产物:后续 paper 命令靠"文件存不存在、内容有没有"判断项目进行到哪、从哪续跑,预建空文件会让全新项目被误判成半成品;空壳文件混进交付物也违背"交付即可用"的底线。 - 绝不动既有内容:目标位置已有的任何文件与目录,不覆盖、不移动、不删除、不编辑。README 或 .gitignore 已存在 → 保留原文件一字不动,仅提示用户自行核对内容是否满足需要。
- 只增不删:全程只允许创建目录、创建新文件、
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 步:一轮提问
一次性收齐六项;触发语里已说明的项不再问:
-
项目名:将成为项目目录名。例如"ChatGPT 对本科生写作效率的影响"。
-
规划范围:a) 只做这一个研究项目;b) 多项目并行(追问工作区名,默认"科研工作区")。
-
位置:建在哪个目录下,默认当前目录
./;用户给绝对路径或~路径时原样使用,不做二次猜测。 -
git 版本管理:默认要;用户明确说不要才跳过。
-
项目信息配置(长期记忆,全部可选——逐项留空也照常建骨架,落成
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。学科领域为自由文本原样写入。用户答"暂不确定/留空"的字段写空字符串""。 -
宿主配置文件(可选增强):你主要用哪个宿主配合本目录工作?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 步:只读探测 → 呈现方案 → 停下等确认
先做只读探测(必须做,且只允许只读命令):
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 步生成与否)
然后在一条不包含任何写动作的回复里完整呈现方案。呈现方案的这条回复中不得出现任何改变文件系统的工具调用——这条规则让"确认前零创建"变成你可以逐条自查的硬约束。方案包含四块:
- 最终形态预览:目录树,含
.paper/与各命令将来会写入的代表性产物,逐项注明"由 X 会话创建——本次不建"(见下方预览树示例)。让用户看到最终形态,同时不误以为本次会建它们。预览树含本次要建的project.paper.yaml(及用户选了宿主时的 CLAUDE.md / AGENTS.md),注明"本次创建"。 - 本次创建清单:单独一张清单,逐条列出本次真正要建的目录与文件——含
project.paper.yaml;用户选了 Claude Code / Codex 且目标无既有宿主文件时,清单还含对应 CLAUDE.md / AGENTS.md(目标已有该文件则不列入清单,改在"关键选择及理由"里说明保留不动)。这是第 3 步唯一的施工依据——预览树里注明"本次不建"的条目,一个都不许出现在施工里。 - 关键选择及理由:单项目还是工作区分层;git 建在哪层(或为何跳过 / 为何建议保留);
.gitignore为什么忽略 PDF 却绝不忽略.paper/与project.paper.yaml;用户选了宿主但目标已有该宿主文件时,说明保留不动、请用户自行核对(红线 3)。 - 目标非空时:现有内容清单 + 处理方式(全部保留不动,只补缺失的部分)。
结尾用停点原文,然后结束回复、等待用户:
⏸ 等待确认:工作目录方案(回复"确认"开始创建,或直接提出修改)
确认循环:用户提出修改 → 更新方案后重新完整呈现再等确认,循环到用户明确确认为止。"确认,但位置改一下"这类混合答复按修改处理(修改优先于确认)——改完重新呈现,再等一次确认。
第 3 步:创建与交接
开工前自检三问,全部为"是"才允许执行第一条写命令:
- 用户最近一条消息是不是对当前方案的明确确认,且不含未处理的修改?
- 目标现状是否已探测过、并已在方案里如实呈现?
- 接下来要执行的动作是否全部在红线 4 的允许清单内?
按序施工(只照"本次创建清单"施工):
mkdir -p建目录骨架(见"两种布局");- git:探测显示已处于 git 仓库内 → 跳过
git init并向用户说明:外层仓库会直接跟踪这些项目文件,再嵌一层仓库反而让外层看不到内容;同时不要替用户向外层仓库暂存或提交任何东西——外层仓库归用户管,新建文件保持未跟踪即可。否则(用户要 git 且 git 可用)→ 在正确层级git init:单项目建在项目根,工作区建在工作区根; - 按下方模板实例化 README(工作区模式写两份:工作区 README + 项目 README);
- 写
.gitignore(模板见下;已存在则跳过并提示用户自行核对); - 写
project.paper.yaml(模板见下):按用户在第 1 步第 5 项的回答实例化,用户留空的字段写空字符串""占位——一个都不填也照建,后续可手工补。单项目建在项目根;工作区模式只在项目子目录建,工作区根不建(项目信息是项目级的)。已存在则跳过并提示用户自行核对(红线 3)。写完用grep '[<>]' project.paper.yaml自检无残留尖括号; - 生成宿主配置文件(仅当用户在第 1 步第 6 项选了 Claude Code 或 Codex):先
test -e <目标宿主文件>——已存在则保留不动(红线 3),不列入本次创建,施工跳过此项;不存在则按下方"宿主配置文件模板"生成,文件名取 CLAUDE.md(Claude Code)或 AGENTS.md(Codex),内容从project.paper.yaml派生。单项目建在项目根;工作区模式建在项目子目录。用户选"其他 / 不要"则整步跳过; - 本次执行过
git init的,git add <本次新建的全部文件>后提交,提交信息固定为init: 科研工作目录(paper-init 创建)——让仓库历史第一条就说清目录从哪来。首次提交只含本次新建的文件:用户的既有文件收不收进仓库,是用户自己的决定; - 打印成果与交接指引:
✅ 科研工作目录就绪:<实际路径>
接下来对我说:<取"命令发布映射表"中第一条已发布命令的交接语>
(.paper/ 留痕目录将在你首次使用任一 paper 命令时自动创建)
映射表中一条已发布命令都没有时,中间一行改为:
paper 系列研究命令(选题澄清 / 文献检索 / 引用核验)尚未发布;可以先把已有材料归位——文献 PDF 放 literature/pdfs/,数据放 data/,草稿放 manuscript/。命令发布后即可在此目录直接使用。
两种布局
单项目
<项目名>/ ← git 仓库根(若要 git)
├── README.md # 本次创建:工作说明书
├── .gitignore # 本次创建
├── project.paper.yaml # 本次创建:项目信息配置(长期记忆),后续 paper 命令读取
├── topic/ literature/ data/ analysis/ manuscript/ review/ submission/ # 本次创建(空目录)
└── .paper/ # 留痕与状态——各 paper 命令会话自动创建,本次不建
多项目工作区
<工作区名>/ ← 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/)则相反——是研究项目的核心分区、必预建。
方案呈现用的预览树示例(单项目)
<项目名>/
├── 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(单一事实来源,记录全部命令的名称 / 阶段 / 定位 / 状态)。本表是 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 现在机械守着本表与主清单在命令集合、落盘目录、发布状态三处一致。
"下一步"列一律不含尖括号——需要读者自己填的占位符写成「你的 RQ」这类中文引号形态。本列会被整句抄进 README 正文,而 README 实例化的自检是 grep '[<>]' README.md 期望零命中;列里留一个"故意不替换"的尖括号,既让自检必然误报,也让实例化时分不清哪个该替换(本表原先的 <你的 RQ> 就同时踩了这两条)。交接语列不受此限:它只打印在对话里、不进 README,<项目目录路径> 本就该替换成真实路径。
README 模板(单项目版)
实例化规则:
- 尖括号项全部替换为真实值;
<按映射表:X目录>表示查上表——把该目录中状态为"已发布"的命令依次填入,一条都没有则填"(后续版本)";data/、analysis/、.paper/ 三行的"谁写入"列是固定文案;新增的"为什么这样分"列全部固定、不查表; - "下一步"小节:每条已发布命令占一行(用映射表里的"下一步"行);一条已发布命令都没有时,整节换成模板内注明的降级两行;
- 日期用探测到的真实日期;
- 写完通读一遍:确认没有残留尖括号、没有待填空白(可用
grep '[<>]' README.md自检,正文不应含任何尖括号)。
# <项目名>
本目录是《<项目名>》的科研工作目录,由 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 模板
单项目版(写入项目根):
# 系统与编辑器杂项
.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 自检无残留尖括号。
# 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 '[<>]' <文件> 自检无残留。
# <项目名> · 宿主协作指令
本目录是《<项目名>》的科研工作目录,由 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 产物的人机分工说明,不另加页脚。
Signals
- GitHub stars
- 26
- Forks
- 6
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
paper-init- Source
- github.com/cabbage2000-lab/paper-tutor-skills