superlab 0.1.26 → 0.1.28
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 +3 -0
- package/README.zh-CN.md +3 -0
- package/bin/superlab.cjs +11 -0
- package/lib/auto_contracts.cjs +1 -1
- package/lib/auto_runner.cjs +1 -1
- package/lib/context.cjs +30 -198
- package/lib/i18n.cjs +229 -19
- package/lib/lab_write_contract.json +8 -0
- package/package-assets/claude/commands/lab-idea.md +1 -1
- package/package-assets/claude/commands/lab-write.md +1 -1
- package/package-assets/claude/commands/lab.md +4 -3
- package/package-assets/codex/prompts/lab-idea.md +1 -1
- package/package-assets/codex/prompts/lab-write.md +1 -1
- package/package-assets/codex/prompts/lab.md +4 -3
- package/package-assets/shared/lab/.managed/scripts/validate_idea_artifact.py +147 -0
- package/package-assets/shared/lab/.managed/scripts/validate_manuscript_delivery.py +50 -4
- package/package-assets/shared/lab/.managed/scripts/validate_paper_claims.py +86 -0
- package/package-assets/shared/lab/.managed/scripts/validate_paper_plan.py +263 -0
- package/package-assets/shared/lab/.managed/scripts/validate_section_draft.py +181 -0
- package/package-assets/shared/lab/.managed/templates/idea.md +43 -0
- package/package-assets/shared/lab/.managed/templates/paper-plan.md +78 -0
- package/package-assets/shared/lab/config/workflow.json +2 -1
- package/package-assets/shared/lab/context/auto-mode.md +1 -1
- package/package-assets/shared/lab/context/next-action.md +4 -4
- package/package-assets/shared/lab/context/session-brief.md +8 -1
- package/package-assets/shared/lab/context/summary.md +14 -3
- package/package-assets/shared/skills/lab/SKILL.md +17 -16
- package/package-assets/shared/skills/lab/references/paper-writing/examples/abstract/template-b.md +2 -2
- package/package-assets/shared/skills/lab/references/paper-writing/examples/conclusion/conservative-claim-boundary.md +13 -13
- package/package-assets/shared/skills/lab/references/paper-writing/examples/experiments/main-results-and-ablation-latex.md +18 -17
- package/package-assets/shared/skills/lab/references/paper-writing/examples/experiments-examples.md +1 -1
- package/package-assets/shared/skills/lab/references/paper-writing/examples/index.md +1 -1
- package/package-assets/shared/skills/lab/references/paper-writing/examples/introduction/pipeline-version-1-one-contribution-multi-advantages.md +3 -3
- package/package-assets/shared/skills/lab/references/paper-writing/examples/introduction/pipeline-version-2-two-contributions.md +1 -1
- package/package-assets/shared/skills/lab/references/paper-writing/examples/method/annotated-figure-to-text.md +66 -0
- package/package-assets/shared/skills/lab/references/paper-writing/examples/method/example-of-the-three-elements.md +11 -11
- package/package-assets/shared/skills/lab/references/paper-writing/examples/method/{module-design-instant-ngp.md → module-design-multiresolution-encoding.md} +1 -1
- package/package-assets/shared/skills/lab/references/paper-writing/examples/method/{module-triad-neural-body.md → module-triad-anchored-representation.md} +4 -4
- package/package-assets/shared/skills/lab/references/paper-writing/examples/method/overview-template.md +4 -4
- package/package-assets/shared/skills/lab/references/paper-writing/examples/method/pre-writing-questions.md +4 -3
- package/package-assets/shared/skills/lab/references/paper-writing/examples/method-examples.md +4 -4
- package/package-assets/shared/skills/lab/references/paper-writing/examples/related-work/closest-prior-gap-template.md +12 -12
- package/package-assets/shared/skills/lab/references/paper-writing/examples/related-work/topic-comparison-template.md +2 -2
- package/package-assets/shared/skills/lab/stages/auto.md +6 -2
- package/package-assets/shared/skills/lab/stages/data.md +0 -1
- package/package-assets/shared/skills/lab/stages/framing.md +0 -1
- package/package-assets/shared/skills/lab/stages/idea.md +30 -13
- package/package-assets/shared/skills/lab/stages/write.md +28 -4
- package/package.json +1 -1
- package/package-assets/shared/skills/lab/references/paper-writing/examples/method/neural-body-annotated-figure-text.md +0 -66
package/lib/i18n.cjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const path = require("node:path");
|
|
2
|
+
const writeContract = require("./lab_write_contract.json");
|
|
2
3
|
|
|
3
4
|
function codexPrompt(description, argumentHint, body) {
|
|
4
5
|
return `---
|
|
@@ -25,7 +26,7 @@ const ZH_CONTENT = {
|
|
|
25
26
|
[path.join(".codex", "prompts", "lab-idea.md")]: codexPrompt(
|
|
26
27
|
"在进入规格前调研并打磨论文或实验想法",
|
|
27
28
|
"idea 或 research problem",
|
|
28
|
-
"使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:idea`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:idea`
|
|
29
|
+
"使用已安装的 `lab` 技能:`.codex/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `/lab:idea`,不要只推荐别的 `/lab` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 `/lab:idea` 阶段。它必须先用白话说明场景、真实问题和为什么重要,再系统梳理现有方法、最接近前作、近期相关论文和评测惯例,默认形成一个约 20 篇来源的文献范围包;如果领域太窄达不到这个数量,必须把理由写清楚。之后再说明当前方法为什么不够、我们的方向大致怎么做、为什么可能更好,并收束出至少三个有意义的点、一个最小实验和进入 `/lab:spec` 前的 approval gate。"
|
|
29
30
|
),
|
|
30
31
|
[path.join(".codex", "prompts", "lab-framing.md")]: codexPrompt(
|
|
31
32
|
"在写作前收紧方法名、模块名、论文题目和 contribution framing",
|
|
@@ -60,13 +61,13 @@ const ZH_CONTENT = {
|
|
|
60
61
|
[path.join(".codex", "prompts", "lab-write.md")]: codexPrompt(
|
|
61
62
|
"把验证过的研究工件转成论文 section,并按小步方式修订",
|
|
62
63
|
"section or writing target",
|
|
63
|
-
|
|
64
|
+
`使用已安装的 \`lab\` 技能:\`.codex/skills/lab/SKILL.md\`。\n\n立刻针对用户当前给出的参数执行 \`/lab:write\`,不要只推荐别的 \`/lab\` 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n${writeContract.stage_prompt.codex_zh}`
|
|
64
65
|
),
|
|
65
66
|
[path.join(".claude", "commands", "lab-idea.md")]: claudeCommand(
|
|
66
67
|
"lab-idea",
|
|
67
68
|
"在进入规格前调研并打磨论文或实验想法",
|
|
68
69
|
"idea 或 research problem",
|
|
69
|
-
"使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `idea` 阶段,不要只推荐别的 lab 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 lab workflow 的 `idea`
|
|
70
|
+
"使用已安装的 `lab` 技能:`.claude/skills/lab/SKILL.md`。\n\n立刻针对用户当前给出的参数执行 `idea` 阶段,不要只推荐别的 lab 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n本命令运行 lab workflow 的 `idea` 阶段。它必须先用白话说明场景、真实问题和为什么重要,再系统梳理现有方法、最接近前作、近期相关论文和评测惯例,默认形成一个约 20 篇来源的文献范围包;如果领域太窄达不到这个数量,必须把理由写清楚。之后再说明当前方法为什么不够、我们的方向大致怎么做、为什么可能更好,并收束出至少三个有意义的点、一个最小实验和进入 `spec` 前的 approval gate。"
|
|
70
71
|
),
|
|
71
72
|
[path.join(".claude", "commands", "lab-framing.md")]: claudeCommand(
|
|
72
73
|
"lab-framing",
|
|
@@ -108,7 +109,7 @@ const ZH_CONTENT = {
|
|
|
108
109
|
"lab-write",
|
|
109
110
|
"把验证过的研究工件转成论文 section,并按小步方式修订",
|
|
110
111
|
"section or writing target",
|
|
111
|
-
|
|
112
|
+
`使用已安装的 \`lab\` 技能:\`.claude/skills/lab/SKILL.md\`。\n\n立刻针对用户当前给出的参数执行 \`write\` 阶段,不要只推荐别的 lab 阶段。只有在缺少阻塞性前提时,才明确指出缺什么,并且一次最多追问一个问题。\n\n${writeContract.stage_prompt.claude_zh}`
|
|
112
113
|
),
|
|
113
114
|
};
|
|
114
115
|
|
|
@@ -367,27 +368,74 @@ const ZH_SKILL_FILES = {
|
|
|
367
368
|
|
|
368
369
|
## 必要输出
|
|
369
370
|
|
|
371
|
+
- 白话场景说明
|
|
370
372
|
- 一句话问题定义
|
|
373
|
+
- 为什么这个问题重要(用白话说明)
|
|
371
374
|
- failure case
|
|
372
375
|
- idea classification
|
|
373
376
|
- contribution category
|
|
374
377
|
- breakthrough level
|
|
375
378
|
- existing methods 总结
|
|
379
|
+
- 最接近前作对照
|
|
376
380
|
- 为什么我们的想法优于现有方法
|
|
381
|
+
- 用白话解释我们准备怎么做
|
|
377
382
|
- 三个一眼就有意义的点
|
|
383
|
+
- 文献范围包,默认目标约 20 篇来源;如果领域太窄不足 20 篇,必须明确解释
|
|
378
384
|
- 进入 \`/lab:spec\` 前的 approval gate
|
|
385
|
+
- 最小实验
|
|
386
|
+
- 批准后把核心问题、重要性、failure case 和方向写回 canonical mission context
|
|
379
387
|
|
|
380
388
|
## Evidence Discipline
|
|
381
389
|
|
|
382
390
|
- 明确区分来源事实与生成假设。
|
|
391
|
+
- 在谈 novelty 前先做文献范围梳理。默认目标是约 20 篇来源,覆盖最接近前作、近期强相关论文、benchmark 或评测论文、survey 或 taxonomy,以及必要的相邻领域工作。
|
|
392
|
+
- 如果真实领域过窄,达不到默认数量,也必须把原因写清楚,而不是静默跳过。
|
|
393
|
+
- \`idea\` 工件必须跟随仓库的 \`workflow_language\`,不能自己换成别的语言。
|
|
383
394
|
- 如果关键前提不清楚,一次只追问一个问题。
|
|
384
395
|
- 在写完整工件前,先给用户一个简洁简介:问题、现有方法的缺口、三个 meaningful points。
|
|
385
396
|
|
|
397
|
+
## 上下文读取
|
|
398
|
+
|
|
399
|
+
- \`.lab/config/workflow.json\`
|
|
400
|
+
- \`.lab/context/mission.md\`
|
|
401
|
+
- \`.lab/context/open-questions.md\`
|
|
402
|
+
|
|
403
|
+
## 上下文写回
|
|
404
|
+
|
|
405
|
+
- \`.lab/context/mission.md\`
|
|
406
|
+
- \`.lab/context/decisions.md\`
|
|
407
|
+
- \`.lab/context/open-questions.md\`
|
|
408
|
+
|
|
409
|
+
## 推荐结构
|
|
410
|
+
|
|
411
|
+
1. 场景
|
|
412
|
+
2. 一句话问题
|
|
413
|
+
3. 为什么重要
|
|
414
|
+
4. 现有方法的失败模式
|
|
415
|
+
5. idea classification、contribution category 和 breakthrough level
|
|
416
|
+
6. 现有方法与共同假设
|
|
417
|
+
7. 文献范围包
|
|
418
|
+
8. 最接近前作对照
|
|
419
|
+
9. 白话方法草图
|
|
420
|
+
10. 为什么这个方向可能更好
|
|
421
|
+
11. 三个有意义的点
|
|
422
|
+
12. 候选路线与推荐
|
|
423
|
+
13. 数据集、baseline 和指标候选
|
|
424
|
+
14. 可证伪假设
|
|
425
|
+
15. 专家式 critique
|
|
426
|
+
16. 修订后的 proposal
|
|
427
|
+
17. approval gate
|
|
428
|
+
18. 最小实验
|
|
429
|
+
|
|
386
430
|
## Writing Standard
|
|
387
431
|
|
|
388
432
|
- 定义要清晰、简洁、明了。
|
|
433
|
+
- 先解释场景、对象和问题价值,再讨论 novelty。
|
|
389
434
|
- 现有方法对照必须显式写出,不能只说“更创新”。
|
|
435
|
+
- 不要只说“比现有方法更好”;要说清楚现有方法在做什么、为什么不够、我们的方向大致怎么做。
|
|
436
|
+
- 不要在没有文献范围包和最接近前作对照的情况下直接下 novelty 判断。
|
|
390
437
|
- 三个 meaningful points 每个都控制在一句直接的话里。
|
|
438
|
+
- 在批准前,必须运行 \`.lab/.managed/scripts/validate_idea_artifact.py --idea <idea-artifact> --workflow-config .lab/config/workflow.json\`。
|
|
391
439
|
`,
|
|
392
440
|
[path.join(".codex", "skills", "lab", "references", "workflow.md")]:
|
|
393
441
|
`# /lab 工作流参考
|
|
@@ -433,10 +481,20 @@ const ZH_SKILL_FILES = {
|
|
|
433
481
|
[path.join(".lab", ".managed", "templates", "idea.md")]:
|
|
434
482
|
`# Idea 工件
|
|
435
483
|
|
|
484
|
+
## 场景
|
|
485
|
+
|
|
486
|
+
- 真实使用场景:
|
|
487
|
+
- 如果这个问题被解决,谁会直接受益:
|
|
488
|
+
|
|
436
489
|
## 一句话问题定义
|
|
437
490
|
|
|
438
491
|
用一句短话说清楚问题。
|
|
439
492
|
|
|
493
|
+
## 为什么重要
|
|
494
|
+
|
|
495
|
+
- 为什么它在现实里重要:
|
|
496
|
+
- 如果忽略它,会有什么后果:
|
|
497
|
+
|
|
440
498
|
## 失败场景
|
|
441
499
|
|
|
442
500
|
- 现有方法在哪里失败:
|
|
@@ -481,6 +539,32 @@ const ZH_SKILL_FILES = {
|
|
|
481
539
|
- Shared assumption:
|
|
482
540
|
- 为什么该假设在这里失效:
|
|
483
541
|
|
|
542
|
+
## 文献范围包
|
|
543
|
+
|
|
544
|
+
- 默认目标来源数:
|
|
545
|
+
- 当前已覆盖来源数:
|
|
546
|
+
- 最接近前作 bucket:
|
|
547
|
+
- 近期强相关论文:
|
|
548
|
+
- benchmark 或 evaluation 论文:
|
|
549
|
+
- survey 或 taxonomy:
|
|
550
|
+
- 相邻领域论文:
|
|
551
|
+
- 如果当前少于默认目标,原因是什么:
|
|
552
|
+
|
|
553
|
+
## 最接近前作对照
|
|
554
|
+
|
|
555
|
+
- 前作 1:
|
|
556
|
+
- 引用:
|
|
557
|
+
- 它做了什么:
|
|
558
|
+
- 为什么和这里相关:
|
|
559
|
+
- 对当前问题的局限:
|
|
560
|
+
- 和我们方向的差异:
|
|
561
|
+
- 前作 2:
|
|
562
|
+
- 引用:
|
|
563
|
+
- 它做了什么:
|
|
564
|
+
- 为什么和这里相关:
|
|
565
|
+
- 对当前问题的局限:
|
|
566
|
+
- 和我们方向的差异:
|
|
567
|
+
|
|
484
568
|
## 我们哪里不同
|
|
485
569
|
|
|
486
570
|
- Existing methods rely on:
|
|
@@ -488,6 +572,11 @@ const ZH_SKILL_FILES = {
|
|
|
488
572
|
- Expected advantage:
|
|
489
573
|
- 需要什么证据才能证明该优势:
|
|
490
574
|
|
|
575
|
+
## 我们准备怎么做
|
|
576
|
+
|
|
577
|
+
- 用白话解释这个方向大致怎么工作:
|
|
578
|
+
- 为什么这可能解决失败场景:
|
|
579
|
+
|
|
491
580
|
## 三个有意义的点
|
|
492
581
|
|
|
493
582
|
1. 意义:
|
|
@@ -500,6 +589,7 @@ const ZH_SKILL_FILES = {
|
|
|
500
589
|
- Benchmark conventions:
|
|
501
590
|
- Typical datasets:
|
|
502
591
|
- Typical metrics:
|
|
592
|
+
- Credible baseline shortlist:
|
|
503
593
|
|
|
504
594
|
## 候选方案
|
|
505
595
|
|
|
@@ -523,6 +613,7 @@ const ZH_SKILL_FILES = {
|
|
|
523
613
|
- Primary metric:
|
|
524
614
|
- Secondary metrics:
|
|
525
615
|
- Minimum viable experiment:
|
|
616
|
+
- 最快的证伪方式:
|
|
526
617
|
|
|
527
618
|
## 批评总结
|
|
528
619
|
|
|
@@ -925,9 +1016,10 @@ const ZH_SKILL_FILES = {
|
|
|
925
1016
|
|
|
926
1017
|
## 目标
|
|
927
1018
|
|
|
928
|
-
-
|
|
929
|
-
-
|
|
1019
|
+
- 目标会议或读者:
|
|
1020
|
+
- 论文状态:
|
|
930
1021
|
- 一句话主线:
|
|
1022
|
+
- 已批准 framing artifact:
|
|
931
1023
|
- Terminology lock:
|
|
932
1024
|
|
|
933
1025
|
## Section 状态
|
|
@@ -946,6 +1038,84 @@ const ZH_SKILL_FILES = {
|
|
|
946
1038
|
- Limitation sources:
|
|
947
1039
|
- 哪些 claim 还缺证据:
|
|
948
1040
|
|
|
1041
|
+
## 资产覆盖目标
|
|
1042
|
+
|
|
1043
|
+
- 核心资产下限:
|
|
1044
|
+
- 必需覆盖类别:
|
|
1045
|
+
- 当前计划核心资产数:
|
|
1046
|
+
- 覆盖风险或缺口:
|
|
1047
|
+
|
|
1048
|
+
## 表计划
|
|
1049
|
+
|
|
1050
|
+
- 主结果表:
|
|
1051
|
+
- 资产文件:
|
|
1052
|
+
- 作用章节:
|
|
1053
|
+
- 作用:
|
|
1054
|
+
- 证据:
|
|
1055
|
+
- 状态:
|
|
1056
|
+
- 消融表:
|
|
1057
|
+
- 资产文件:
|
|
1058
|
+
- 作用章节:
|
|
1059
|
+
- 作用:
|
|
1060
|
+
- 证据:
|
|
1061
|
+
- 状态:
|
|
1062
|
+
|
|
1063
|
+
## 图计划
|
|
1064
|
+
|
|
1065
|
+
- 问题设定或 teaser 图:
|
|
1066
|
+
- 资产文件:
|
|
1067
|
+
- 作用章节:
|
|
1068
|
+
- 图意图:
|
|
1069
|
+
- 证据:
|
|
1070
|
+
- 状态:
|
|
1071
|
+
- 方法总览图:
|
|
1072
|
+
- 资产文件:
|
|
1073
|
+
- 作用章节:
|
|
1074
|
+
- 图意图:
|
|
1075
|
+
- 证据:
|
|
1076
|
+
- 状态:
|
|
1077
|
+
- 结果总览图:
|
|
1078
|
+
- 资产文件:
|
|
1079
|
+
- 作用章节:
|
|
1080
|
+
- 图意图:
|
|
1081
|
+
- 证据:
|
|
1082
|
+
- 状态:
|
|
1083
|
+
|
|
1084
|
+
## 分析资产计划
|
|
1085
|
+
|
|
1086
|
+
- 分析资产:
|
|
1087
|
+
- 资产文件:
|
|
1088
|
+
- 资产类型:
|
|
1089
|
+
- 作用章节:
|
|
1090
|
+
- 资产意图:
|
|
1091
|
+
- 证据:
|
|
1092
|
+
- 状态:
|
|
1093
|
+
|
|
1094
|
+
## 引用计划
|
|
1095
|
+
|
|
1096
|
+
- 背景锚点:
|
|
1097
|
+
- 引用或来源锚点:
|
|
1098
|
+
- 作用章节:
|
|
1099
|
+
- 为什么重要:
|
|
1100
|
+
- 状态:
|
|
1101
|
+
- 最接近前作:
|
|
1102
|
+
- 引用或来源锚点:
|
|
1103
|
+
- 作用章节:
|
|
1104
|
+
- 为什么重要:
|
|
1105
|
+
- 状态:
|
|
1106
|
+
- 指标或 benchmark 来源:
|
|
1107
|
+
- 引用或来源锚点:
|
|
1108
|
+
- 作用章节:
|
|
1109
|
+
- 为什么重要:
|
|
1110
|
+
- 状态:
|
|
1111
|
+
|
|
1112
|
+
## 章节到资产映射
|
|
1113
|
+
|
|
1114
|
+
- 引言:
|
|
1115
|
+
- 方法:
|
|
1116
|
+
- 实验:
|
|
1117
|
+
- 相关工作:
|
|
1118
|
+
|
|
949
1119
|
## 写作顺序
|
|
950
1120
|
|
|
951
1121
|
1. 第一优先 section:
|
|
@@ -1050,7 +1220,8 @@ const ZH_SKILL_FILES = {
|
|
|
1050
1220
|
"deliverables_root": "docs/research",
|
|
1051
1221
|
"paper_template_root": "",
|
|
1052
1222
|
"paper_template_decision": "unconfirmed",
|
|
1053
|
-
"paper_template_final_reminder_acknowledged": false
|
|
1223
|
+
"paper_template_final_reminder_acknowledged": false,
|
|
1224
|
+
"paper_language_finalization_decision": "unconfirmed"
|
|
1054
1225
|
}`,
|
|
1055
1226
|
[path.join(".lab", "context", "mission.md")]:
|
|
1056
1227
|
`# 研究主线
|
|
@@ -1244,7 +1415,7 @@ const ZH_SKILL_FILES = {
|
|
|
1244
1415
|
|
|
1245
1416
|
- Stop conditions:
|
|
1246
1417
|
- Escalation conditions:
|
|
1247
|
-
- Canonical promotion writeback: update \`.lab/context/data-decisions.md\`、\`.lab/context/decisions.md\`、\`.lab/context/state.md\` and \`.lab/context/
|
|
1418
|
+
- Canonical promotion writeback: update \`.lab/context/data-decisions.md\`、\`.lab/context/decisions.md\`、\`.lab/context/state.md\` and \`.lab/context/workflow-state.md\`.
|
|
1248
1419
|
`,
|
|
1249
1420
|
[path.join(".lab", "context", "auto-outcome.md")]:
|
|
1250
1421
|
`# 自动结果
|
|
@@ -1378,11 +1549,23 @@ ZH_CONTENT[path.join(".lab", "context", "summary.md")] = `# 研究摘要
|
|
|
1378
1549
|
|
|
1379
1550
|
## 当前方向
|
|
1380
1551
|
|
|
1381
|
-
|
|
1382
|
-
|
|
1552
|
+
- Mission:
|
|
1553
|
+
- Approved direction:
|
|
1554
|
+
- Active stage:
|
|
1555
|
+
- Current objective:
|
|
1383
1556
|
- Auto mode:
|
|
1384
1557
|
- Auto objective:
|
|
1385
1558
|
- Auto decision:
|
|
1559
|
+
- Collaborator report mode:
|
|
1560
|
+
- Canonical context readiness:
|
|
1561
|
+
- Method name:
|
|
1562
|
+
- Contribution bullets:
|
|
1563
|
+
- Eval objective:
|
|
1564
|
+
- Primary metrics:
|
|
1565
|
+
- Secondary metrics:
|
|
1566
|
+
- Dataset package:
|
|
1567
|
+
- Benchmark role:
|
|
1568
|
+
- Comparison suite:
|
|
1386
1569
|
|
|
1387
1570
|
## 最强证据
|
|
1388
1571
|
|
|
@@ -1408,18 +1591,18 @@ ZH_CONTENT[path.join(".lab", "context", "next-action.md")] = `# 下一步动作
|
|
|
1408
1591
|
- Action:
|
|
1409
1592
|
- Success signal:
|
|
1410
1593
|
|
|
1411
|
-
##
|
|
1594
|
+
## 完成后
|
|
1412
1595
|
|
|
1413
1596
|
- Next action:
|
|
1414
1597
|
|
|
1415
|
-
##
|
|
1598
|
+
## 如果卡住
|
|
1416
1599
|
|
|
1417
1600
|
- Fallback action:
|
|
1418
1601
|
|
|
1419
|
-
##
|
|
1602
|
+
## 升级条件
|
|
1420
1603
|
|
|
1421
1604
|
- Question:
|
|
1422
|
-
-
|
|
1605
|
+
- Escalate when:
|
|
1423
1606
|
`;
|
|
1424
1607
|
|
|
1425
1608
|
ZH_CONTENT[path.join(".lab", "context", "session-brief.md")] = `# 会话简报
|
|
@@ -1427,6 +1610,8 @@ ZH_CONTENT[path.join(".lab", "context", "session-brief.md")] = `# 会话简报
|
|
|
1427
1610
|
## 当前阶段
|
|
1428
1611
|
|
|
1429
1612
|
- Stage:
|
|
1613
|
+
- Current objective:
|
|
1614
|
+
- Immediate next action:
|
|
1430
1615
|
|
|
1431
1616
|
## 主线任务
|
|
1432
1617
|
|
|
@@ -1435,10 +1620,15 @@ ZH_CONTENT[path.join(".lab", "context", "session-brief.md")] = `# 会话简报
|
|
|
1435
1620
|
## 当前最优路径
|
|
1436
1621
|
|
|
1437
1622
|
- 已批准方向:
|
|
1438
|
-
-
|
|
1623
|
+
- Strongest supported claim:
|
|
1439
1624
|
- Auto mode:
|
|
1440
1625
|
- Auto objective:
|
|
1441
1626
|
- Auto decision:
|
|
1627
|
+
- Collaborator report mode:
|
|
1628
|
+
- Canonical context readiness:
|
|
1629
|
+
- Method name:
|
|
1630
|
+
- Primary metrics:
|
|
1631
|
+
- Secondary metrics:
|
|
1442
1632
|
|
|
1443
1633
|
## 主要风险
|
|
1444
1634
|
|
|
@@ -1573,6 +1763,7 @@ ZH_CONTENT[path.join(".codex", "skills", "lab", "stages", "write.md")] = `# \`/l
|
|
|
1573
1763
|
|
|
1574
1764
|
- 每轮只改一个 section 或一个明确子问题。
|
|
1575
1765
|
- 最终稿必须是 LaTeX。
|
|
1766
|
+
- 普通起草轮次先跟随 \`workflow_language\`。
|
|
1576
1767
|
- 如果配置了 \`paper_template_root\`,先检查该模板目录,再按其结构起草论文。
|
|
1577
1768
|
- 已接入的模板目录可能包含用户或上游修改,默认不要改模板文件。
|
|
1578
1769
|
- 如果没有配置模板且 \`paper_template_decision\` 是 \`unconfirmed\`,在第一次起草 \`.tex\` 之前必须先追问一次:继续使用默认 LaTeX scaffold,还是先接入模板目录。
|
|
@@ -1581,20 +1772,36 @@ ZH_CONTENT[path.join(".codex", "skills", "lab", "stages", "write.md")] = `# \`/l
|
|
|
1581
1772
|
- 如果 \`paper_template_decision\` 已经是 \`default-scaffold\`,就使用交付目录下的默认 LaTeX scaffold。
|
|
1582
1773
|
- 如果当前是最终导出或最终定稿轮次、\`paper_template_root\` 仍为空、\`paper_template_decision\` 是 \`default-scaffold\`,且 \`paper_template_final_reminder_acknowledged\` 是 \`false\`,就在最终定稿前再提醒一次是否切到模板。
|
|
1583
1774
|
- 如果用户在最终提醒里仍确认继续使用默认 scaffold,就把 \`paper_template_final_reminder_acknowledged\` 持久化为 \`true\`。
|
|
1775
|
+
- 如果当前是最终导出或最终定稿轮次,且 \`workflow_language\` 与 \`paper_language\` 不一致、\`paper_language_finalization_decision\` 还是 \`unconfirmed\`,就必须追问一次:保持当前 workflow language,还是把最终稿转换成 \`paper_language\`。
|
|
1776
|
+
- 如果用户选择保持当前 workflow language,就把 \`paper_language_finalization_decision\` 持久化成 \`keep-workflow-language\`。
|
|
1777
|
+
- 如果用户选择转换成最终论文语言,就把 \`paper_language_finalization_decision\` 持久化成 \`convert-to-paper-language\`。
|
|
1778
|
+
- 如果 \`paper_language_finalization_decision\` 是 \`convert-to-paper-language\`,在接受最终定稿前必须把最终稿转换到 \`paper_language\`。
|
|
1584
1779
|
- 只加载当前 section guide,不要一次加载全部章节参考。
|
|
1585
1780
|
- 如果当前 section 是 \`abstract\`、\`introduction\` 或 \`method\`,还必须继续读取本地 example bank:\`references/paper-writing/examples/index.md\`、对应的 examples index,以及 1-2 个具体 example 文件。
|
|
1586
1781
|
- 如果当前 section 是 \`related work\`、\`experiments\` 或 \`conclusion\`,也要读取对应的本地 example bank:\`references/paper-writing/examples/index.md\`、对应的 examples index,以及 1-2 个具体 example 文件。
|
|
1587
1782
|
- 例子只能复用结构、段落角色和句法逻辑,不能直接复用原句。
|
|
1588
1783
|
- 先写 mini-outline 再写 prose。
|
|
1589
|
-
- 如果当前 section
|
|
1784
|
+
- 如果当前 section 带引言、方法、实验、相关工作或结论 claim,先规划需要的表格、figure placeholders 和 citations,再写 prose。
|
|
1785
|
+
- 在起草 \`introduction\`、\`method\`、\`experiments\`、\`related work\` 或 \`conclusion\` 之前,必须先运行 \`.lab/.managed/scripts/validate_paper_plan.py --paper-plan .lab/writing/plan.md\`。
|
|
1786
|
+
- 如果 \`paper-plan\` 校验失败,就先补 \`.lab/writing/plan.md\`,不能直接跳去写 prose。
|
|
1787
|
+
- 普通草稿轮次在改完当前 section 后,必须运行 \`.lab/.managed/scripts/validate_section_draft.py --section <section> --section-file <section-file> --mode draft\` 和 \`.lab/.managed/scripts/validate_paper_claims.py --section-file <section-file> --mode draft\`。
|
|
1788
|
+
- 普通草稿轮次里,这两类校验先按 warning 处理;warning 必须写进 write iteration artifact,不能假装没看到。
|
|
1789
|
+
- \`paper-plan\` 里还必须写清资产覆盖目标、问题设定或 teaser 图,以及一个额外 analysis asset。
|
|
1590
1790
|
- 最终定稿或导出轮次里,必须维护非空的 \`references.bib\`,并把关键实验结果物化成真正的 LaTeX 表格:
|
|
1591
1791
|
- \`<deliverables_root>/paper/tables/main-results.tex\`
|
|
1592
1792
|
- \`<deliverables_root>/paper/tables/ablations.tex\`
|
|
1593
1793
|
- 方法或实验章节还必须物化带 caption、label 和图意图的 figure placeholders:
|
|
1794
|
+
- \`<deliverables_root>/paper/figures/problem-setting.tex\`
|
|
1594
1795
|
- \`<deliverables_root>/paper/figures/method-overview.tex\`
|
|
1595
1796
|
- \`<deliverables_root>/paper/figures/results-overview.tex\`
|
|
1797
|
+
- 还必须额外物化一个分析资产:
|
|
1798
|
+
- \`<deliverables_root>/paper/analysis/analysis-asset.tex\`
|
|
1799
|
+
- 论文主文的核心资产覆盖至少应包括:问题设定或 teaser 图、方法总览图、结果总览图、主结果表、消融表,以及一个额外分析资产。
|
|
1800
|
+
- 只要论文资产发生变化,就同步更新 \`.lab/writing/plan.md\` 里的表计划、图计划、引用计划和章节到资产映射。
|
|
1596
1801
|
- 不要把纯 prose section 当成论文交付完成。
|
|
1597
1802
|
- 论文源码里不要出现绝对本地路径、workflow provenance、shell 日志或 \`+/-\` 这类工程记法;应改成 paper-facing LaTeX 表达。
|
|
1803
|
+
- 最终定稿或导出轮次结束前,必须先通过 \`.lab/.managed/scripts/validate_section_draft.py --section <section> --section-file <section-file> --mode final\` 和 \`.lab/.managed/scripts/validate_paper_claims.py --section-file <section-file> --mode final\`。
|
|
1804
|
+
- 如果最终轮次的 section 或 claim 校验失败,就继续改正文;不能因为资产齐全就停下。
|
|
1598
1805
|
- 在最终定稿或导出轮次结束前,必须运行 \`.lab/.managed/scripts/validate_manuscript_delivery.py --paper-dir <deliverables_root>/paper\`;如果失败,就继续补表、图、引用和正文。
|
|
1599
1806
|
- 如果本地有 LaTeX 工具链,就再跑一次 compile smoke test;如果没有,也要在 write iteration artifact 里记录该限制。
|
|
1600
1807
|
- 如果缺少 framing artifact,不要继续写作,直接回到 \`/lab:framing\`。
|
|
@@ -1746,7 +1953,7 @@ description: 严格研究工作流,覆盖 idea、data、auto、framing、spec
|
|
|
1746
1953
|
- 如果缺少的前提会改变结论,一次只追问一个问题。
|
|
1747
1954
|
- 如果存在多条可行路径,先给 2-3 个方案、trade-offs 和推荐项,再收敛。
|
|
1748
1955
|
- 如果某个 stage 会决定后续方向,就要保留明确的 approval gate。
|
|
1749
|
-
- 使用 \`.lab/config/workflow.json\` 作为全局约束,统一管理 workflow language、paper language、paper format、results_root、figures_root、deliverables_root 和
|
|
1956
|
+
- 使用 \`.lab/config/workflow.json\` 作为全局约束,统一管理 workflow language、paper language、paper format、results_root、figures_root、deliverables_root、paper_template_root 和 paper-language 的最终定稿决定。
|
|
1750
1957
|
- 工作流中间工件默认跟随安装语言。
|
|
1751
1958
|
- 最终论文默认输出为 LaTeX,论文语言与工作流语言分开决定。
|
|
1752
1959
|
- 区分“来源事实”和“模型假设”。
|
|
@@ -1790,7 +1997,6 @@ ZH_CONTENT[path.join(".codex", "skills", "lab", "stages", "data.md")] = `# \`/la
|
|
|
1790
1997
|
- \`.lab/context/state.md\`
|
|
1791
1998
|
- \`.lab/context/decisions.md\`
|
|
1792
1999
|
- \`.lab/context/data-decisions.md\`
|
|
1793
|
-
- \`.lab/context/session-brief.md\`
|
|
1794
2000
|
|
|
1795
2001
|
## 必要工件
|
|
1796
2002
|
|
|
@@ -2255,7 +2461,7 @@ ZH_CONTENT[path.join(".codex", "skills", "lab", "stages", "auto.md")] = `# \`/la
|
|
|
2255
2461
|
- \`write\` 写出 \`<deliverables_root>/paper/\` 下的 LaTeX 产物
|
|
2256
2462
|
- 如果即将进入 \`report\`,而 \`.lab/context/mission.md\` 或 \`.lab/context/eval-protocol.md\` 仍是模板空壳,就先根据冻结工件和已批准上下文回填最小可信版本。
|
|
2257
2463
|
- 如果回填后仍缺少协作者可读所需的关键字段,就必须强制生成 \`artifact-anchored interim report\`,不能冒充最终协作者报告。
|
|
2258
|
-
- promotion 成功后,必须写回 \`data-decisions.md\`、\`decisions.md\`、\`state.md\` 和 \`
|
|
2464
|
+
- promotion 成功后,必须写回 \`data-decisions.md\`、\`decisions.md\`、\`state.md\` 和 \`workflow-state.md\`。
|
|
2259
2465
|
- 如果某个指标或对比 claim 在评估协议里没有带来源的定义,就不能拿它做 stop 或 promotion 判断。
|
|
2260
2466
|
|
|
2261
2467
|
## 最小流程
|
|
@@ -2299,6 +2505,10 @@ ZH_CONTENT[path.join(".codex", "skills", "lab", "stages", "auto.md")] = `# \`/la
|
|
|
2299
2505
|
- 如果用户选择模板,就停止当前循环并转到 \`superlab paper attach-template --path <dir>\`
|
|
2300
2506
|
- 如果当前是最终导出或最终定稿、\`paper_template_decision\` 是 \`default-scaffold\`,且 \`paper_template_final_reminder_acknowledged\` 是 \`false\`,就在最终定稿前再提醒一次
|
|
2301
2507
|
- 如果用户在最终提醒里仍确认继续使用默认 scaffold,就持久化 \`paper_template_final_reminder_acknowledged: true\`
|
|
2508
|
+
- 普通 \`write\` 起草轮次先跟随 \`workflow_language\`。
|
|
2509
|
+
- 如果当前写作目标是最终导出、\`workflow_language\` 与 \`paper_language\` 不一致,且 \`paper_language_finalization_decision\` 还是 \`unconfirmed\`,就在最终定稿前追问一次:保持当前 workflow language,还是转换成 \`paper_language\`
|
|
2510
|
+
- 如果用户选择保持当前语言,就持久化 \`paper_language_finalization_decision: keep-workflow-language\`
|
|
2511
|
+
- 如果用户选择转换,就持久化 \`paper_language_finalization_decision: convert-to-paper-language\`
|
|
2302
2512
|
- 不要把 \`sleep 30\`、单次 \`pgrep\` 或一次性的 \`metrics.json\` 探针当成 rung 主命令;这些只能算进度检查。
|
|
2303
2513
|
- 当真实实验进程还活着时,只允许发进度更新并继续等待,不能把这一 rung 当作已经完成。
|
|
2304
2514
|
`;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"stage_prompt": {
|
|
3
|
+
"codex_en": "This command runs the `/lab:write` stage. Use `.codex/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, ask once whether to keep the draft language or convert the final manuscript to `paper_language`.",
|
|
4
|
+
"claude_en": "This command runs the `write` stage of the lab workflow. Use `.claude/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, ask once whether to keep the draft language or convert the final manuscript to `paper_language`.",
|
|
5
|
+
"codex_zh": "本命令运行 `/lab:write` 阶段。把 `.codex/skills/lab/stages/write.md` 当成模板选择、paper-plan、section 参考、校验 gate、资产覆盖和最终 manuscript 规则的单一来源。读取与当前 section 对应的 paper-writing reference 和 bundled example-bank 文件,一次只修改一个 section;普通草稿轮次把写作校验当 warning,最终定稿或导出轮次必须满足 write-stage 的接受 gate。普通起草轮次先跟随 `workflow_language`。如果当前稿件将从托管默认 scaffold 开始,且还没有模板决定,就先追问一次:继续使用默认 scaffold,还是先接入模板目录。如果进入最终定稿时 `workflow_language` 与 `paper_language` 不一致,就再追问一次:保持当前语言,还是把最终稿转换成 `paper_language`。",
|
|
6
|
+
"claude_zh": "本命令运行 lab workflow 的 `write` 阶段。把 `.claude/skills/lab/stages/write.md` 当成模板选择、paper-plan、section 参考、校验 gate、资产覆盖和最终 manuscript 规则的单一来源。读取与当前 section 对应的 paper-writing reference 和 bundled example-bank 文件,一次只修改一个 section;普通草稿轮次把写作校验当 warning,最终定稿或导出轮次必须满足 write-stage 的接受 gate。普通起草轮次先跟随 `workflow_language`。如果当前稿件将从托管默认 scaffold 开始,且还没有模板决定,就先追问一次:继续使用默认 scaffold,还是先接入模板目录。如果进入最终定稿时 `workflow_language` 与 `paper_language` 不一致,就再追问一次:保持当前语言,还是把最终稿转换成 `paper_language`。"
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -7,4 +7,4 @@ argument-hint: idea or research problem
|
|
|
7
7
|
Use the installed `lab` skill at `.claude/skills/lab/SKILL.md`.
|
|
8
8
|
|
|
9
9
|
Execute the requested `/lab-idea` command against the user's argument now. Do not only recommend another lab stage. If a blocking prerequisite is missing, say exactly what is missing and ask at most one clarifying question.
|
|
10
|
-
This command runs the `idea` stage of the lab workflow.
|
|
10
|
+
This command runs the `idea` stage of the lab workflow. It must produce a collaborator-readable proposal memo with a plain-language scenario, problem, why-it-matters explanation, explicit current-method landscape, closest-prior-work comparison, a literature scoping bundle that defaults to roughly 20 relevant sources unless the field is too narrow, a rough approach description, and a minimum viable experiment before the approval gate.
|
|
@@ -7,4 +7,4 @@ argument-hint: section or writing target
|
|
|
7
7
|
Use the installed `lab` skill at `.claude/skills/lab/SKILL.md`.
|
|
8
8
|
|
|
9
9
|
Execute the requested `/lab-write` command against the user's argument now. Do not only recommend another lab stage. If a blocking prerequisite is missing, say exactly what is missing and ask at most one clarifying question.
|
|
10
|
-
This command runs the `write` stage of the lab workflow.
|
|
10
|
+
This command runs the `write` stage of the lab workflow. Use `.claude/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, ask once whether to keep the draft language or convert the final manuscript to `paper_language`.
|
|
@@ -44,7 +44,7 @@ Use the same repository artifacts and stage boundaries every time.
|
|
|
44
44
|
|
|
45
45
|
- `/lab write ...` or `/lab-write`
|
|
46
46
|
Turn stable report artifacts into paper sections through small, evidence-bound writing rounds using the vendored paper-writing references under the installed `lab` skill.
|
|
47
|
-
|
|
47
|
+
Follow the installed `write` stage contract for paper-plan, section-quality, claim-safety, manuscript-delivery, and template-choice gates instead of re-inventing a parallel writing workflow.
|
|
48
48
|
|
|
49
49
|
## Dispatch Rules
|
|
50
50
|
|
|
@@ -58,8 +58,9 @@ Use the same repository artifacts and stage boundaries every time.
|
|
|
58
58
|
- `iterate` requires a normalized summary from `scripts/eval_report.py`.
|
|
59
59
|
- `run`, `iterate`, `auto`, and `report` should all follow `.lab/context/eval-protocol.md`, including its recorded sources for metrics and comparison implementations.
|
|
60
60
|
- `write` requires an approved framing artifact from the `framing` stage.
|
|
61
|
-
- `write` requires stable report artifacts
|
|
62
|
-
-
|
|
61
|
+
- `write` requires stable report artifacts and should only change one section per round while following the installed write-stage contract under `skills/lab/stages/write.md`.
|
|
62
|
+
- `write` should use `.lab/writing/plan.md` as the write-time source of truth for planned tables, figures, citations, and asset coverage.
|
|
63
|
+
- `write` should treat section-quality, claim-safety, and manuscript-delivery validators as the canonical acceptance gates for final-draft or export rounds.
|
|
63
64
|
|
|
64
65
|
## How to Ask for `/lab auto`
|
|
65
66
|
|
|
@@ -6,4 +6,4 @@ argument-hint: idea or research problem
|
|
|
6
6
|
Use the installed `lab` skill at `.codex/skills/lab/SKILL.md`.
|
|
7
7
|
|
|
8
8
|
Execute the requested `/lab:idea` stage against the user's argument now. Do not only recommend another lab stage. If a blocking prerequisite is missing, say exactly what is missing and ask at most one clarifying question.
|
|
9
|
-
This command runs the `/lab:idea` stage.
|
|
9
|
+
This command runs the `/lab:idea` stage. It must produce a collaborator-readable proposal memo with a plain-language scenario, problem, why-it-matters explanation, explicit current-method landscape, closest-prior-work comparison, a literature scoping bundle that defaults to roughly 20 relevant sources unless the field is too narrow, a rough approach description, and a minimum viable experiment before the approval gate.
|
|
@@ -6,4 +6,4 @@ argument-hint: section or writing target
|
|
|
6
6
|
Use the installed `lab` skill at `.codex/skills/lab/SKILL.md`.
|
|
7
7
|
|
|
8
8
|
Execute the requested `/lab:write` stage against the user's argument now. Do not only recommend another lab stage. If a blocking prerequisite is missing, say exactly what is missing and ask at most one clarifying question.
|
|
9
|
-
This command runs the `/lab:write` stage.
|
|
9
|
+
This command runs the `/lab:write` stage. Use `.codex/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, ask once whether to keep the draft language or convert the final manuscript to `paper_language`.
|
|
@@ -38,7 +38,7 @@ argument-hint: workflow question or stage choice
|
|
|
38
38
|
|
|
39
39
|
- `/lab:write`
|
|
40
40
|
Turn stable report artifacts into paper sections through small, evidence-bound writing rounds using the vendored paper-writing references under the installed `lab` skill.
|
|
41
|
-
|
|
41
|
+
Follow the installed `/lab:write` contract for paper-plan, section-quality, claim-safety, manuscript-delivery, and template-choice gates instead of re-inventing a parallel writing workflow.
|
|
42
42
|
|
|
43
43
|
## Dispatch Rules
|
|
44
44
|
|
|
@@ -52,8 +52,9 @@ argument-hint: workflow question or stage choice
|
|
|
52
52
|
- `/lab:iterate` requires a normalized summary from `scripts/eval_report.py`.
|
|
53
53
|
- `/lab:run`, `/lab:iterate`, `/lab:auto`, and `/lab:report` should all follow `.lab/context/eval-protocol.md`, including its recorded sources for metrics and comparison implementations.
|
|
54
54
|
- `/lab:write` requires an approved framing artifact from `/lab:framing`.
|
|
55
|
-
- `/lab:write` requires stable report artifacts
|
|
56
|
-
-
|
|
55
|
+
- `/lab:write` requires stable report artifacts and should only change one section per round while following the installed write-stage contract under `skills/lab/stages/write.md`.
|
|
56
|
+
- `/lab:write` should use `.lab/writing/plan.md` as the write-time source of truth for planned tables, figures, citations, and asset coverage.
|
|
57
|
+
- `/lab:write` should treat section-quality, claim-safety, and manuscript-delivery validators as the canonical acceptance gates for final-draft or export rounds.
|
|
57
58
|
|
|
58
59
|
## How to Ask for `/lab:auto`
|
|
59
60
|
|