nsfc-reviewers
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseNSFC 标书专家评审模拟器
NSFC Proposal Expert Review Simulator
重要声明(非官方)
Important Disclaimer (Non-Official)
- 本技能输出仅用于写作改进与自查,不代表任何官方评审口径,也不构成资助结论或承诺。
- “评审等级/资助建议”仅作为优先级与改进方向的参考;用户如未明确要求,可不输出该部分。
- The output of this skill is only for writing improvement and self-checking, and does not represent any official review caliber, nor does it constitute a funding conclusion or commitment.
- The "review grade/funding recommendation" is only for reference as priority and improvement direction; this section may be omitted if the user does not explicitly request it.
技能依赖
Skill Dependencies
- 并行多组评审模式依赖 技能。
parallel-vibe - 若 不可用、被禁用,或
parallel-vibe,自动退化为单组模式(仍包含 5 位专家)。panel_count == 1 - 专家 prompt 模板位于 ,聚合规则位于
references/expert_*.md。references/aggregation_rules.md
- Parallel multi-group review mode depends on the skill.
parallel-vibe - If is unavailable, disabled, or
parallel-vibe, it automatically degrades to single-group mode (still includes 5 experts).panel_count == 1 - Expert prompt templates are located in , and aggregation rules are in
references/expert_*.md.references/aggregation_rules.md
安全与隐私(硬规则)
Security and Privacy (Hard Rules)
- 默认将标书内容视为敏感信息:仅处理用户明确提供的文件/目录;不擅自扩展扫描范围。
- 除非用户明确要求且确认风险:不联网、不把原文大段外发、不在输出中复述不必要的个人信息/单位信息。
- 只做“文本读取与评审”,默认不执行任何编译/运行(例如不运行 LaTeX 编译,不执行脚本)。
- 输出若需分享:优先提供“问题摘要 + 可执行修改建议”,必要引用原文时只引用最短必要片段。
- By default, proposal content is treated as sensitive information: only process files/directories explicitly provided by the user; do not expand the scanning scope without permission.
- Unless explicitly requested by the user and risks are confirmed: no internet access, do not send large segments of the original text externally, and do not repeat unnecessary personal/unit information in the output.
- Only perform "text reading and review"; by default, do not execute any compilation/running (e.g., do not run LaTeX compilation, do not execute scripts).
- If output needs to be shared: prioritize providing "issue summary + actionable modification suggestions"; when necessary to quote the original text, only quote the shortest necessary fragment.
输入
Input
用户至少提供其一:
- :标书目录(推荐,包含多份
proposal_path).tex - :单个
proposal_file主文件(如用户只有一个文件).tex - :压缩包(若用户提供,先解压到临时目录再评审,并在报告中记录解压位置)
proposal_zip- 解压安全:禁止路径穿越(如 );避免覆盖用户已有文件;必要时先让用户确认解压位置。
../
- 解压安全:禁止路径穿越(如
可选补充(用户未给时不要强行假设):
- :优先关注某一维度(如“创新性/可行性/研究基础”)
focus - :输出文件路径(默认见“输出”)
output_path - :口吻偏好(如“严格/温和/非常具体”)
style - :评审组数量(每组固定 5 位专家)
panel_count- 默认值见
config.yaml:parallel_review.default_panel_count - 上限见
config.yaml:parallel_review.max_panel_count
- 默认值见
Users must provide at least one of the following:
- : Proposal directory (recommended, containing multiple
proposal_pathfiles).tex - : Single main
proposal_filefile (if the user only has one file).tex - : Compressed package (if provided, first extract to a temporary directory for review, and record the extraction location in the report)
proposal_zip- Extraction security: Prohibit path traversal (e.g., ); avoid overwriting existing user files; if necessary, ask the user to confirm the extraction location first.
../
- Extraction security: Prohibit path traversal (e.g.,
Optional supplementary inputs (do not assume if not provided by the user):
- : Prioritize a specific dimension (e.g., "innovation/feasibility/research foundation")
focus - : Output file path (default see "Output")
output_path - : Tone preference (e.g., "strict/moderate/very specific")
style - : Number of review panels (each panel has 5 fixed experts)
panel_count- Default value see
config.yaml:parallel_review.default_panel_count - Upper limit see
config.yaml:parallel_review.max_panel_count
- Default value see
输出
Output
- 默认输出文件名见 ,默认写入标书目录下:
config.yaml:output_settings.default_filename。./{default_filename} - 若用户指定 ,以用户为准;但当路径不可写/目录不存在时应 fail-fast 并提示用户更换路径。
output_path - 并行模式下输出“专家共识 + 独立观点 + 汇总建议”;可按配置附带每位专家原始意见。
- 并行模式下建议将各组原始评审整理为最终交付文件:(
./{panel_dir}/G{组号}.md见panel_dir)。config.yaml:output_settings.panel_dir - 中间过程文件默认隐藏到 (默认
config.yaml:output_settings.intermediate_dir),避免根目录出现大量计划/日志/并行运行环境。.nsfc-reviewers/
- Default output filename see , which is written to the proposal directory by default:
config.yaml:output_settings.default_filename../{default_filename} - If the user specifies , follow the user's setting; but if the path is unwritable or the directory does not exist, fail fast and prompt the user to change the path.
output_path - In parallel mode, output "expert consensus + independent opinions + aggregated suggestions"; original opinions of each expert can be attached as per configuration.
- In parallel mode, it is recommended to organize the original reviews of each panel into final deliverable files: (
./{panel_dir}/G{panel_number}.mdseepanel_dir).config.yaml:output_settings.panel_dir - Intermediate files are hidden in by default (default
config.yaml:output_settings.intermediate_dir) to avoid cluttering the root directory with plans, logs, and parallel runtime environments..nsfc-reviewers/
工作流(执行规范)
Workflow (Execution Specifications)
读取配置(强制)
Read Configuration (Mandatory)
开始前先读取本技能目录下的 ,并将以下配置作为执行时的单一真相来源:
config.yaml- :评审维度、权重、要点与常见问题(作为检查清单)
review_dimensions - :P0/P1/P2 分级口径(用于分级)
severity_levels - :等级与建议(仅在用户需要时输出)
review_grades - :标书文件识别规则
proposal_files.patterns/exclude - :输出文件名、面板目录、中间过程隐藏策略与章节开关
output_settings - :并行评审开关、专家画像、聚合策略
parallel_review
Before starting, read the in the skill directory, and use the following configurations as the single source of truth during execution:
config.yaml- : Review dimensions, weights, key points, and common issues (as a checklist)
review_dimensions - : P0/P1/P2 grading criteria (for classification)
severity_levels - : Grades and suggestions (only output if requested by the user)
review_grades - : Proposal file identification rules
proposal_files.patterns/exclude - : Output filename, panel directory, intermediate process hiding strategy, and chapter switches
output_settings - : Parallel review switch, expert personas, aggregation strategy
parallel_review
阶段一:前置检查(Fail Fast)
Phase 1: Pre-Check (Fail Fast)
- 校验输入路径存在且可读;若是目录,先按 规则筛选出待读文件列表。
proposal_files - 若 文件数量为 0:直接报错并请求用户提供正确路径/文件。
.tex - 若文件数量异常多/目录明显包含大量无关文件:先请用户确认评审范围(避免读错目录/读太多)。
推荐的确定性做法(避免“漏扫子目录 / 误扫中间目录 / 扫到交付产物”):
bash
undefined- Verify that the input path exists and is readable; if it is a directory, first filter the list of files to be read according to the rules.
proposal_files - If the number of files is 0: directly report an error and request the user to provide the correct path/file.
.tex - If the number of files is abnormally large or the directory obviously contains a large number of irrelevant files: first ask the user to confirm the review scope (to avoid reading the wrong directory or too many files).
Recommended deterministic approach (avoid "missing subdirectories / mis-scanning intermediate directories / scanning deliverables"):
bash
undefined列出将被纳入评审的 .tex 文件(递归扫描,并自动跳过 panels/、.nsfc-reviewers/、.parallel_vibe/)
List .tex files to be included in the review (recursive scan, automatically skipping panels/, .nsfc-reviewers/, .parallel_vibe/)
python3 <nsfc_reviewers_path>/scripts/list_proposal_files.py --proposal-path <proposal_root>
python3 <nsfc_reviewers_path>/scripts/list_proposal_files.py --proposal-path <proposal_root>
可选:限制最大文件数(超限退出码=3)
Optional: Limit maximum number of files (exit code=3 if exceeded)
python3 <nsfc_reviewers_path>/scripts/list_proposal_files.py --proposal-path <proposal_root> --max-files 200
undefinedpython3 <nsfc_reviewers_path>/scripts/list_proposal_files.py --proposal-path <proposal_root> --max-files 200
undefined阶段二:通读与结构化理解
Phase 2: Read-Through and Structured Understanding
- 按章节顺序快速通读,提取“项目主题/科学问题/假说/目标/技术路线/创新点/研究基础/团队与条件/预期成果”。
- 生成“标书结构索引”(只需到章节级别),作为后续引用的定位锚点。
- Quickly read through the proposal in chapter order, extracting "project topic/scientific hypothesis/objectives/technical route/innovation points/research foundation/team and conditions/expected outcomes".
- Generate a "proposal structure index" (only to chapter level) as a positioning anchor for subsequent references.
阶段三:并行多组评审(优先)或单组模式(退化)
Phase 3: Parallel Multi-Group Review (Priority) or Single-Group Mode (Degradation)
前置判断
Pre-Judgment
- 计算 :优先用户输入
effective_panel_count,否则使用panel_count。parallel_review.default_panel_count - 将 限制在
effective_panel_count。[1, parallel_review.max_panel_count] - 若任一条件成立,直接走单组模式:
parallel_review.enabled == falseeffective_panel_count == 1- 找不到 脚本
parallel-vibe
- Calculate : prioritize user input
effective_panel_count, otherwise usepanel_count.parallel_review.default_panel_count - Limit to
effective_panel_count.[1, parallel_review.max_panel_count] - Directly use single-group mode if any of the following conditions are met:
parallel_review.enabled == falseeffective_panel_count == 1- Cannot find the script
parallel-vibe
parallel-vibe 脚本路径发现顺序
parallel-vibe Script Path Discovery Order
按顺序查找以下路径,命中即使用:
~/.claude/skills/parallel-vibe/scripts/parallel_vibe.py~/.codex/skills/parallel-vibe/scripts/parallel_vibe.py<当前仓库>/parallel-vibe/scripts/parallel_vibe.py
若全部不存在:记录警告并退化为串行模式,不中断整体评审。
Search the following paths in order, use the first one found:
~/.claude/skills/parallel-vibe/scripts/parallel_vibe.py~/.codex/skills/parallel-vibe/scripts/parallel_vibe.py<current_repository>/parallel-vibe/scripts/parallel_vibe.py
If none are found: record a warning and degrade to serial mode without interrupting the overall review.
并行模式步骤
Parallel Mode Steps
- 准备中间目录结构(强烈建议):
bash
mkdir -p <proposal_root>/<intermediate_dir>/{logs/plans,snapshot}- 其中 对应
<intermediate_dir>(默认config.yaml:output_settings.intermediate_dir)。.nsfc-reviewers
- 构造 Master Prompt(由宿主 AI 完成):
- 从 读取 5 位专家画像(对应
references/expert_*.md)config.yaml:parallel_review.reviewer_personas[*].prompt_file - 从 读取 master prompt 模板
references/master_prompt_template.md - 注入上下文:阶段二产出的“标书结构索引 + 关键信息摘要”
- 注入统一质量门槛:问题分级、证据锚点、输出格式
- 注入独立性约束:每位专家只做独立判断,不假设其他专家意见
- 注入输出约束:将评审组输出写入当前 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>
- 从
- 生成 parallel-vibe 计划文件(强制):
- 原因:避免在 CLI 里转义超长 prompt;并避免 的自动拆分逻辑(本技能需要“同一 master prompt 在 N 个独立工作区重复执行”)。
parallel-vibe --prompt - 优先使用本技能自带脚本生成计划文件:
- 原因:避免在 CLI 里转义超长 prompt;并避免
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 }
}- 调用 parallel-vibe(基于 plan-file):
- 推荐先在 下准备一份标书快照(如
<proposal_root>/<intermediate_dir>/snapshot/),并将其作为proposal_snapshot/,以避免把--src-dir、.nsfc-reviewers/等中间/交付目录再次复制进各 thread 的panels/。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- 收集并校验各组输出:
- 从每个 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>/... - 会在 stdout 打印本次
parallel-vibe路径;优先以该路径为准project_root - 若个别 thread 缺失输出,记录缺失并继续聚合已完成结果(fail-soft)
- 建议将每组最终评审报告复制/整理为最终交付文件:
<proposal_root>/{panel_dir}/G{thread_id}.md
- 从每个 thread 的
- Prepare Intermediate Directory Structure (Highly Recommended):
bash
mkdir -p <proposal_root>/<intermediate_dir>/{logs/plans,snapshot}- corresponds to
<intermediate_dir>(defaultconfig.yaml:output_settings.intermediate_dir)..nsfc-reviewers
- Construct Master Prompt (completed by the host AI):
- Read 5 expert personas from (corresponding to
references/expert_*.md)config.yaml:parallel_review.reviewer_personas[*].prompt_file - Read the master prompt template from
references/master_prompt_template.md - Inject context: "proposal structure index + key information summary" produced in Phase 2
- Inject unified quality threshold: issue classification, evidence anchors, output format
- Inject independence constraints: each expert makes independent judgments without assuming other experts' opinions
- Inject output constraints: write the panel's output to in the root directory of the current thread's
config.yaml:parallel_review.panel_output_filenameworkspace/ - Replace template placeholders: replace with
{panel_output_filename}config.yaml:parallel_review.panel_output_filename - Save the master prompt to a temporary file (recommended to be placed in for easy tracing without polluting the root directory), recorded as
<proposal_root>/<intermediate_dir>/logs/<master_prompt_path>
- Read 5 expert personas from
- Generate parallel-vibe Plan File (Mandatory):
- Reason: Avoid escaping ultra-long prompts in the CLI; and avoid the automatic splitting logic of (this skill requires "the same master prompt to be executed repeatedly in N independent workspaces")
parallel-vibe --prompt - Prioritize using the built-in script of this skill to generate the plan file:
- Reason: Avoid escaping ultra-long prompts in the CLI; and avoid the automatic splitting logic of
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>- If the script cannot be used, manually generate (minimum structure):
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 }
}- Call parallel-vibe (Based on Plan File):
- It is recommended to prepare a proposal snapshot (e.g., ) in
proposal_snapshot/first, and use it as<proposal_root>/<intermediate_dir>/snapshot/to avoid copying--src-dir,.nsfc-reviewers/and other intermediate/deliverable directories into thepanels/of each thread again.workspace/ - Minimum approach: Copy the "proposal directory to be reviewed" to and exclude intermediate/deliverable directories (specific commands depend on platform tools; principle: the snapshot directory should only contain proposal source files).
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- Collect and Verify Panel Outputs:
- Read from the
panel_output_filenameof each threadworkspace/ - Typical path (after running but before organizing output):
<proposal_root>/<intermediate_dir>/.parallel_vibe/<project_id>/<thread_id>/workspace/<panel_output_filename> - If you have executed "Phase 5: Output Organization", the parallel-vibe environment is usually located at:
<proposal_root>/<intermediate_dir>/parallel-vibe/<project_id>/... - will print the current
parallel-vibepath in stdout; prioritize using this pathproject_root - If the output of individual threads is missing, record the missing and continue aggregating completed results (fail-soft)
- It is recommended to copy/organize the final review report of each panel into final deliverable files:
<proposal_root>/{panel_dir}/G{thread_id}.md
- Read
单组模式步骤(退化)
Single-Group Mode Steps (Degradation)
- 读取 获取 5 位专家画像(创新/方法/基础/严格/建设性)
references/expert_*.md - 模拟并行流程:让 5 位专家依次完成“独立评审”(不得相互参考)
- 执行组内聚合(共识识别/严重度升级/去重合并)
- 输出单组评审组报告到
panel_output_filename
- Read to get 5 expert personas (innovation/methodology/foundation/strict/constructive)
references/expert_*.md - Simulate parallel process: let 5 experts complete "independent reviews" in sequence (without referencing each other)
- Perform intra-panel aggregation (consensus identification/severity escalation/deduplication and merging)
- Output the single-panel review report to
panel_output_filename
阶段四:聚合、排序与可选结论
Phase 4: Aggregation, Sorting and Optional Conclusion
跨组聚合(并行多组模式)
Cross-Panel Aggregation (Parallel Multi-Group Mode)
- 从 读取跨组聚合规则。
references/aggregation_rules.md - 交叉比对 N 组 ,识别同一问题的不同表述。
panel_review.md - 跨组共识门槛:至少 组指出 → 跨组共识(阈值见
ceil(N * consensus_threshold))。config.yaml:parallel_review.aggregation.consensus_threshold - 严重度二次升级:跨组共识问题 P2→P1→P0(P0 不再升级)。
- 合并重复问题,保留最完整的证据锚点与可执行建议。
- 独立观点保留并标注来源组(如“来自组 G001”)。
- 结果按 P0→P1→P2 输出,并给出最小可行修改序列。
- 若 ,附录保留各组原始评审报告。
keep_individual_reviews == true
- Read cross-panel aggregation rules from .
references/aggregation_rules.md - Cross-compare N groups of to identify different expressions of the same issue.
panel_review.md - Cross-panel consensus threshold: pointed out by at least panels → cross-panel consensus (threshold see
ceil(N * consensus_threshold)).config.yaml:parallel_review.aggregation.consensus_threshold - Secondary severity escalation: cross-panel consensus issues P2→P1→P0 (P0 no longer escalated).
- Merge duplicate issues, retaining the most complete evidence anchors and actionable suggestions.
- Retain independent opinions and label their source panel (e.g., "from Panel G001").
- Output results in order of P0→P1→P2, and provide a minimal viable modification sequence.
- If , append original review reports of each panel in the appendix.
keep_individual_reviews == true
单组汇总
Single-Panel Summary
输出“修改建议汇总”,按 P0→P1→P2 排序,并给出最小可行修改序列。
Output "summary of modification suggestions", sorted by P0→P1→P2, and provide a minimal viable modification sequence.
可选综合结论
Optional Comprehensive Conclusion
仅当用户明确要求时,输出“综合评分/资助建议”(并重申其为改进参考)。
Only output "comprehensive score/funding recommendation" when explicitly requested by the user (and reaffirm that it is for improvement reference).
阶段五:输出整理(强制执行)
Phase 5: Output Organization (Mandatory Execution)
重要性:本阶段是确保输出可追溯的关键步骤,不可跳过。当 时,你不得在未完成本阶段的情况下结束评审。
config.yaml:output_settings.enforce_output_finalization == true目标:最终交付清晰可见;中间过程统一托管到 (默认 ),避免根目录出现计划/日志/并行环境等杂项。
config.yaml:output_settings.intermediate_dir.nsfc-reviewers/Importance: This phase is key to ensuring output traceability and cannot be skipped. When , you must not end the review without completing this phase.
config.yaml:output_settings.enforce_output_finalization == trueGoal: Final deliverables are clearly visible; intermediate processes are uniformly managed in (default ) to avoid clutter in the root directory from plans, logs, parallel environments, etc.
config.yaml:output_settings.intermediate_dir.nsfc-reviewers/前置检查(按顺序执行)
Pre-Check (Execute in Order)
- 计算并确认 (见阶段三)。
effective_panel_count - 判断本次评审模式:
- 若 且你实际调用了
effective_panel_count > 1(或发现parallel-vibe运行环境)→ 视为“并行模式”.parallel_vibe/ - 否则 → “串行模式”(仍必须创建最小中间目录与日志)
- 若
- Calculate and confirm (see Phase 3).
effective_panel_count - Determine the review mode for this time:
- If and you actually called
effective_panel_count > 1(or found theparallel-viberuntime environment) → regarded as "parallel mode".parallel_vibe/ - Otherwise → "serial mode" (still must create minimal intermediate directories and logs)
- If
推荐做法:使用脚本自动化输出整理(确定性,强烈推荐)
Recommended Approach: Use Script to Automate Output Organization (Deterministic, Highly Recommended)
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不加为 DRY-RUN:只打印将执行的动作,不会改动文件。--apply
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> \
--applyWithout, it is a DRY-RUN: only print actions to be executed without modifying files.--apply
手动整理(脚本不可用时的 fallback)
Manual Organization (Fallback When Script Is Unavailable)
并行/串行都必须至少创建最小目录结构:
bash
mkdir -p <proposal_root>/<intermediate_dir>/{parallel-vibe,logs/plans,snapshot}并行模式:将 的 项目目录迁移到 (兼容两种来源位置):
.parallel_vibe/<intermediate_dir>/parallel-vibe/bash
undefinedBoth parallel and serial modes must create at least the minimal directory structure:
bash
mkdir -p <proposal_root>/<intermediate_dir>/{parallel-vibe,logs/plans,snapshot}Parallel mode: Migrate the project directory of to (compatible with two source locations):
.parallel_vibe/<intermediate_dir>/parallel-vibe/bash
undefined1) 优先从 <proposal_root>/<intermediate_dir>/.parallel_vibe/ 迁移(parallel-vibe --out-dir 指向 intermediate_dir 时常见)
1) Prioritize migration from <proposal_root>/<intermediate_dir>/.parallel_vibe/ (common when parallel-vibe --out-dir points to 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
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/ 迁移
2) Compatible with old instances: migrate from root directory .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 || trueif [ -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
Migrate logs and plan files (execute only if they exist):
```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验证清单(执行后自检,未通过不得结束)
Verification Checklist (Self-Check After Execution, Cannot End If Not Passed)
- 已创建,且至少包含
<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
- has been created, and contains at least
<proposal_root>/<intermediate_dir>/andlogs/logs/plans/ - If in parallel mode: contains the
<proposal_root>/<intermediate_dir>/parallel-vibe/runtime environment<project_id>/... - (or its copy) can be found in
master_prompt.txt<proposal_root>/<intermediate_dir>/logs/ - Final deliverables are still in the root directory: and
{default_filename}(unrelated intermediate files should not be scattered in the root directory){panel_dir}/G*.md
报告格式(硬门槛)
Report Format (Hard Threshold)
对每条 P0/P1 问题,必须包含至少一个“证据锚点”:
- :文件名 + 章节标题/关键句(可选行号)
证据锚点 - :为什么这是问题(不要空泛)
现象 - :会如何影响评审判断/可行性/说服力
影响 - :可执行的修改方案(优先给“怎么改”和“改到什么程度算够”)
建议 - :改完如何自检(例如“补一张路线图”“补一段对照坐标系”“补一条预实验证据链”)
验证
并行模式建议结构:
markdown
undefinedFor each P0/P1 issue, it must include at least one "evidence anchor":
- : Filename + chapter title/key sentence (line number optional)
Evidence Anchor - : Why this is an issue (no vague descriptions)
Observation - : How it will affect review judgment/feasibility/persuasiveness
Impact - : Actionable modification plan (prioritize providing "how to modify" and "what level of modification is sufficient")
Suggestion - : How to self-check after modification (e.g., "add a roadmap", "add a paragraph of coordinate system comparison", "add a chain of pre-experiment evidence")
Validation
Recommended structure for parallel mode:
markdown
undefined国自然标书评审意见(N 组独立专家)
NSFC Proposal Review Opinions (N Groups of Independent Experts)
评审配置
Review Configuration
- 评审组数:N 组
- 每组专家:5 位
- 总专家人次:N×5 人次
- Number of review panels: N groups
- Experts per panel: 5
- Total expert person-times: N×5
跨组共识(多组一致指出)
Cross-Panel Consensus (Pointed Out by Multiple Groups)
P0 级
P0 Level
独立观点(单一组提出)
Independent Opinions (Proposed by Single Group)
来自 组 G001
From Panel G001
修改建议汇总
Summary of Modification Suggestions
附录:各组原始评审报告(可选)
Appendix: Original Review Reports of Each Panel (Optional)
undefinedundefined使用示例
Usage Example
用户输入:
text
请评审 /path/to/nsfc_proposal 这个国自然标书,并把意见保存到 /path/to/output.mdUser input:
text
Please review the NSFC proposal at /path/to/nsfc_proposal and save the opinions to /path/to/output.md配置参数
Configuration Parameters
详见 :
config.yaml- :评审维度配置(权重/要点/常见问题)
review_dimensions - :问题严重程度定义
severity_levels - :评审等级与建议(可选输出)
review_grades - :标书文件识别规则
proposal_files - :输出设置(默认文件名/面板目录/中间目录/章节开关;以及输出整理校验:
output_settings/enforce_output_finalization/warn_missing_intermediate)validation_level - :并行多组评审配置(开关/组数/专家画像引用/跨组聚合策略)
parallel_review
See for details:
config.yaml- : Review dimension configuration (weights/key points/common issues)
review_dimensions - : Definition of issue severity levels
severity_levels - : Review grades and suggestions (optional output)
review_grades - : Proposal file identification rules
proposal_files - : Output settings (default filename/panel directory/intermediate directory/chapter switches; and output organization verification:
output_settings/enforce_output_finalization/warn_missing_intermediate)validation_level - : Parallel multi-group review configuration (switch/number of panels/expert persona references/cross-panel aggregation strategy)
parallel_review