| name | part3-human-selection |
| description | 学术研究 workflow Part 3 第三步:执行 argument_tree_selected 人工 gate。只有用户明确提供 candidate_id、候选来源(original/refined)和选择理由后,才写入 outputs/part3/human_selection_feedback.json,并将对应候选锁定为 canonical outputs/part3/argument_tree.json。当用户说「选择论证树」「锁定 argument tree」「part3-human-selection」时触发。不得自动跳过 gate 或进入 Part 4。 |
Part 3 Step 3 — Human Selection and Canonical Lock
你的任务是展示候选与比较结果,记录用户明确选择,并在 human gate 通过后锁定 canonical outputs/part3/argument_tree.json。这是 Part 3 的人工决策点,不允许由 agent 代替用户完成。用户可以选择原始候选或 refined 候选;选择 refined candidate 时必须通过工程 CLI 的 refined source 入口,不得覆盖原始 candidate 文件。
前置检查
- 原始候选目录
outputs/part3/candidate_argument_trees/ 存在;如果用户选择 refined candidate,outputs/part3/refined_candidate_argument_trees/ 也必须存在。
- 原始候选至少包含
candidate_theory_first.json、candidate_problem_solution.json、candidate_case_application.json。
- refined candidate 只能从
outputs/part3/refined_candidate_argument_trees/ 读取,ID 必须是 {original_candidate_id}_refined,例如 candidate_theory_first_refined;不得复制到原始候选目录后再选择。
outputs/part3/candidate_comparison.json 存在。
outputs/part3/candidate_selection_table.md 应存在;缺失时先运行 python3 cli.py part3-review 生成并展示表格。
- 用户在当前对话中明确提供:
candidate_id
- 候选来源:
original 或 refined
- 选择理由
- 如果
outputs/part3/argument_tree.json 已存在,必须提示这是重新锁定场景;只有用户明确要求覆盖时才继续。
如果用户只说“按推荐的来”但没有提供 candidate_id 和理由,应先展示推荐与候选摘要,并要求用户明确确认。不得推断为已选择。
输入
outputs/part3/candidate_argument_trees/{candidate_id}.json,或通过 refined source 入口读取 outputs/part3/refined_candidate_argument_trees/{original_candidate_id}_refined.json
outputs/part3/candidate_comparison.json
outputs/part3/argument_quality_report.json(选择 refined candidate 时建议存在)
outputs/part3/candidate_selection_table.md
- 用户明确给出的
candidate_id
- 用户明确给出的候选来源:
original 或 refined
- 用户明确给出的选择理由
输出
outputs/part3/candidate_selection_table.md(人工选择前的三候选表格)
outputs/part3/human_selection_feedback.json
outputs/part3/argument_tree.json
human_selection_feedback.json 建议结构:
{
"schema_version": "1.0.0",
"selected_at": "<ISO 时间>",
"selected_candidate_id": "candidate_theory_first",
"candidate_source": "original | refined",
"selection_notes": "用户选择理由",
"candidate_tree_ref": "outputs/part3/candidate_argument_trees/candidate_theory_first.json",
"candidate_comparison_ref": "outputs/part3/candidate_comparison.json",
"locked_artifact": "outputs/part3/argument_tree.json"
}
argument_tree.json 应复制并规范化所选候选内容,同时增加 canonical 锁定字段:
{
"schema_version": "1.0.0",
"locked_at": "<ISO 时间>",
"selected_candidate_id": "candidate_theory_first",
"human_selection_ref": "outputs/part3/human_selection_feedback.json",
"candidate_comparison_ref": "outputs/part3/candidate_comparison.json",
"wiki_ref": "research-wiki/index.json",
"root": {}
}
执行步骤
- 读取 comparison 和 3 份候选,运行
python3 cli.py part3-review,生成并展示 candidate_selection_table.md。
- 检查用户是否明确提供
candidate_id 和选择理由。
- 如果缺任一项,停止,要求用户补充;不要写文件。
- 验证
candidate_id 对应候选文件存在;如果来源是 refined,必须通过工程 CLI 的 refined source 入口读取 outputs/part3/refined_candidate_argument_trees/,不得覆盖原始候选。
- 写入
human_selection_feedback.json,记录选择理由、候选树路径、comparison 路径与 locked artifact。
- 将所选候选复制为 canonical
outputs/part3/argument_tree.json,保留候选 root,并追加 canonical 锁定字段。
- 通过 CLI 调用时,记录
argument_tree_selected human gate;不得启动 Part 4。
建议执行:
python3 cli.py part3-review
python3 cli.py part3-select --candidate-id candidate_theory_first --notes "人工选择理由"
python3 cli.py part3-select --candidate-id candidate_theory_first_refined --candidate-source refined --notes "人工选择理由"
如果已存在 outputs/part3/argument_tree.json,只有用户明确要求重新锁定时才可追加 --force。
禁止事项
- 不得替用户选择候选。
- 不得把 agent recommendation 当作 human selection。
- 不得在没有选择理由时写入
human_selection_feedback.json。
- 不得通过复制 refined candidate 覆盖原始 candidate 的方式绕过 refined source 入口。
- 不得自动进入 Part 4,或生成
outputs/part4/paper_outline.json。
- 不得覆盖既有 canonical
argument_tree.json,除非用户明确要求重新锁定。
- 不得手动修改
runtime/ 或 process-memory/;必须通过 python3 cli.py part3-select ... 或 selection locker 记录 argument_tree_selected,保证 state 与 process-memory 可审计。
结果摘要格式
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Part 3 人工选择已记录
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Gate: argument_tree_selected
选择候选: <candidate_id>
候选来源: <original / refined>
选择理由: <用户理由摘要>
候选表格: outputs/part3/candidate_selection_table.md
反馈文件: outputs/part3/human_selection_feedback.json
Canonical: outputs/part3/argument_tree.json
Part 3 gate 状态: 已满足
Part 4 授权状态: 未授权
下一步:等待用户明确要求进入 Part 4
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━