--- name: proposal description: 撰写科研申报书/课题立项书 (国自然、省基金、横向项目、校级课题)。当用户要写课题申请、立项依据、研究计划、技术路线、本子时使用。 --- # 科研申报书 ## 工作流 1. **对齐课题信息**: 不要急着写正文。先与用户确认并落到 `project.md`: - 研究方向 / 拟解决的关键科学问题 - 创新点 (3 条以内,要"小而尖") - 技术路线骨架 - 应用场景与受众 2. **分章节起草**: 每章一个 .md 文件,不要一次性出全文 —— 单章写完先给用户看,定调后再下一章 3. **合并定稿**: 用 `run_python` + python-docx,把各章节 md 套模板渲染成 .docx ## 工作目录约定 ``` proposal/ ├── project.md # 课题信息卡片 ├── sections/ │ ├── 01_background.md # 立项依据 │ ├── 02_objectives.md # 研究内容与目标 │ ├── 03_method.md # 拟采取的研究方案 │ ├── 04_innovation.md # 特色与创新 │ ├── 05_basis.md # 研究基础 │ └── 06_cv.md # 申请人简介 └── proposal.docx # 最终输出 ``` ## 字数(国自然青年示例,其他基金按实际套) | 章节 | 推荐字数 | |-----|---------| | 立项依据 | 5000-8000 | | 研究内容与目标 | 2000-3000 | | 研究方案 | 3000-5000 | | 特色与创新 | 800-1500 | | 研究基础 | 1500-2500 | | 申请人简介 | 1000-2000 | 超出/不足都不专业,严格控字数。 ## 硬规则 - **文献必须真实**: 不可编造作者、年份、DOI、期刊。需要引用先告诉用户来源,让用户提供文献清单 - **GB/T 7714 顺序编码制**: 引文 [1][2][3]...,文末参考文献顺序对应 - **不堆形容词**: "首次提出""填补空白""国际领先" 一律不用,除非用户明确要这种话术 - **逻辑先行**: 立项依据按 "现状 → 问题 → 本课题切入点" 三段式;研究方案按 "目标 → 任务分解 → 技术路线 → 可行性" ## 合并 docx 模板 ```python from docx import Document from docx.shared import Pt from pathlib import Path doc = Document() style = doc.styles['Normal'] style.font.name = '宋体' style.font.size = Pt(12) sections = sorted(Path("proposal/sections").glob("*.md")) for sec in sections: text = sec.read_text(encoding="utf-8") for para in text.split("\n\n"): para = para.strip() if not para: continue if para.startswith("# "): doc.add_heading(para[2:], level=1) elif para.startswith("## "): doc.add_heading(para[3:], level=2) else: doc.add_paragraph(para) doc.save("proposal/proposal.docx") ``` ## 反模式 - 用户没给课题就开始硬编内容 - 一次性出全文 (用户没法迭代) - 引文里写 "[Smith et al., 2023]" 但其实根本没这篇文献