superlab 0.1.7 → 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.
- package/README.md +65 -17
- package/README.zh-CN.md +64 -15
- package/bin/superlab.cjs +232 -1
- package/lib/context.cjs +337 -0
- package/lib/i18n.cjs +673 -41
- package/lib/install.cjs +249 -51
- package/package-assets/claude/commands/lab/framing.md +11 -0
- package/package-assets/claude/commands/lab/idea.md +2 -1
- package/package-assets/claude/commands/lab/iterate.md +2 -1
- package/package-assets/claude/commands/lab/report.md +2 -1
- package/package-assets/claude/commands/lab/review.md +2 -1
- package/package-assets/claude/commands/lab/run.md +2 -1
- package/package-assets/claude/commands/lab/spec.md +2 -1
- package/package-assets/claude/commands/lab/write.md +2 -1
- package/package-assets/codex/prompts/lab-framing.md +9 -0
- package/package-assets/codex/prompts/lab-idea.md +2 -1
- package/package-assets/codex/prompts/lab-iterate.md +2 -1
- package/package-assets/codex/prompts/lab-report.md +2 -1
- package/package-assets/codex/prompts/lab-review.md +2 -1
- package/package-assets/codex/prompts/lab-run.md +2 -1
- package/package-assets/codex/prompts/lab-spec.md +2 -1
- package/package-assets/codex/prompts/lab-write.md +2 -1
- package/package-assets/shared/{templates → lab/.managed/templates}/design.md +3 -3
- package/package-assets/shared/lab/.managed/templates/framing.md +66 -0
- package/package-assets/shared/{templates → lab/.managed/templates}/paper-plan.md +1 -0
- package/package-assets/shared/{templates → lab/.managed/templates}/proposal.md +1 -1
- package/package-assets/shared/{templates → lab/.managed/templates}/spec.md +2 -2
- package/package-assets/shared/{templates → lab/.managed/templates}/tasks.md +2 -2
- package/package-assets/shared/{templates → lab/.managed/templates}/write-iteration.md +1 -0
- package/package-assets/shared/lab/changes/README.md +10 -0
- package/package-assets/shared/lab/config/workflow.json +6 -0
- package/package-assets/shared/lab/context/next-action.md +19 -0
- package/package-assets/shared/lab/context/session-brief.md +30 -0
- package/package-assets/shared/lab/context/summary.md +21 -0
- package/package-assets/shared/lab/context/terminology-lock.md +27 -0
- package/package-assets/shared/lab/system/core.md +41 -0
- package/package-assets/shared/skills/lab/SKILL.md +54 -37
- package/package-assets/shared/skills/lab/references/paper-writing/abstract.md +2 -17
- package/package-assets/shared/skills/lab/references/paper-writing/introduction.md +3 -63
- package/package-assets/shared/skills/lab/references/paper-writing/method.md +4 -34
- package/package-assets/shared/skills/lab/references/workflow.md +4 -4
- package/package-assets/shared/skills/lab/stages/framing.md +70 -0
- package/package-assets/shared/skills/lab/stages/idea.md +5 -5
- package/package-assets/shared/skills/lab/stages/iterate.md +8 -8
- package/package-assets/shared/skills/lab/stages/report.md +7 -6
- package/package-assets/shared/skills/lab/stages/review.md +6 -5
- package/package-assets/shared/skills/lab/stages/run.md +4 -4
- package/package-assets/shared/skills/lab/stages/spec.md +11 -11
- package/package-assets/shared/skills/lab/stages/write.md +14 -10
- package/package.json +1 -1
- package/package-assets/shared/changes/README.md +0 -10
- package/package-assets/shared/config/workflow.json +0 -5
- package/package-assets/shared/examples/minimal-uplift-workflow.md +0 -73
- /package/package-assets/shared/{scripts → lab/.managed/scripts}/eval_report.py +0 -0
- /package/package-assets/shared/{scripts → lab/.managed/scripts}/register_run.py +0 -0
- /package/package-assets/shared/{scripts → lab/.managed/scripts}/summarize_iterations.py +0 -0
- /package/package-assets/shared/{scripts → lab/.managed/scripts}/validate_results.py +0 -0
- /package/package-assets/shared/{templates → lab/.managed/templates}/final-report.md +0 -0
- /package/package-assets/shared/{templates → lab/.managed/templates}/idea.md +0 -0
- /package/package-assets/shared/{templates → lab/.managed/templates}/iteration-report.md +0 -0
- /package/package-assets/shared/{templates → lab/.managed/templates}/paper-section.md +0 -0
- /package/package-assets/shared/{templates → lab/.managed/templates}/paper-section.tex +0 -0
- /package/package-assets/shared/{templates → lab/.managed/templates}/paper.tex +0 -0
- /package/package-assets/shared/{templates → lab/.managed/templates}/review-checklist.md +0 -0
- /package/package-assets/shared/{context → lab/context}/decisions.md +0 -0
- /package/package-assets/shared/{context → lab/context}/evidence-index.md +0 -0
- /package/package-assets/shared/{context → lab/context}/mission.md +0 -0
- /package/package-assets/shared/{context → lab/context}/open-questions.md +0 -0
- /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,在 `.
|
|
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`
|
|
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,在 `.
|
|
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`
|
|
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
|
-
- 使用 \`.
|
|
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(".
|
|
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(".
|
|
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: \`.
|
|
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(".
|
|
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: \`.
|
|
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: \`.
|
|
401
|
-
- Tasks path: \`.
|
|
695
|
+
- Spec path: \`.lab/changes/<change-id>/spec.md\`
|
|
696
|
+
- Tasks path: \`.lab/changes/<change-id>/tasks.md\`
|
|
402
697
|
`,
|
|
403
|
-
[path.join(".
|
|
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: \`.
|
|
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
|
-
- 已在 \`.
|
|
716
|
+
- 已在 \`.lab/changes/<change-id>/\` 下写出 change 工件
|
|
422
717
|
- Validation run 已执行
|
|
423
718
|
- Iteration reports 已生成
|
|
424
719
|
- Final report 已生成
|
|
425
720
|
`,
|
|
426
|
-
[path.join(".
|
|
721
|
+
[path.join(".lab", ".managed", "templates", "tasks.md")]:
|
|
427
722
|
`# Tasks
|
|
428
723
|
|
|
429
724
|
- [ ] 确认批准后的 lab change id。
|
|
430
|
-
- [ ] 创建 \`.
|
|
725
|
+
- [ ] 创建 \`.lab/changes/<change-id>/\`。
|
|
431
726
|
- [ ] 写 idea 工件。
|
|
432
|
-
- [ ] 把 idea 转成 \`.
|
|
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(".
|
|
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(".
|
|
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(".
|
|
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(".
|
|
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(".
|
|
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(".
|
|
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(".
|
|
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(".
|
|
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(".
|
|
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(".
|
|
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(".
|
|
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(".
|
|
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;
|