192 lines
12 KiB
Markdown
192 lines
12 KiB
Markdown
---
|
|
name: proposal
|
|
description: 撰写中国科研项目申报书 / 课题任务书 (国家重点研发计划、国家科技重大专项、国自然面上/青年、NSFC 联合基金、省基金、横向)。当用户要写本子、立项依据、研究方案、技术路线、申报书、任务书、申请书时使用。
|
|
---
|
|
|
|
# 科研申报
|
|
|
|
把课题信息变成可提交的申报书 .docx。**先定基金类型 → 八条对齐 → 逐章起草 → 验收渲染** —— 不要一口气出全文。
|
|
|
|
## 资源
|
|
|
|
下面所有路径都相对 **`<skill_dir>`** —— `load_skill` 返回头里的 `[skill=proposal, dir=<绝对路径>]`,用这个绝对路径拼脚本/资源,不要假设 cwd。
|
|
|
|
- `<skill_dir>/references/fund_types.md` —— 6 类基金的章节骨架 + 字数预算 + 必填表格 (always read)
|
|
- `<skill_dir>/references/review_redlines.md` —— 评审雷区与不可考核词清单
|
|
- `<skill_dir>/references/citation_gbt7714.md` —— GB/T 7714 顺序编码制 + 文献真实性铁律
|
|
- `<skill_dir>/references/budget_rules.md` —— 间接费用台阶 + B1-B4 表
|
|
- `<skill_dir>/templates/spec_lock.md` —— 阶段一八条对齐的固定字段模板 (复制到 `<task_dir>/spec_lock.md`)
|
|
- `<skill_dir>/templates/{key_rd,major_project,nsfc_joint_fund}.md` —— **有完整章节模板**的 3 类基金;其它 4 类 (`nsfc_general` / `nsfc_youth` / `provincial` / `enterprise`) 复用 `nsfc_joint_fund` 或 `key_rd` 骨架,差异看 `fund_types.md` § 4-6
|
|
- `<skill_dir>/scripts/render_docx.py` —— md→docx,自动加目录、解析 `**bold**`/`*italic*`/`` `code` ``、列表分行、`` 居中插图 + 图题自动编号、识别 mermaid 块查 `figures/` 缓存
|
|
- `<skill_dir>/scripts/render_diagrams.py` —— sections/*.md 里的 ```mermaid``` 块预渲染成 `<task_dir>/figures/fig_<hash>.png`(优先用本地 `mmdc`,回退 `mermaid.ink` 公网 API,失败留警告)
|
|
- `<skill_dir>/scripts/word_count.py` —— 章节字数 vs 预算
|
|
- `<skill_dir>/scripts/quality_check.py` —— 结构完整性 / 假大空话术 / 占位符未替换 / 指南覆盖度 (--spec 选项)
|
|
|
|
## 阶段零: 摄取素材 (有 PDF/DOCX/XLSX/URL 时才走)
|
|
|
|
用户给指南 PDF / 团队介绍 DOCX / 预算 XLSX / 政策网页 URL → 先转成 `<task_dir>/source/<name>.md`,后续阶段一才能读。统一用 `markitdown` CLI,表格 / 列表 / 标题层级会自动保留:
|
|
|
|
```bash
|
|
markitdown <path>/guide.pdf -o <task_dir>/source/guide.md
|
|
markitdown <path>/team.docx -o <task_dir>/source/team.md
|
|
markitdown <path>/budget.xlsx -o <task_dir>/source/budget.md
|
|
markitdown https://example.com/x -o <task_dir>/source/policy.md
|
|
```
|
|
|
|
转完后 spec_lock 阶段直接 `read <task_dir>/source/*.md` 拿事实,不要凭印象写。
|
|
|
|
## 阶段一: 八条对齐
|
|
|
|
产物 `<task_dir>/spec_lock.md` —— 申报书"宪法",阶段二每章前都要重读。
|
|
|
|
1. **复制模板**: `read <skill_dir>/templates/spec_lock.md` → `write <task_dir>/spec_lock.md`
|
|
2. **先读 `<skill_dir>/references/fund_types.md` 选基金类型**(章节、字数、表格各不相同)
|
|
3. 按 spec_lock.md 字段填,给用户预览
|
|
4. ⛔ **BLOCKING:用户确认后才进阶段二**
|
|
|
|
字段清单见 `<skill_dir>/templates/spec_lock.md` (基金类型 / 指南方向 / 关键科学技术问题 / 创新点 / 研究内容骨架 / 团队 / 考核指标矩阵 / 经费预算 / TODO 列表)。
|
|
|
|
## 阶段二: 逐章起草
|
|
|
|
每章两段式:**先列要点 → 用户确认 → 再起草 → 用户确认**。不要直接出正文。
|
|
|
|
**A. 起草前列要点** (改要点比改正文便宜):
|
|
1. 读 `<task_dir>/spec_lock.md` 与 `<skill_dir>/references/fund_types.md`,拿本章字数预算与必填要素
|
|
2. 列出 3-6 条要点骨架: 本章打算覆盖的论点 / 数据 / 表格,每条贴上对齐的指南要素与预估字数
|
|
3. ⛔ **BLOCKING:用户确认要点 (改 / 加 / 删) 后才动正文**
|
|
|
|
**B. 正文起草**:
|
|
4. 复制 `<skill_dir>/templates/<fund_type>.md` 对应小节到 `<task_dir>/sections/NN_xxx.md`,按要点填
|
|
5. **关键章节一段一卡** —— 立项依据 / 研究方案 / 技术路线 / 考核指标矩阵: 写一段 → 报字数 + **预告下一段** → 等用户确认 → 写下一段
|
|
普通章节一节一卡: 整节写完再报 + **预告下一节要点**
|
|
6. 报告格式 (每次卡点都按这个出):
|
|
- **本段 (节)**: 章节名 / 实际字数 / 字数预算 / 与指南对齐情况
|
|
- **下一段 (节) 预告**: 标题 + 3-5 条要点骨架 (论点 / 数据 / 表格,每条贴对齐的指南要素与预估字数);若已是本章最后一段,改预告**下一章**首段要点
|
|
- 提问: "本段可以了吗?下一段要点要改 / 加 / 删什么?"
|
|
7. ⛔ **BLOCKING:停下来等用户明确反馈** ("OK"、"下一段"、"继续") 后才动笔。"看起来不错"、沉默、追问都不算确认 —— 用户对下一段要点没异议也算默认通过,但**字数 / 与指南对齐异常**时必须主动追问
|
|
|
|
**为什么两段式 + 强等 + 下一段预告?** 申报书 1.5-3 万字,模型连续生成容易自我加速、把错方向推到底。要点阶段拦得早,关键章节段段卡可以在第 2 段被用户拦下。**预告下一段要点**让用户在下一段还没动笔时就能改方向 —— 比读完正文再返工成本低一个量级。
|
|
|
|
**例外**: 用户**主动且明确**说"别问,直接全做"或"一气呵成" —— 才能一次跑完,跑完必须 `quality_check.py`。"逐章太慢"/"段段太碎"之类的抱怨**不算**例外指令,继续问。
|
|
|
|
## 阶段三: 验收 + 渲染
|
|
|
|
```bash
|
|
python <skill_dir>/scripts/word_count.py <task_dir>/sections/ --fund-type key_rd
|
|
python <skill_dir>/scripts/quality_check.py <task_dir>/sections/ --fund-type key_rd --spec <task_dir>/spec_lock.md
|
|
python <skill_dir>/scripts/render_diagrams.py <task_dir>/sections/ # 预渲染 mermaid → figures/*.png (有插图的 task 才跑)
|
|
python <skill_dir>/scripts/render_docx.py <task_dir>/sections/ --fund-type key_rd -o <task_dir>/<topic>.docx
|
|
```
|
|
|
|
`--spec` 让质量检查交叉对照 spec_lock,提示哪些指南考核指标在 sections 里没出现。不通过的项,回头 edit 对应章节。
|
|
|
|
`render_diagrams.py` 是**可选**前置 —— 章节里没 mermaid 块就跳过。即使跑了但 mmdc 没装 + 联不上 mermaid.ink,`render_docx.py` 会把 mermaid 源文本以 ASCII 等宽兜底显示(评审能看,但不漂亮)。**只要 mermaid 块就能直接交给 `render_docx.py`,figures/ 没有就走 ASCII fallback,不会崩。**
|
|
|
|
## 工作目录
|
|
|
|
`<task_dir>` = system prompt 给的**绝对路径**(`…/workspace/tasks/<task_id>/`)。**所有产物都写到 task_dir 下**,不要写到 cwd / `skills/` / repo 根。
|
|
|
|
```
|
|
<task_dir>/
|
|
├── source/ # 用户给的素材 (指南 PDF / 前期成果)
|
|
├── spec_lock.md # 阶段一定调
|
|
├── sections/ # 阶段二逐章产物 (按 templates/<fund_type>.md 切的小节命名)
|
|
└── <topic>.docx # 最终产物 (按课题命名,不要 output.docx)
|
|
```
|
|
|
|
## 章节骨架速查
|
|
|
|
写每章前在脑子里过一遍这 4 个 pattern:
|
|
|
|
- **立项依据三段式**: 现状 (国内外格局,40%) → 痛点 (具体到指标差距,30%) → 切入点 (本项目为什么是我们,30%)
|
|
- **研究方案四要素**: 总体目标 → 任务分解 → 关键技术路线 → 可行性论证
|
|
- **创新点三特征**: 基本形态 (新方法/模型/机制) + 前沿性 (与 SOTA 比) + 知识产权特征 (专利/标准/论文)
|
|
- **考核指标矩阵**: 指南指标(字面抄) → 本项目指标(可超出不能低于) → 立项时已有值 → 完成时值 → 考核方式(CNAS/CMA / 测试大纲专家评审 / 应用示范报告)
|
|
|
|
边界 (最容易混):
|
|
- 立项依据回答 **WHY** (背景+痛点) | 研究目标回答 **WHAT 终态** (量化指标) | 研究内容回答 **WHAT 任务** (技术清单) | 研究方法回答 **HOW 原理** (算法/模型) | 技术路线回答 **HOW 流程** (输入→处理→输出)
|
|
|
|
## 插图 (流程图 / 结构图 / 技术路线图 / 甘特图)
|
|
|
|
**禁止把 ASCII 字符画 (`┌─┐│└─┘ →`) 当真图交差** —— Word 里 box-drawing 与 CJK 不真等宽,标签一长就错位,评审看到直接扣印象分。
|
|
|
|
### 类型选择
|
|
|
|
| 图类型 | 用法 | 工具 |
|
|
|---|---|---|
|
|
| 流程图 / 结构图 / 关系图 / 技术路线图 | flowchart / graph | **mermaid** (写在 md 里) |
|
|
| 时序图 (调用关系) | sequenceDiagram | **mermaid** |
|
|
| 甘特图 (进度安排) | gantt | **mermaid** 或 matplotlib `barh` (matplotlib 更适合打印) |
|
|
| 数据图表 (柱/折/饼) | 数据可视化 | **matplotlib**(配 spec_lock 主色,生成 png 后 ![]() 引用) |
|
|
| 已有图片 (截图 / 设计稿 / 厂商架构图) | 直接 ![]() | 用户提供 png/jpg |
|
|
|
|
### mermaid 块约定
|
|
|
|
直接写进章节 `.md` 里。**第一行加 `%% caption: <图题>` 注释**(题号 render_docx.py 自动加),mermaid 当注释跳过,render_docx 当题文用:
|
|
|
|
````markdown
|
|
```mermaid
|
|
%% caption: 关键技术与研究内容映射
|
|
flowchart LR
|
|
Q1[关键问题 1<br/>多源异构数据融合] --> T1[技术 1<br/>跨模态对齐]
|
|
Q1 --> T2[技术 2<br/>实体消歧]
|
|
Q2[关键问题 2<br/>实时响应] --> T3[技术 3<br/>增量索引]
|
|
T1 & T2 & T3 --> P[支撑平台]
|
|
```
|
|
````
|
|
|
|
跑 `render_diagrams.py` 一遍 → `figures/fig_<hash>.png` 落盘 → 再跑 `render_docx.py` 会把这个块替换成"图 N 关键技术与研究内容映射"居中插图。
|
|
|
|
### matplotlib 直出 png
|
|
|
|
甘特图 / 数据图用 `run_python` 跑 matplotlib,落到 `<task_dir>/figures/<name>.png`,章节里直接:
|
|
|
|
```markdown
|
|

|
|
```
|
|
|
|
写 matplotlib 代码时:
|
|
- 中文字体 `plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei']`,负号 `axes.unicode_minus=False`
|
|
- `figsize=(10, 4)` 起步,过宽超出页边距(`render_docx` 上限 15cm,超了自动等比缩)
|
|
- `dpi=150`(印刷质量;< 100 会糊)
|
|
- 颜色用 spec_lock 里定的主/辅色,不要 matplotlib 默认色板
|
|
- `bbox_inches='tight'` 收紧白边
|
|
|
|
### 图编号
|
|
|
|
不要手写"图 2-2"这种章节-序号,render_docx 渲染时**全局自增**(图 1 / 图 2 / ...),手写编号会和自动编号撞。要 chapter-section 编号等真有需要再扩。
|
|
|
|
## 硬规则速查 (违反即扣分)
|
|
|
|
- **字体**: 标题黑体四号; 正文中文宋体小四 / 英文 Times New Roman; 行距 1.5 倍 —— `render_docx.py` 已强制
|
|
- **指南对齐**: 项目名称 / 方向 / 创新分类 / 考核指标**字面对齐**指南文本,不得改写
|
|
- **不降低指标**: 任务书内容**不得低于**申报指南和申报书,只能持平或加码
|
|
- **量化考核**: "显著提升性能"❌ ;"10000 TPS、秒级响应"✅
|
|
- **真实文献**: 不可编造作者/期刊/DOI;需要引用先要用户提供清单,详见 `citation_gbt7714.md`
|
|
- **经费比例**: 间接费用 ≤500 万部分 ≤30% / 500-1000 万 ≤25% / >1000 万 ≤20%
|
|
- **限项**: 在研重点研发/重大专项/农业核心技术 ≤2 项;同年同人不重复申请
|
|
- **不堆形容词**: "首次提出""填补空白""国际领先"一律不用,除非用户明确要
|
|
|
|
## 反模式
|
|
|
|
- 未 spec_lock 就开始硬编正文
|
|
- 一次性出全文 (中途改向就全推翻)
|
|
- 跳过"列要点"直接写正文 —— 即使只有一章也要先列要点过一遍
|
|
- 关键章节 (立项依据 / 研究方案 / 技术路线 / 考核指标) 整章一次出 —— 必须段段卡
|
|
- **基于"通用模板"自行套基金类型** —— 重大专项任务书与国自然申请书结构完全不同,**先查 `fund_types.md`**
|
|
- **自己造数据/指标/单位/经费** —— 不知道就 `<TODO 待用户提供>`,不要硬编
|
|
- 引文写"[Smith et al., 2023]" 但其实没这篇文献
|
|
- 不跑 `quality_check.py` 就交付
|
|
- 文件名 `output.docx` / `申报书.docx` —— 按主题命名
|
|
- **用 ASCII 字符画 `┌─┐│└─┘ →` 当流程图/结构图** —— 中文 Word 里必错位,看插图段
|
|
- **手写图编号 (图 2-2 / 图 3-1)** —— render_docx 自动全局编号,手写会撞
|
|
- **`[图 2-2 关键技术架构]` 这种裸占位** —— 占位等于没图,要么写 mermaid 块要么 ![]() 引 png
|
|
|
|
## 输出
|
|
|
|
完成后给用户:
|
|
- 文件路径
|
|
- 各章节字数 vs 预算
|
|
- 与指南考核指标的逐项对齐表
|
|
- `<TODO>` 待补项清单
|