superlab 0.1.6 → 0.1.8

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