nsfc-reviewers
当用户明确要求"评审国自然标书"、"模拟专家评审"、"审阅 NSFC 申请书"时使用。模拟领域专家视角对 NSFC 标书进行多维度评审,输出分级问题与可执行修改建议。⚠️ 不适用:用户只是想写/改标书某个章节(应使用 nsfc-*-writer 系列技能)、只是想了解评审标准(应直接回答)、没有明确"评审/审阅"意图。
Best use case
nsfc-reviewers is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
当用户明确要求"评审国自然标书"、"模拟专家评审"、"审阅 NSFC 申请书"时使用。模拟领域专家视角对 NSFC 标书进行多维度评审,输出分级问题与可执行修改建议。⚠️ 不适用:用户只是想写/改标书某个章节(应使用 nsfc-*-writer 系列技能)、只是想了解评审标准(应直接回答)、没有明确"评审/审阅"意图。
Teams using nsfc-reviewers should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/nsfc-reviewers/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How nsfc-reviewers Compares
| Feature / Agent | nsfc-reviewers | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
当用户明确要求"评审国自然标书"、"模拟专家评审"、"审阅 NSFC 申请书"时使用。模拟领域专家视角对 NSFC 标书进行多维度评审,输出分级问题与可执行修改建议。⚠️ 不适用:用户只是想写/改标书某个章节(应使用 nsfc-*-writer 系列技能)、只是想了解评审标准(应直接回答)、没有明确"评审/审阅"意图。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
# NSFC 标书专家评审模拟器
## 重要声明(非官方)
- 本技能输出仅用于**写作改进与自查**,不代表任何官方评审口径,也不构成资助结论或承诺。
- “函评/会评给不过”的判断仅作为**当前版本送审风险预估**,用于帮助用户判断优先修改方向,不代表真实评审结果。
## 技能依赖
- 并行多组评审模式依赖 `parallel-vibe` 技能。
- 若 `parallel-vibe` 不可用、被禁用,或 `panel_count == 1`,自动退化为单组模式(仍包含 7 位专家)。
- 专家 prompt 模板位于 `references/expert_*.md`,聚合规则位于 `references/aggregation_rules.md`。
## 安全与隐私(硬规则)
- 默认将标书内容视为**敏感信息**:仅处理用户明确提供的文件/目录;不擅自扩展扫描范围。
- 除非用户明确要求且确认风险:**不联网**、不把原文大段外发、不在输出中复述不必要的个人信息/单位信息。
- 只做“文本读取与评审”,默认不执行任何编译/运行(例如不运行 LaTeX 编译,不执行脚本)。
- 输出若需分享:优先提供“问题摘要 + 可执行修改建议”,必要引用原文时只引用**最短必要片段**。
## 输入
用户至少提供其一:
- `proposal_path`:标书目录(推荐,包含多份 `.tex`)
- `proposal_file`:单个 `.tex` 主文件(如用户只有一个文件)
- `proposal_zip`:压缩包(若用户提供,先解压到临时目录再评审,并在报告中记录解压位置)
- 解压安全:禁止路径穿越(如 `../`);避免覆盖用户已有文件;必要时先让用户确认解压位置。
可选补充(用户未给时不要强行假设):
- `focus`:优先关注某一维度(如“创新性/可行性/研究基础”)
- `output_path`:输出文件路径(默认见“输出”)
- `style`:口吻偏好(如“严格/温和/非常具体”)
- `grant_type`:项目类型(如“青年基金/面上项目”)
- `funding_amount`:项目总经费(若用户明确给出,以用户信息为准)
- `panel_count`:评审组数量(每组固定 7 位专家)
- 默认值见 `config.yaml:parallel_review.default_panel_count`
- 上限见 `config.yaml:parallel_review.max_panel_count`
## 输出
- 默认输出文件名见 `config.yaml:output_settings.default_filename`,默认写入标书目录下:`./{default_filename}`。
- 若用户指定 `output_path`,以用户为准;但当路径不可写/目录不存在时应 fail-fast 并提示用户更换路径。
- 并行模式下输出“专家共识 + 独立观点 + 汇总建议”;可按配置附带每位专家原始意见。
- 并行模式下建议将各组原始评审整理为最终交付文件:`./{panel_dir}/G{组号}.md`(`panel_dir` 见 `config.yaml:output_settings.panel_dir`)。
- 中间过程文件默认隐藏到 `config.yaml:output_settings.intermediate_dir`(默认 `.nsfc-reviewers/`),避免根目录出现大量计划/日志/并行运行环境。
## 工作流(执行规范)
### 读取配置(强制)
开始前先读取本技能目录下的 `config.yaml`,并将以下配置作为执行时的单一真相来源:
- `review_dimensions`:评审维度、权重、要点与常见问题(作为检查清单)
- `severity_levels`:P0/P1/P2 分级口径(用于分级)
- `review_grades`:等级与建议(仅在用户需要时输出)
- `stage_assessment`:函评/会评阶段判断的输出开关、二元标签与判断口径
- `funding_context`:青年/面上等常见资助额度区间,以及“资助受限妥协”如何写入报告
- `proposal_files.patterns/exclude`:标书文件识别规则
- `output_settings`:输出文件名、面板目录、中间过程隐藏策略与章节开关
- `parallel_review`:并行评审开关、专家画像、聚合策略
### 阶段一:前置检查(Fail Fast)
1. 校验输入路径存在且可读;若是目录,先按 `proposal_files` 规则筛选出待读文件列表。
2. 若 `.tex` 文件数量为 0:直接报错并请求用户提供正确路径/文件。
3. 若文件数量异常多/目录明显包含大量无关文件:先请用户确认评审范围(避免读错目录/读太多)。
推荐的确定性做法(避免“漏扫子目录 / 误扫中间目录 / 扫到交付产物”):
```bash
# 列出将被纳入评审的 .tex 文件(递归扫描,并自动跳过 panels/、.nsfc-reviewers/、.parallel_vibe/)
python3 <nsfc_reviewers_path>/scripts/list_proposal_files.py --proposal-path <proposal_root>
# 可选:限制最大文件数(超限退出码=3)
python3 <nsfc_reviewers_path>/scripts/list_proposal_files.py --proposal-path <proposal_root> --max-files 200
```
### 阶段二:通读与结构化理解
1. 按章节顺序快速通读,提取“项目主题/科学问题/假说/目标/技术路线/创新点/研究基础/团队与条件/预期成果”。
2. 生成“标书结构索引”(只需到章节级别),作为后续引用的定位锚点。
3. 识别资助上下文:优先采用用户明确给出的 `grant_type` / `funding_amount`;否则再从目录名、标题页、正文中谨慎识别“青年/面上”等类型。
4. 仅当资助上下文有明确证据时,才使用 `config.yaml:funding_context` 中的常见额度区间辅助判断;若无法确认项目类型,不得硬套“青年 30–40w / 面上 50–60w”。
### 阶段三:并行多组评审(优先)或单组模式(退化)
#### 前置判断
1. 计算 `effective_panel_count`:优先用户输入 `panel_count`,否则使用 `parallel_review.default_panel_count`。
2. 将 `effective_panel_count` 限制在 `[1, parallel_review.max_panel_count]`。
3. 若任一条件成立,直接走单组模式:
- `parallel_review.enabled == false`
- `effective_panel_count == 1`
- 找不到 `parallel-vibe` 脚本
#### parallel-vibe 脚本路径发现顺序
按顺序查找以下路径,命中即使用:
1. `~/.claude/skills/parallel-vibe/scripts/parallel_vibe.py`
2. `~/.codex/skills/parallel-vibe/scripts/parallel_vibe.py`
3. `<当前仓库>/parallel-vibe/scripts/parallel_vibe.py`
若全部不存在:记录警告并退化为串行模式,不中断整体评审。
#### 并行模式步骤
0. **准备中间目录结构(强烈建议)**:
```bash
mkdir -p <proposal_root>/<intermediate_dir>/{logs/plans,snapshot}
```
- 其中 `<intermediate_dir>` 对应 `config.yaml:output_settings.intermediate_dir`(默认 `.nsfc-reviewers`)。
1. **构造 Master Prompt**(由宿主 AI 完成):
- 从 `references/expert_*.md` 读取 7 位专家画像(对应 `config.yaml:parallel_review.reviewer_personas[*].prompt_file`)
- 从 `references/master_prompt_template.md` 读取 master prompt 模板
- 注入上下文:阶段二产出的“标书结构索引 + 关键信息摘要”
- 注入统一质量门槛:问题分级、证据锚点、输出格式
- 注入独立性约束:每位专家只做独立判断,不假设其他专家意见
- 注入输出约束:将评审组输出写入当前 thread 的 `workspace/` 根目录下的 `config.yaml:parallel_review.panel_output_filename`
- 替换模板占位符:将 `{panel_output_filename}` 替换为 `config.yaml:parallel_review.panel_output_filename`
- 将 master prompt 落盘到一个临时文件(推荐放在 `<proposal_root>/<intermediate_dir>/logs/` 下,便于追溯且不污染根目录),记为 `<master_prompt_path>`
2. **生成 parallel-vibe 计划文件(强制)**:
- 原因:避免在 CLI 里转义超长 prompt;并避免 `parallel-vibe --prompt` 的自动拆分逻辑(本技能需要“同一 master prompt 在 N 个独立工作区重复执行”)。
- 优先使用本技能自带脚本生成计划文件:
```bash
python3 <nsfc_reviewers_path>/scripts/build_parallel_vibe_plan.py \
--panel-count <effective_panel_count> \
--master-prompt-file <master_prompt_path> \
--out <plan_json_path>
```
- 若无法使用脚本,则手工生成 `plan.json`(最小结构):
```json
{
"plan_version": 1,
"prompt": "nsfc-reviewers parallel panels",
"threads": [
{
"thread_id": "001",
"title": "Panel G001",
"runner": { "type": "<config:parallel_review.runner>", "profile": "<config:parallel_review.runner_profile>", "model": "", "args": [] },
"prompt": "<master_prompt>"
}
],
"synthesis": { "enabled": false }
}
```
3. **调用 parallel-vibe(基于 plan-file)**:
- 推荐先在 `<proposal_root>/<intermediate_dir>/snapshot/` 下准备一份标书快照(如 `proposal_snapshot/`),并将其作为 `--src-dir`,以避免把 `.nsfc-reviewers/`、`panels/` 等中间/交付目录再次复制进各 thread 的 `workspace/`。
- 最小做法:将“待评审标书目录”复制到 `snapshot/` 下,并排除中间/交付目录(具体命令依平台工具而定;原则是:快照目录应只包含标书源文件)。
```bash
python3 <parallel_vibe_path> \
--plan-file <plan_json_path> \
--src-dir <proposal_snapshot_root_or_proposal_root> \
--out-dir <proposal_root>/<intermediate_dir> \
--timeout-seconds <config:parallel_review.timeout_seconds> \
--no-synthesize
```
4. **收集并校验各组输出**:
- 从每个 thread 的 `workspace/` 中读取 `panel_output_filename`
- 典型路径(运行结束但尚未整理输出时):`<proposal_root>/<intermediate_dir>/.parallel_vibe/<project_id>/<thread_id>/workspace/<panel_output_filename>`
- 若你已执行“阶段五:输出整理”,则 parallel-vibe 环境通常位于:`<proposal_root>/<intermediate_dir>/parallel-vibe/<project_id>/...`
- `parallel-vibe` 会在 stdout 打印本次 `project_root` 路径;优先以该路径为准
- 若个别 thread 缺失输出,记录缺失并继续聚合已完成结果(fail-soft)
- 建议将每组最终评审报告复制/整理为最终交付文件:`<proposal_root>/{panel_dir}/G{thread_id}.md`
#### 单组模式步骤(退化)
1. 读取 `references/expert_*.md` 获取 7 位专家画像(创新/方法/基础/严格/建设性/科学意义/清晰度)
2. 模拟并行流程:让 7 位专家依次完成“独立评审”(不得相互参考)
3. 执行组内聚合(共识识别/严重度升级/去重合并)
4. 输出单组评审组报告到 `panel_output_filename`
### 阶段四:聚合、排序与可选结论
#### 跨组聚合(并行多组模式)
1. 从 `references/aggregation_rules.md` 读取跨组聚合规则。
2. 交叉比对 N 组 `panel_review.md`,识别同一问题的不同表述。
3. 跨组共识门槛:至少 `ceil(N * consensus_threshold)` 组指出 → 跨组共识(阈值见 `config.yaml:parallel_review.aggregation.consensus_threshold`)。
4. 严重度二次升级:跨组共识问题 P2→P1→P0(P0 不再升级)。
5. 合并重复问题,保留最完整的证据锚点与可执行建议。
6. 独立观点保留并标注来源组(如“来自组 G001”)。
7. 结果按 P0→P1→P2 输出,并给出最小可行修改序列。
8. 若 `keep_individual_reviews == true`,附录保留各组原始评审报告。
#### 单组汇总
输出“修改建议汇总”,按 P0→P1→P2 排序,并给出最小可行修改序列。
#### 资助额度约束识别(硬规则)
当你评审“研究内容设计偏弱 / 研究方法验证链条偏短 / 样本规模偏小 / 平台建设不完整 / 仅做到最小可行验证”这类问题时,必须先判断它是否与项目资助额度约束有关。
硬规则:
1. **先区分“设计错误”与“受限妥协”**:若短板明显来自青年基金、面上项目等有限资助框架下的现实取舍,不得直接把它写成“申请人能力不足”或“设计偷懒”。
2. **可以指出缺陷,但必须写明根因**:报告中要明确说明“受基金所限,此处设计存在缺陷/偏弱”,并解释为什么该缺陷与资助额度约束有关。
3. **必须补充理想完整版**:凡是归因为资助受限的短板,都要同时写出“若资助不受限时,一个更完整的设计应该怎样做”,帮助用户看到完整版目标。
4. **严重度按科学闭环判定**:若受限设计虽偏弱但仍能支撑核心科学问题成立,通常按 P1/P2 处理;若已经导致核心假说无法有效检验、关键证据链无法闭环,则仍可判为 P0/P1,但必须说明“根因与资助约束相关”。
5. **资助受限不是免责条款**:阶段判断仍然只看“当前版本今天送审能否过”;你只是要把问题说准确,而不是替当前版本免责。
#### 阶段性过会判断(默认输出)
你必须在最终 report 中新增“阶段判断(基于当前版本直接送审)”章节;除非用户明确要求省略,否则默认输出。
硬规则:
1. **必须基于当前版本判断**:按“如果今天就提交这份标书”来判断,不能假设后续还会修改。
2. **必须给出二元结论**:对函评、会评分别明确写 `给过` 或 `不给过`;不允许只写“边缘”“不好说”“看情况”。
3. **不确定性用把握度表达**:若存在摇摆,可补充 `判断把握:高/中/低`,但不能替代二元结论。
4. **会评严于函评**:若判断“函评不给过”,则“会评”必须同步判为“不给过”;若“函评给过”,仍可因相对竞争力不足而判“会评不给过”。
5. **必须说明依据**:每个阶段至少给出 2–3 条关键理由,优先引用 P0/P1 问题与跨组共识。
6. **若判不给过,必须指出翻盘关键**:用 1–3 条最关键修改动作告诉用户“先改什么,最可能把结果翻过来”。
7. **涉及资助受限时要准确归因**:如果关键短板与经费上限有关,可据实写入判断依据;但仍要基于当前可提交版本给出 `给过 / 不给过` 结论。
建议判断口径:
- **函评**:重点看独立阅读时,创新性、科学问题、技术路线与研究基础能否迅速成立,是否足以让多数同行专家给出“建议资助”。
- **会评**:在函评基础上再看相对竞争力、亮点鲜明度、答辩/讨论抗压性,以及短板是否会在会上被放大。
- **P0 兜底规则**:若仍存在未缓解的结构性 P0,默认函评/会评均倾向 `不给过`。
#### 可选综合结论
若用户还要求“综合评分/资助建议”,可额外输出;但不能替代“函评/会评给不过”判断章节。
### 阶段五:输出整理(强制执行)
**重要性**:本阶段是确保输出可追溯的关键步骤,**不可跳过**。当 `config.yaml:output_settings.enforce_output_finalization == true` 时,你不得在未完成本阶段的情况下结束评审。
**目标**:最终交付清晰可见;中间过程统一托管到 `config.yaml:output_settings.intermediate_dir`(默认 `.nsfc-reviewers/`),避免根目录出现计划/日志/并行环境等杂项。
#### 前置检查(按顺序执行)
1. 计算并确认 `effective_panel_count`(见阶段三)。
2. 判断本次评审模式:
- 若 `effective_panel_count > 1` 且你实际调用了 `parallel-vibe`(或发现 `.parallel_vibe/` 运行环境)→ 视为“并行模式”
- 否则 → “串行模式”(仍必须创建最小中间目录与日志)
#### 推荐做法:使用脚本自动化输出整理(确定性,强烈推荐)
```bash
python3 <nsfc_reviewers_path>/scripts/finalize_output.py \
--review-path <proposal_root> \
--panel-count <effective_panel_count> \
--intermediate-dir <config:output_settings.intermediate_dir> \
--apply
```
> 不加 `--apply` 为 DRY-RUN:只打印将执行的动作,不会改动文件。
#### 手动整理(脚本不可用时的 fallback)
并行/串行都必须至少创建最小目录结构:
```bash
mkdir -p <proposal_root>/<intermediate_dir>/{parallel-vibe,logs/plans,snapshot}
```
并行模式:将 `.parallel_vibe/` 的 **项目目录**迁移到 `<intermediate_dir>/parallel-vibe/`(兼容两种来源位置):
```bash
# 1) 优先从 <proposal_root>/<intermediate_dir>/.parallel_vibe/ 迁移(parallel-vibe --out-dir 指向 intermediate_dir 时常见)
if [ -d "<proposal_root>/<intermediate_dir>/.parallel_vibe" ]; then
mv "<proposal_root>/<intermediate_dir>/.parallel_vibe/"* "<proposal_root>/<intermediate_dir>/parallel-vibe/" 2>/dev/null || true
rmdir "<proposal_root>/<intermediate_dir>/.parallel_vibe" 2>/dev/null || true
fi
# 2) 兼容旧实例:从根目录 .parallel_vibe/ 迁移
if [ -d "<proposal_root>/.parallel_vibe" ]; then
mv "<proposal_root>/.parallel_vibe/"* "<proposal_root>/<intermediate_dir>/parallel-vibe/" 2>/dev/null || true
rmdir "<proposal_root>/.parallel_vibe" 2>/dev/null || true
fi
```
迁移日志与计划文件(仅在存在时执行):
```bash
mv "<proposal_root>/master_prompt.txt" "<proposal_root>/<intermediate_dir>/logs/" 2>/dev/null || true
mv "<proposal_root>"/plan*.json "<proposal_root>/<intermediate_dir>/logs/plans/" 2>/dev/null || true
mv "<proposal_root>/proposal_snapshot" "<proposal_root>/<intermediate_dir>/snapshot/" 2>/dev/null || true
```
#### 验证清单(执行后自检,未通过不得结束)
- [ ] `<proposal_root>/<intermediate_dir>/` 已创建,且至少包含 `logs/` 与 `logs/plans/`
- [ ] 若为并行模式:`<proposal_root>/<intermediate_dir>/parallel-vibe/` 下可看到 `<project_id>/...` 运行环境
- [ ] `master_prompt.txt`(或其副本)可在 `<proposal_root>/<intermediate_dir>/logs/` 中找到
- [ ] 最终交付仍位于根目录:`{default_filename}` 与 `{panel_dir}/G*.md`(无关中间文件不应散落在根目录)
## 报告格式(硬门槛)
对每条 P0/P1 问题,必须包含至少一个“证据锚点”:
- `证据锚点`:文件名 + 章节标题/关键句(可选行号)
- `现象`:为什么这是问题(不要空泛)
- `影响`:会如何影响评审判断/可行性/说服力
- `建议`:可执行的修改方案(优先给“怎么改”和“改到什么程度算够”)
- `验证`:改完如何自检(例如“补一张路线图”“补一段对照坐标系”“补一条预实验证据链”)
若该问题与资助额度约束明显相关,还必须额外补充:
- `资助约束说明`:说明这是青年/面上等有限资助框架下的现实妥协,而非纯粹的思路错误
- `完整设计参考`:说明若资助不受限,一个更完整的研究设计应补哪些关键实验、样本、队列、平台或验证层级
并行模式建议结构:
```markdown
# 国自然标书评审意见(N 组独立专家)
## 评审配置
- 评审组数:N 组
- 每组专家:7 位
- 总专家人次:N×7 人次
## 阶段判断(基于当前版本直接送审)
### 函评
- 结论:给过 / 不给过
- 判断把握:高 / 中 / 低
- 评审组倾向:X/N 组判给过,Y/N 组判不给过
- 主要依据:...
- 翻盘关键(仅在不给过时必写):...
### 会评
- 结论:给过 / 不给过
- 判断把握:高 / 中 / 低
- 评审组倾向:X/N 组判给过,Y/N 组判不给过
- 主要依据:...
- 翻盘关键(仅在不给过时必写):...
## 跨组共识(多组一致指出)
### P0 级
## 独立观点(单一组提出)
### 来自 组 G001
## 修改建议汇总
## 附录:各组原始评审报告(可选)
```
若某条问题属于“受资助额度限制的设计妥协”,应在对应问题下显式写出“资助约束说明 / 完整设计参考”,而不是只笼统批评“方案偏弱”。
## 使用示例
用户输入:
```text
请评审 /path/to/nsfc_proposal 这个国自然标书,并把意见保存到 /path/to/output.md
```
## 配置参数
详见 `config.yaml`:
- `review_dimensions`:评审维度配置(权重/要点/常见问题)
- `severity_levels`:问题严重程度定义
- `review_grades`:评审等级与建议(可选输出)
- `funding_context`:资助额度约束识别规则(青年/面上常见额度区间、报告写法与归因边界)
- `proposal_files`:标书文件识别规则
- `output_settings`:输出设置(默认文件名/面板目录/中间目录/章节开关;以及输出整理校验:`enforce_output_finalization` / `warn_missing_intermediate` / `validation_level`)
- `parallel_review`:并行多组评审配置(开关/组数/专家画像引用/跨组聚合策略)Related Skills
nsfc-roadmap
当用户明确要求"生成 NSFC 技术路线图/技术路线图绘制/roadmap/flowchart"或需要把标书研究内容转成"可打印、A4 可读"的技术路线图时使用。默认输出可编辑源文件(`.drawio`)与可嵌入文档的渲染结果(`.svg`/`.png`/`.pdf`);当用户主动提及 Nano Banana/Gemini 图片模型时,可切换为 PNG-only 模式。⚠️ 不适用:用户只是想修改某张已有图片的格式/尺寸(应使用图片处理技能)、只是想润色技术路线文字描述(应直接改写正文)。
nsfc-research-foundation-writer
当用户明确要求"写/改研究基础""研究基础+工作条件+风险应对编排"时使用。为 NSFC 正文"(三)研究基础"写作/重构,并同步编排"工作条件"和"研究风险应对",用证据链证明项目可行、资源条件对位研究内容、风险预案可执行。
nsfc-research-content-writer
当用户明确要求"写/改研究内容""研究内容+创新+年度计划编排"时使用。为 NSFC 正文"(二)研究内容"写作/重构,并同步编排"特色与创新"和"三年年度研究计划",输出可直接落到 LaTeX 模板的三个 extraTex 文件。
nsfc-ref-alignment
检查 NSFC 标书正文引用与参考文献的一致性与真实性风险(只读):核查 bibkey 是否存在、BibTeX 字段与 DOI 等格式问题,并生成结构化输入供宿主 AI 逐条评估“正文表述是否真的在引用该文献”;默认仅输出审核报告,不直接修改标书或 .bib(除非用户明确要求)。
nsfc-qc
当用户明确要求"标书QC/质量控制/润色前质检/引用真伪核查/篇幅与结构检查"时使用。对 NSFC 标书进行只读质量控制:并行多线程独立检查文风生硬、引用假引/错引风险、篇幅与章节分布、逻辑清晰度等,最终输出标准化 QC 报告;中间文件默认归档到“交付目录内的隐藏工作区(.nsfc-qc/)”,并兼容 legacy `.nsfc-qc/`。
nsfc-length-aligner
基于国自然标书篇幅预算标准;检查目标标书篇幅并总结差距;给出针对性优化建议;在尽量不改变原意的前提下扩写/压缩到达标。
nsfc-justification-writer
当用户明确要求"写/改 NSFC 立项依据""立项依据写作/重构"时使用。基于最小信息表输出价值与必要性、现状不足、科学问题/假说与项目切入点,并保持模板结构不被破坏。适用于 NSFC 及各类科研基金申请书的立项依据写作场景。
nsfc-humanization
去除 NSFC 标书中的 AI 机器味,使文本读起来像资深领域专家亲笔撰写(不适用:非标书内容/需修改格式/需补充新内容)
nsfc-code
根据 NSFC 标书正文内容,结合申请代码推荐库,为你给出 5 组申请代码1/2(主/次)推荐与理由;输出到 NSFC-CODE-vYYYYMMDDHHmm.md(只读,不修改标书)
nsfc-budget
当用户明确要求“写/生成 NSFC 预算说明书”“写预算说明”“生成 budget.tex / budget.pdf”“写国自然预算 justification”时使用。基于用户标书正文或补充材料,输出一份可提交的预算说明书 LaTeX 项目并渲染 `budget.pdf`。若用户未指定工作目录,必须暂停并先要求其指定。⚠️ 不适用:用户只是想了解预算原则;用户仅要预算表数字而不写说明书;或用户是 2026 青年 A/B/C 默认包干制且无需预算说明书的场景。
nsfc-abstract
当用户明确要求"写/润色 NSFC 标书摘要""生成中文摘要和英文摘要""把中文摘要翻译成英文摘要"时使用。输出中文、英文两个版本(英文必须是中文的忠实翻译版),同时输出标题建议(1个推荐标题+5个候选标题及理由)。中文摘要默认≤400字符,英文摘要默认≤4000字符。输出方式:将结果写入工作目录下的 `NSFC-ABSTRACTS.md`。⚠️ 不适用:用户只想翻译一段与标书无关的通用文本(应直接翻译);用户只想写立项依据/研究内容/研究基础正文(应使用对应 nsfc 系列 skill)。
nsfc-schematic
当用户明确要求"生成 NSFC 原理图/机制图/schematic diagram/mechanism diagram"或需要把标书中的研究机制、算法架构、模块关系转成"可编辑 + 可嵌入文档"的图示时使用。默认输出可编辑源文件(`.drawio`)与渲染文件(`.pdf`/`.svg`/`.png`);当用户主动提及 Nano Banana/Gemini 图片模型时,可切换为 PNG-only 模式。⚠️ 不适用:用户只是想润色正文文本(应直接改写文本)、只是想改已有图片格式/尺寸(应使用图片处理技能)、没有明确"原理图/机制图"意图。