--- name: nsfc-roadmap description: 当用户明确要求"生成 NSFC 技术路线图/技术路线图绘制/roadmap/flowchart"或需要把标书研究内容转成"可打印、A4 可读"的技术路线图时使用。默认输出可编辑源文件(`.drawio`)与可嵌入文档的渲染结果(`.svg`/`.png`/`.pdf`);当用户主动提及 Nano Banana 图片模型时,可切换为 PNG-only 模式,并兼容 Gemini 与 OpenAI `gpt-image-2`。⚠️ 不适用:用户只是想修改某张已有图片的格式/尺寸(应使用图片处理技能)、只是想润色技术路线文字描述(应直接改写正文)。 metadata: author: Bensz Conan short-description: 生成 NSFC 技术路线图(默认 drawio + SVG/PNG/PDF;可选 Nano Banana PNG-only,兼容 Gemini/OpenAI) keywords: - nsfc-roadmap - nsfc - roadmap - flowchart - drawio - svg --- # 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 仓库。 ## 定位 - 用于把 NSFC 标书中的研究内容、技术路线和风险控制转成可打印、A4 可读的路线图。 - 默认工作流是确定性的 `drawio` 渲染;只有用户明确要求 Nano Banana 图片模型时才允许切到 PNG-only。 - 本技能只服务科研写作与可视化表达,不代表任何官方评审口径或资助结论。 ## 输入 至少提供其一: - `proposal_path`:标书目录,推荐。 - `proposal_file`:单个输入文件。 - `spec_file`:结构化图规格文件,最可控。 可选: - `rounds`:默认读 `config.yaml:evaluation.max_rounds` - `output_dir`:默认 `roadmap_output/` - `renderer`:默认 `drawio`;仅用户明确要求时才用 `nano_banana` - `dotenv`:仅 `nano_banana` 用 - `style_ref_images`:仅 `nano_banana` 用,最多前 4 张 - `layout` / `template_ref`:高级选项,默认不需要 ## 输出 默认交付: - `roadmap.drawio` - `roadmap.svg` - `roadmap.png` - `roadmap.pdf` - `roadmap-plan.md` 隐藏中间产物位于 `output_dir/.nsfc-roadmap/`: - `runs/run_*/round_*` - `spec_latest.yaml` - `optimization_report.md` - `config_used_best.yaml` - `evaluation_best.json` - `config_local.yaml` - `ai/`:`stop_strategy=ai_critic` 时的请求/响应协议 Nano Banana 模式仅交付: - `roadmap.png` - `roadmap_compacted.png` ## 硬规则 - 先读 `config.yaml`,以下字段视为单一真相来源:`renderer`、`evaluation`、`layout`、`color_scheme`、`planning`、`output`。 - 仅处理用户明确提供的文件或目录;默认把标书视为敏感信息。 - 默认不联网补素材;如用户要求联网,应先提醒风险。 - 默认保持 `drawio` 流程;不要因为“图片模型更快”就擅自切换渲染后端。 - 若内容拥挤,优先改 `spec` 的节点文案、分组或结构,不要靠缩字号硬过阈值。 ## 工作流 ### 1. 规划 - 若已提供 `spec_file`,可跳过。 - 默认使用 `config.yaml:planning.planning_mode=ai`: 1. 运行 `plan_roadmap.py` 生成 `plan_request.json/plan_request.md` 2. 宿主 AI 写 `roadmap-plan.md` 和 `spec_draft.yaml` 3. 再次运行脚本校验 `spec_draft.yaml` - 规划阶段要同时看立项依据与研究内容,不只看 `2.1 研究内容`。 ### 2. 落到 spec - 优先级:用户自带 `spec_file` > 规划阶段的 `spec_draft.yaml` > 从输入文件自动抽取。 - spec 至少明确阶段、节点、输入输出和风险/备选方案。 - 模板字段可选;默认不强制绑定某个 `template_ref`。 ### 3. 确定性渲染 ```bash python3 nsfc-roadmap/scripts/generate_roadmap.py \ --spec-file ./roadmap_output/spec.yaml \ --output-dir ./roadmap_output \ --rounds 5 ``` - 渲染时固化 `spec_latest.yaml` - 生成交付文件与每轮证据 - `draw.io CLI` 缺失时按配置决定提示、降级或停止 ### 4. 评估与优化 - 默认最多 5 轮,具体以 `config.yaml:evaluation` 为准。 - 每轮至少识别三类问题: - `P0`:缺研究内容、逻辑断裂、孤立节点、不可读 - `P1`:布局混乱、配色干扰、字号过小 - `P2`:间距、边距、箭头清晰度等一般优化 - 停止策略只看配置:`early_stop`、`stop_strategy=plateau` 或 `stop_strategy=ai_critic` - 多维度自检默认覆盖 `structure / visual / readability` ### 5. 可选:AI 自主闭环 - 若希望由宿主 AI 决定“是否继续、改哪里”,在 `config_local.yaml` 中启用 `evaluation.stop_strategy: ai_critic`。 - 脚本会在 `output_dir/.nsfc-roadmap/ai/` 下生成: - `ai_critic_request.md` - `ai_critic_response.yaml` - 每轮 `ai_pack_round_XX/` ### 6. 可选:Nano Banana PNG-only(Gemini / OpenAI `gpt-image-2`) - 只有用户明确要求时才启用。 - 先做连通性检查: ```bash python3 nsfc-roadmap/scripts/nano_banana_check.py ``` - `.env` 中可通过 `IMAGE_PROVIDER=openai` 切到 OpenAI;未显式指定时,默认优先沿用既有 `GEMINI_*` 配置。 - 然后再生成 PNG: ```bash python3 nsfc-roadmap/scripts/generate_roadmap.py \ --spec-file ./roadmap_output/spec.yaml \ --output-dir ./roadmap_output \ --rounds 1 \ --renderer nano_banana ``` ## 常用命令 ```bash # 规划 python3 nsfc-roadmap/scripts/plan_roadmap.py --proposal /path/to/proposal --output ./roadmap_output # 生成 python3 nsfc-roadmap/scripts/generate_roadmap.py --spec-file ./roadmap_output/spec.yaml --output-dir ./roadmap_output --rounds 5 # 图片模型连通性 python3 nsfc-roadmap/scripts/nano_banana_check.py ``` ## 参考材料 - `config.yaml` - `references/models/templates.yaml` - `references/models/README.md` - `assets/evaluation_rubric.md`