superlab 0.1.27 → 0.1.29

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 (60) hide show
  1. package/README.md +3 -0
  2. package/README.zh-CN.md +3 -0
  3. package/bin/superlab.cjs +11 -0
  4. package/lib/auto_contracts.cjs +2 -4
  5. package/lib/auto_runner.cjs +1 -2
  6. package/lib/context.cjs +52 -228
  7. package/lib/i18n.cjs +300 -40
  8. package/lib/lab_idea_contract.json +8 -0
  9. package/lib/lab_write_contract.json +8 -0
  10. package/package-assets/claude/commands/lab-idea.md +1 -1
  11. package/package-assets/claude/commands/lab-write.md +1 -1
  12. package/package-assets/claude/commands/lab.md +3 -5
  13. package/package-assets/codex/prompts/lab-idea.md +1 -1
  14. package/package-assets/codex/prompts/lab-write.md +1 -1
  15. package/package-assets/codex/prompts/lab.md +3 -5
  16. package/package-assets/shared/lab/.managed/scripts/validate_idea_artifact.py +354 -0
  17. package/package-assets/shared/lab/.managed/scripts/validate_manuscript_delivery.py +50 -4
  18. package/package-assets/shared/lab/.managed/scripts/validate_paper_claims.py +86 -0
  19. package/package-assets/shared/lab/.managed/scripts/validate_paper_plan.py +38 -3
  20. package/package-assets/shared/lab/.managed/scripts/validate_section_draft.py +181 -0
  21. package/package-assets/shared/lab/.managed/templates/idea-source-log.md +37 -0
  22. package/package-assets/shared/lab/.managed/templates/idea.md +79 -0
  23. package/package-assets/shared/lab/.managed/templates/paper-plan.md +24 -0
  24. package/package-assets/shared/lab/config/workflow.json +2 -1
  25. package/package-assets/shared/lab/context/auto-mode.md +2 -2
  26. package/package-assets/shared/lab/context/next-action.md +4 -4
  27. package/package-assets/shared/lab/context/session-brief.md +6 -10
  28. package/package-assets/shared/lab/context/state.md +2 -0
  29. package/package-assets/shared/lab/context/summary.md +14 -3
  30. package/package-assets/shared/lab/system/core.md +4 -3
  31. package/package-assets/shared/skills/lab/SKILL.md +33 -24
  32. package/package-assets/shared/skills/lab/references/paper-writing/examples/abstract/template-b.md +2 -2
  33. package/package-assets/shared/skills/lab/references/paper-writing/examples/conclusion/conservative-claim-boundary.md +13 -13
  34. package/package-assets/shared/skills/lab/references/paper-writing/examples/experiments/main-results-and-ablation-latex.md +18 -17
  35. package/package-assets/shared/skills/lab/references/paper-writing/examples/experiments-examples.md +1 -1
  36. package/package-assets/shared/skills/lab/references/paper-writing/examples/index.md +1 -1
  37. package/package-assets/shared/skills/lab/references/paper-writing/examples/introduction/pipeline-version-1-one-contribution-multi-advantages.md +3 -3
  38. package/package-assets/shared/skills/lab/references/paper-writing/examples/introduction/pipeline-version-2-two-contributions.md +1 -1
  39. package/package-assets/shared/skills/lab/references/paper-writing/examples/method/annotated-figure-to-text.md +66 -0
  40. package/package-assets/shared/skills/lab/references/paper-writing/examples/method/example-of-the-three-elements.md +11 -11
  41. package/package-assets/shared/skills/lab/references/paper-writing/examples/method/{module-design-instant-ngp.md → module-design-multiresolution-encoding.md} +1 -1
  42. package/package-assets/shared/skills/lab/references/paper-writing/examples/method/{module-triad-neural-body.md → module-triad-anchored-representation.md} +4 -4
  43. package/package-assets/shared/skills/lab/references/paper-writing/examples/method/overview-template.md +4 -4
  44. package/package-assets/shared/skills/lab/references/paper-writing/examples/method/pre-writing-questions.md +4 -3
  45. package/package-assets/shared/skills/lab/references/paper-writing/examples/method-examples.md +4 -4
  46. package/package-assets/shared/skills/lab/references/paper-writing/examples/related-work/closest-prior-gap-template.md +12 -12
  47. package/package-assets/shared/skills/lab/references/paper-writing/examples/related-work/topic-comparison-template.md +2 -2
  48. package/package-assets/shared/skills/lab/references/workflow.md +14 -0
  49. package/package-assets/shared/skills/lab/stages/auto.md +10 -3
  50. package/package-assets/shared/skills/lab/stages/data.md +1 -2
  51. package/package-assets/shared/skills/lab/stages/framing.md +1 -2
  52. package/package-assets/shared/skills/lab/stages/idea.md +56 -13
  53. package/package-assets/shared/skills/lab/stages/iterate.md +3 -1
  54. package/package-assets/shared/skills/lab/stages/report.md +2 -1
  55. package/package-assets/shared/skills/lab/stages/review.md +3 -1
  56. package/package-assets/shared/skills/lab/stages/run.md +4 -1
  57. package/package-assets/shared/skills/lab/stages/spec.md +2 -1
  58. package/package-assets/shared/skills/lab/stages/write.md +25 -4
  59. package/package.json +1 -1
  60. package/package-assets/shared/skills/lab/references/paper-writing/examples/method/neural-body-annotated-figure-text.md +0 -66
package/README.md CHANGED
@@ -246,6 +246,7 @@ This installer also writes `.lab/config/workflow.json`, which is the global cont
246
246
  - `figures_root`
247
247
  - `deliverables_root`
248
248
  - `paper_template_root`
249
+ - `paper_language_finalization_decision`
249
250
 
250
251
  Stages should follow that file rather than guess language locally.
251
252
 
@@ -325,6 +326,8 @@ Internal writing-control artifacts stay under:
325
326
  If `paper_template_root` is configured, `/lab:write` should inspect that template directory first and align drafting to it.
326
327
  If no template is configured, the first manuscript-writing round should ask once whether to continue with the managed default LaTeX scaffold or attach a template directory first.
327
328
  If the user approves the default scaffold, persist that choice in `.lab/config/workflow.json` and stop asking on ordinary rounds.
329
+ Ordinary manuscript drafting rounds should follow `workflow_language`.
330
+ If `workflow_language` and `paper_language` differ, the first final-draft or export round should ask once whether to keep the draft language or convert the final manuscript to `paper_language`, then persist that decision.
328
331
  At the final export or final-draft boundary, if the project is still on the default scaffold and no attached template exists, ask one final reminder question before finalizing.
329
332
  For final-draft or export rounds, `/lab:write` should materialize real LaTeX tables, figure placeholders with figure intent, a non-empty `references.bib`, and pass `.lab/.managed/scripts/validate_manuscript_delivery.py --paper-dir <deliverables_root>/paper` before stopping.
330
333
 
package/README.zh-CN.md CHANGED
@@ -244,6 +244,7 @@ superlab init --lang en
244
244
  - `figures_root`
245
245
  - `deliverables_root`
246
246
  - `paper_template_root`
247
+ - `paper_language_finalization_decision`
247
248
 
248
249
  后续 stage 应该按这个配置决定语言和论文格式,而不是各模板自己猜。
249
250
 
@@ -310,6 +311,8 @@ Codex 和 Claude 的命令入口不一样:
310
311
  如果配置了 `paper_template_root`,`/lab:write` 应先检查该模板目录并按其结构写作。
311
312
  如果没有配置模板,第一次进入论文 `.tex` 写作时应先追问一次:继续使用内置默认 LaTeX scaffold,还是先接入模板目录。
312
313
  如果用户确认先用默认 scaffold,就把这个决定持久化到 `.lab/config/workflow.json`,后续普通轮次不再重复追问。
314
+ 普通论文起草轮次应先跟随 `workflow_language`。
315
+ 如果 `workflow_language` 和 `paper_language` 不一致,则在第一次进入最终定稿或导出轮次时追问一次:保持当前草稿语言,还是把最终稿转换成 `paper_language`,并把这个决定持久化。
313
316
  但在最终导出或最终定稿节点,如果项目仍在使用默认 scaffold 且没有接入模板,应再提醒一次,给用户最后切换模板的机会。
314
317
  在最终定稿或导出轮次里,`/lab:write` 还应物化真正的 LaTeX 表格、带图意图的 figure placeholders、非空的 `references.bib`,并在停止前通过 `.lab/.managed/scripts/validate_manuscript_delivery.py --paper-dir <deliverables_root>/paper`。
315
318
 
package/bin/superlab.cjs CHANGED
@@ -677,6 +677,17 @@ function validateWorkflowConfig(config) {
677
677
  ) {
678
678
  issues.push("invalid paper_template_final_reminder_acknowledged");
679
679
  }
680
+ const validLanguageFinalizationDecisions = new Set([
681
+ "unconfirmed",
682
+ "keep-workflow-language",
683
+ "convert-to-paper-language",
684
+ ]);
685
+ if (
686
+ config.paper_language_finalization_decision !== undefined &&
687
+ !validLanguageFinalizationDecisions.has(config.paper_language_finalization_decision)
688
+ ) {
689
+ issues.push("invalid paper_language_finalization_decision");
690
+ }
680
691
  if (
681
692
  typeof config.paper_template_root === "string" &&
682
693
  config.paper_template_root.trim() !== "" &&
@@ -33,7 +33,6 @@ const FROZEN_CORE_ALIASES = {
33
33
  };
34
34
  const REVIEW_CONTEXT_FILES = [
35
35
  path.join(".lab", "context", "decisions.md"),
36
- path.join(".lab", "context", "state.md"),
37
36
  path.join(".lab", "context", "workflow-state.md"),
38
37
  path.join(".lab", "context", "open-questions.md"),
39
38
  path.join(".lab", "context", "evidence-index.md"),
@@ -41,8 +40,7 @@ const REVIEW_CONTEXT_FILES = [
41
40
  const PROMOTION_CANONICAL_FILES = [
42
41
  path.join(".lab", "context", "data-decisions.md"),
43
42
  path.join(".lab", "context", "decisions.md"),
44
- path.join(".lab", "context", "state.md"),
45
- path.join(".lab", "context", "session-brief.md"),
43
+ path.join(".lab", "context", "workflow-state.md"),
46
44
  ];
47
45
 
48
46
  function resolveFrozenCoreEntries(rawValue) {
@@ -320,7 +318,7 @@ function verifyStageContract({ stage, snapshot }) {
320
318
  if (stage === "review") {
321
319
  if (changedPaths.length === 0) {
322
320
  throw new Error(
323
- "review stage did not update canonical review context (.lab/context/decisions.md, state.md, workflow-state.md, open-questions.md, or evidence-index.md)"
321
+ "review stage did not update canonical review context (.lab/context/decisions.md, workflow-state.md, open-questions.md, or evidence-index.md)"
324
322
  );
325
323
  }
326
324
  return;
@@ -432,8 +432,7 @@ async function startAutoMode({ targetDir, now = new Date() }) {
432
432
  const promotionSnapshot = snapshotPaths(targetDir, [
433
433
  ".lab/context/data-decisions.md",
434
434
  ".lab/context/decisions.md",
435
- ".lab/context/state.md",
436
- ".lab/context/session-brief.md",
435
+ ".lab/context/workflow-state.md",
437
436
  ]);
438
437
  await runCommandWithPolling({
439
438
  targetDir,
package/lib/context.cjs CHANGED
@@ -969,6 +969,8 @@ function renderResearchState(lang, data) {
969
969
  if (lang === "zh") {
970
970
  return `# 研究状态
971
971
 
972
+ > 本文件是派生的长期快照。请更新 \`mission.md\`、\`decisions.md\`、\`data-decisions.md\`、\`evidence-index.md\`、\`eval-protocol.md\` 和 \`open-questions.md\` 这些 canonical context 文件,然后再刷新派生上下文,而不是直接手改本文件。
973
+
972
974
  ## 已批准方向
973
975
 
974
976
  - One-sentence problem: ${data.problem || "待补充"}
@@ -983,7 +985,7 @@ function renderResearchState(lang, data) {
983
985
 
984
986
  ## 当前研究主线
985
987
 
986
- - Current research focus: ${data.immediateAction || data.direction || "待补充"}
988
+ - Current research focus: ${data.direction || "待补充"}
987
989
  - Primary metric: ${data.evalPrimaryMetrics || data.threshold || "待补充"}
988
990
  - Dataset or benchmark scope: ${data.datasetPackage || data.benchmarkRole || "待补充"}
989
991
 
@@ -991,12 +993,14 @@ function renderResearchState(lang, data) {
991
993
 
992
994
  - Hard constraints: ${data.boundary || "待补充"}
993
995
  - Claim boundary: ${data.evalClaimBoundary || "待补充"}
994
- - Conditions that require reopening the direction: ${data.humanDecision || "待补充"}
996
+ - Conditions that require reopening the direction: ${data.question || "待补充"}
995
997
  `;
996
998
  }
997
999
 
998
1000
  return `# Research State
999
1001
 
1002
+ > This file is a derived durable snapshot. Update canonical context files such as \`mission.md\`, \`decisions.md\`, \`data-decisions.md\`, \`evidence-index.md\`, \`eval-protocol.md\`, and \`open-questions.md\`, then refresh derived context instead of editing this file directly.
1003
+
1000
1004
  ## Approved Direction
1001
1005
 
1002
1006
  - One-sentence problem: ${data.problem || "TBD"}
@@ -1011,7 +1015,7 @@ function renderResearchState(lang, data) {
1011
1015
 
1012
1016
  ## Active Research Track
1013
1017
 
1014
- - Current research focus: ${data.immediateAction || data.direction || "TBD"}
1018
+ - Current research focus: ${data.direction || "TBD"}
1015
1019
  - Primary metric: ${data.evalPrimaryMetrics || data.threshold || "TBD"}
1016
1020
  - Dataset or benchmark scope: ${data.datasetPackage || data.benchmarkRole || "TBD"}
1017
1021
 
@@ -1019,7 +1023,7 @@ function renderResearchState(lang, data) {
1019
1023
 
1020
1024
  - Hard constraints: ${data.boundary || "TBD"}
1021
1025
  - Claim boundary: ${data.evalClaimBoundary || "TBD"}
1022
- - Conditions that require reopening the direction: ${data.humanDecision || "TBD"}
1026
+ - Conditions that require reopening the direction: ${data.question || "TBD"}
1023
1027
  `;
1024
1028
  }
1025
1029
 
@@ -1078,74 +1082,36 @@ function renderSummary(lang, data) {
1078
1082
  - Mission: ${data.problem || "待补充"}
1079
1083
  - Approved direction: ${data.direction || "待补充"}
1080
1084
  - Active stage: ${data.stage || "待补充"}
1085
+ - Current objective: ${data.workflowObjective || "待补充"}
1081
1086
  - Auto mode: ${data.autoStatus || "未启用"}
1082
1087
  - Auto objective: ${data.autoObjective || "待补充"}
1083
- - Auto rung: ${data.autoCurrentRung || "待补充"}
1084
- - Auto watch target: ${data.autoWatchTarget || "待补充"}
1085
1088
  - Auto decision: ${data.autoDecision || "待补充"}
1086
- - Auto terminal goal: ${joinNonEmpty([data.autoGoalType, data.autoGoalTarget], " | ") || "待补充"}
1087
- - Auto goal reached: ${data.autoGoalReached || "待补充"}
1088
- - Auto stop reason: ${data.autoStopReason || "待补充"}
1089
- - Auto final artifact: ${data.autoFinalArtifact || "待补充"}
1090
- - Auto final rung: ${data.autoFinalRung || "待补充"}
1091
1089
  - Collaborator report mode: ${data.reportMode || "待补充"}
1092
1090
  - Canonical context readiness: ${data.reportReadiness || "待补充"}
1093
- - Why this report mode is active: ${data.reportModeReason || "待补充"}
1094
1091
  - Method name: ${data.methodName || "待补充"}
1095
1092
  - Contribution bullets: ${data.contributionBullets || "待补充"}
1096
1093
  - Eval objective: ${data.evalObjective || "待补充"}
1097
1094
  - Primary metrics: ${data.evalPrimaryMetrics || "待补充"}
1098
1095
  - Secondary metrics: ${data.evalSecondaryMetrics || "待补充"}
1099
- - Required terminal evidence: ${data.evalRequiredTerminalEvidence || "待补充"}
1100
- - Table plan: ${data.evalTablePlan || "待补充"}
1101
- - Metric glossary: ${data.evalMetricGlossary || "待补充"}
1102
- - Background sources: ${data.evalBackgroundSources || "待补充"}
1103
- - Method and baseline source papers: ${data.evalMethodAndBaselineSourcePapers || "待补充"}
1104
- - Method and baseline implementation source: ${data.evalMethodAndBaselineImplementationSource || "待补充"}
1105
- - Metric source papers: ${data.evalMetricSourcePapers || "待补充"}
1106
- - Metric implementation source: ${data.evalMetricImplementationSource || "待补充"}
1107
- - Comparison source papers: ${data.evalComparisonSourcePapers || "待补充"}
1108
- - Comparison implementation source: ${data.evalComparisonImplementationSource || "待补充"}
1109
- - Deviation from original implementation: ${data.evalDeviationFromOriginalImplementation || "待补充"}
1110
- - Evaluation setting semantics: ${data.evalEvaluationSettingSemantics || "待补充"}
1111
- - Visibility and leakage risks: ${data.evalVisibilityAndLeakageRisks || "待补充"}
1112
- - Anchor and label policy: ${data.evalAnchorAndLabelPolicy || "待补充"}
1113
- - Scale and comparability policy: ${data.evalScaleAndComparabilityPolicy || "待补充"}
1114
- - Metric validity checks: ${data.evalMetricValidityChecks || "待补充"}
1115
- - Comparison validity checks: ${data.evalComparisonValidityChecks || "待补充"}
1116
- - Statistical validity checks: ${data.evalStatisticalValidityChecks || "待补充"}
1117
- - Claim boundary: ${data.evalClaimBoundary || "待补充"}
1118
- - Integrity self-check: ${data.evalIntegritySelfCheck || "待补充"}
1119
- - Anomaly signals: ${data.evalAnomalySignals || "待补充"}
1120
- - Implementation reality checks: ${data.evalImplementationRealityChecks || "待补充"}
1121
- - Alternative explanations considered: ${data.evalAlternativeExplanationsConsidered || "待补充"}
1122
- - Cross-check method: ${data.evalCrossCheckMethod || "待补充"}
1123
- - Best-supported interpretation: ${data.evalBestSupportedInterpretation || "待补充"}
1124
- - Escalation threshold: ${data.evalEscalationThreshold || "待补充"}
1125
- - Experiment ladder: ${data.evalExperimentLadder || "待补充"}
1126
- - Benchmark ladder: ${data.evalBenchmarkLadder || "待补充"}
1127
- - Promotion gate: ${data.evalPromotionGate || "待补充"}
1128
1096
  - Dataset package: ${data.datasetPackage || "待补充"}
1129
- - Dataset years: ${data.datasetYears || "待补充"}
1130
1097
  - Benchmark role: ${data.benchmarkRole || "待补充"}
1131
- - Benchmark rationale: ${data.benchmarkRationale || "待补充"}
1132
1098
  - Comparison suite: ${data.comparisonMethods || "待补充"}
1133
- - Comparison rationale: ${data.comparisonRationale || "待补充"}
1134
- - Comparison evidence: ${data.comparisonEvidence || "待补充"}
1135
- - Source basis: ${data.datasetSources || "待补充"}
1136
- - Representative papers: ${data.datasetPapers || "待补充"}
1137
1099
 
1138
1100
  ## 最强证据
1139
1101
 
1140
1102
  - Claim: ${data.claim || "待补充"}
1103
+ - Supporting artifact: ${data.latestArtifactPath || "待补充"}
1104
+ - Caveat: ${data.evalClaimBoundary || data.question || "待补充"}
1141
1105
 
1142
1106
  ## 最大风险
1143
1107
 
1144
1108
  - Risk: ${data.risk || "待补充"}
1109
+ - Why it matters: ${data.question || data.blocker || "待补充"}
1145
1110
 
1146
1111
  ## 当前缺口
1147
1112
 
1148
- - Open question: ${data.question || "待补充"}
1113
+ - Missing evidence: ${data.question || "待补充"}
1114
+ - Missing artifact: ${data.nextArtifact || "待补充"}
1149
1115
  `;
1150
1116
  }
1151
1117
 
@@ -1156,79 +1122,46 @@ function renderSummary(lang, data) {
1156
1122
  - Mission: ${data.problem || "TBD"}
1157
1123
  - Approved direction: ${data.direction || "TBD"}
1158
1124
  - Active stage: ${data.stage || "TBD"}
1125
+ - Current objective: ${data.workflowObjective || "TBD"}
1159
1126
  - Auto mode: ${data.autoStatus || "inactive"}
1160
1127
  - Auto objective: ${data.autoObjective || "TBD"}
1161
- - Auto rung: ${data.autoCurrentRung || "TBD"}
1162
- - Auto watch target: ${data.autoWatchTarget || "TBD"}
1163
1128
  - Auto decision: ${data.autoDecision || "TBD"}
1164
- - Auto terminal goal: ${joinNonEmpty([data.autoGoalType, data.autoGoalTarget], " | ") || "TBD"}
1165
- - Auto goal reached: ${data.autoGoalReached || "TBD"}
1166
- - Auto stop reason: ${data.autoStopReason || "TBD"}
1167
- - Auto final artifact: ${data.autoFinalArtifact || "TBD"}
1168
- - Auto final rung: ${data.autoFinalRung || "TBD"}
1169
1129
  - Collaborator report mode: ${data.reportMode || "TBD"}
1170
1130
  - Canonical context readiness: ${data.reportReadiness || "TBD"}
1171
- - Why this report mode is active: ${data.reportModeReason || "TBD"}
1172
1131
  - Method name: ${data.methodName || "TBD"}
1173
1132
  - Contribution bullets: ${data.contributionBullets || "TBD"}
1174
1133
  - Eval objective: ${data.evalObjective || "TBD"}
1175
1134
  - Primary metrics: ${data.evalPrimaryMetrics || "TBD"}
1176
1135
  - Secondary metrics: ${data.evalSecondaryMetrics || "TBD"}
1177
- - Required terminal evidence: ${data.evalRequiredTerminalEvidence || "TBD"}
1178
- - Table plan: ${data.evalTablePlan || "TBD"}
1179
- - Metric glossary: ${data.evalMetricGlossary || "TBD"}
1180
- - Background sources: ${data.evalBackgroundSources || "TBD"}
1181
- - Method and baseline source papers: ${data.evalMethodAndBaselineSourcePapers || "TBD"}
1182
- - Method and baseline implementation source: ${data.evalMethodAndBaselineImplementationSource || "TBD"}
1183
- - Metric source papers: ${data.evalMetricSourcePapers || "TBD"}
1184
- - Metric implementation source: ${data.evalMetricImplementationSource || "TBD"}
1185
- - Comparison source papers: ${data.evalComparisonSourcePapers || "TBD"}
1186
- - Comparison implementation source: ${data.evalComparisonImplementationSource || "TBD"}
1187
- - Deviation from original implementation: ${data.evalDeviationFromOriginalImplementation || "TBD"}
1188
- - Evaluation setting semantics: ${data.evalEvaluationSettingSemantics || "TBD"}
1189
- - Visibility and leakage risks: ${data.evalVisibilityAndLeakageRisks || "TBD"}
1190
- - Anchor and label policy: ${data.evalAnchorAndLabelPolicy || "TBD"}
1191
- - Scale and comparability policy: ${data.evalScaleAndComparabilityPolicy || "TBD"}
1192
- - Metric validity checks: ${data.evalMetricValidityChecks || "TBD"}
1193
- - Comparison validity checks: ${data.evalComparisonValidityChecks || "TBD"}
1194
- - Statistical validity checks: ${data.evalStatisticalValidityChecks || "TBD"}
1195
- - Claim boundary: ${data.evalClaimBoundary || "TBD"}
1196
- - Integrity self-check: ${data.evalIntegritySelfCheck || "TBD"}
1197
- - Anomaly signals: ${data.evalAnomalySignals || "TBD"}
1198
- - Implementation reality checks: ${data.evalImplementationRealityChecks || "TBD"}
1199
- - Alternative explanations considered: ${data.evalAlternativeExplanationsConsidered || "TBD"}
1200
- - Cross-check method: ${data.evalCrossCheckMethod || "TBD"}
1201
- - Best-supported interpretation: ${data.evalBestSupportedInterpretation || "TBD"}
1202
- - Escalation threshold: ${data.evalEscalationThreshold || "TBD"}
1203
- - Experiment ladder: ${data.evalExperimentLadder || "TBD"}
1204
- - Benchmark ladder: ${data.evalBenchmarkLadder || "TBD"}
1205
- - Promotion gate: ${data.evalPromotionGate || "TBD"}
1206
1136
  - Dataset package: ${data.datasetPackage || "TBD"}
1207
- - Dataset years: ${data.datasetYears || "TBD"}
1208
1137
  - Benchmark role: ${data.benchmarkRole || "TBD"}
1209
- - Benchmark rationale: ${data.benchmarkRationale || "TBD"}
1210
1138
  - Comparison suite: ${data.comparisonMethods || "TBD"}
1211
- - Comparison rationale: ${data.comparisonRationale || "TBD"}
1212
- - Comparison evidence: ${data.comparisonEvidence || "TBD"}
1213
- - Source basis: ${data.datasetSources || "TBD"}
1214
- - Representative papers: ${data.datasetPapers || "TBD"}
1215
1139
 
1216
1140
  ## Strongest Evidence
1217
1141
 
1218
1142
  - Claim: ${data.claim || "TBD"}
1143
+ - Supporting artifact: ${data.latestArtifactPath || "TBD"}
1144
+ - Caveat: ${data.evalClaimBoundary || data.question || "TBD"}
1219
1145
 
1220
1146
  ## Largest Risk
1221
1147
 
1222
1148
  - Risk: ${data.risk || "TBD"}
1149
+ - Why it matters: ${data.question || data.blocker || "TBD"}
1223
1150
 
1224
1151
  ## Current Gap
1225
1152
 
1226
- - Open question: ${data.question || "TBD"}
1153
+ - Missing evidence: ${data.question || "TBD"}
1154
+ - Missing artifact: ${data.nextArtifact || "TBD"}
1227
1155
  `;
1228
1156
  }
1229
1157
 
1230
1158
  function renderNextAction(lang, data) {
1231
1159
  if (lang === "zh") {
1160
+ const followup = data.nextArtifact
1161
+ ? `产出 ${data.nextArtifact}`
1162
+ : data.workflowObjective
1163
+ ? `继续推进:${data.workflowObjective}`
1164
+ : "继续推进当前阶段";
1232
1165
  return `# 下一步动作
1233
1166
 
1234
1167
  ## 当前动作
@@ -1236,21 +1169,26 @@ function renderNextAction(lang, data) {
1236
1169
  - Action: ${data.immediateAction || "待补充"}
1237
1170
  - Success signal: ${data.nextArtifact || data.threshold || "待补充"}
1238
1171
 
1239
- ## 如果成功
1172
+ ## 完成后
1240
1173
 
1241
- - Next action: ${data.successFollowup || "继续推进当前阶段"}
1174
+ - Next action: ${followup}
1242
1175
 
1243
- ## 如果失败
1176
+ ## 如果卡住
1244
1177
 
1245
1178
  - Fallback action: ${data.blocker ? `先处理阻塞:${data.blocker}` : "回到 review 或 iterate"}
1246
1179
 
1247
- ## 是否需要人工决策
1180
+ ## 升级条件
1248
1181
 
1249
1182
  - Question: ${data.humanDecision || "无"}
1250
- - 为什么会阻塞:${data.blocker || ""}
1183
+ - Escalate when: ${data.blocker || "无明显阻塞"}
1251
1184
  `;
1252
1185
  }
1253
1186
 
1187
+ const followup = data.nextArtifact
1188
+ ? `Produce ${data.nextArtifact}`
1189
+ : data.workflowObjective
1190
+ ? `Continue: ${data.workflowObjective}`
1191
+ : "Continue the active stage";
1254
1192
  return `# Next Action
1255
1193
 
1256
1194
  ## Immediate Step
@@ -1258,18 +1196,18 @@ function renderNextAction(lang, data) {
1258
1196
  - Action: ${data.immediateAction || "TBD"}
1259
1197
  - Success signal: ${data.nextArtifact || data.threshold || "TBD"}
1260
1198
 
1261
- ## If Success
1199
+ ## After Completion
1262
1200
 
1263
- - Next action: ${data.successFollowup || "Continue the active stage"}
1201
+ - Next action: ${followup}
1264
1202
 
1265
- ## If Failure
1203
+ ## If Blocked
1266
1204
 
1267
1205
  - Fallback action: ${data.blocker ? `Resolve blocker: ${data.blocker}` : "Route back to review or iterate"}
1268
1206
 
1269
- ## Human Decision Needed
1207
+ ## Escalation
1270
1208
 
1271
1209
  - Question: ${data.humanDecision || "none"}
1272
- - Why it blocks progress: ${data.blocker || "none"}
1210
+ - Escalate when: ${data.blocker || "no major blocker is known"}
1273
1211
  `;
1274
1212
  }
1275
1213
 
@@ -1277,74 +1215,17 @@ function renderSessionBrief(lang, data) {
1277
1215
  if (lang === "zh") {
1278
1216
  return `# 会话简报
1279
1217
 
1280
- ## 当前阶段
1218
+ ## 当前焦点
1281
1219
 
1282
1220
  - Stage: ${data.stage || "待补充"}
1221
+ - Current objective: ${data.workflowObjective || "待补充"}
1222
+ - Immediate next action: ${data.immediateAction || "待补充"}
1283
1223
 
1284
- ## 主线任务
1285
-
1286
- ${data.problem || "待补充"}
1287
-
1288
- ## 当前最优路径
1224
+ ## 任务快照
1289
1225
 
1226
+ - Mission: ${data.problem || "待补充"}
1290
1227
  - Approved direction: ${data.direction || "待补充"}
1291
- - Why this is the active path: ${data.why || "当前已批准方向"}
1292
- - Auto mode: ${data.autoStatus || "未启用"}
1293
- - Auto objective: ${data.autoObjective || "待补充"}
1294
- - Auto rung: ${data.autoCurrentRung || "待补充"}
1295
- - Auto watch target: ${data.autoWatchTarget || "待补充"}
1296
- - Auto decision: ${data.autoDecision || "待补充"}
1297
- - Auto terminal goal: ${joinNonEmpty([data.autoGoalType, data.autoGoalTarget], " | ") || "待补充"}
1298
- - Auto goal reached: ${data.autoGoalReached || "待补充"}
1299
- - Auto stop reason: ${data.autoStopReason || "待补充"}
1300
- - Auto final artifact: ${data.autoFinalArtifact || "待补充"}
1301
- - Auto final rung: ${data.autoFinalRung || "待补充"}
1302
- - Collaborator report mode: ${data.reportMode || "待补充"}
1303
- - Canonical context readiness: ${data.reportReadiness || "待补充"}
1304
- - Why this report mode is active: ${data.reportModeReason || "待补充"}
1305
- - Method name: ${data.methodName || "待补充"}
1306
- - Contribution bullets: ${data.contributionBullets || "待补充"}
1307
- - Eval objective: ${data.evalObjective || "待补充"}
1308
- - Primary metrics: ${data.evalPrimaryMetrics || "待补充"}
1309
- - Secondary metrics: ${data.evalSecondaryMetrics || "待补充"}
1310
- - Required terminal evidence: ${data.evalRequiredTerminalEvidence || "待补充"}
1311
- - Table plan: ${data.evalTablePlan || "待补充"}
1312
- - Metric glossary: ${data.evalMetricGlossary || "待补充"}
1313
- - Background sources: ${data.evalBackgroundSources || "待补充"}
1314
- - Method and baseline source papers: ${data.evalMethodAndBaselineSourcePapers || "待补充"}
1315
- - Method and baseline implementation source: ${data.evalMethodAndBaselineImplementationSource || "待补充"}
1316
- - Metric source papers: ${data.evalMetricSourcePapers || "待补充"}
1317
- - Metric implementation source: ${data.evalMetricImplementationSource || "待补充"}
1318
- - Comparison source papers: ${data.evalComparisonSourcePapers || "待补充"}
1319
- - Comparison implementation source: ${data.evalComparisonImplementationSource || "待补充"}
1320
- - Deviation from original implementation: ${data.evalDeviationFromOriginalImplementation || "待补充"}
1321
- - Evaluation setting semantics: ${data.evalEvaluationSettingSemantics || "待补充"}
1322
- - Visibility and leakage risks: ${data.evalVisibilityAndLeakageRisks || "待补充"}
1323
- - Anchor and label policy: ${data.evalAnchorAndLabelPolicy || "待补充"}
1324
- - Scale and comparability policy: ${data.evalScaleAndComparabilityPolicy || "待补充"}
1325
- - Metric validity checks: ${data.evalMetricValidityChecks || "待补充"}
1326
- - Comparison validity checks: ${data.evalComparisonValidityChecks || "待补充"}
1327
- - Statistical validity checks: ${data.evalStatisticalValidityChecks || "待补充"}
1328
- - Claim boundary: ${data.evalClaimBoundary || "待补充"}
1329
- - Integrity self-check: ${data.evalIntegritySelfCheck || "待补充"}
1330
- - Anomaly signals: ${data.evalAnomalySignals || "待补充"}
1331
- - Implementation reality checks: ${data.evalImplementationRealityChecks || "待补充"}
1332
- - Alternative explanations considered: ${data.evalAlternativeExplanationsConsidered || "待补充"}
1333
- - Cross-check method: ${data.evalCrossCheckMethod || "待补充"}
1334
- - Best-supported interpretation: ${data.evalBestSupportedInterpretation || "待补充"}
1335
- - Escalation threshold: ${data.evalEscalationThreshold || "待补充"}
1336
- - Experiment ladder: ${data.evalExperimentLadder || "待补充"}
1337
- - Benchmark ladder: ${data.evalBenchmarkLadder || "待补充"}
1338
- - Promotion gate: ${data.evalPromotionGate || "待补充"}
1339
- - Dataset package: ${data.datasetPackage || "待补充"}
1340
- - Dataset years: ${data.datasetYears || "待补充"}
1341
- - Benchmark role: ${data.benchmarkRole || "待补充"}
1342
- - Benchmark rationale: ${data.benchmarkRationale || "待补充"}
1343
- - Comparison suite: ${data.comparisonMethods || "待补充"}
1344
- - Comparison rationale: ${data.comparisonRationale || "待补充"}
1345
- - Comparison evidence: ${data.comparisonEvidence || "待补充"}
1346
- - Source basis: ${data.datasetSources || "待补充"}
1347
- - Representative papers: ${data.datasetPapers || "待补充"}
1228
+ - Strongest supported claim: ${data.claim || "待补充"}
1348
1229
 
1349
1230
  ## 主要风险
1350
1231
 
@@ -1366,74 +1247,17 @@ ${data.problem || "待补充"}
1366
1247
 
1367
1248
  return `# Session Brief
1368
1249
 
1369
- ## Active Stage
1250
+ ## Immediate Focus
1370
1251
 
1371
1252
  - Stage: ${data.stage || "TBD"}
1253
+ - Current objective: ${data.workflowObjective || "TBD"}
1254
+ - Immediate next action: ${data.immediateAction || "TBD"}
1372
1255
 
1373
- ## Mission
1374
-
1375
- ${data.problem || "TBD"}
1376
-
1377
- ## Best Current Path
1256
+ ## Mission Snapshot
1378
1257
 
1258
+ - Mission: ${data.problem || "TBD"}
1379
1259
  - Approved direction: ${data.direction || "TBD"}
1380
- - Why this is the active path: ${data.why || "This is the approved direction"}
1381
- - Auto mode: ${data.autoStatus || "inactive"}
1382
- - Auto objective: ${data.autoObjective || "TBD"}
1383
- - Auto rung: ${data.autoCurrentRung || "TBD"}
1384
- - Auto watch target: ${data.autoWatchTarget || "TBD"}
1385
- - Auto decision: ${data.autoDecision || "TBD"}
1386
- - Auto terminal goal: ${joinNonEmpty([data.autoGoalType, data.autoGoalTarget], " | ") || "TBD"}
1387
- - Auto goal reached: ${data.autoGoalReached || "TBD"}
1388
- - Auto stop reason: ${data.autoStopReason || "TBD"}
1389
- - Auto final artifact: ${data.autoFinalArtifact || "TBD"}
1390
- - Auto final rung: ${data.autoFinalRung || "TBD"}
1391
- - Collaborator report mode: ${data.reportMode || "TBD"}
1392
- - Canonical context readiness: ${data.reportReadiness || "TBD"}
1393
- - Why this report mode is active: ${data.reportModeReason || "TBD"}
1394
- - Method name: ${data.methodName || "TBD"}
1395
- - Contribution bullets: ${data.contributionBullets || "TBD"}
1396
- - Eval objective: ${data.evalObjective || "TBD"}
1397
- - Primary metrics: ${data.evalPrimaryMetrics || "TBD"}
1398
- - Secondary metrics: ${data.evalSecondaryMetrics || "TBD"}
1399
- - Required terminal evidence: ${data.evalRequiredTerminalEvidence || "TBD"}
1400
- - Table plan: ${data.evalTablePlan || "TBD"}
1401
- - Metric glossary: ${data.evalMetricGlossary || "TBD"}
1402
- - Background sources: ${data.evalBackgroundSources || "TBD"}
1403
- - Method and baseline source papers: ${data.evalMethodAndBaselineSourcePapers || "TBD"}
1404
- - Method and baseline implementation source: ${data.evalMethodAndBaselineImplementationSource || "TBD"}
1405
- - Metric source papers: ${data.evalMetricSourcePapers || "TBD"}
1406
- - Metric implementation source: ${data.evalMetricImplementationSource || "TBD"}
1407
- - Comparison source papers: ${data.evalComparisonSourcePapers || "TBD"}
1408
- - Comparison implementation source: ${data.evalComparisonImplementationSource || "TBD"}
1409
- - Deviation from original implementation: ${data.evalDeviationFromOriginalImplementation || "TBD"}
1410
- - Evaluation setting semantics: ${data.evalEvaluationSettingSemantics || "TBD"}
1411
- - Visibility and leakage risks: ${data.evalVisibilityAndLeakageRisks || "TBD"}
1412
- - Anchor and label policy: ${data.evalAnchorAndLabelPolicy || "TBD"}
1413
- - Scale and comparability policy: ${data.evalScaleAndComparabilityPolicy || "TBD"}
1414
- - Metric validity checks: ${data.evalMetricValidityChecks || "TBD"}
1415
- - Comparison validity checks: ${data.evalComparisonValidityChecks || "TBD"}
1416
- - Statistical validity checks: ${data.evalStatisticalValidityChecks || "TBD"}
1417
- - Claim boundary: ${data.evalClaimBoundary || "TBD"}
1418
- - Integrity self-check: ${data.evalIntegritySelfCheck || "TBD"}
1419
- - Anomaly signals: ${data.evalAnomalySignals || "TBD"}
1420
- - Implementation reality checks: ${data.evalImplementationRealityChecks || "TBD"}
1421
- - Alternative explanations considered: ${data.evalAlternativeExplanationsConsidered || "TBD"}
1422
- - Cross-check method: ${data.evalCrossCheckMethod || "TBD"}
1423
- - Best-supported interpretation: ${data.evalBestSupportedInterpretation || "TBD"}
1424
- - Escalation threshold: ${data.evalEscalationThreshold || "TBD"}
1425
- - Experiment ladder: ${data.evalExperimentLadder || "TBD"}
1426
- - Benchmark ladder: ${data.evalBenchmarkLadder || "TBD"}
1427
- - Promotion gate: ${data.evalPromotionGate || "TBD"}
1428
- - Dataset package: ${data.datasetPackage || "TBD"}
1429
- - Dataset years: ${data.datasetYears || "TBD"}
1430
- - Benchmark role: ${data.benchmarkRole || "TBD"}
1431
- - Benchmark rationale: ${data.benchmarkRationale || "TBD"}
1432
- - Comparison suite: ${data.comparisonMethods || "TBD"}
1433
- - Comparison rationale: ${data.comparisonRationale || "TBD"}
1434
- - Comparison evidence: ${data.comparisonEvidence || "TBD"}
1435
- - Source basis: ${data.datasetSources || "TBD"}
1436
- - Representative papers: ${data.datasetPapers || "TBD"}
1260
+ - Strongest supported claim: ${data.claim || "TBD"}
1437
1261
 
1438
1262
  ## Main Risk
1439
1263