Skip to main content
ClaudeWave
Skill2.3k repo starsupdated 2d ago

nsfc-length-aligner

nsfc-length-aligner is a Claude Code skill that analyzes Chinese NSFC (National Natural Science Foundation) grant proposals against official page and character budgets, identifying which sections exceed or fall short of targets. Users should deploy this skill when they have a completed or near-final proposal draft and need quantitative guidance on expanding or compressing specific sections to meet hard formatting constraints while preserving argumentation integrity.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/huangwb8/ChineseResearchLaTeX /tmp/nsfc-length-aligner && cp -r /tmp/nsfc-length-aligner/skills/nsfc-length-aligner ~/.claude/skills/nsfc-length-aligner
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# nsfc-length-aligner

## 与 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 仓库。


目标:把“篇幅”从主观感觉变成可量化、可闭环的指标,并围绕预算(budget)指导扩写/压缩。

## 适用场景

- 你有一份国自然标书,想快速判断是否“某些部分偏短/偏长”
- 你需要按模板的硬性篇幅要求(页数/字数/字符数)对齐
- 你希望尽量不改变原意地扩写或压缩(保持论证主线与证据链)

## 不适用场景

- 仅需要“统计字数”而不关心预算与改写闭环(可用更简单的脚本即可)
- 标书不在本地(无法提供文本/文件/路径)

## 工作流(强烈建议按顺序执行)

### 0) 锁定隐藏工作区(先做)

- 以标书工作目录为根,统一使用 `<workdir>/.nsfc-length-aligner/` 托管所有中间文件与报告
- 不要把 `length_report.*`、临时分析稿、计划文件写到工作目录根层或仓库其他位置
- 若显式传入 `--out-dir`,优先使用相对路径 `.nsfc-length-aligner`;脚本会将**相对** `--out-dir` 解析到 `--input` 对应的工作目录,而不是 shell 当前目录
- 若工作目录本身不可写,应先切换到可写副本后再运行;不要为了省事把中间文件散落到项目外部

### 1) 需求确认(预算口径)

先确认你要对齐的“硬标准”是什么:

- 2026 调研共识的“黄金比例”(面上/青基 C 类,供校对用):立项依据 30%(6–10 页,约 8000–10000 字)/ 研究内容 50%(12–15 页,约 12000–15000 字)/ 研究基础 20%(5–8 页,约 5000–6000 字);合计建议 ≤28 页留缓冲(原则上不超过 30 页)
- **页数(硬约束)**:2026+ 改版后“原则上不超过 30 页”,实操建议 ≤28 页留缓冲;不要通过缩小字体/行距“挤页数”
- **字符预算(代理指标)**:中文字符 / 总字符等,用于“改写→复检”的确定性闭环(页数最终以 PDF 复核)
- 预算范围:总篇幅 + 各部分/关键章节预算(至少覆盖:立项依据/研究内容/研究基础)

说明:本 skill 默认使用 `config.yaml:length_standard` 的**示例口径(已对齐 2026 调研建议)**。你应按当年指南/模板校对后再使用。

### 2) 运行篇幅检查(确定性)

对目标标书目录(或单文件)运行检查脚本,生成报告:

```bash
python3 scripts/check_length.py --input <目标标书路径> --config config.yaml
```

如需显式声明输出目录,请使用:

```bash
python3 scripts/check_length.py --input <目标标书路径> --config config.yaml --out-dir .nsfc-length-aligner
```

如果你的标书基于 `NSFC_Young` / `NSFC_General` 模板(项目根目录包含 `main.tex`),建议把 `--input` 指向项目根目录:脚本会自动沿 `main.tex` 的 `\input/\include` 依赖树收集“实际会编译进 PDF 的文件”,并忽略被注释掉的 `\input{...}`(避免把可选章节误计入篇幅)。

如果你已编译出最终 PDF(推荐;页数是硬约束),把 PDF 一并传入做页数统计:

```bash
python3 scripts/check_length.py --input <目标标书路径> --config config.yaml --pdf <标书.pdf>
```

输出:
- 控制台摘要(总篇幅、超/欠预算项)
- `<input>/.nsfc-length-aligner/length_report.md`(默认输出目录;可用 `--out-dir` 自定义)
- `<input>/.nsfc-length-aligner/length_report.json`(默认输出目录;可用 `--out-dir` 自定义)

注意:`--out-dir` 若使用相对路径,会被解析到 `<input>` 对应的工作目录下;这能避免从其他目录启动命令时把报告误写到 shell 当前目录。

运行完成后,**必须**读取 `length_report.md`(必要时辅助读取 `length_report.json`),将“文件级偏差表 +(可选)章节级统计”作为步骤 3 的输入。

### 3) 解读差距(差在什么地方)

基于报告做 3 件事:

1. 定位“超长/偏短”的文件或章节
2. 判断差距属于:
   - 证据链不足(需要补数据/对照/局限)
   - 逻辑跳跃(需要补过渡/定义/假设)
   - 冗余重复(需要合并/删减)
3. 生成行动清单(扩写/压缩的优先级)

章节级数据用法(更精准定位):
- 若 `length_report.md` 出现章节表格(或 JSON 中存在 `sections` 字段),优先在“超长/偏短”的文件内,定位到贡献最大的具体章节,再做定点改写,而不是只在文件级做平均删改
- 当某个文件超长/偏短时:对比其章节统计,若差距主要集中在 1–2 个章节,优先只改这 1–2 节(更容易保持原意与结构稳定)

参考:`references/MEANING_PRESERVING_REWRITE_RUBRIC.md`

### 4) 扩写/压缩(尽量不改变原意)

#### 扩写策略(偏短时)

- 先补“可验证信息密度”:定义、假设、对照、消融、风险与备选方案
- 再补“论证闭环”:为什么做 → 怎么做 → 预期怎么验证 → 失败怎么办
- 避免空泛扩写:不引入新主张、不堆形容词

#### 压缩策略(偏长时)

- 去重复:同一论点只保留一次最强表达
- 去背景:把泛背景压成 1-2 句,把篇幅留给“问题-方法-验证”
- 结构化改写:把长段拆成要点(不改变事实顺序)

> ⚠️ 改写完成后,**必须执行步骤 5 复检**,确认偏差已消除。未复检视为未完成。

## 2026 三部分“该瘦/该厚”清单(用于排优先级)

用法(把“静态建议”变成“按差距触发”):
- 先看报告里对应文件的偏差 `delta`:`+N` 表示超长(优先“该瘦”);`-N` 表示偏短(优先“该厚”);`OK` 表示该部分无需为了预算而改动
- `delta` 的绝对值越大,越优先处理;处理顺序建议:先改 `|delta|` 最大的文件,再做次大项

立项依据(为什么做):
- 该瘦:教科书式科普、泛化综述、弱相关“国家需求”铺陈、重复意义、文献凑数
- 该厚:Gap(卡点)→ Key Idea(突破口)→ 价值论证(为什么值得做)

研究内容(做什么/怎么做):
- 该瘦:重复表述、过细操作细节、罗列式方法堆砌
- 该厚:逻辑框架、关键实验设计与对照/消融、预期结果与可验证指标、用图说话

研究基础(为什么你能做):
- 该瘦:无关成果堆砌、过度铺垫背景
- 该厚:强相关预实验数据、核心技术能力、平台条件(与研究内容对位)

### 5) 复检闭环

改完必须再次运行脚本,确认“达标且不超标”:

```bash
python3 scripts/check_length.py --input <目标标书路径> --config config.yaml
```

## 格式红线(2026+ 常见)

- 不缩小字体、不缩小行距来“挤页数”(页数要求是评审风险点)
- 不顶格写到 30 页:建议 ≤28 页留缓冲
- 若当年指南要求声明生成式 AI 使用情况:务必按要求如实说明(合规项)

## 约定与输出格式

- 报告以“文件级 +(可选)章节级”呈现
- 预算以 `config.yaml:length_standard` 为唯一真相来源
- 中间文件统一托管到 `config.yaml:output_settings.intermediate_dir`(默认 `.nsfc-length-aligner`)
- 所有改写应遵循“最小改动、保持原意”的准则(见 references)
check-review-alignmentSkill

当用户明确要求"核查/优化综述 `{主题}_review.tex` 的正文引用"或"运行 check-review-alignment"时使用。通过宿主 AI 的语义理解逐条核查引用是否与文献内容吻合,只在发现致命性引用错误时对"包含引用的句子"做最小化改写,并复用 `systematic-literature-review` 的渲染脚本输出 PDF/Word。核心原则:不为了改而改,无法确定是否为致命性错误时保留原样并在报告中警告。⚠️ 不适用:用户只是想生成系统综述正文(应使用 systematic-literature-review);用户只是想新增/核对 BibTeX 条目(应使用专门的 bib 管理流程)。

complete-exampleSkill

当用户明确要求"填充示例内容""生成示例""补充 LaTeX 示例"时使用。AI 增强版 LaTeX 示例智能生成器,实现 AI 与硬编码的有机融合:AI 做"语义理解"(分析章节主题、推理资源相关性、生成连贯叙述),硬编码做"结构保护"(格式验证、哈希校验、访问控制)。

get-review-themeSkill

当用户明确要求"从文件/图片/网页/描述中提取综述主题"或"生成主题+关键词+核心问题结构化输出"时使用。支持文件(PDF/Word/Markdown/Tex)、文件夹、图片、自然语言描述、网页 URL 等多种输入源,自动识别输入类型并提取内容,生成可直接用于 systematic-literature-review 及其他文献综述技能的结构化输出。

guide-updaterSkill

当用户明确要求"更新项目指南""同步指南""沉淀洞见到指南"时使用。将对话中新产生的可复用写作洞见实时沉淀到项目指南文件,保持术语口径一致、结构稳定、可检验与可复现。调用时必须指定指南文件路径。

make-latex-modelSkill

当用户明确要求“LaTeX 模板优化”“样式参数对齐”“像素级比对”“make-latex-model”或旧写法“make_latex_model”,或要把 ChineseResearchLaTeX 里的某个项目做成高质量模板时使用。适配 NSFC / paper / thesis / cv 四条产品线;先依据 packages/ 与 projects/ 的真实分层判断改项目层还是公共包,再用各产品线官方构建入口验收。若必须修改 packages 下公共包,需先生成受影响模板回归计划并完成相关回归;NSFC 专项工具仅在明确属于 NSFC 参数对齐场景时按需使用。

nsfc-abstractSkill

当用户明确要求"写/润色 NSFC 标书摘要""生成中文摘要和英文摘要""把中文摘要翻译成英文摘要"时使用。输出中文、英文两个版本(英文必须是中文的忠实翻译版),同时输出标题建议(1个推荐标题+5个候选标题及理由)。中文摘要默认≤400字符,英文摘要默认≤4000字符。输出方式:将结果写入工作目录下的 `NSFC-ABSTRACTS.md`。⚠️ 不适用:用户只想翻译一段与标书无关的通用文本(应直接翻译);用户只想写立项依据/研究内容/研究基础正文(应使用对应 nsfc 系列 skill)。

nsfc-budgetSkill

当用户明确要求“写/生成 NSFC 预算说明书”“写预算说明”“生成 budget.tex / budget.pdf”“写国自然预算 justification”时使用。基于用户标书正文或补充材料,输出一份可提交的预算说明书 LaTeX 项目并渲染 `budget.pdf`。若用户未指定工作目录,必须暂停并先要求其指定。⚠️ 不适用:用户只是想了解预算原则;用户仅要预算表数字而不写说明书;或用户是 2026 青年 A/B/C 默认包干制且无需预算说明书的场景。

nsfc-codeSkill

根据 NSFC 标书正文内容,结合申请代码推荐库,为你给出 5 组申请代码1/2(主/次)推荐与理由;输出到 NSFC-CODE-vYYYYMMDDHHmm.md(只读,不修改标书)