superlab 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +65 -17
  2. package/README.zh-CN.md +64 -15
  3. package/bin/superlab.cjs +232 -1
  4. package/lib/context.cjs +337 -0
  5. package/lib/i18n.cjs +693 -41
  6. package/lib/install.cjs +253 -53
  7. package/package-assets/claude/commands/lab/framing.md +11 -0
  8. package/package-assets/claude/commands/lab/idea.md +2 -1
  9. package/package-assets/claude/commands/lab/iterate.md +2 -1
  10. package/package-assets/claude/commands/lab/report.md +2 -1
  11. package/package-assets/claude/commands/lab/review.md +2 -1
  12. package/package-assets/claude/commands/lab/run.md +2 -1
  13. package/package-assets/claude/commands/lab/spec.md +2 -1
  14. package/package-assets/claude/commands/lab/write.md +2 -1
  15. package/package-assets/claude/commands/lab.md +48 -0
  16. package/package-assets/codex/prompts/lab-framing.md +9 -0
  17. package/package-assets/codex/prompts/lab-idea.md +2 -1
  18. package/package-assets/codex/prompts/lab-iterate.md +2 -1
  19. package/package-assets/codex/prompts/lab-report.md +2 -1
  20. package/package-assets/codex/prompts/lab-review.md +2 -1
  21. package/package-assets/codex/prompts/lab-run.md +2 -1
  22. package/package-assets/codex/prompts/lab-spec.md +2 -1
  23. package/package-assets/codex/prompts/lab-write.md +2 -1
  24. package/package-assets/codex/prompts/lab.md +46 -0
  25. package/package-assets/shared/{templates → lab/.managed/templates}/design.md +3 -3
  26. package/package-assets/shared/lab/.managed/templates/framing.md +68 -0
  27. package/package-assets/shared/{templates → lab/.managed/templates}/paper-plan.md +1 -0
  28. package/package-assets/shared/{templates → lab/.managed/templates}/proposal.md +1 -1
  29. package/package-assets/shared/{templates → lab/.managed/templates}/spec.md +2 -2
  30. package/package-assets/shared/{templates → lab/.managed/templates}/tasks.md +2 -2
  31. package/package-assets/shared/{templates → lab/.managed/templates}/write-iteration.md +1 -0
  32. package/package-assets/shared/lab/changes/README.md +10 -0
  33. package/package-assets/shared/lab/config/workflow.json +6 -0
  34. package/package-assets/shared/lab/context/next-action.md +19 -0
  35. package/package-assets/shared/lab/context/session-brief.md +30 -0
  36. package/package-assets/shared/lab/context/summary.md +21 -0
  37. package/package-assets/shared/lab/context/terminology-lock.md +28 -0
  38. package/package-assets/shared/lab/system/core.md +41 -0
  39. package/package-assets/shared/skills/lab/SKILL.md +54 -37
  40. package/package-assets/shared/skills/lab/references/paper-writing/abstract.md +2 -17
  41. package/package-assets/shared/skills/lab/references/paper-writing/introduction.md +3 -63
  42. package/package-assets/shared/skills/lab/references/paper-writing/method.md +4 -34
  43. package/package-assets/shared/skills/lab/references/workflow.md +4 -4
  44. package/package-assets/shared/skills/lab/stages/framing.md +72 -0
  45. package/package-assets/shared/skills/lab/stages/idea.md +5 -5
  46. package/package-assets/shared/skills/lab/stages/iterate.md +8 -8
  47. package/package-assets/shared/skills/lab/stages/report.md +7 -6
  48. package/package-assets/shared/skills/lab/stages/review.md +6 -5
  49. package/package-assets/shared/skills/lab/stages/run.md +4 -4
  50. package/package-assets/shared/skills/lab/stages/spec.md +11 -11
  51. package/package-assets/shared/skills/lab/stages/write.md +14 -10
  52. package/package.json +1 -1
  53. package/package-assets/shared/changes/README.md +0 -10
  54. package/package-assets/shared/config/workflow.json +0 -5
  55. package/package-assets/shared/examples/minimal-uplift-workflow.md +0 -73
  56. /package/package-assets/shared/{scripts → lab/.managed/scripts}/eval_report.py +0 -0
  57. /package/package-assets/shared/{scripts → lab/.managed/scripts}/register_run.py +0 -0
  58. /package/package-assets/shared/{scripts → lab/.managed/scripts}/summarize_iterations.py +0 -0
  59. /package/package-assets/shared/{scripts → lab/.managed/scripts}/validate_results.py +0 -0
  60. /package/package-assets/shared/{templates → lab/.managed/templates}/final-report.md +0 -0
  61. /package/package-assets/shared/{templates → lab/.managed/templates}/idea.md +0 -0
  62. /package/package-assets/shared/{templates → lab/.managed/templates}/iteration-report.md +0 -0
  63. /package/package-assets/shared/{templates → lab/.managed/templates}/paper-section.md +0 -0
  64. /package/package-assets/shared/{templates → lab/.managed/templates}/paper-section.tex +0 -0
  65. /package/package-assets/shared/{templates → lab/.managed/templates}/paper.tex +0 -0
  66. /package/package-assets/shared/{templates → lab/.managed/templates}/review-checklist.md +0 -0
  67. /package/package-assets/shared/{context → lab/context}/decisions.md +0 -0
  68. /package/package-assets/shared/{context → lab/context}/evidence-index.md +0 -0
  69. /package/package-assets/shared/{context → lab/context}/mission.md +0 -0
  70. /package/package-assets/shared/{context → lab/context}/open-questions.md +0 -0
  71. /package/package-assets/shared/{context → lab/context}/state.md +0 -0
package/lib/i18n.cjs CHANGED
@@ -23,82 +23,104 @@ ${body}
23
23
  }
24
24
 
25
25
  const ZH_CONTENT = {
26
+ [path.join(".codex", "prompts", "lab.md")]: codexPrompt(
27
+ "查看 /lab 研究工作流总览并选择合适阶段",
28
+ "workflow question 或 stage choice",
29
+ "# `/lab` for Codex\n\n`/lab` 是严格的研究工作流命令族。每次都使用同一套仓库工件和阶段边界。\n\n## 子命令\n\n- `/lab:idea`\n 调研 idea,定义问题与 failure case,归类 contribution 与 breakthrough level,对比现有方法,收束三个一眼就有意义的点,并在实现前保留 approval gate。\n\n- `/lab:framing`\n 通过审计当前领域与相邻领域的术语,锁定 paper-facing 的方法名、模块名、论文题目和 contribution bullets,并在 section 起草前保留 approval gate。\n\n- `/lab:spec`\n 把已批准的 idea 转成 `.lab/changes/<change-id>/` 下的一个 lab change 目录,并在其中写出 `proposal`、`design`、`spec`、`tasks`。\n\n- `/lab:run`\n 执行最小有意义验证运行,登记 run,并生成第一版标准化评估摘要。\n\n- `/lab:iterate`\n 在冻结 mission、阈值、verification commands 与 `completion_promise` 的前提下执行有边界的实验迭代。\n\n- `/lab:review`\n 以 reviewer mode 审查文档或结果,先给短摘要,再输出 findings、fatal flaws、fix priority 和 residual risks。\n\n- `/lab:report`\n 从 runs 和 iterations 工件生成最终研究报告。\n\n- `/lab:write`\n 使用已安装 `lab` skill 下 vendored 的 paper-writing references,把稳定 report 工件转成论文 section。\n\n## 调度规则\n\n- 始终使用 `skills/lab/SKILL.md` 作为工作流合同。\n- 用户显式调用 `/lab:<stage>` 时,要立刻执行该 stage,而不是只推荐别的 `/lab` stage。\n- 先给简洁摘要,再决定是否写工件,最后回报输出路径和下一步。\n- 如果歧义会影响结论,一次只问一个问题;如果有多条可行路径,先给 2-3 个方案再收敛。\n- `/lab:write` 前必须已有经批准的 `/lab:framing` 工件。\n"
30
+ ),
26
31
  [path.join(".codex", "prompts", "lab-idea.md")]: codexPrompt(
27
32
  "在进入规格前调研并打磨论文或实验想法",
28
33
  "idea 或 research problem",
29
- "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:idea` 阶段。它必须先用清晰简洁的话定义问题与失败场景,说明现有方法哪里不够、我们的想法为何更好,再做 idea classification、contribution category、breakthrough level 的归类,并收束出至少三个一眼就有意义的点,最后保留进入 `/lab:spec` 前的 approval gate。"
34
+ "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:idea`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:idea` 阶段。它必须先用清晰简洁的话定义问题与失败场景,说明现有方法哪里不够、我们的想法为何更好,再做 idea classification、contribution category、breakthrough level 的归类,并收束出至少三个一眼就有意义的点,最后保留进入 `/lab:spec` 前的 approval gate。"
35
+ ),
36
+ [path.join(".codex", "prompts", "lab-framing.md")]: codexPrompt(
37
+ "在写作前收紧方法名、模块名、论文题目和 contribution framing",
38
+ "naming、title 或 contribution framing target",
39
+ "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:framing`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:framing` 阶段。它必须围绕 paper-facing framing,收紧方法名、模块名、题目和 contribution bullets,审查当前领域与相邻领域的术语是否 canonical、对象是否明确,并在进入 `/lab:write` 前保留 approval gate。"
30
40
  ),
31
41
  [path.join(".codex", "prompts", "lab-spec.md")]: codexPrompt(
32
42
  "把已批准的 idea 转成统一的 lab change 目录",
33
43
  "approved idea context",
34
- "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:spec` 阶段。它必须围绕一个 change id,在 `.superlab/changes/<change-id>/` 下生成 proposal/design/spec/tasks,并让这个 change 成为后续 run 和 iterate 的统一入口。"
44
+ "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:spec`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:spec` 阶段。它必须围绕一个 change id,在 `.lab/changes/<change-id>/` 下生成 proposal/design/spec/tasks,并让这个 change 成为后续 run 和 iterate 的统一入口。"
35
45
  ),
36
46
  [path.join(".codex", "prompts", "lab-run.md")]: codexPrompt(
37
47
  "执行最小可行实验并标准化输出",
38
48
  "run context",
39
- "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:run` 阶段。它必须从最小实验开始,登记 run,生成标准化评估摘要,并验证结果格式。"
49
+ "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:run`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:run` 阶段。它必须从最小实验开始,登记 run,生成标准化评估摘要,并验证结果格式。"
40
50
  ),
41
51
  [path.join(".codex", "prompts", "lab-iterate.md")]: codexPrompt(
42
52
  "在固定成功标准下执行有边界的实验迭代",
43
53
  "iteration mission",
44
- "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:iterate` 阶段。它必须冻结 mission、声明 completion_promise、只做小步改动、每轮生成评估和 iteration report;若风险连续两轮升高则切 diagnostic mode,并在失败结束时记录 blockers 与 next actions。"
54
+ "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:iterate`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:iterate` 阶段。它必须冻结 mission、声明 completion_promise、只做小步改动、每轮生成评估和 iteration report;若风险连续两轮升高则切 diagnostic mode,并在失败结束时记录 blockers 与 next actions。"
45
55
  ),
46
56
  [path.join(".codex", "prompts", "lab-review.md")]: codexPrompt(
47
57
  "以审稿人模式审查研究方案或结果",
48
58
  "artifact or result to review",
49
- "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:review` 阶段。它必须先给简洁摘要,再按 findings -> fatal flaws -> fix priority -> residual risks 的顺序输出,优先检查方法学漏洞、对照公平性、数据泄漏、统计不足和 unsupported claims。"
59
+ "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:review`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:review` 阶段。它必须先给简洁摘要,再按 findings -> fatal flaws -> fix priority -> residual risks 的顺序输出,优先检查方法学漏洞、对照公平性、数据泄漏、统计不足和 unsupported claims。"
50
60
  ),
51
61
  [path.join(".codex", "prompts", "lab-report.md")]: codexPrompt(
52
62
  "基于验证后的迭代工件生成最终报告",
53
63
  "report context",
54
- "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:report` 阶段。它必须汇总标准化摘要、保留失败尝试和局限,并生成最终实验报告。"
64
+ "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:report`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:report` 阶段。它必须汇总标准化摘要、保留失败尝试和局限,并生成最终实验报告。"
55
65
  ),
56
66
  [path.join(".codex", "prompts", "lab-write.md")]: codexPrompt(
57
67
  "把验证过的研究工件转成论文 section,并按小步方式修订",
58
68
  "section or writing target",
59
- "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:write` 阶段。它必须先读取 `.codex/skills/lab/references/paper-writing/` 下与当前 section 对应的参考文件,并结合 `paper-review.md` 与 `does-my-writing-flow-source.md`,先写 mini-outline,再只修改一个 section。"
69
+ "使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:write`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:write` 阶段。它必须先有来自 `/lab:framing` 的已批准 framing artifact,再读取 `.codex/skills/lab/references/paper-writing/` 下与当前 section 对应的参考文件,并结合 `paper-review.md` 与 `does-my-writing-flow-source.md`,先写 mini-outline,再只修改一个 section。"
60
70
  ),
61
71
  [path.join(".claude", "commands", "lab", "idea.md")]: claudeCommand(
62
72
  "LAB: Idea",
63
73
  "在进入规格前调研并打磨论文或实验想法",
64
74
  "workflow, research, idea",
65
- "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:idea` 阶段。它必须先用清晰简洁的话定义问题与失败场景,说明现有方法哪里不够、我们的想法为何更好,再做 idea classification、contribution category、breakthrough level 的归类,并收束出至少三个一眼就有意义的点,最后保留进入 `/lab:spec` 前的 approval gate。"
75
+ "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:idea`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:idea` 阶段。它必须先用清晰简洁的话定义问题与失败场景,说明现有方法哪里不够、我们的想法为何更好,再做 idea classification、contribution category、breakthrough level 的归类,并收束出至少三个一眼就有意义的点,最后保留进入 `/lab:spec` 前的 approval gate。"
76
+ ),
77
+ [path.join(".claude", "commands", "lab.md")]: claudeCommand(
78
+ "LAB",
79
+ "查看 /lab 研究工作流总览并选择合适阶段",
80
+ "workflow, research, overview",
81
+ "# `/lab` for Claude\n\n`/lab` 是严格的研究工作流命令族。每次都使用同一套仓库工件和阶段边界。\n\n## 子命令\n\n- `/lab:idea`\n 调研 idea,定义问题与 failure case,归类 contribution 与 breakthrough level,对比现有方法,收束三个一眼就有意义的点,并在实现前保留 approval gate。\n\n- `/lab:framing`\n 通过审计当前领域与相邻领域的术语,锁定 paper-facing 的方法名、模块名、论文题目和 contribution bullets,并在 section 起草前保留 approval gate。\n\n- `/lab:spec`\n 把已批准的 idea 转成 `.lab/changes/<change-id>/` 下的一个 lab change 目录,并在其中写出 `proposal`、`design`、`spec`、`tasks`。\n\n- `/lab:run`\n 执行最小有意义验证运行,登记 run,并生成第一版标准化评估摘要。\n\n- `/lab:iterate`\n 在冻结 mission、阈值、verification commands 与 `completion_promise` 的前提下执行有边界的实验迭代。\n\n- `/lab:review`\n 以 reviewer mode 审查文档或结果,先给短摘要,再输出 findings、fatal flaws、fix priority 和 residual risks。\n\n- `/lab:report`\n 从 runs 和 iterations 工件生成最终研究报告。\n\n- `/lab:write`\n 使用已安装 `lab` skill 下 vendored 的 paper-writing references,把稳定 report 工件转成论文 section。\n\n## 调度规则\n\n- 始终使用 `skills/lab/SKILL.md` 作为工作流合同。\n- 用户显式调用 `/lab:<stage>` 时,要立刻执行该 stage,而不是只推荐别的 `/lab` stage。\n- 先给简洁摘要,再决定是否写工件,最后回报输出路径和下一步。\n- 如果歧义会影响结论,一次只问一个问题;如果有多条可行路径,先给 2-3 个方案再收敛。\n- `/lab:write` 前必须已有经批准的 `/lab:framing` 工件。\n"
82
+ ),
83
+ [path.join(".claude", "commands", "lab", "framing.md")]: claudeCommand(
84
+ "LAB: Framing",
85
+ "在写作前收紧方法名、模块名、论文题目和 contribution framing",
86
+ "workflow, research, framing",
87
+ "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:framing`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:framing` 阶段。它必须围绕 paper-facing framing,收紧方法名、模块名、题目和 contribution bullets,审查当前领域与相邻领域的术语是否 canonical、对象是否明确,并在进入 `/lab:write` 前保留 approval gate。"
66
88
  ),
67
89
  [path.join(".claude", "commands", "lab", "spec.md")]: claudeCommand(
68
90
  "LAB: Spec",
69
91
  "把已批准的 idea 转成统一的 lab change 目录",
70
92
  "workflow, research, spec",
71
- "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:spec` 阶段。它必须围绕一个 change id,在 `.superlab/changes/<change-id>/` 下生成 proposal/design/spec/tasks,并让这个 change 成为后续 run 和 iterate 的统一入口。"
93
+ "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:spec`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:spec` 阶段。它必须围绕一个 change id,在 `.lab/changes/<change-id>/` 下生成 proposal/design/spec/tasks,并让这个 change 成为后续 run 和 iterate 的统一入口。"
72
94
  ),
73
95
  [path.join(".claude", "commands", "lab", "run.md")]: claudeCommand(
74
96
  "LAB: Run",
75
97
  "执行最小可行实验并标准化输出",
76
98
  "workflow, research, run",
77
- "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:run` 阶段。它必须从最小实验开始,登记 run,生成标准化评估摘要,并验证结果格式。"
99
+ "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:run`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:run` 阶段。它必须从最小实验开始,登记 run,生成标准化评估摘要,并验证结果格式。"
78
100
  ),
79
101
  [path.join(".claude", "commands", "lab", "iterate.md")]: claudeCommand(
80
102
  "LAB: Iterate",
81
103
  "在固定成功标准下执行有边界的实验迭代",
82
104
  "workflow, research, iterate",
83
- "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:iterate` 阶段。它必须冻结 mission、声明 completion_promise、只做小步改动、每轮生成评估和 iteration report;若风险连续两轮升高则切 diagnostic mode,并在失败结束时记录 blockers 与 next actions。"
105
+ "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:iterate`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:iterate` 阶段。它必须冻结 mission、声明 completion_promise、只做小步改动、每轮生成评估和 iteration report;若风险连续两轮升高则切 diagnostic mode,并在失败结束时记录 blockers 与 next actions。"
84
106
  ),
85
107
  [path.join(".claude", "commands", "lab", "review.md")]: claudeCommand(
86
108
  "LAB: Review",
87
109
  "以审稿人模式审查研究方案或结果",
88
110
  "workflow, research, review",
89
- "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:review` 阶段。它必须先给简洁摘要,再按 findings -> fatal flaws -> fix priority -> residual risks 的顺序输出,优先检查方法学漏洞、对照公平性、数据泄漏、统计不足和 unsupported claims。"
111
+ "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:review`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:review` 阶段。它必须先给简洁摘要,再按 findings -> fatal flaws -> fix priority -> residual risks 的顺序输出,优先检查方法学漏洞、对照公平性、数据泄漏、统计不足和 unsupported claims。"
90
112
  ),
91
113
  [path.join(".claude", "commands", "lab", "report.md")]: claudeCommand(
92
114
  "LAB: Report",
93
115
  "基于验证后的迭代工件生成最终报告",
94
116
  "workflow, research, report",
95
- "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:report` 阶段。它必须汇总标准化摘要、保留失败尝试和局限,并生成最终实验报告。"
117
+ "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:report`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:report` 阶段。它必须汇总标准化摘要、保留失败尝试和局限,并生成最终实验报告。"
96
118
  ),
97
119
  [path.join(".claude", "commands", "lab", "write.md")]: claudeCommand(
98
120
  "LAB: Write",
99
121
  "把验证过的研究工件转成论文 section,并按小步方式修订",
100
122
  "workflow, research, writing",
101
- "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n本命令运行 `/lab:write` 阶段。它必须先读取 `.claude/skills/lab/references/paper-writing/` 下与当前 section 对应的参考文件,并结合 `paper-review.md` 与 `does-my-writing-flow-source.md`,先写 mini-outline,再只修改一个 section。"
123
+ "使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:write`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:write` 阶段。它必须先有来自 `/lab:framing` 的已批准 framing artifact,再读取 `.claude/skills/lab/references/paper-writing/` 下与当前 section 对应的参考文件,并结合 `paper-review.md` 与 `does-my-writing-flow-source.md`,先写 mini-outline,再只修改一个 section。"
102
124
  ),
103
125
  };
104
126
 
@@ -122,7 +144,7 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
122
144
  - 如果缺少的前提会改变结论,一次只追问一个问题。
123
145
  - 如果存在多条可行路径,先给 2-3 个方案、trade-offs 和推荐项,再收敛。
124
146
  - 如果某个 stage 会决定后续方向,就要保留明确的 approval gate。
125
- - 使用 \`.superlab/config/workflow.json\` 作为全局约束,统一管理 workflow language、paper language 和 paper format
147
+ - 使用 \`.lab/config/workflow.json\` 作为全局约束,统一管理 workflow language、paper language、paper format deliverables_root
126
148
  - 工作流中间工件默认跟随安装语言。
127
149
  - 最终论文默认输出为 LaTeX,论文语言与工作流语言分开决定。
128
150
  - 区分“来源事实”和“模型假设”。
@@ -132,6 +154,249 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
132
154
  - \`/lab:idea\` 还需要 problem/failure case、idea classification、contribution category、breakthrough level。
133
155
  - \`/lab:idea\` 还需要 existing methods 对照、why ours is different、three meaningful points。
134
156
  - \`/lab:iterate\` 需要 completion_promise 与失败退出记录。
157
+ `,
158
+ [path.join(".codex", "skills", "lab", "stages", "spec.md")]:
159
+ `# \`/lab:spec\` 阶段指南
160
+
161
+ ## 必要输出
162
+
163
+ - 一个 lab change id
164
+ - \`.lab/changes/<change-id>/proposal.md\`
165
+ - \`.lab/changes/<change-id>/design.md\`
166
+ - \`.lab/changes/<change-id>/spec.md\`
167
+ - \`.lab/changes/<change-id>/tasks.md\`
168
+
169
+ ## 配置读取
170
+
171
+ - \`.lab/config/workflow.json\`
172
+
173
+ ## 上下文读取
174
+
175
+ - \`.lab/context/mission.md\`
176
+ - \`.lab/context/decisions.md\`
177
+ - \`.lab/context/state.md\`
178
+
179
+ ## 上下文写回
180
+
181
+ - \`.lab/context/state.md\`
182
+ - \`.lab/context/decisions.md\`
183
+
184
+ ## 必要 change 结构
185
+
186
+ 1. 识别或创建一个 lab change id。
187
+ 2. 创建 \`.lab/changes/<change-id>/\`。
188
+ 3. 在该目录下写出 \`proposal.md\`、\`design.md\`、\`spec.md\`、\`tasks.md\`。
189
+ 4. 保持该 change 自包含,便于后续 stage 只读一个目录加少量上下文。
190
+
191
+ ## 转换规则
192
+
193
+ - 把已批准的 idea 转成显式要求。
194
+ - 保留 idea 阶段冻结下来的评估边界。
195
+ - 尽可能把风险翻译成具体任务。
196
+ - 任务粒度要足够小,便于 \`/lab:run\` 和 \`/lab:iterate\` 可预测执行。
197
+ - 一个被批准的 idea 只对应一个 lab-native change 目录,不要分散。
198
+
199
+ ## 交互约束
200
+
201
+ - 开始前先简洁说明:已批准 idea、目标 change、主要 spec 风险。
202
+ - 如果 change 拆分或验证策略存在关键歧义,一次只问一个问题。
203
+ - 如果 change 结构存在多种可行方案,先给 2-3 个方案、trade-offs 和推荐项,再冻结结构。
204
+ - 在会驱动 \`/lab:run\` 和 \`/lab:iterate\` 的关键结构上保留 approval gate。
205
+
206
+ ## 最小任务覆盖
207
+
208
+ - change setup
209
+ - artifact creation
210
+ - validation run
211
+ - evaluation normalization
212
+ - bounded iteration
213
+ - final report
214
+ `,
215
+ [path.join(".codex", "skills", "lab", "stages", "run.md")]:
216
+ `# \`/lab:run\` 阶段指南
217
+
218
+ ## 必要输出
219
+
220
+ - smoke-scale 或 tiny-split 执行
221
+ - run registry entry
222
+ - 标准化评估摘要
223
+ - 标准化摘要的校验结果
224
+
225
+ ## 上下文读取
226
+
227
+ - \`.lab/context/mission.md\`
228
+ - \`.lab/context/state.md\`
229
+
230
+ ## 上下文写回
231
+
232
+ - \`.lab/context/state.md\`
233
+ - \`.lab/context/evidence-index.md\`
234
+
235
+ ## 约束
236
+
237
+ - 优先选择能打通全链路的最小实验。
238
+ - 数据、环境或 metric 接线有问题时要尽快失败。
239
+ - 记录精确启动命令和输出位置。
240
+
241
+ ## 最小流程
242
+
243
+ 1. 校验环境假设
244
+ 2. 登记 run
245
+ 3. 执行最小有意义实验
246
+ 4. 标准化原始指标
247
+ 5. 校验标准化摘要
248
+
249
+ ## 交互约束
250
+
251
+ - 开始前先简洁说明:run 目标、最小候选实验、主要执行风险。
252
+ - 如果下一轮运行依赖未决前提,一次只问一个问题。
253
+ - 如果存在多种 tiny-run 方案,先给 2-3 个方案、trade-offs 和推荐项,优先最省算力但信息量足够的方案。
254
+ - 只有当某条运行路径会明显增加时间或算力成本时,才请求人工批准。
255
+ `,
256
+ [path.join(".codex", "skills", "lab", "stages", "iterate.md")]:
257
+ `# \`/lab:iterate\` 阶段指南
258
+
259
+ ## 冻结 mission
260
+
261
+ 以下内容必须声明后保持固定:
262
+
263
+ - dataset 与 split policy
264
+ - baseline
265
+ - 主指标
266
+ - 成功阈值
267
+ - verification commands
268
+ - completion_promise
269
+ - 最大迭代轮次
270
+
271
+ ## 上下文读取
272
+
273
+ - \`.lab/context/mission.md\`
274
+ - \`.lab/context/state.md\`
275
+ - \`.lab/context/decisions.md\`
276
+ - \`.lab/context/evidence-index.md\`
277
+
278
+ ## 上下文写回
279
+
280
+ - \`.lab/context/state.md\`
281
+ - \`.lab/context/decisions.md\`
282
+ - \`.lab/context/evidence-index.md\`
283
+ - \`.lab/context/open-questions.md\`
284
+
285
+ ## 每轮必要输出
286
+
287
+ - 本轮假设
288
+ - 具体代码或配置改动
289
+ - 标准化评估摘要
290
+ - 书面 iteration report
291
+ - continue 或 stop 决策
292
+ - 风险连续两轮升高时触发 diagnostic mode
293
+
294
+ ## 停止条件
295
+
296
+ - 达到阈值
297
+ - 达到轮次上限
298
+ - 发现致命方法学问题
299
+
300
+ ## 失败退出契约
301
+
302
+ 如果循环在未达标时结束,必须记录:
303
+
304
+ - 哪些部分有效
305
+ - 哪些部分失败
306
+ - top 3 blockers
307
+ - next best actions
308
+
309
+ ## 交互约束
310
+
311
+ - 每轮开始前先简洁说明:当前状态、主导假设、主要风险。
312
+ - 如果下一步依赖未决前提,一次只问一个问题。
313
+ - 如果下一个可测假设不止一个,先给 2-3 个方案、trade-offs 和推荐项,再推进下一个有边界实验。
314
+ - 如果拟议改动会改变冻结的 mission,而不是只改变实现假设,必须经过 approval gate。
315
+ `,
316
+ [path.join(".codex", "skills", "lab", "stages", "review.md")]:
317
+ `# \`/lab:review\` 阶段指南
318
+
319
+ ## 必要流程
320
+
321
+ 1. 先给简洁摘要,说明审查对象与最关键风险。
322
+ 2. 进入 reviewer mode,而不是实现 mode。
323
+ 3. 如果存在 fatal flaws,优先列出。
324
+ 4. 明确 fix priority。
325
+ 5. 最后给 residual risks 和下一步建议。
326
+
327
+ ## 上下文读取
328
+
329
+ - \`.lab/context/mission.md\`
330
+ - \`.lab/context/decisions.md\`
331
+ - \`.lab/context/evidence-index.md\`
332
+
333
+ ## 上下文写回
334
+
335
+ - \`.lab/context/state.md\`
336
+ - \`.lab/context/open-questions.md\`
337
+
338
+ ## 审稿优先级
339
+
340
+ - baseline 是否弱或不公平
341
+ - 是否存在泄漏风险
342
+ - metric 是否错配
343
+ - 是否存在 unsupported causal 或 statistical claims
344
+ - 是否缺关键消融
345
+ - 报告是否不可复现
346
+
347
+ ## 输出风格
348
+
349
+ - concise summary first
350
+ - findings first
351
+ - fatal flaws 必须显式标出
352
+ - fix priority 必须清楚排序
353
+ - critique 必须绑定证据
354
+ - residual risks 不能省略
355
+
356
+ ## 交互约束
357
+
358
+ - 开始前先简洁说明:审查目标和主要 reviewer 问题。
359
+ - 只有当审查范围歧义会改变 findings 或严重性时,才一次问一个问题。
360
+ - 如果存在多种合理审查框架,先给 2-3 个方案、trade-offs 和推荐项,但一旦范围明确就保持 reviewer mode,不要弱化批评。
361
+ `,
362
+ [path.join(".codex", "skills", "lab", "stages", "report.md")]:
363
+ `# \`/lab:report\` 阶段指南
364
+
365
+ ## 必要输出
366
+
367
+ - 方法概述
368
+ - 实验设置
369
+ - 已验证主结果
370
+ - 消融
371
+ - 失败尝试
372
+ - 局限性
373
+ - 下一步
374
+
375
+ ## 上下文读取
376
+
377
+ - \`.lab/context/mission.md\`
378
+ - \`.lab/context/state.md\`
379
+ - \`.lab/context/decisions.md\`
380
+ - \`.lab/context/evidence-index.md\`
381
+
382
+ ## 上下文写回
383
+
384
+ - \`.lab/context/state.md\`
385
+ - \`.lab/context/evidence-index.md\`
386
+
387
+ ## 证据规则
388
+
389
+ - 不能隐藏失败迭代。
390
+ - 每个主要 claim 都要指向已记录的 summary 或 iteration artifact。
391
+ - 解释优先保守,不要写成营销文案。
392
+ - 要给 \`/lab:write\` 留下清晰 handoff,尤其是 section draft 可以直接引用的证据链接。
393
+
394
+ ## 交互约束
395
+
396
+ - 开始前先简洁说明:campaign outcome、最强已支撑 claim、最大的报告风险。
397
+ - 如果某个未决前提会改变报告解释,一次只问一个问题。
398
+ - 如果存在多种报告 framing,先给 2-3 个方案、trade-offs 和推荐项,优先最忠于证据的 framing。
399
+ - 如果某种 framing 会实质影响后续论文 claim,要保留 approval gate。
135
400
  `,
136
401
  [path.join(".codex", "skills", "lab", "stages", "idea.md")]:
137
402
  `# \`/lab:idea\` 阶段指南
@@ -188,6 +453,47 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
188
453
  - fix priority 要排序
189
454
  - critique 必须绑定证据
190
455
  - residual risks 不能省略
456
+ `,
457
+ [path.join(".codex", "skills", "lab", "references", "workflow.md")]:
458
+ `# /lab 工作流参考
459
+
460
+ ## 冻结 mission
461
+
462
+ 在 \`/lab:iterate\` 中,campaign target 必须跨轮次保持固定。
463
+
464
+ 需要保持固定:
465
+
466
+ - dataset 与 split
467
+ - 主指标
468
+ - 成功阈值
469
+ - baseline comparison
470
+ - verification commands
471
+ - maximum iteration count
472
+
473
+ 循环内部允许调整:
474
+
475
+ - 实现细节
476
+ - 模型组件
477
+ - 训练设置
478
+ - 消融
479
+
480
+ 如果当前 campaign 本身无效,应升级到更高层设计调整,而不是悄悄篡改 mission。
481
+
482
+ ## 必要工件
483
+
484
+ - 一个基于 \`.lab/.managed/templates/idea.md\` 的已批准 idea 工件
485
+ - 一个位于 \`.lab/changes/<change-id>/\` 下的 lab change 目录
486
+ - 来自 \`scripts/eval_report.py\` 的标准化 JSON 摘要
487
+ - 位于 \`.lab/iterations/\` 的逐轮报告
488
+ - 位于 \`deliverables_root\` 下的最终报告
489
+
490
+ ## 审稿优先级
491
+
492
+ - baseline 是否公平且足够新
493
+ - datasets 和 splits 是否可信
494
+ - 主指标是否符合顶会惯例
495
+ - claims 是否有记录在案的证据支撑
496
+ - failures 和 limitations 是否被保留
191
497
  `,
192
498
  [path.join(".codex", "skills", "lab", "stages", "write.md")]:
193
499
  `# \`/lab:write\` 阶段指南
@@ -227,7 +533,7 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
227
533
  - 若 claim 没有结果支撑,必须削弱或删除。
228
534
  - 每轮结束前都要补五维自评并处理未解决问题。
229
535
  `,
230
- [path.join(".superlab", "templates", "idea.md")]:
536
+ [path.join(".lab", ".managed", "templates", "idea.md")]:
231
537
  `# Idea 工件
232
538
 
233
539
  ## 一句话问题定义
@@ -332,13 +638,13 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
332
638
  - 用户批准的方向:
333
639
  - 进入 \`/lab:spec\` 前还有哪些开放问题:
334
640
  `,
335
- [path.join(".superlab", "templates", "proposal.md")]:
641
+ [path.join(".lab", ".managed", "templates", "proposal.md")]:
336
642
  `# Proposal
337
643
 
338
644
  ## Lab Change
339
645
 
340
646
  - Change id:
341
- - Target path: \`.superlab/changes/<change-id>/proposal.md\`
647
+ - Target path: \`.lab/changes/<change-id>/proposal.md\`
342
648
 
343
649
  ## 范围
344
650
 
@@ -365,13 +671,13 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
365
671
  - 是否完成 change 目录初始化:
366
672
  - 是否检查 proposal/design/spec/tasks 一致性:
367
673
  `,
368
- [path.join(".superlab", "templates", "design.md")]:
674
+ [path.join(".lab", ".managed", "templates", "design.md")]:
369
675
  `# Design
370
676
 
371
677
  ## Lab Change
372
678
 
373
679
  - Change id:
374
- - Target path: \`.superlab/changes/<change-id>/design.md\`
680
+ - Target path: \`.lab/changes/<change-id>/design.md\`
375
681
 
376
682
  ## 研究方案
377
683
 
@@ -397,16 +703,16 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
397
703
 
398
704
  ## Change Links
399
705
 
400
- - Spec path: \`.superlab/changes/<change-id>/spec.md\`
401
- - Tasks path: \`.superlab/changes/<change-id>/tasks.md\`
706
+ - Spec path: \`.lab/changes/<change-id>/spec.md\`
707
+ - Tasks path: \`.lab/changes/<change-id>/tasks.md\`
402
708
  `,
403
- [path.join(".superlab", "templates", "spec.md")]:
709
+ [path.join(".lab", ".managed", "templates", "spec.md")]:
404
710
  `# Spec
405
711
 
406
712
  ## Lab Change
407
713
 
408
714
  - Change id:
409
- - Target path: \`.superlab/changes/<change-id>/spec.md\`
715
+ - Target path: \`.lab/changes/<change-id>/spec.md\`
410
716
 
411
717
  ## 要求
412
718
 
@@ -418,24 +724,24 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
418
724
  ## 验收
419
725
 
420
726
  - Idea 工件已写
421
- - 已在 \`.superlab/changes/<change-id>/\` 下写出 change 工件
727
+ - 已在 \`.lab/changes/<change-id>/\` 下写出 change 工件
422
728
  - Validation run 已执行
423
729
  - Iteration reports 已生成
424
730
  - Final report 已生成
425
731
  `,
426
- [path.join(".superlab", "templates", "tasks.md")]:
732
+ [path.join(".lab", ".managed", "templates", "tasks.md")]:
427
733
  `# Tasks
428
734
 
429
735
  - [ ] 确认批准后的 lab change id。
430
- - [ ] 创建 \`.superlab/changes/<change-id>/\`。
736
+ - [ ] 创建 \`.lab/changes/<change-id>/\`。
431
737
  - [ ] 写 idea 工件。
432
- - [ ] 把 idea 转成 \`.superlab/changes/<change-id>/proposal.md\`、\`.superlab/changes/<change-id>/design.md\`、\`.superlab/changes/<change-id>/spec.md\`、\`.superlab/changes/<change-id>/tasks.md\`。
738
+ - [ ] 把 idea 转成 \`.lab/changes/<change-id>/proposal.md\`、\`.lab/changes/<change-id>/design.md\`、\`.lab/changes/<change-id>/spec.md\`、\`.lab/changes/<change-id>/tasks.md\`。
433
739
  - [ ] 跑第一轮 validation experiment。
434
740
  - [ ] 标准化并验证评估摘要。
435
741
  - [ ] 执行有边界的 iteration rounds。
436
742
  - [ ] 产出 final report。
437
743
  `,
438
- [path.join(".superlab", "templates", "iteration-report.md")]:
744
+ [path.join(".lab", ".managed", "templates", "iteration-report.md")]:
439
745
  `# Iteration Report
440
746
 
441
747
  ## 轮次
@@ -476,7 +782,7 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
476
782
  - Top blockers:
477
783
  - Next best actions:
478
784
  `,
479
- [path.join(".superlab", "templates", "review-checklist.md")]:
785
+ [path.join(".lab", ".managed", "templates", "review-checklist.md")]:
480
786
  `# Review Checklist
481
787
 
482
788
  ## 简洁摘要
@@ -509,7 +815,7 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
509
815
  - 消融是否足够?
510
816
  - 方差和显著性问题是否交代清楚?
511
817
  `,
512
- [path.join(".superlab", "templates", "final-report.md")]:
818
+ [path.join(".lab", ".managed", "templates", "final-report.md")]:
513
819
  `# Final Report
514
820
 
515
821
  ## 目标
@@ -532,7 +838,7 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
532
838
  - Claim:
533
839
  - Missing support:
534
840
  `,
535
- [path.join(".superlab", "templates", "paper-plan.md")]:
841
+ [path.join(".lab", ".managed", "templates", "paper-plan.md")]:
536
842
  `# 论文计划
537
843
 
538
844
  ## 目标
@@ -572,7 +878,7 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
572
878
  - Evaluation completeness:
573
879
  - Method design soundness:
574
880
  `,
575
- [path.join(".superlab", "templates", "paper-section.md")]:
881
+ [path.join(".lab", ".managed", "templates", "paper-section.md")]:
576
882
  `# 论文 Section 草稿
577
883
 
578
884
  ## Section
@@ -617,7 +923,7 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
617
923
  - 五维自评总结:
618
924
  - Next revision target:
619
925
  `,
620
- [path.join(".superlab", "templates", "write-iteration.md")]:
926
+ [path.join(".lab", ".managed", "templates", "write-iteration.md")]:
621
927
  `# 写作迭代
622
928
 
623
929
  ## 轮次
@@ -652,13 +958,14 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
652
958
  - Next writing target:
653
959
  - 是否需要回退到 \`review\` 或 \`iterate\`:
654
960
  `,
655
- [path.join(".superlab", "config", "workflow.json")]:
961
+ [path.join(".lab", "config", "workflow.json")]:
656
962
  `{
657
963
  "workflow_language": "zh",
658
964
  "paper_language": "en",
659
- "paper_format": "latex"
965
+ "paper_format": "latex",
966
+ "deliverables_root": "docs/research"
660
967
  }`,
661
- [path.join(".superlab", "context", "mission.md")]:
968
+ [path.join(".lab", "context", "mission.md")]:
662
969
  `# 研究主线
663
970
 
664
971
  ## 核心问题
@@ -687,7 +994,7 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
687
994
  - 当前 owner 或会话:
688
995
  - 最近更新该 mission 的 stage:
689
996
  `,
690
- [path.join(".superlab", "context", "state.md")]:
997
+ [path.join(".lab", "context", "state.md")]:
691
998
  `# 工作流状态
692
999
 
693
1000
  ## 当前阶段
@@ -708,7 +1015,7 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
708
1015
  - 当前阻塞:
709
1016
  - 是否需要人工决策:
710
1017
  `,
711
- [path.join(".superlab", "context", "decisions.md")]:
1018
+ [path.join(".lab", "context", "decisions.md")]:
712
1019
  `# 决策记录
713
1020
 
714
1021
  记录后续阶段不应悄悄推翻的稳定决策。
@@ -721,7 +1028,7 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
721
1028
  证据:
722
1029
  何时允许重开:
723
1030
  `,
724
- [path.join(".superlab", "context", "evidence-index.md")]:
1031
+ [path.join(".lab", "context", "evidence-index.md")]:
725
1032
  `# 证据索引
726
1033
 
727
1034
  把重要 claim 映射到具体工件。
@@ -739,7 +1046,7 @@ description: 严格研究工作流,覆盖 idea、spec、run、iterate、review
739
1046
  为什么被削弱或删除:
740
1047
  对应失败工件:
741
1048
  `,
742
- [path.join(".superlab", "context", "open-questions.md")]:
1049
+ [path.join(".lab", "context", "open-questions.md")]:
743
1050
  `# 未决问题
744
1051
 
745
1052
  追踪尚未解决的问题,避免工作流静默脑补。
@@ -759,6 +1066,351 @@ for (const [relativePath, content] of Object.entries(ZH_SKILL_FILES)) {
759
1066
  ZH_CONTENT[relativePath.replace(".codex", ".claude")] = content;
760
1067
  }
761
1068
 
1069
+ ZH_CONTENT[path.join(".lab", "system", "core.md")] = `# Lab 系统核心
1070
+
1071
+ 本项目使用 \`.lab/\` 作为持久研究工作流根目录。
1072
+
1073
+ ## 默认读取顺序
1074
+
1075
+ 新 AI 会话按以下顺序读取:
1076
+
1077
+ 1. \`.lab/context/session-brief.md\`
1078
+ 2. \`.lab/context/mission.md\`
1079
+ 3. \`.lab/context/state.md\`
1080
+ 4. \`.lab/context/evidence-index.md\`
1081
+
1082
+ 只有当简报明确要求时才继续扩展读取。
1083
+
1084
+ ## 工作流边界
1085
+
1086
+ - \`.lab/context/\` 保存持久研究状态。
1087
+ - \`.lab/changes/\`、\`.lab/iterations/\`、\`.lab/writing/\` 保存工作流控制工件。
1088
+ - \`.lab/.managed/\` 保存工具托管模板和脚本。
1089
+ - 最终交付物应写到 \`deliverables_root\`,不要写进 \`.lab/context/\`。
1090
+
1091
+ ## 路由规则
1092
+
1093
+ 只有 research、experiment、report、paper-writing 任务才进入 \`/lab:*\`。
1094
+ 普通工程任务不要强行走 \`/lab:*\`。
1095
+
1096
+ ## 状态纪律
1097
+
1098
+ - 把 \`.lab/context/*\` 当作持久项目状态。
1099
+ - 不要静默覆盖上下文文件。
1100
+ - 让来源证据与生成假设保持分离。
1101
+ `;
1102
+
1103
+ ZH_CONTENT[path.join(".lab", "context", "summary.md")] = `# 研究摘要
1104
+
1105
+ ## 当前方向
1106
+
1107
+ 用 5-10 行总结当前批准方向。
1108
+
1109
+ ## 最强证据
1110
+
1111
+ - Claim:
1112
+ - Supporting artifact:
1113
+ - Caveat:
1114
+
1115
+ ## 最大风险
1116
+
1117
+ - 风险:
1118
+ - 为什么重要:
1119
+
1120
+ ## 当前缺口
1121
+
1122
+ - 缺失证据:
1123
+ - 缺失工件:
1124
+ `;
1125
+
1126
+ ZH_CONTENT[path.join(".lab", "context", "next-action.md")] = `# 下一步动作
1127
+
1128
+ ## 当前动作
1129
+
1130
+ - Action:
1131
+ - Success signal:
1132
+
1133
+ ## 如果成功
1134
+
1135
+ - Next action:
1136
+
1137
+ ## 如果失败
1138
+
1139
+ - Fallback action:
1140
+
1141
+ ## 是否需要人工决策
1142
+
1143
+ - Question:
1144
+ - 为什么会阻塞:
1145
+ `;
1146
+
1147
+ ZH_CONTENT[path.join(".lab", "context", "session-brief.md")] = `# 会话简报
1148
+
1149
+ ## 当前阶段
1150
+
1151
+ - Stage:
1152
+
1153
+ ## 主线任务
1154
+
1155
+ 一句话描述当前研究主线。
1156
+
1157
+ ## 当前最优路径
1158
+
1159
+ - 已批准方向:
1160
+ - 为什么它是当前主路径:
1161
+
1162
+ ## 主要风险
1163
+
1164
+ - Risk:
1165
+ - Evidence gap:
1166
+
1167
+ ## 先读这些文件
1168
+
1169
+ 1. \`.lab/context/mission.md\`
1170
+ 2. \`.lab/context/state.md\`
1171
+ 3. \`.lab/context/evidence-index.md\`
1172
+
1173
+ ## 不要静默修改
1174
+
1175
+ - Frozen boundary:
1176
+ - Approval gate:
1177
+ `;
1178
+
1179
+ ZH_CONTENT[path.join(".lab", "context", "terminology-lock.md")] = `# 已批准术语
1180
+
1181
+ 记录后续 stage 必须复用的 paper-facing 命名和 wording。
1182
+
1183
+ ## Approved Terms
1184
+
1185
+ - 论文题目:
1186
+ - 方法名:
1187
+ - 简称或 acronym:
1188
+ - 模块名:
1189
+ - Contribution bullets:
1190
+
1191
+ ## Allowed Variants
1192
+
1193
+ - 可接受短写:
1194
+ - 可接受小节别名:
1195
+
1196
+ ## Forbidden Terms
1197
+
1198
+ - 应避免术语:
1199
+ - 不该 claim 的内容:
1200
+
1201
+ ## Source Audit
1202
+
1203
+ - 查阅过的当前领域来源:
1204
+ - 查阅过的相邻领域来源:
1205
+ - 查阅过的 primary sources:
1206
+ - 为什么当前 wording 可以接受:
1207
+ `;
1208
+
1209
+ ZH_CONTENT[path.join(".codex", "skills", "lab", "SKILL.md")] = `---
1210
+ name: lab
1211
+ description: 严格研究工作流,覆盖 idea、framing、spec、run、iterate、review、report 和 paper-writing。
1212
+ ---
1213
+
1214
+ # /lab Skill
1215
+
1216
+ 当用户调用 \`/lab:*\` 或要求结构化研究工作流时使用本技能。
1217
+
1218
+ ## 全局规则
1219
+
1220
+ - 把 idea、framing、spec、execution、review、report、write 分成明确阶段。
1221
+ - 论文写作阶段要与实验执行阶段分离。
1222
+ - 用户显式调用某个 \`/lab:stage\` 时,要直接执行该 stage,而不是只推荐别的 stage。
1223
+ - 关键决策必须落盘,不能只留在聊天里。
1224
+ - 每个 stage 都要先给用户一个简洁简介,再决定是否落盘;如果落盘,最后必须回报路径和下一步。
1225
+ - 如果缺少的前提会改变结论,一次只追问一个问题。
1226
+ - 如果存在多条可行路径,先给 2-3 个方案、trade-offs 和推荐项,再收敛。
1227
+ - 如果某个 stage 会决定后续方向,就要保留明确的 approval gate。
1228
+ - 使用 \`.lab/config/workflow.json\` 作为全局约束,统一管理 workflow language、paper language、paper format 和 deliverables_root。
1229
+ - 工作流中间工件默认跟随安装语言。
1230
+ - 最终论文默认输出为 LaTeX,论文语言与工作流语言分开决定。
1231
+ - 区分“来源事实”和“模型假设”。
1232
+ - 保留失败实验、失败想法和局限性。
1233
+ - \`/lab:framing\` 负责方法名、模块名、题目和 contribution wording 的 paper-facing 收束。
1234
+ - \`/lab:write\` 使用内置 vendored paper-writing references,不依赖外部写作 skill 路径。
1235
+ - \`/lab:write\` 前必须已有经批准的 framing artifact。
1236
+ `;
1237
+
1238
+ ZH_CONTENT[path.join(".claude", "skills", "lab", "SKILL.md")] =
1239
+ ZH_CONTENT[path.join(".codex", "skills", "lab", "SKILL.md")];
1240
+
1241
+ ZH_CONTENT[path.join(".codex", "skills", "lab", "stages", "framing.md")] = `# \`/lab:framing\` 阶段指南
1242
+
1243
+ ## 必要输出
1244
+
1245
+ - 方法名
1246
+ - 可选简称或 acronym
1247
+ - 模块名
1248
+ - 论文题目
1249
+ - contribution bullets
1250
+ - 不该 claim 的术语与表述
1251
+ - 进入 \`/lab:write\` 前的 approval gate
1252
+
1253
+ ## 配置读取
1254
+
1255
+ - \`.lab/config/workflow.json\`
1256
+
1257
+ ## 上下文读取
1258
+
1259
+ - \`.lab/context/mission.md\`
1260
+ - \`.lab/context/decisions.md\`
1261
+ - \`.lab/context/evidence-index.md\`
1262
+ - \`.lab/context/terminology-lock.md\`
1263
+
1264
+ ## 上下文写回
1265
+
1266
+ - \`.lab/context/state.md\`
1267
+ - \`.lab/context/decisions.md\`
1268
+ - \`.lab/context/terminology-lock.md\`
1269
+
1270
+ ## 必要工件
1271
+
1272
+ - \`.lab/writing/framing.md\`
1273
+ - \`.lab/context/terminology-lock.md\`
1274
+
1275
+ ## 命名审计规则
1276
+
1277
+ - 锁定不熟悉术语前,先查当前领域近期论文和其他 primary sources。
1278
+ - 如果当前领域没有稳定 canonical term,或相邻领域有可平移的表达,再查相邻领域。
1279
+ - 记录术语来源日志,说明看过哪些当前领域来源、哪些相邻领域来源,以及为何接受最终 wording。
1280
+ - 术语要说明是 canonical、adapted 还是 newly coined。
1281
+ - 尽量把对象说清楚:到底在 calibrate、rank、estimate 什么。
1282
+ - 不要用 acronym-first 命名。
1283
+ - 不要写成 AI 包装词、营销词或实现补丁名。
1284
+ - contribution bullets 必须和现有证据边界一致。
1285
+
1286
+ ## 交互约束
1287
+
1288
+ - 开始前先简洁说明:当前 framing 问题、最强已支撑 claim、最大命名风险。
1289
+ - 如果某个缺失前提会改变命名边界或 wording,一次只问一个问题。
1290
+ - 先给 2-3 套 framing packs、trade-offs 和推荐项,再收敛。
1291
+ - 在进入 \`/lab:write\` 前保留 approval gate。
1292
+ `;
1293
+
1294
+ ZH_CONTENT[path.join(".claude", "skills", "lab", "stages", "framing.md")] =
1295
+ ZH_CONTENT[path.join(".codex", "skills", "lab", "stages", "framing.md")];
1296
+
1297
+ ZH_CONTENT[path.join(".codex", "skills", "lab", "stages", "write.md")] = `# \`/lab:write\` 阶段指南
1298
+
1299
+ ## 必要输入
1300
+
1301
+ - 稳定的 \`report\` 工件
1302
+ - 已批准的 framing artifact:\`.lab/writing/framing.md\`
1303
+ - iteration reports
1304
+ - normalized summaries
1305
+ - reviewer notes(如果有)
1306
+ - \`skills/lab/references/paper-writing/\` 下的 vendored 参考
1307
+
1308
+ ## 配置读取
1309
+
1310
+ - \`.lab/config/workflow.json\`
1311
+
1312
+ ## 上下文读取
1313
+
1314
+ - \`.lab/context/mission.md\`
1315
+ - \`.lab/context/decisions.md\`
1316
+ - \`.lab/context/evidence-index.md\`
1317
+
1318
+ ## 上下文写回
1319
+
1320
+ - \`.lab/context/state.md\`
1321
+ - \`.lab/context/evidence-index.md\`
1322
+
1323
+ ## 小步写作规则
1324
+
1325
+ - 每轮只改一个 section 或一个明确子问题。
1326
+ - 最终稿必须是 LaTeX。
1327
+ - 只加载当前 section guide,不要一次加载全部章节参考。
1328
+ - 先写 mini-outline 再写 prose。
1329
+ - 如果缺少 framing artifact,不要继续写作,直接回到 \`/lab:framing\`。
1330
+ - 如果某个 claim 没有证据支撑,就削弱或删除。
1331
+
1332
+ ## 必要工件
1333
+
1334
+ - \`.lab/writing/framing.md\`
1335
+ - \`.lab/writing/plan.md\`
1336
+ - \`.lab/writing/iterations/<n>.md\`
1337
+ - \`<deliverables_root>/paper/main.tex\`
1338
+ - \`<deliverables_root>/paper/sections/<section>.tex\`
1339
+ `;
1340
+
1341
+ ZH_CONTENT[path.join(".claude", "skills", "lab", "stages", "write.md")] =
1342
+ ZH_CONTENT[path.join(".codex", "skills", "lab", "stages", "write.md")];
1343
+
1344
+ ZH_CONTENT[path.join(".lab", ".managed", "templates", "framing.md")] = `# 论文 Framing
1345
+
1346
+ ## 目标
1347
+
1348
+ - 范围:
1349
+ - 当前 paper-facing 问题:
1350
+ - 证据边界:
1351
+
1352
+ ## Canonical Terminology Audit
1353
+
1354
+ - 当前领域应优先复用的术语:
1355
+ - 相邻领域可借用的术语:
1356
+ - 可接受的改写术语:
1357
+ - 需要谨慎的新造术语:
1358
+ - 必须说清楚的对象:
1359
+ - 应避免的术语:
1360
+ - 术语来源日志:
1361
+
1362
+ ## Candidate Framing Packs
1363
+
1364
+ ### 方案 1
1365
+
1366
+ - 论文题目:
1367
+ - 方法名:
1368
+ - 简称或 acronym:
1369
+ - 模块名:
1370
+ - Contribution bullets:
1371
+ - 优点:
1372
+ - 风险:
1373
+
1374
+ ### 方案 2
1375
+
1376
+ - 论文题目:
1377
+ - 方法名:
1378
+ - 简称或 acronym:
1379
+ - 模块名:
1380
+ - Contribution bullets:
1381
+ - 优点:
1382
+ - 风险:
1383
+
1384
+ ### 方案 3
1385
+
1386
+ - 论文题目:
1387
+ - 方法名:
1388
+ - 简称或 acronym:
1389
+ - 模块名:
1390
+ - Contribution bullets:
1391
+ - 优点:
1392
+ - 风险:
1393
+
1394
+ ## 推荐方案
1395
+
1396
+ - 论文题目:
1397
+ - 方法名:
1398
+ - 简称或 acronym:
1399
+ - 模块名:
1400
+ - Contribution bullets:
1401
+
1402
+ ## Forbidden Claims And Terms
1403
+
1404
+ - 不该 claim 的内容:
1405
+ - 不该使用的术语:
1406
+ - 原因:
1407
+
1408
+ ## Approval Gate
1409
+
1410
+ - 已批准 framing:
1411
+ - 进入 \`/lab:write\` 前剩余问题:
1412
+ `;
1413
+
762
1414
  function getLocalizedContent(relativePath, lang) {
763
1415
  if (lang !== "zh") {
764
1416
  return null;