nsfc-research-foundation-writer
# NSFC Research Foundation Writer This Claude Code skill generates and revises Section 3 (Research Foundation) of NSFC grant proposals by constructing evidence chains that demonstrate project feasibility. It simultaneously orchestrates working conditions and risk mitigation measures, ensuring resource alignment with research content and executable contingency plans. Use it when explicitly asked to "write/revise research foundation" or coordinate research foundation with working conditions and risk responses, outputting two target files: the research foundation section with risk measures and the working conditions section.
git clone --depth 1 https://github.com/huangwb8/ChineseResearchLaTeX /tmp/nsfc-research-foundation-writer && cp -r /tmp/nsfc-research-foundation-writer/skills/nsfc-research-foundation-writer ~/.claude/skills/nsfc-research-foundation-writerSKILL.md
# NSFC(三)研究基础编排写作器
## 与 bensz-collect-bugs 的协作约定
- 当用户环境中出现因本 skill 设计缺陷导致的 bug 时,优先使用 `bensz-collect-bugs` 按规范记录到 `~/.bensz-skills/bugs/`,严禁直接修改用户本地 Claude Code / Codex 中已安装的 skill 源码。
- 若 AI 仍可通过 workaround 继续完成用户任务,应先记录 bug,再继续完成当前任务。
- 当用户明确要求“report bensz skills bugs”等公开上报动作时,调用本地 `gh` 与 `bensz-collect-bugs`,仅上传新增 bug 到 `huangwb8/bensz-bugs`;不要 pull / clone 整个 bug 仓库。
## 目标输出(契约)
- **写入落点(2 个文件)**:
- `extraTex/3.1.研究基础.tex`(包含“研究风险的应对措施”)
- `extraTex/3.2.工作条件.tex`
- **禁止改动**:`main.tex`、`extraTex/@config.tex`、任何 `.cls/.sty`
- **核心目标**:用“证据链 + 条件对位 + 风险预案”回答评审的三个问题:你做过吗?你做得成吗?出问题你怎么兜底?
## 参数与输出模式(建议显式提供)
- `project_root`:标书项目根目录(如 `projects/NSFC_Young`)
- `output_mode`(默认 `apply`):
- `preview`:只输出两段可复制的 LaTeX 正文草稿(并标注应写入的目标文件路径),不写入文件
- `apply`:仅写入两份目标文件(见“目标输出”),不触碰其他文件
## 必需输入(最小信息表)
- 若用户未提供,请先收集/补全:[references/info_form.md](references/info_form.md)
## 写入安全约束(必须遵守)
1. 仅编辑两份 `extraTex/3.*.tex` 文件;不得修改 `main.tex`、`extraTex/@config.tex`、任何 `.cls/.sty`
2. 目标文件若已包含标题命令(如 `\\subsection{...}` / `\\subsubsection{...}`),**只替换正文内容**,不改标题与结构层级
3. 信息不全时先提问补齐;不得捏造论文题目/期刊/专利号/样本量/指标等“看起来像真的”细节
## 工作流(按顺序执行)
1. **定位项目与目标文件**:
- 验证 `project_root` 是否存在,不存在时报错并提示用户指定正确路径
- 检查 `extraTex/` 目录是否存在,不存在时提示用户先初始化/拷贝模板项目;必要时可在用户确认后创建
- 确认 `project_root` 和 `output_mode`(默认为 `apply`)
- `preview` 模式:只生成内容预览,不写入文件(适合调试)
- `apply` 模式:将生成的内容写入 `extraTex/3.1.研究基础.tex` 和 `extraTex/3.2.工作条件.tex`
- 仅编辑这两个文件,禁止修改 `main.tex`、`extraTex/@config.tex`、任何 `.cls/.sty`
2. **生成 `3.1 研究基础`(证据链优先)**:
- 研究积累:围绕 `2.1` 的关键任务,列出“做过什么/掌握什么/已有平台什么”。
- 阶段性成果:只写可核验内容(论文/专利/数据/原型/预实验现象);不确定的细节用占位符要求用户补齐。
- 可行性四维:理论/技术/团队/条件各给 1–3 个支撑点,并与研究内容逐条对齐。
3. **在 `3.1` 中显式写“研究风险的应对措施”**:
- 至少 3 条风险(技术/进度/资源各至少 1 条)
- 每条:风险描述 → 早期信号(触发阈值/现象)→ 预案/替代路线(含降级目标与可交付)
4. **生成 `3.2 工作条件`(条件对位研究内容)**:
- **已具备条件**:逐条列出,格式建议:
- 平台:XXX 平台(已具备 / 可访问)
- 数据:XXX 数据集(已获取 / 可公开获取)
- 样本:XXX 医院/机构(已签署合作协议 / 伦理审批中)
- 算力:XXX 服务器 / GPU(已配置 / 共享使用)
- 团队分工:成员 A 负责 XX,成员 B 负责 YY
- 合规路径:伦理审批(XXX 委员会,周期 X 个月)
- **尚缺条件与解决途径**:逐条列出,格式建议:
- 缺少条件:XXX(影响:YYY)
- 解决途径:采购 / 合作 / 替代数据源 / 实验降级方案
- 时间表与责任人:如用户提供,应写入;如未提供,用占位符标记
5. **一致性校验**:
- **校验 1**:检查 `3.2 工作条件` 是否能逐条支撑 `2.1` 的关键任务
- 方法:列出 `2.1` 的每个关键任务,确认 `3.2` 中有对应的条件支撑
- 示例:
- 任务 1:XXX 实验 → 条件:XXX 平台、XXX 样本
- 任务 2:YYY 算法 → 条件:YYY 算力、ZZZ 数据
- **校验 2**:检查风险预案是否与年度计划可兼容
- 方法:列出 `2.3` 的每年里程碑,确认风险预案有对应的降级方案
- 示例:
- 第一年:样本获取 → 风险:样本入组慢 → 预案:有替代数据源与降级验证方案
- **校验失败时的处理**:
- 如果发现不一致,标记为 `[需补充:XXX]` 并提示用户
- 如果用户未提供 `2.1` 或 `2.3`,跳过对应校验并提示用户
## 验收标准(Definition of Done)
### 质量契约验证(来自 config.yaml)
- 研究基础必须覆盖:
- 与本项目相关的研究积累(证据链)
- 已取得的阶段性成果(可核验)
- 可行性要点(理论/技术/团队/条件)
- 研究风险与应对措施(显式写出)
- 工作条件必须覆盖:
- 已具备条件(平台/数据/样本/算力/团队/合规)
- 尚缺条件与解决途径(时间/预算/合作/采购/替代方案)
### 详细检查清单
见:[references/dod_checklist.md](references/dod_checklist.md)
### 可选脚本自检(只读)
- 仅校验 skill 自身结构一致性:`python3 skills/nsfc-research-foundation-writer/scripts/validate_skill.py`
- 同时检查某个项目的输出文件(存在性 + 轻量内容启发式):`python3 skills/nsfc-research-foundation-writer/scripts/run_checks.py --project-root <你的project_root>`
## 常见问题与边缘情况
### Q1: 项目目录中没有 `extraTex/` 目录怎么办?
**A**: 建议先确认 `project_root` 指向正确的标书项目根目录;若确实缺少 `extraTex/`,请手动创建:
```bash
mkdir -p "<你的project_root>/extraTex"
```
### Q2: 我还没有写 `2.1 研究内容`,可以直接写 `3.1 研究基础` 吗?
**A**: 不建议。`3.2 工作条件` 需要与 `2.1` 的关键任务对齐。建议先使用 `nsfc-research-content-writer` 完成 `2.1`。
### Q3: 信息表中的某些内容我不方便公开怎么办?
**A**: 可以提供"可核验线索"而非完整内容。例如:
- ❌ "我们在 Nature 上发表了论文 XXX"
- ✅ "我们发表过相关论文(可提供 DOI/题录/接收函编号等可核验线索)"
### Q4: 风险应对必须写 3 条吗?
**A**: 是的,至少 3 条(技术/进度/资源各至少 1 条)。即便你认为风险较低,也建议按三类各写 1 条“低风险 + 监测信号 + 预案”,避免评审认为你没有兜底意识。
### Q5: 我的信息表内容很少,能生成完整的研究基础吗?
**A**: 可以。AI 会根据你提供的信息生成内容,并在不确定的地方使用占位符(如 `[请补充:XXX]`),请你后续补全。
## 变更记录
- 本技能的变更历史记录在本目录的 `CHANGELOG.md`,并同步到根级 `CHANGELOG.md`;`SKILL.md` 仅维护“AI 执行规范”。当用户明确要求"核查/优化综述 `{主题}_review.tex` 的正文引用"或"运行 check-review-alignment"时使用。通过宿主 AI 的语义理解逐条核查引用是否与文献内容吻合,只在发现致命性引用错误时对"包含引用的句子"做最小化改写,并复用 `systematic-literature-review` 的渲染脚本输出 PDF/Word。核心原则:不为了改而改,无法确定是否为致命性错误时保留原样并在报告中警告。⚠️ 不适用:用户只是想生成系统综述正文(应使用 systematic-literature-review);用户只是想新增/核对 BibTeX 条目(应使用专门的 bib 管理流程)。
当用户明确要求"填充示例内容""生成示例""补充 LaTeX 示例"时使用。AI 增强版 LaTeX 示例智能生成器,实现 AI 与硬编码的有机融合:AI 做"语义理解"(分析章节主题、推理资源相关性、生成连贯叙述),硬编码做"结构保护"(格式验证、哈希校验、访问控制)。
当用户明确要求"从文件/图片/网页/描述中提取综述主题"或"生成主题+关键词+核心问题结构化输出"时使用。支持文件(PDF/Word/Markdown/Tex)、文件夹、图片、自然语言描述、网页 URL 等多种输入源,自动识别输入类型并提取内容,生成可直接用于 systematic-literature-review 及其他文献综述技能的结构化输出。
当用户明确要求"更新项目指南""同步指南""沉淀洞见到指南"时使用。将对话中新产生的可复用写作洞见实时沉淀到项目指南文件,保持术语口径一致、结构稳定、可检验与可复现。调用时必须指定指南文件路径。
当用户明确要求“LaTeX 模板优化”“样式参数对齐”“像素级比对”“make-latex-model”或旧写法“make_latex_model”,或要把 ChineseResearchLaTeX 里的某个项目做成高质量模板时使用。适配 NSFC / paper / thesis / cv 四条产品线;先依据 packages/ 与 projects/ 的真实分层判断改项目层还是公共包,再用各产品线官方构建入口验收。若必须修改 packages 下公共包,需先生成受影响模板回归计划并完成相关回归;NSFC 专项工具仅在明确属于 NSFC 参数对齐场景时按需使用。
当用户明确要求"写/润色 NSFC 标书摘要""生成中文摘要和英文摘要""把中文摘要翻译成英文摘要"时使用。输出中文、英文两个版本(英文必须是中文的忠实翻译版),同时输出标题建议(1个推荐标题+5个候选标题及理由)。中文摘要默认≤400字符,英文摘要默认≤4000字符。输出方式:将结果写入工作目录下的 `NSFC-ABSTRACTS.md`。⚠️ 不适用:用户只想翻译一段与标书无关的通用文本(应直接翻译);用户只想写立项依据/研究内容/研究基础正文(应使用对应 nsfc 系列 skill)。
当用户明确要求“写/生成 NSFC 预算说明书”“写预算说明”“生成 budget.tex / budget.pdf”“写国自然预算 justification”时使用。基于用户标书正文或补充材料,输出一份可提交的预算说明书 LaTeX 项目并渲染 `budget.pdf`。若用户未指定工作目录,必须暂停并先要求其指定。⚠️ 不适用:用户只是想了解预算原则;用户仅要预算表数字而不写说明书;或用户是 2026 青年 A/B/C 默认包干制且无需预算说明书的场景。
根据 NSFC 标书正文内容,结合申请代码推荐库,为你给出 5 组申请代码1/2(主/次)推荐与理由;输出到 NSFC-CODE-vYYYYMMDDHHmm.md(只读,不修改标书)