mcpField
R
research-proposal

research-proposal

github.com/luwill生产力876911 次安装3 天前更新
代码仓库

关于 research-proposal

用于撰写英文或中文博士研究提案与学术研究计划的 Skill,按场景调整结构,并强调逐节写作和引用核验。

主要功能

  1. 01按研究场景选择结构
  2. 02收集研究要求与范围
  3. 03要求核验引用来源
  4. 04按章节逐步撰写
  5. 05检查引用与写作质量

适用场景

  1. 01起草博士研究提案
  2. 02调整开题报告的章节安排
  3. 03按基金格式准备提案内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/luwill/research-skills --skill research-proposal

安装后在 Claude Code 中输入/research-proposal确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
proposal_scaffold_en.md
proposal_scaffold_zh.md
learnings/
2026-09-30-重写清不完所有文件.md
2026-10-24-自动判制式会静默丢掉另一种引用.md
README.md
references/
CITATION_INTEGRITY.md
DOMAIN_TEMPLATES.md
LITERATURE_WORKFLOW.md
QUALITY_CHECKLIST.md
STRUCTURE_GUIDE.md
WRITING_STYLE_GUIDE.md
scripts/
check_proposal.py
integrity_gate.py
tests/
test_check_proposal.py
test_document_contract.py

详细介绍

研究计划生成器

撰写面向未来的学术研究计划——即尚未开展的研究方案——遵循一流学术写作规范,可使用英文或中文。

此技能旨在一次就正确生成初稿,而非提供一个以后还要修改的模板。最重要的原则只有一条:保证引文完整、准确。引用虚构文献属于学术诚信问题,而非写作风格问题。进入第 2 阶段前,请阅读 references/CITATION_INTEGRITY.md。

核心原则

先写成连贯的文章。 研究计划应由衔接流畅的段落构成,而非要点列表。仅在列出一组明确的研究问题/目标(2–4 项)和时间表里程碑时使用列表。研究贡献、方法、背景或意义都不要列成要点;应以叙述方式展开。完整规则和示例见:references/WRITING_STYLE_GUIDE.md。

每条引文都必须在采用前核实。 参考文献数量应由论证需要决定,而不是为了凑数——没有最低数量要求。博士研究计划通常引用 25–50 篇文献(人文学科往往更多);论证严密的 25 篇胜过凑数的 45 篇。每条参考文献在纳入计划前都必须确认真实存在(DOI/PMID/arXiv 可解析,或有 Zotero 元数据),且作者和年份与来源一致。无法核实的文献须标记为 [UNVERIFIED] 并予以披露,绝不可虚构。详见 references/CITATION_INTEGRITY.md。

边写边核实,避免一次生成。 按章节起草;每完成一节,都要核实该节的引文,再继续下一节(第 4 阶段)。不要一次性生成包含多个章节、数十条引文的完整研究计划——这是导致参考文献幻觉的结构性原因。

措辞谨慎,符合证据。 对拟开展的工作和不确定的主张,使用试探性措辞(如“旨在”“可能”“预计”);对公认事实则直接陈述。不要夸大其词(如“将证明”“将彻底改变”)。

避免大模型的惯用表达。 以下短语带有 AI 检测器的典型特征,应予以删去:“过去十年间,X 已成为……”,“近年来,”,“值得注意的是”,“发挥着至关重要/关键的作用”,“引起了广泛关注”,“深入探讨”,“是……的见证”;中文:“近年来,随着……的飞速发展”,“……日益受到广泛关注”。应从具体领域的实际情况切入,而不是使用泛泛的背景铺垫。

情境路由

以下默认结构面向博士研究计划和学术研究计划(摘要 → 引言 → 文献综述 → 研究方法 → 时间表 → 研究意义)。请在第 1 阶段确认具体情境并进行调整:

请求结构
博士/博士研究计划、研究计划书默认结构(本技能)
开题报告(论文提案/答辩)默认结构,但应加重文献综述的比重,并在研究方法部分以研究基础/可行性分析小节开篇——介绍审阅者既往的相关工作、初步成果,以及获取数据/计算资源的条件;研究方法应具体明确
人文学科博士论文计划默认结构 + 章节大纲部分(见 references/DOMAIN_TEMPLATES.md)
基金申请书 / 国自然 / NSF 基金采用不同结构(立项依据 / 研究内容与目标 / 研究方案与可行性 / 研究基础与工作条件)。本技能会根据基金方要求的章节调整并起草内容,但不会填写基金方自有的表格系统、预算表或 NSF 专属栏目(学术价值 / 广泛影响)。请告知用户,默认的五部分模板不是基金申请表;应按基金方要求的模板调整标题,并在写作前与用户确认

阶段 1:需求收集

使用 AskUserQuestion 收集以下信息:

  • 研究主题/问题 — 要调查的核心问题。
  • 场景 — PhD 计划书/开题报告/研究计划/基金申请(结构路由见上文)。
  • 学术领域 — STEM(以及是否涉及计算或 ML,参见 references/DOMAIN_TEMPLATES.md)、人文学科或社会科学。
  • 输出语言 — English 或中文。
  • 目标篇幅 — PhD 计划书/研究计划:默认约 3,000 词,范围为 2,000–4,000 词(人文学科可扩展至约 10,000 词)。开题报告的篇幅由院校规定,不适用此默认值——请询问学校的模板和规定篇幅(常见为 10,000–30,000 字,文献综述部分往往占一半);中文篇幅按字符计数(wc -m),而非按空格分隔的词数。如果用户没有要求,则将中文开题报告的默认篇幅设为约 15,000 字,并将其作为已锁定的假设说明。
  • 可选 — 目标院校/导师;可供参考的现有材料或 Zotero 文献库。

如果主题过于宽泛,无法确定研究方法的范围,请先提出有针对性的澄清问题,再继续。无头运行(没有交互式用户,例如由另一个 Agent 的工作流调用):从调用提示中提取上述需求,而非提问,并像阶段 3 一样将其记录为大纲中的已锁定假设——绝不能编造提示中未提及的要求。


阶段 2:文献收集(含核验关卡)

阅读 references/LITERATURE_WORKFLOW.md,了解搜索策略和组织方式。

工具可移植性。 使用特定工具名称前,先确认有哪些工具可用。对于受限访问论文,优先使用用户的 Zotero 文献库(通过 mcp__zotero__* 工具);使用 WebSearch 查询领域概况/趋势,并使用 WebFetch 打开 DOI/PubMed/arXiv 页面并确认元数据。如果未连接 Zotero/arXiv/PubMed MCP,则改用 WebSearch + WebFetch。提醒用户将相关的受限访问论文添加到 Zotero。

按用途选择来源:使用 WebSearch 查询趋势、综述和术语;使用 WebFetch 访问 arXiv/PubMed/出版商页面,获取开放获取的原始来源和元数据;使用 Zotero MCP 访问用户自己的文献库、批注和笔记。对于期刊文章,Crossref REST API(WebFetch https://api.crossref.org/works/<DOI>)是核实文献是否存在及其元数据的最可靠方式——它会返回简洁的 JSON(标题/第一作者/年份/刊物),比解析出版商的 HTML 页面更可靠。

按用途整理候选文献:背景/语境、当前最先进研究、识别研究空白的方法、研究方法以及相关研究。

核验关卡(不得跳过)

任何来源在被引用前都必须:

  1. 根据首要来源(DOI/PMID/arXiv 页面或 Zotero 元数据)核实每篇候选文献的存在性、第一作者和年份——参见 references/CITATION_INTEGRITY.md 的规则 1、2、5。
  2. 仅从已实际访问全文或摘要的来源中引用具体发现/数据。无法打开的论文,不得撰写其内部研究结果。
  3. 将已核实的候选文献列表(标题、作者、年份、来源/DOI)交给用户快速检查,之后再拟定大纲。

无法核实的内容不得纳入参考文献池;如果用户坚持使用记忆模糊的来源,请标注为 [UNVERIFIED]。

非交互式/无头运行。 如果技能在没有交互式用户的情况下调用(例如由后台 Agent 或流水线调用),不要因第 3 步而阻塞:将已核实的候选文献列表直接记录在交付内容中(或记录在配套的 citation_verification_log.md 中),然后继续。该记录列表作为审计轨迹,替代实时检查。


阶段 3:大纲生成

阅读 references/STRUCTURE_GUIDE.md 和 references/DOMAIN_TEMPLATES.md,了解各章节和学科领域的指导说明。

标准大纲(默认情境)
# [Research Title]

## Abstract (150-300 words, 5-10%) — background, questions, methodology overview, significance
## 1. Introduction (500-800 words, 15-20%) — background, problem, questions/objectives, scope
## 2. Literature Review (500-1000 words, 20-25%) — framework, current state, gap, positioning
## 3. Methodology (500-800 words, 20-25%) — design, data collection, analysis, validity/limitations
## 4. Timeline (200-300 words, 5-10%) — phases, milestones, optional Gantt
## 5. Significance and Expected Contributions (200-400 words, 10-15%) — theoretical, practical, broader impact
## References — cite what the argument needs (see CITATION_INTEGRITY.md); no minimum, no padding

为人文学科提案添加一个 章节大纲 部分。不要包含附录——将必要内容整合到正文中。

审批关卡(红线)

呈现大纲,并在进入阶段 4 前等待用户明确批准。不得根据未经批准的大纲开始撰写内容。

询问用户是否认可结构、各部分的侧重点和范围,以及是否需要添加、删除或修改章节。

**如果用户说“你决定”/“你看着办”/将决定权交给你:**说明你要确定采用的假设(情境、领域、章节设置、目标篇幅、语言),再次呈现具体大纲作为决定方案,并且只有在此之后才继续——将“让你决定”后未作回应视为对该已说明大纲的批准,但仍须列出这些假设,让用户可以提出异议。

如果完全没有交互式用户(无头/Agent 运行):在交付内容中内嵌记录已确定的假设和大纲,并将这份记录视为已获批准。这样既能保留审计轨迹,也不会因无人能够批准而陷入停滞。


阶段 4:内容撰写(边写边核验)

将框架作为写作骨架,逐节填充:

阅读 references/WRITING_STYLE_GUIDE.md 并遵循其中的规范。核心硬性规则:优先使用连贯行文而非列表;论述应审慎且有证据支撑;采用 PEEL 段落结构(观点 → 证据 + 引文 → 解释 → 衔接);首次使用缩写时给出全称(“coronary CT angiography (CCTA)”);将引文融入句子。

边写边核验流程——每节重复以下步骤:

  1. 撰写该节的连贯正文,并且只使用阶段 2 已核实文献池中的文内引文,采用选定的格式:APA/MLA 风格使用 (Author, Year),GB/T 7714 顺序编码制使用数字 [N](中文默认)。
  2. 立即核验该节的引文:每条文内引文都有对应的参考文献条目(规则 3),且每项方向性/定量论断都与来源一致(规则 4)。参见 references/CITATION_INTEGRITY.md。
  3. 根据 LLM 特征(核心原则)以及 CITATION_INTEGRITY.md 中的幻觉警示信号进行自检。
  4. 在开始下一节之前,就地修正所有未通过之处。不要在不同章节中累积未经核验的引文。

**按领域选择引文格式:**STEM/社会科学 → APA(Author, Year);人文学科 → MLA 或 Chicago;中文 → GB/T 7714。全文保持格式统一。

**图表:**在适当位置建议 3–5 幅图(不放在摘要中),每幅图均须包含标题、内容描述和风格说明。格式与位置指南见 references/WRITING_STYLE_GUIDE.md。

**中文输出:**使用规范的学术语体;审慎措辞(“本研究旨在探讨……”而非“本研究将证明……”);参考文献遵循 GB/T 7714。


阶段 5:输出与审核

保存为 proposal_{topic_slug}_{YYYY-MM-DD}.md,放在用户的工作目录中。

根据 references/QUALITY_CHECKLIST.md 进行核验。交付前,必须通过引文门槛。先运行可执行门槛并粘贴其输出——它会一次性执行以下所有机械检查,并指出每处问题所在的行:

python3 <skill_dir>/scripts/check_proposal.py proposal_{topic_slug}_{YYYY-MM-DD}.md
# --style auto|apa|numeric (auto: numeric when References entries start with [N])
# --allow-disclosed-flags : every remaining [UNVERIFIED…] has been disclosed → warnings, not failures
# exit 0 = no mechanical findings (not proof the proposal is right); 1 = findings; 2 = bad input

它会双向核对文内引文 ↔ 参考文献(APA (Smith, 2024) / Smith et al. (2024) 按第一作者姓氏 + 年份匹配;GB/T 7714 [1] / [2-4] ↔ [N] 条目),运行下方的占位符和 AI 痕迹模式(使用相同正则表达式,并由测试锁定),并标记残留的脚手架 [instructions],同时允许豁免的个性化字段。一份文本只能使用一种引文格式——混用 [N] 和作者-年份格式会判定失败,而不会只检查其中一种。中文叙述中的作者-年份格式(张伟(2020)提出)无法可靠分段,因此中文稿应使用 GB/T 7714 顺序编码制(默认格式),以便门槛覆盖每一处引文。以下项目定义了每项检查的含义,并作为人工检查的备选方案:

  • grep -nE "xxx|XXXX|\[TBD\]|\[UNVERIFIED[^]]*\]|10\.xxxx|doi:10\.[a-z]+/x|forthcoming DOI|\[.*占位.*\]" 返回 0 条命中——或者每个残留的 [UNVERIFIED] 都已明确告知用户,且从未作为已确认信息呈现。(此正则表达式是唯一规范版本;references/CITATION_INTEGRITY.md 链接到该表达式,而不是另行复述一个变体。)
  • 每一处文内引文都与参考文献列表核对一致(两个方向均无孤立条目)。
  • 至少抽查 20% 的参考文献,以及每一项定量/方向性论断,并对照来源核实。
  • AI 痕迹门槛:正文中运行 grep -nEi "over the past ((few|several|two|three) )?(decades?|years)|in recent years,|it is worth noting|plays a (crucial|pivotal|vital) role|sheds light on|paves the way|ever-evolving|has garnered significant attention|delves into|a testament to|众所周知|近年来,?随着|日益受到(广泛)?关注",应返回 0 条命中(参见核心原则;所有参考文件和脚手架中也禁止使用相同模式)。
  • 正文中不得残留占位符 [brackets] 或 “TBD”——但以下情况除外:申请者专属的脚手架字段,用户必须自行填写([University/Institution Name]、[Your Field]、[Month Year];中文脚手架表头中的 [所属学科]、[大学/研究机构名称]、[年月] 等同类字段),以及 [Figure N Suggestion] 标签;这些是有意保留的,可以留存。

提供格式转换:

pandoc proposal.md -o proposal.docx        # Word
pandoc proposal.md -o proposal.pdf         # PDF (needs LaTeX)

参考文件

文件阅读时机
references/CITATION_INTEGRITY.md第二阶段之前及第四/五阶段全程——5 条引文规则;必须遵守
references/STRUCTURE_GUIDE.md第三阶段——逐节写作指南
references/DOMAIN_TEMPLATES.md第一/三阶段——STEM(包括计算/ML)、人文学科、社会科学的差异
references/WRITING_STYLE_GUIDE.md第四阶段——学术写作风格、审慎措辞、过渡语、图表
references/QUALITY_CHECKLIST.md第五阶段——交付前最终核验
references/LITERATURE_WORKFLOW.md第二阶段——文献收集工作流
assets/proposal_scaffold_en.md第四阶段——英文写作框架
assets/proposal_scaffold_zh.md第四阶段——中文写作框架

工作流摘要

阶段 1 需求(交互式)→ 阶段 2 文献 + 核验门槛 → 阶段 3 大纲 + 审批红线 → 阶段 4 内容,逐节边写边核验 → 阶段 5 输出 + 引文门槛 + 检查清单。


错误处理

  • 没有 Zotero 搜索结果 / MCP 不可用 — 告知用户,改用开放获取来源执行 WebSearch + WebFetch,并建议将论文添加到 Zotero 后重试。
  • 无法核实某条参考文献 / 疑似伪造 — 不要将其写入参考文献列表。在文中标记 [UNVERIFIED] 并告知用户;绝不要为了补全信息而编造 DOI 或作者列表。
  • 主题过于宽泛 — 提出澄清问题;缩小范围;提供结构完善的研究问题示例。
  • 超过字数限制 — 优先保留引言和方法论;将文献综述压缩为支撑论点所必需的引用;可提供单独文件形式的扩展版。

learnings:复盘先于重写

修改 references 或 scaffold 之前,先浏览 learnings/——v1→v2 的重写诊断表明,这类经验教训很有价值,却从未沉淀下来。返工或发现自相矛盾后,应追加一篇,并以日期命名。

版本说明

诊断发现,v1.0.0 技能生成的许多参考文献完全没有真实性防护措施,只有一次性生成步骤,设置了硬性的“至少 40 篇参考文献”门槛,助长凑数,而且内部数字自相矛盾。因此,v2.0.0 进行了重写。

早期问题(v1.0.0)当前修复(v2.0.0)
完全没有核验引用添加了 CITATION_INTEGRITY.md,其中包含 5 条规则;并在 Phase 2/4/5 设置门槛
硬性要求“至少 40 篇参考文献”已移除;改为“论证需要多少就引用多少;通常为 25–50 篇;绝不凑数”
Phase 4 = 一次性生成改为逐节撰写并核验
写作前没有文献核验门槛Phase 2 采用先核验再引用,并进行用户合理性检查
数字自相矛盾(40/30-50 篇参考文献,60%/80% 的近期文献)统一为:不设最低数量;在领域发展迅速时,近期文献约占 60%
工作流从未加载 scaffoldsPhase 4 明确加载 assets/proposal_scaffold_{en,zh}.md
提供了带有 AI 痕迹的句式模板作为范例已移除;新增“避免 LLM 痕迹”指南
大纲审批要求含糊将其设为明确红线,并规定“你看着办”的处理方式
声明了 Task 工具却未使用;缺少 WebFetch移除 Task;添加 WebFetch
全文都是冠状动脉成像示例减少此类示例,加入跨领域示例;添加计算与 ML 子模板
Scaffold 中使用项目符号列出贡献,与优先使用散文的规则冲突Scaffolds 现在以散文形式展示贡献和启示

v2.0.1 加固:v2.0.0 中“移除 AI 痕迹模板”的清理只处理了 WRITING_STYLE_GUIDE——STRUCTURE_GUIDE、DOMAIN_TEMPLATES 和中文 scaffold 仍然推荐使用已禁用的开头;现已清理这些内容,并在 Phase 5 添加 AI 痕迹 grep 门槛。中文 scaffold 已全面改为 GB/T 7714 顺序编码制,并采用真实的字符数;将 Bash 加入 allowed-tools,以确保引用门槛检查和 pandoc 转换确实可执行;在 description 和 routing 中以相同方式说明国自然/NSF 的界限;Phase 2 现在将语料构建转交给 lit-search 技能,而不再重复实现。

评论

支持 Markdown