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.
- package/README.md +3 -0
- package/README.zh-CN.md +3 -0
- package/bin/superlab.cjs +11 -0
- package/lib/auto_contracts.cjs +2 -4
- package/lib/auto_runner.cjs +1 -2
- package/lib/context.cjs +52 -228
- package/lib/i18n.cjs +300 -40
- package/lib/lab_idea_contract.json +8 -0
- 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 +3 -5
- 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 +3 -5
- package/package-assets/shared/lab/.managed/scripts/validate_idea_artifact.py +354 -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 +38 -3
- package/package-assets/shared/lab/.managed/scripts/validate_section_draft.py +181 -0
- package/package-assets/shared/lab/.managed/templates/idea-source-log.md +37 -0
- package/package-assets/shared/lab/.managed/templates/idea.md +79 -0
- package/package-assets/shared/lab/.managed/templates/paper-plan.md +24 -0
- package/package-assets/shared/lab/config/workflow.json +2 -1
- package/package-assets/shared/lab/context/auto-mode.md +2 -2
- package/package-assets/shared/lab/context/next-action.md +4 -4
- package/package-assets/shared/lab/context/session-brief.md +6 -10
- package/package-assets/shared/lab/context/state.md +2 -0
- package/package-assets/shared/lab/context/summary.md +14 -3
- package/package-assets/shared/lab/system/core.md +4 -3
- package/package-assets/shared/skills/lab/SKILL.md +33 -24
- 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/references/workflow.md +14 -0
- package/package-assets/shared/skills/lab/stages/auto.md +10 -3
- package/package-assets/shared/skills/lab/stages/data.md +1 -2
- package/package-assets/shared/skills/lab/stages/framing.md +1 -2
- package/package-assets/shared/skills/lab/stages/idea.md +56 -13
- package/package-assets/shared/skills/lab/stages/iterate.md +3 -1
- package/package-assets/shared/skills/lab/stages/report.md +2 -1
- package/package-assets/shared/skills/lab/stages/review.md +3 -1
- package/package-assets/shared/skills/lab/stages/run.md +4 -1
- package/package-assets/shared/skills/lab/stages/spec.md +2 -1
- package/package-assets/shared/skills/lab/stages/write.md +25 -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/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() !== "" &&
|
package/lib/auto_contracts.cjs
CHANGED
|
@@ -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,
|
|
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;
|
package/lib/auto_runner.cjs
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
-
|
|
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
|
-
-
|
|
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: ${
|
|
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
|
-
-
|
|
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
|
-
##
|
|
1199
|
+
## After Completion
|
|
1262
1200
|
|
|
1263
|
-
- Next action: ${
|
|
1201
|
+
- Next action: ${followup}
|
|
1264
1202
|
|
|
1265
|
-
## If
|
|
1203
|
+
## If Blocked
|
|
1266
1204
|
|
|
1267
1205
|
- Fallback action: ${data.blocker ? `Resolve blocker: ${data.blocker}` : "Route back to review or iterate"}
|
|
1268
1206
|
|
|
1269
|
-
##
|
|
1207
|
+
## Escalation
|
|
1270
1208
|
|
|
1271
1209
|
- Question: ${data.humanDecision || "none"}
|
|
1272
|
-
-
|
|
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
|
-
-
|
|
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
|
-
##
|
|
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
|
-
-
|
|
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
|
|