superlab 0.1.70 → 0.1.72

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 (56) hide show
  1. package/lib/i18n.cjs +178 -6
  2. package/lib/install.cjs +1 -0
  3. package/lib/lab_idea_contract.json +4 -4
  4. package/lib/lab_write_contract.json +1 -1
  5. package/package-assets/claude/commands/lab/idea.md +1 -1
  6. package/package-assets/claude/commands/lab/report.md +1 -0
  7. package/package-assets/claude/commands/lab/write.md +1 -0
  8. package/package-assets/claude/commands/lab-idea.md +1 -1
  9. package/package-assets/claude/commands/lab-report.md +1 -0
  10. package/package-assets/claude/commands/lab-write.md +1 -0
  11. package/package-assets/claude/commands/lab:idea.md +1 -1
  12. package/package-assets/claude/commands/lab:report.md +1 -0
  13. package/package-assets/claude/commands/lab:write.md +1 -0
  14. package/package-assets/claude/commands/lab/357/274/232idea.md +1 -1
  15. package/package-assets/claude/commands/lab/357/274/232report.md +1 -0
  16. package/package-assets/claude/commands/lab/357/274/232write.md +1 -0
  17. package/package-assets/codex/prompts/lab/idea.md +1 -1
  18. package/package-assets/codex/prompts/lab/report.md +1 -0
  19. package/package-assets/codex/prompts/lab/write.md +1 -1
  20. package/package-assets/codex/prompts/lab-idea.md +1 -1
  21. package/package-assets/codex/prompts/lab-report.md +1 -0
  22. package/package-assets/codex/prompts/lab-write.md +1 -1
  23. package/package-assets/codex/prompts/lab:idea.md +1 -1
  24. package/package-assets/codex/prompts/lab:report.md +1 -0
  25. package/package-assets/codex/prompts/lab:write.md +1 -1
  26. package/package-assets/codex/prompts/lab/357/274/232idea.md +1 -1
  27. package/package-assets/codex/prompts/lab/357/274/232report.md +1 -0
  28. package/package-assets/codex/prompts/lab/357/274/232write.md +1 -1
  29. package/package-assets/shared/lab/.managed/scripts/validate_collaborator_report.py +55 -1
  30. package/package-assets/shared/lab/.managed/scripts/validate_idea_artifact.py +75 -0
  31. package/package-assets/shared/lab/.managed/scripts/validate_section_draft.py +119 -0
  32. package/package-assets/shared/lab/.managed/scripts/validate_stage_report.py +547 -0
  33. package/package-assets/shared/lab/.managed/templates/final-report.md +11 -0
  34. package/package-assets/shared/lab/.managed/templates/idea.md +18 -0
  35. package/package-assets/shared/lab/.managed/templates/main-tables.md +6 -0
  36. package/package-assets/shared/lab/.managed/templates/paper-plan.md +9 -0
  37. package/package-assets/shared/lab/.managed/templates/stage-report.md +71 -0
  38. package/package-assets/shared/lab/.managed/templates/write-iteration.md +13 -0
  39. package/package-assets/shared/skills/lab/SKILL.md +23 -0
  40. package/package-assets/shared/skills/lab/references/paper-writing/abstract.md +14 -0
  41. package/package-assets/shared/skills/lab/references/paper-writing/conclusion.md +13 -0
  42. package/package-assets/shared/skills/lab/references/paper-writing/experiments.md +19 -0
  43. package/package-assets/shared/skills/lab/references/paper-writing/introduction.md +17 -2
  44. package/package-assets/shared/skills/lab/references/paper-writing/method.md +10 -0
  45. package/package-assets/shared/skills/lab/references/paper-writing/section-style-policies.md +10 -1
  46. package/package-assets/shared/skills/lab/stages/auto.md +26 -0
  47. package/package-assets/shared/skills/lab/stages/data.md +9 -0
  48. package/package-assets/shared/skills/lab/stages/framing.md +9 -0
  49. package/package-assets/shared/skills/lab/stages/idea.md +33 -13
  50. package/package-assets/shared/skills/lab/stages/iterate.md +9 -0
  51. package/package-assets/shared/skills/lab/stages/report.md +17 -0
  52. package/package-assets/shared/skills/lab/stages/review.md +9 -0
  53. package/package-assets/shared/skills/lab/stages/run.md +9 -0
  54. package/package-assets/shared/skills/lab/stages/spec.md +9 -0
  55. package/package-assets/shared/skills/lab/stages/write.md +18 -0
  56. package/package.json +1 -1
@@ -0,0 +1,71 @@
1
+ # Stage Report
2
+
3
+ ## Rule Preflight
4
+
5
+ - Rule source file:
6
+ - Rule source revision:
7
+ - Project version:
8
+ - Resolved stage:
9
+ - Resolved mode:
10
+ - Resolved target:
11
+ - Preflight stamp:
12
+ - Override reason, if any:
13
+
14
+ ## Stage Identity
15
+
16
+ - Stage:
17
+ - Target:
18
+ - Date:
19
+ - Status:
20
+ - Primary artifact:
21
+ - Next owner:
22
+
23
+ ## Requested Outcome Mapping
24
+
25
+ - Original request:
26
+ - Requested deliverables:
27
+ - Completion mapping:
28
+ - Response shape:
29
+
30
+ ## Repair Control
31
+
32
+ - Repair budget:
33
+ - Repair attempts used:
34
+ - Current failure class:
35
+ - Repair hypothesis:
36
+ - Evidence-changing knobs changed:
37
+ - Ordinary engineering fixes allowed:
38
+ - Frozen core unchanged:
39
+ - Forbidden repairs avoided:
40
+ - Confirmation check:
41
+
42
+ ## Core Explanation Table
43
+
44
+ | Question | Plain Answer |
45
+ |---|---|
46
+ | 这是什么阶段? | |
47
+ | 背景是什么? | |
48
+ | 为什么现在要做? | |
49
+ | 这轮具体做了什么? | |
50
+ | 怎么做的? | |
51
+ | 结果好的地方是什么? | |
52
+ | 结果坏的地方是什么? | |
53
+ | 这验证了什么? | |
54
+ | 还没有验证什么? | |
55
+ | 是否需要改进?为什么? | |
56
+ | 下一步怎么改?为什么这样改? | |
57
+ | 关键证据在哪里? | |
58
+ | 现在应该继续、停止、重做还是升级? | |
59
+
60
+ ## Evidence And Artifacts
61
+
62
+ - Primary artifact:
63
+ - Supporting artifacts:
64
+ - Validation commands:
65
+ - Known gaps:
66
+
67
+ ## Next Action
68
+
69
+ - Decision: continue / stop / revise / rerun / escalate / handoff
70
+ - Concrete next step:
71
+ - Why this next step:
@@ -38,6 +38,19 @@
38
38
  - Terminology consistency:
39
39
  - Five-dimension self-review outcome:
40
40
 
41
+ ## Insight Integration
42
+
43
+ - Core insight anchor used:
44
+ - Section role in the insight chain:
45
+ - Common assumption or surface explanation challenged:
46
+ - Mechanism or why-explanation added:
47
+ - Evidence or diagnostic result tied to the insight:
48
+ - Did the prose avoid an isolated `Our Insights`-style section:
49
+ - If the section is Introduction, what cognitive contrast was established:
50
+ - If the section is Method, which design choice follows from the insight:
51
+ - If the section is Experiments, which mechanism did the result or ablation diagnose:
52
+ - If the section is Conclusion, what broader principle or action implication was stated:
53
+
41
54
  ## Terminology Clarity
42
55
 
43
56
  - Key terms introduced or revised this round:
@@ -42,6 +42,13 @@ Use this skill when the user invokes `/lab:*` or asks for the structured researc
42
42
  - Generate the `Rule Preflight` block from `.lab/.managed/rule-manifest.json` with the managed preflight renderer instead of handwriting it from memory.
43
43
  - Treat missing, stale, or contradictory `Rule Preflight` data as a stage-contract failure.
44
44
  - Project-installed rules take priority over model memory. If remembered patterns conflict with the installed rule source, follow the installed source recorded in `.lab/.managed/rule-manifest.json`.
45
+ - Before a `/lab:*` stage reaches a final handoff, write or update one plain-language stage report under `.lab/stage-reports/` from `.lab/.managed/templates/stage-report.md`.
46
+ - The stage report must include `Requested Outcome Mapping`: the user's original request, requested deliverables, completion status for each requested deliverable, and the response shape the user should see.
47
+ - The stage report must include `Repair Control`. For non-repair stages, mark the section as not applicable; for auto repair, record budget, attempts used, failure class, repair hypothesis, evidence-changing knobs, ordinary engineering fixes that remain allowed, unchanged frozen core, forbidden repairs avoided, and confirmation check.
48
+ - The stage report must include a filled `Core Explanation Table` that answers, in workflow language and plain language: background, why now, what was done, how it was done, what worked, what did not work, what was verified, what remains unverified, whether improvement is needed and why, how to improve and why, key evidence, and the continue/stop/revise/rerun/escalate/handoff decision.
49
+ - If the stage says improvement is needed, do not choose `stop` unless the next action states a concrete terminal boundary such as budget exhaustion, frozen-core risk, safety or integrity failure, impossible target, or a required approval boundary. Otherwise choose `continue`, `revise`, `rerun`, or `escalate`.
50
+ - Stage reports are closeout and handoff artifacts, not a new user command and not a replacement for stage-specific artifacts such as idea memos, iteration reports, final reports, or write-iteration records.
51
+ - Run `.lab/.managed/scripts/validate_stage_report.py --stage-report <stage-report> --stage <stage>` before claiming the stage is complete, and include the stage-report path plus validation result in the final user-facing summary.
45
52
  - Final paper output should default to LaTeX, and its manuscript language should be decided separately from the workflow language.
46
53
  - Separate sourced facts from model-generated hypotheses.
47
54
  - Preserve failed runs, failed ideas, and limitations.
@@ -69,6 +76,9 @@ Use this skill when the user invokes `/lab:*` or asks for the structured researc
69
76
  - Ask one clarifying question at a time when critical ambiguity remains.
70
77
  - State the scenario, the problem, the failure case, and why the problem matters before proposing solutions.
71
78
  - Classify the idea by contribution category and breakthrough level.
79
+ - Separate contribution from insight. Contribution is what the work adds; insight is what the work teaches and why it should matter beyond the artifact.
80
+ - Write one reusable core insight anchor sentence so later write and report stages can keep a stable story.
81
+ - Require an insight evidence chain before final recommendation: observation, why existing explanations fail, core insight, mechanism, validation tests, generalization or action implication, and prediction.
72
82
  - Compare against existing methods explicitly and state why the idea should be better.
73
83
  - Include a closest-prior-work comparison and a plain-language description of how the proposed direction would work.
74
84
  - In the final user-facing summary, state what current methods do, why they still fall short, how the proposed direction differs, the rough approach, the main risk, and where to read `.lab/writing/idea.md` plus `.lab/writing/idea-source-log.md`.
@@ -147,6 +157,14 @@ Use this skill when the user invokes `/lab:*` or asks for the structured researc
147
157
  - Poll long-running commands until they complete, time out, or hit a stop condition.
148
158
  - Update `.lab/context/auto-status.md`, `.lab/context/workflow-state.md`, `.lab/context/decisions.md`, `.lab/context/data-decisions.md`, and `.lab/context/evidence-index.md` as the campaign advances, then refresh the derived handoff files.
149
159
  - Keep an explicit approval gate when a proposed action would leave the frozen core defined by the auto-mode contract.
160
+ - A failed metric gate is not by itself a terminal stop in `L2` or `L3` when `iterate` is allowed and loop budget remains. First classify the miss as recoverable or terminal.
161
+ - Treat ordinary target misses, weak effects, overly strong effects, low coverage, placement or extraction mismatch, threshold mismatch, candidate-generation weakness, and no-op deltas as recoverable until a bounded repair attempt rules them out.
162
+ - For recoverable misses, run at least one bounded repair iteration inside the approved envelope before stopping. Generic repair knobs include intervention strength, delivery or placement, detector or scoring threshold, candidate generation, sampling, baseline alignment, extraction/parser fixes, calibration, and control checks.
163
+ - Ordinary engineering fixes do not count against the repair budget when they do not change evidence interpretation: path fixes, dependency fixes, parser bugs, data loading bugs, runner retries, logging, cache invalidation, and result serialization can be fixed directly inside the current envelope.
164
+ - Count evidence-changing repairs against the repair budget: changes to intervention strength, delivery semantics, scoring thresholds, sampling, candidate generation, baseline alignment, calibration, extraction behavior that changes observed evidence, or controls that change the evaluated set.
165
+ - Forbidden repair moves require explicit approval and cannot be used to claim success: changing the primary metric definition, relaxing target thresholds, deleting hard cases, changing labels or ground truth, switching the final test split, changing paper-facing claims, or changing threat model, reviewer profile, dataset scope, or frozen core.
166
+ - A repair pilot that passes is not enough for promotion or final success. Require a confirmation check such as a new seed, holdout, control batch, repeated run, or anomaly check before promotion.
167
+ - Stop without repair only when the report names the terminal boundary: exhausted budget, frozen-core change, approval-required scope change, safety or integrity risk, invalid metric, impossible target, or repeated failed repair attempts.
150
168
 
151
169
  ### `/lab:spec`
152
170
 
@@ -214,6 +232,8 @@ Use this skill when the user invokes `/lab:*` or asks for the structured researc
214
232
  - Aggregate them with `.lab/.managed/scripts/summarize_iterations.py`.
215
233
  - Write the final document with `.lab/.managed/templates/final-report.md`, the managed table summary with `.lab/.managed/templates/main-tables.md`, and the internal handoff with `.lab/.managed/templates/artifact-status.md`.
216
234
  - Keep failed attempts and limitations visible.
235
+ - Put the report-level insight near the top: what was learned beyond the produced artifact, what evidence supports it, what action or design implication follows, and what boundary still applies.
236
+ - Use main tables and ablations as diagnostic evidence for the insight rather than only containers for metric values.
217
237
  - Update `.lab/context/mission.md`, `.lab/context/eval-protocol.md`, `.lab/context/workflow-state.md`, and `.lab/context/evidence-index.md` with report-level handoff notes, then refresh derived views.
218
238
  - If canonical context is still skeletal, hydrate the smallest trustworthy version from frozen artifacts before finalizing the report.
219
239
  - If collaborator-critical fields remain missing after hydration, downgrade to an `artifact-anchored interim report` instead of presenting a final collaborator-ready report.
@@ -246,6 +266,8 @@ Use this skill when the user invokes `/lab:*` or asks for the structured researc
246
266
  - If a section uses canonical short names or variant labels before the section that formally defines them has been drafted, add a local naming bridge in that section and then keep those labels stable.
247
267
  - Keep one canonical natural-language paper-facing name per concept.
248
268
  - Once a paper-facing model or ablation label is chosen, reuse the canonical label instead of replacing it with a narrative alias in later prose, tables, or captions.
269
+ - Carry the same core insight anchor through the paper: Introduction creates the contrast, Method turns it into design motivation, Experiments diagnose it with evidence, and Conclusion states the broader principle and boundary.
270
+ - Do not create a standalone `Our Insights` section just to satisfy this; dissolve the insight into motivation, mechanism, evidence, and limitations.
249
271
  - Before drafting or polishing, check the current section block in `skills/lab/references/paper-writing/section-style-policies.md` and follow its encouraged, discouraged, and banned expression lists.
250
272
  - When the user provides reference PDFs, paper URLs, local reference-paper paths, or asks to write by reference, stay within `/lab:write` but switch to reference-guided deep writing: extract structure, map section/subsection slots, paragraph roles, and table/figure roles to the current paper, record the mapping, and only then draft prose.
251
273
  - The reference-consumption plan is not sufficient by itself. The current section must visibly realize the adopted structure slots through subsection or paragraph anchors, table/figure placement, local bridges, and reader-facing prose.
@@ -317,6 +339,7 @@ Use this skill when the user invokes `/lab:*` or asks for the structured researc
317
339
  - No auto start without an explicit autonomy level and `Approval status: approved`.
318
340
  - No final report without validated normalized results.
319
341
  - No paper-writing round without stable report artifacts, an approved framing artifact, evidence links, and LaTeX manuscript output.
342
+ - No stage-final handoff without a validated plain-language stage report.
320
343
  - No final-draft or export round without passing section-quality, claim-safety, and manuscript-delivery validation.
321
344
  - No final-draft or export round with mismatched `workflow_language` and `paper_language` unless the latest write iteration records the language decision audit that justified the final manuscript language and the persisted workflow-language paper-layer path.
322
345
 
@@ -57,6 +57,20 @@ Introduce the technical challenge, then use one to two sentences to present the
57
57
  4. The technical term must be easy to understand; do not create a jump in reading.
58
58
  5. This ability is very important for writing a good abstract.
59
59
 
60
+ ## Insight Anchor Rule
61
+
62
+ Use one mechanism-level insight sentence as the abstract hinge. The sentence should explain why the problem behaves as it does, not only name the proposed method.
63
+
64
+ Good shape:
65
+
66
+ 1. `We observe that [surface failure], suggesting that [root mechanism].`
67
+ 2. `This motivates [method/design], which [technical effect].`
68
+
69
+ Avoid:
70
+
71
+ 1. A standalone "Our insight is..." sentence that is disconnected from the challenge.
72
+ 2. A method-name sentence that could be deleted without changing the reader's understanding.
73
+
60
74
  ## Version 3: Multiple Contributions
61
75
 
62
76
  Version 3: When there are multiple technical contributions, describe each contribution together with its technical advantage.
@@ -12,6 +12,19 @@ Close the paper with clear takeaways and credible limitations.
12
12
  4. Add limitation paragraph.
13
13
  5. End with concrete future direction.
14
14
 
15
+ ## Insight Closeout
16
+
17
+ The conclusion should not introduce a new insight. It should restate the same core insight anchor as a supported takeaway and turn it into a broader principle or action implication.
18
+
19
+ Use this order:
20
+
21
+ 1. Evidence-backed takeaway.
22
+ 2. Broader principle implied by the takeaway.
23
+ 3. Boundary that prevents overclaiming.
24
+ 4. One future direction that follows from the boundary.
25
+
26
+ Avoid repeating the method inventory or ending with generic impact language.
27
+
15
28
  ## Limitation Guidance
16
29
 
17
30
  Prefer limitations tied to task goal/setting boundaries, for example:
@@ -20,6 +20,25 @@ Convince reviewers with complete evidence on effectiveness, causality, and pract
20
20
  - Add stress-test scenarios (more complex scenes, rarer cases, noisier inputs, or stricter constraints).
21
21
  - Report both gains and failure modes to show realistic boundaries.
22
22
 
23
+ ## Insight-Diagnostic Reading
24
+
25
+ Experiments should not only prove that a method is strong. They should diagnose whether the paper's insight is true.
26
+
27
+ For each main result, ablation, robustness check, or failure analysis, write down:
28
+
29
+ 1. Which part of the insight this experiment tests.
30
+ 2. What alternative explanation the experiment rules out or weakens.
31
+ 3. What mechanism the observed pattern supports.
32
+ 4. What boundary or failure mode remains.
33
+
34
+ Good interpretation shape:
35
+
36
+ 1. `This result supports the hypothesis that [mechanism], because [observed pattern].`
37
+ 2. `The ablation weakens the simpler explanation that [alternative], since [diagnostic contrast].`
38
+ 3. `The remaining failures indicate that [boundary], rather than [overclaim].`
39
+
40
+ Avoid paragraphs that only say "Table X shows Y improves by Z." The table already contains the number; prose should explain what the number teaches.
41
+
23
42
  ## Experiment Planning
24
43
 
25
44
  ```mermaid
@@ -56,12 +56,27 @@ graph LR
56
56
  3. What are the benefits of our contributions, why can they solve this technical challenge, and what new insight do they bring? (important)
57
57
  4. How do we use prior methods to lead readers to our solved challenge and our new insight?
58
58
 
59
+ ### Insight-driven introduction pass
60
+
61
+ Before drafting the final introduction, write one core insight anchor sentence and test whether every paragraph points toward it.
62
+
63
+ Use this causal arc:
64
+
65
+ 1. Conventional assumption or prior explanation.
66
+ 2. Observation, anomaly, or failure that this assumption does not explain.
67
+ 3. Root mechanism or insight.
68
+ 4. Method or evaluation introduced as a way to test or exploit that insight.
69
+ 5. Boundary of what the evidence can and cannot claim.
70
+
71
+ Avoid making insight a separate subsection. The introduction should let the reader feel the contrast before the method name appears.
72
+
59
73
  ### Forward story (write in this order)
60
74
 
61
75
  1. Introduce the paper's task.
62
76
  2. Use prior methods to lead to the technical challenge we solve.
63
- 3. Present xx contributions to solve this technical challenge.
64
- 4. Explain technical advantages of our contributions and explicitly express our new insight. (important)
77
+ 3. State the insight as the root explanation for that challenge.
78
+ 4. Present xx contributions to solve this technical challenge.
79
+ 5. Explain technical advantages of our contributions and explicitly express our new insight. (important)
65
80
 
66
81
  ## Section Skeleton
67
82
 
@@ -23,6 +23,15 @@ Recommended organization:
23
23
 
24
24
  3. Organize answers as a mind map or a table for clarity.
25
25
 
26
+ Add an insight-to-design row before module details:
27
+
28
+ 1. What is the paper's core insight anchor?
29
+ 2. Which failure mechanism does the method need to model, block, separate, or expose?
30
+ 3. Which design choice follows from that mechanism?
31
+ 4. What prediction would be false if the mechanism were wrong?
32
+
33
+ Method writing should read as "because this mechanism exists, this design is necessary", not as an inventory of modules.
34
+
26
35
  ## Method Writing Steps
27
36
 
28
37
  `Method writing steps: (1) draw pipeline figure sketch, (2) map subsections from the sketch, (3) plan each subsection with motivation/design/advantages, (4) write module design first, (5) then add motivation and technical advantages.`
@@ -52,6 +61,7 @@ Definition:
52
61
 
53
62
  1. Explain why this module is needed.
54
63
  2. Use problem-driven logic: because problem X exists, we design module Y.
64
+ 3. Tie the problem back to the core insight when possible, so the module feels derived rather than arbitrary.
55
65
 
56
66
  ### 3) Technical Advantages of This Module
57
67
 
@@ -19,6 +19,7 @@ These are paper-facing defaults. They are not project-specific branding rules.
19
19
  - Direct problem statements.
20
20
  - Explicit gap language tied to prior work.
21
21
  - One-sentence mechanism summaries.
22
+ - Challenge -> insight -> contribution progression.
22
23
  - Bounded result claims with concrete scope.
23
24
 
24
25
  **Discouraged expressions**
@@ -32,6 +33,7 @@ These are paper-facing defaults. They are not project-specific branding rules.
32
33
  - Unbounded superiority claims such as "universally", "always", or "in every setting".
33
34
  - Service-style or AI-assistant meta language such as "用户说", "按你的要求", "我来解释", "let me explain", or "as requested by the user".
34
35
  - Workflow-only placeholder language such as "图的意图", "资产意图", "占位符", "workflow-language", or "sync this wording".
36
+ - Standalone insight headings such as "Our Insights" when the insight is not woven into the abstract's challenge and contribution arc.
35
37
 
36
38
  ## Introduction
37
39
 
@@ -40,6 +42,7 @@ These are paper-facing defaults. They are not project-specific branding rules.
40
42
 
41
43
  **Encouraged expressions**
42
44
  - Problem -> gap -> challenge -> contribution progression.
45
+ - Common assumption -> observed anomaly -> root mechanism progression.
43
46
  - Explicit prior-work limitation statements.
44
47
  - Clear contribution bullets or equivalent prose.
45
48
  - Early explanation of task setting and scope.
@@ -53,6 +56,7 @@ These are paper-facing defaults. They are not project-specific branding rules.
53
56
  - Empty macro-importance claims such as "this problem is increasingly critical" with no concrete consequence.
54
57
  - Marketing-style first-claim language such as "revolutionary", "game-changing", or "unprecedented" without evidence.
55
58
  - Paragraphs that only praise the paper instead of stating the research gap.
59
+ - Standalone "Our Insights" sections; the insight should be part of the motivation and gap logic.
56
60
  - Service-style or AI-assistant meta language such as "用户说", "按你的要求", "我来解释", "let me explain", or "as requested by the user".
57
61
  - Workflow-only placeholder language such as "图的意图", "资产意图", "占位符", "workflow-language", or "sync this wording".
58
62
 
@@ -85,6 +89,7 @@ These are paper-facing defaults. They are not project-specific branding rules.
85
89
 
86
90
  **Encouraged expressions**
87
91
  - Motivation -> design -> technical effect progression.
92
+ - Insight -> required design consequence progression.
88
93
  - Explicit role statements for modules or steps.
89
94
  - Concrete descriptions of information flow and interaction.
90
95
  - Local naming bridges when canonical labels appear before their defining section.
@@ -97,6 +102,7 @@ These are paper-facing defaults. They are not project-specific branding rules.
97
102
  **Banned expressions / moves**
98
103
  - Marketing-style or self-promotional wording such as "elegant", "powerful", "dramatically stronger", or "significantly outperforms prior methods" when used as prose decoration rather than evidence-backed result reporting.
99
104
  - Explaining the method by saying it is "better", "stronger", or "more advanced" without saying how it works.
105
+ - Method subsections that read like API documentation without explaining which mechanism or insight requires the design.
100
106
  - Introducing new narrative aliases for canonical model or ablation labels after they have already been locked.
101
107
  - Service-style or AI-assistant meta language such as "用户说", "按你的要求", "我来解释", "let me explain", or "as requested by the user".
102
108
  - Workflow-only placeholder language such as "图的意图", "资产意图", "占位符", "workflow-language", or "sync this wording".
@@ -109,13 +115,15 @@ These are paper-facing defaults. They are not project-specific branding rules.
109
115
  **Encouraged expressions**
110
116
  - Direct statements of protocol, metric definition, and comparison scope.
111
117
  - Immediate result reporting with concrete numbers.
112
- - Short interpretation tied to the table or figure.
118
+ - Short diagnostic interpretation tied to the mechanism tested by the table or figure.
119
+ - Ablation prose that says which alternative explanation is weakened.
113
120
  - Explicit limitations or boundary statements after the result.
114
121
 
115
122
  **Discouraged expressions**
116
123
  - Long policy or deployment discussion after every table.
117
124
  - Re-explaining the same metric in every paragraph.
118
125
  - Paragraphs that only restate the table without synthesis.
126
+ - Result paragraphs that say only "higher/lower/better" without explaining what the pattern teaches.
119
127
 
120
128
  **Banned expressions / moves**
121
129
  - Meta-reader guidance such as "这样读者可以……", "the reader can first...", or "this table lets the reader...".
@@ -133,6 +141,7 @@ These are paper-facing defaults. They are not project-specific branding rules.
133
141
 
134
142
  **Encouraged expressions**
135
143
  - Short recap of the paper's supported findings.
144
+ - Broader principle implied by the supported findings.
136
145
  - Boundary or limitation statement.
137
146
  - One concrete next step or open question.
138
147
 
@@ -125,6 +125,23 @@
125
125
  - Before each rung and before each success, stop, or promotion decision, re-check the generic academic-risk questions: setting semantics, visibility/leakage, anchor or label policy, scale comparability, metric validity, comparison validity, statistical validity, claim boundary, and integrity self-check.
126
126
  - Before each success, stop, or promotion decision, also re-check the anomaly policy: whether anomaly signals fired, whether simpler explanations were ruled out, whether a cross-check was performed, and whether the current interpretation is still the narrowest supported one.
127
127
 
128
+ ## Gate Miss And Repair Loop
129
+
130
+ - A gate miss is not automatically a terminal stop for `L2` or `L3` when `iterate` is allowed and the loop budget remains.
131
+ - After any failed metric gate, classify the miss before writing a terminal outcome:
132
+ - recoverable: ordinary target miss, weak effect, overly strong effect, low coverage, placement or extraction mismatch, threshold mismatch, candidate-generation weakness, no-op delta, or noisy split
133
+ - terminal: budget exhausted, frozen-core change required, approval-required scope change, safety or integrity risk, invalid metric, impossible target, or repeated failed repair attempts
134
+ - For a recoverable miss, run at least one bounded repair iteration inside the approved envelope before stopping. The repair must state the hypothesis, the specific knob changed, the unchanged frozen core, and the validation command.
135
+ - Generic repair knobs include intervention strength, delivery channel or placement, detector/scoring threshold, candidate generation, sampling or stratification, baseline alignment, extraction/parser behavior, calibration, and control checks.
136
+ - Separate ordinary engineering fixes from evidence-changing repairs. Ordinary fixes such as path repair, parser bugs, dependency setup, data loading, runner retry, logging, cache invalidation, and result serialization should be fixed directly and do not spend repair budget when they do not change evidence interpretation.
137
+ - Evidence-changing repairs must spend repair budget and be logged: changes to intervention strength, delivery semantics, scoring thresholds, sampling, candidate generation, baseline alignment, calibration, extraction behavior that changes observed evidence, or evaluated control set.
138
+ - Do not over-constrain problem solving: a repair may change multiple coupled knobs when the hypothesis requires it, but the report must name every changed knob and explain why the knobs are coupled.
139
+ - Forbidden repair moves cannot be used to claim success without explicit approval: changing the primary metric definition, relaxing target thresholds, deleting hard cases, changing labels or ground truth, switching the final test split, changing paper-facing claims, or changing threat model, reviewer profile, dataset scope, or frozen core.
140
+ - A repair pilot that passes must go through a confirmation check before promotion or final success. Valid confirmation includes a new seed, holdout, control batch, repeated run, anomaly check, or other predeclared cross-check.
141
+ - For `L3`, prefer continuing through the repair ladder until pass, terminal boundary, or budget exhaustion. Do not pause merely because the first pilot failed.
142
+ - If stopping after a miss, the final outcome and stage report must name the terminal boundary. "The gate failed" alone is not a sufficient stop reason when a plausible repair remains.
143
+ - The user-facing final answer must start from the user's requested deliverables: list each requested table, artifact, or objective; mark completed, failed-gate, repaired, not promoted, or blocked; then give evidence paths and the next action.
144
+
128
145
  ## Minimum Procedure
129
146
 
130
147
  1. Validate the auto-mode contract
@@ -194,3 +211,12 @@
194
211
  - If the user chooses to convert, persist `paper_language_finalization_decision: convert-to-paper-language`
195
212
  - While the real experiment process is still alive, emit only a progress update and keep waiting. Do not present a terminal summary for that rung until the process exits or the rung hits an explicit stop boundary.
196
213
  - While the loop is healthy, do not ask the user to trigger the next poll. Keep polling until a meaningful change, keepalive boundary, stop boundary, escalation boundary, or terminal boundary is reached.
214
+
215
+ ## Stage Report Closeout
216
+
217
+ - At every stop, failure, escalation, or final handoff, write or update `.lab/stage-reports/<date>--auto--<target>.md` from `.lab/.managed/templates/stage-report.md`.
218
+ - Fill `Requested Outcome Mapping` before the core table so the final answer can be checked against the user's original request rather than only against internal stage state.
219
+ - Fill `Repair Control` with repair budget, attempts used, failure class, repair hypothesis, evidence-changing knobs, ordinary engineering fixes still allowed, unchanged frozen core, forbidden repairs avoided, and confirmation check.
220
+ - Fill the `Core Explanation Table` in plain language: background, why now, what ran, how the loop ran, what worked, what did not work, what was verified, what remains unverified, what needs improvement and why, how to improve and why, key evidence, and the continue/stop/revise/rerun/escalate/handoff decision.
221
+ - If the table says improvement is needed, the next action may be `stop` only when a terminal boundary is explicitly named; otherwise choose `continue`, `revise`, `rerun`, or `escalate`.
222
+ - Run `.lab/.managed/scripts/validate_stage_report.py --stage-report <stage-report> --stage auto` and include the report path plus validation result in the final user-facing summary.
@@ -66,3 +66,12 @@
66
66
  6. Recommended approved dataset package
67
67
  7. Risks and exclusions
68
68
  8. Approval gate
69
+
70
+ ## Stage Report Closeout
71
+
72
+ - Before final handoff, write or update `.lab/stage-reports/<date>--data--<target>.md` from `.lab/.managed/templates/stage-report.md`.
73
+ - Fill `Requested Outcome Mapping` before the core table so the final answer can be checked against the user's original request rather than only against internal stage state.
74
+ - Fill `Repair Control`; if no repair loop ran, mark it as not applicable and state that ordinary drafting or evidence fixes remain allowed inside the stage contract.
75
+ - Fill the `Core Explanation Table` in plain language: background, why now, what changed, how the dataset package was chosen, what worked, what did not work, what was verified, what remains unverified, what needs improvement and why, how to improve and why, key evidence, and the continue/stop/revise/rerun/escalate/handoff decision.
76
+ - If the table says improvement is needed, the next action may be `stop` only when a terminal boundary is explicitly named; otherwise choose `continue`, `revise`, `rerun`, or `escalate`.
77
+ - Run `.lab/.managed/scripts/validate_stage_report.py --stage-report <stage-report> --stage data` and include the report path plus validation result in the final user-facing summary.
@@ -69,3 +69,12 @@
69
69
  5. Recommended framing pack
70
70
  6. Forbidden claims and wording
71
71
  7. Approval gate
72
+
73
+ ## Stage Report Closeout
74
+
75
+ - Before final handoff, write or update `.lab/stage-reports/<date>--framing--<target>.md` from `.lab/.managed/templates/stage-report.md`.
76
+ - Fill `Requested Outcome Mapping` before the core table so the final answer can be checked against the user's original request rather than only against internal stage state.
77
+ - Fill `Repair Control`; if no repair loop ran, mark it as not applicable and state that ordinary drafting or evidence fixes remain allowed inside the stage contract.
78
+ - Fill the `Core Explanation Table` in plain language: background, why now, what naming or framing changed, how it was checked, what worked, what did not work, what was verified, what remains unverified, what needs improvement and why, how to improve and why, key evidence, and the continue/stop/revise/rerun/escalate/handoff decision.
79
+ - If the table says improvement is needed, the next action may be `stop` only when a terminal boundary is explicitly named; otherwise choose `continue`, `revise`, `rerun`, or `escalate`.
80
+ - Run `.lab/.managed/scripts/validate_stage_report.py --stage-report <stage-report> --stage framing` and include the report path plus validation result in the final user-facing summary.
@@ -16,6 +16,8 @@
16
16
  - rough plain-language approach description
17
17
  - evaluation sketch with the evaluation subject, any proxy or simulator, the main outcome to observe, and the main validity risk
18
18
  - tentative contributions stated at idea level, not final paper-facing wording
19
+ - explicit contribution-vs-insight separation: contribution says what the work adds, insight says what the work teaches
20
+ - insight evidence chain: observation, why existing explanations fail, core insight, mechanism, validation tests, generalization or action implication, and prediction
19
21
  - convergence status that says what is already source-backed, what is still hypothesis-only, and whether the stage may end with a final recommendation
20
22
  - three meaningful points
21
23
  - brainstorm pass 1 with 3-4 candidate directions
@@ -67,6 +69,11 @@
67
69
  - Before ending the stage, give the user a concise decision summary that states the recommended direction, what current methods do, why they still fall short, how the proposed direction differs, the rough approach, the main risk, and where to read the full idea artifact and source log.
68
70
  - If the current evaluation plan uses a proxy, simulator, or synthetic user in place of a real subject, say that explicitly in the idea artifact and explain why it is acceptable at the idea stage.
69
71
  - Keep tentative contributions at the idea level. Do not drift into final paper-facing naming, title, or contribution wording; that belongs to `/lab:framing`.
72
+ - Treat contribution and insight as different outputs. Contribution answers what the work adds; insight answers what the community or decision-maker learns and why the idea should generalize beyond the artifact.
73
+ - Do not let a method name, module list, or metric gain substitute for insight. If the method name were removed, the idea should still have a clear observation, explanation, mechanism, and prediction.
74
+ - Write a single core insight anchor sentence that downstream `/lab:write` and `/lab:report` can reuse. It should be a mechanism-level statement, not a method-name sentence.
75
+ - Present insight as a structured evidence chain: observation -> why existing explanations fail -> core insight -> mechanism -> validation tests -> generalization or action implication -> prediction.
76
+ - For academic ideas, the insight should explain external validity and community value. For technical or business reports, the insight should lead to an action, decision rule, or system change.
70
77
  - End the stage output with a user-guidance block that tells the user what to decide next, what information would most improve the idea, and which `/lab` stage should follow.
71
78
 
72
79
  ## Context Read Set
@@ -105,19 +112,21 @@
105
112
  14. Rough approach in plain language
106
113
  15. Problem solved in plain language
107
114
  16. Why the proposed idea is better
108
- 17. Evaluation sketch
109
- 18. Tentative contributions
110
- 19. Three meaningful points
111
- 20. Candidate approaches and recommendation
112
- 21. Dataset, baseline, and metric candidates
113
- 22. Falsifiable hypothesis
114
- 23. Convergence status
115
- 24. Expert critique
116
- 25. Revised proposal or final recommendation
117
- 26. User guidance
118
- 27. Approval gate
119
- 28. Minimum viable experiment
120
- 29. Idea source log aligned with the two literature sweeps
115
+ 17. Contribution vs insight
116
+ 18. Insight evidence chain
117
+ 19. Evaluation sketch
118
+ 20. Tentative contributions
119
+ 21. Three meaningful points
120
+ 22. Candidate approaches and recommendation
121
+ 23. Dataset, baseline, and metric candidates
122
+ 24. Falsifiable hypothesis
123
+ 25. Convergence status
124
+ 26. Expert critique
125
+ 27. Revised proposal or final recommendation
126
+ 28. User guidance
127
+ 29. Approval gate
128
+ 30. Minimum viable experiment
129
+ 31. Idea source log aligned with the two literature sweeps
121
130
 
122
131
  ## Writing Standard
123
132
 
@@ -141,6 +150,8 @@
141
150
  - Do not update `.lab/context/mission.md`, `.lab/context/decisions.md`, or `.lab/context/open-questions.md` from rewrite-only mode.
142
151
  - Explain what current methods do, why they fall short, and roughly how the proposed idea would work in plain language.
143
152
  - Explain what problem the idea actually solves before describing tentative contributions.
153
+ - Before listing tentative contributions, write the insight evidence chain in plain language. It should make the reader see the anomaly or failure first, then accept the proposed explanation.
154
+ - A valid insight should be testable. Include at least one prediction that would be expected if the insight is right and one validation test that could falsify it.
144
155
  - Keep the evaluation sketch high-level: who or what is evaluated, what proxy or simulator is used if any, what outcome matters, and what the main validity risk is. Leave full protocol design to later stages.
145
156
  - Use the idea stage to say roughly how the idea would be validated and what the minimum viable experiment looks like, but do not freeze sample size, recruitment plan, condition count, questionnaire design, or randomization protocol here.
146
157
  - Human-subject experiment design belongs to `/lab:spec`, where recruitment, assignment, measurement, and ethics details can be made explicit.
@@ -150,3 +161,12 @@
150
161
  - The final output must be short but decision-capable. Do not hide the key recommendation logic only inside `.lab/writing/idea.md`; summarize the recommended direction, current-method contrast, difference, rough approach, and main risk in the user-facing reply, then point to `.lab/writing/idea.md` and `.lab/writing/idea-source-log.md` for the full detail.
151
162
  - Before approval, run `.lab/.managed/scripts/validate_idea_artifact.py --idea <idea-artifact> --source-log .lab/writing/idea-source-log.md --workflow-config .lab/config/workflow.json`.
152
163
  - Do not leave `.lab/context/mission.md` as an empty template after convergence; write the approved problem, why it matters, the current benchmark scope, and the approved direction back into canonical context.
164
+
165
+ ## Stage Report Closeout
166
+
167
+ - Before final handoff, write or update `.lab/stage-reports/<date>--idea--<target>.md` from `.lab/.managed/templates/stage-report.md`.
168
+ - Fill `Requested Outcome Mapping` before the core table so the final answer can be checked against the user's original request rather than only against internal stage state.
169
+ - Fill `Repair Control`; if no repair loop ran, mark it as not applicable and state that ordinary drafting or evidence fixes remain allowed inside the stage contract.
170
+ - Fill the `Core Explanation Table` in plain language: background, why now, what idea work ran, how evidence was checked, what worked, what did not work, what was verified, what remains unverified, what needs improvement and why, how to improve and why, key evidence, and the continue/stop/revise/rerun/escalate/handoff decision.
171
+ - If the table says improvement is needed, the next action may be `stop` only when a terminal boundary is explicitly named; otherwise choose `continue`, `revise`, `rerun`, or `escalate`.
172
+ - Run `.lab/.managed/scripts/validate_stage_report.py --stage-report <stage-report> --stage idea` and include the report path plus validation result in the final user-facing summary.
@@ -78,3 +78,12 @@ If the loop stops without success, record:
78
78
  - If the next move depends on an unresolved assumption, ask one clarifying question at a time.
79
79
  - If more than one next hypothesis is credible, present 2-3 approaches with trade-offs and recommend the next bounded experiment before changing the mission state.
80
80
  - Keep an approval gate when a proposed change would alter the frozen mission instead of only changing the implementation hypothesis.
81
+
82
+ ## Stage Report Closeout
83
+
84
+ - Before final handoff, write or update `.lab/stage-reports/<date>--iterate--<target>.md` from `.lab/.managed/templates/stage-report.md`.
85
+ - Fill `Requested Outcome Mapping` before the core table so the final answer can be checked against the user's original request rather than only against internal stage state.
86
+ - Fill `Repair Control`; if no repair loop ran, mark it as not applicable and state that ordinary drafting or evidence fixes remain allowed inside the stage contract.
87
+ - Fill the `Core Explanation Table` in plain language: background, why now, what rounds ran, how the loop evaluated them, what worked, what did not work, what was verified, what remains unverified, what needs improvement and why, how to improve and why, key evidence, and the continue/stop/revise/rerun/escalate/handoff decision.
88
+ - If the table says improvement is needed, the next action may be `stop` only when a terminal boundary is explicitly named; otherwise choose `continue`, `revise`, `rerun`, or `escalate`.
89
+ - Run `.lab/.managed/scripts/validate_stage_report.py --stage-report <stage-report> --stage iterate` and include the report path plus validation result in the final user-facing summary.
@@ -7,6 +7,8 @@
7
7
  - problem and background in plain language
8
8
  - dataset scene notes in plain language
9
9
  - contribution summary
10
+ - core insight summary that explains what was learned beyond the produced artifact
11
+ - decision or action implication derived from that insight
10
12
  - method overview
11
13
  - selected metrics summary
12
14
  - plain-language metric guide
@@ -60,6 +62,10 @@
60
62
  - Treat `report.md` as an external-review-ready memo. Source sections must not rely on local file paths or internal provenance notes; they must give a few human-readable anchor references instead.
61
63
  - Pull the approved method name and contribution bullets out of `.lab/context/terminology-lock.md` when that framing context exists; do not silently drop them from the collaborator-facing report.
62
64
  - Explain the method overview in collaborator language: what the method roughly does, what changed relative to the closest prior work or strongest baseline, what those prior methods do, and why they remain insufficient for the approved claim.
65
+ - Explain the report-level insight as a mechanism, not as a slogan: observed phenomenon, why the simplest or prior explanation is insufficient, what mechanism best explains the result, what evidence supports it, what action or design implication follows, and what boundary still applies.
66
+ - Keep insight interpretation in the reader summary, method overview, main result interpretation, ablations, and limitations. Do not hide it in a standalone inspirational paragraph.
67
+ - When results are negative, mixed, or too strong, still write the insight honestly: what the result teaches about the mechanism, target, setup, metric, or boundary, and what action follows.
68
+ - For technical or business reports, state the decision implication as an actionable rule, next experiment, system change, or stop boundary. Do not leave the insight as a theoretical phrase only.
63
69
  - When citing prior work or baselines in the method overview, include only the few anchor references a collaborator needs, and summarize their role and limitation in one short line each.
64
70
  - Report only the few references a collaborator needs to orient themselves quickly; do not turn `report.md` into a full bibliography dump.
65
71
  - In `Background Sources`, `Method and Baseline Sources`, and `Metric Sources`, every anchor must include a citation line, one short line about what it established or measures, and one limitation or caveat.
@@ -87,6 +93,17 @@
87
93
  - Proactively deliver a user-readable plain-language summary when the stage is reached from `/lab:auto`; do not wait for a separate follow-up request asking what the metrics or tables mean.
88
94
  - Treat `report.md` as a user-facing artifact rather than an internal dump. Prefer plain-language explanations before jargon, and explain each metric the first time it matters.
89
95
  - Treat contribution bullets as collaborator-facing claim summaries, not as internal TODOs; tie each one to the current evidence boundary.
96
+ - Put the bottom-line insight near the top of the report: one-sentence conclusion, core insight, evidence that supports it, action implication, and biggest risk.
97
+ - Use the main tables as diagnostic evidence for the insight, not just result containers. For each main table, state what mechanism or diagnostic question it addresses and what it does not prove.
90
98
  - If a missing assumption would change report interpretation, ask one clarifying question at a time.
91
99
  - If there are multiple defensible report framings, present 2-3 approaches with trade-offs and recommend the most evidence-faithful framing before writing.
92
100
  - Keep an approval gate when the reporting frame would materially affect what the paper later claims.
101
+
102
+ ## Stage Report Closeout
103
+
104
+ - Before final handoff, write or update `.lab/stage-reports/<date>--report--<target>.md` from `.lab/.managed/templates/stage-report.md`.
105
+ - Fill `Requested Outcome Mapping` before the core table so the final answer can be checked against the user's original request rather than only against internal stage state.
106
+ - Fill `Repair Control`; if no repair loop ran, mark it as not applicable and state that ordinary drafting or evidence fixes remain allowed inside the stage contract.
107
+ - Fill the `Core Explanation Table` in plain language: background, why now, what report artifacts were produced, how evidence was carried forward, what worked, what did not work, what was verified, what remains unverified, what needs improvement and why, how to improve and why, key evidence, and the continue/stop/revise/rerun/escalate/handoff decision.
108
+ - If the table says improvement is needed, the next action may be `stop` only when a terminal boundary is explicitly named; otherwise choose `continue`, `revise`, `rerun`, or `escalate`.
109
+ - Run `.lab/.managed/scripts/validate_stage_report.py --stage-report <stage-report> --stage report` and include the report path plus validation result in the final user-facing summary.
@@ -58,3 +58,12 @@
58
58
  - If there are multiple legitimate review framings, present 2-3 approaches with trade-offs and recommend the strictest useful framing.
59
59
  - Do not use brainstorming to soften critique; once scope is clear, stay in reviewer mode and deliver findings directly.
60
60
  - Call out the strongest remaining alternative explanation and the strongest boundary risk when either one could materially narrow the claim.
61
+
62
+ ## Stage Report Closeout
63
+
64
+ - Before final handoff, write or update `.lab/stage-reports/<date>--review--<target>.md` from `.lab/.managed/templates/stage-report.md`.
65
+ - Fill `Requested Outcome Mapping` before the core table so the final answer can be checked against the user's original request rather than only against internal stage state.
66
+ - Fill `Repair Control`; if no repair loop ran, mark it as not applicable and state that ordinary drafting or evidence fixes remain allowed inside the stage contract.
67
+ - Fill the `Core Explanation Table` in plain language: background, why now, what was reviewed, how the review was performed, what worked, what did not work, what was verified, what remains unverified, what needs improvement and why, how to improve and why, key evidence, and the continue/stop/revise/rerun/escalate/handoff decision.
68
+ - If the table says improvement is needed, the next action may be `stop` only when a terminal boundary is explicitly named; otherwise choose `continue`, `revise`, `rerun`, or `escalate`.
69
+ - Run `.lab/.managed/scripts/validate_stage_report.py --stage-report <stage-report> --stage review` and include the report path plus validation result in the final user-facing summary.
@@ -55,3 +55,12 @@
55
55
  - If the next run depends on an unresolved assumption, ask one clarifying question at a time.
56
56
  - If there are multiple defensible tiny-run options, present 2-3 approaches with trade-offs and recommend the cheapest informative run.
57
57
  - Only ask for approval when choosing a run path would materially spend more time or compute than the default smallest experiment.
58
+
59
+ ## Stage Report Closeout
60
+
61
+ - Before final handoff, write or update `.lab/stage-reports/<date>--run--<target>.md` from `.lab/.managed/templates/stage-report.md`.
62
+ - Fill `Requested Outcome Mapping` before the core table so the final answer can be checked against the user's original request rather than only against internal stage state.
63
+ - Fill `Repair Control`; if no repair loop ran, mark it as not applicable and state that ordinary drafting or evidence fixes remain allowed inside the stage contract.
64
+ - Fill the `Core Explanation Table` in plain language: background, why now, what ran, how it ran, what worked, what did not work, what was verified, what remains unverified, what needs improvement and why, how to improve and why, key evidence, and the continue/stop/revise/rerun/escalate/handoff decision.
65
+ - If the table says improvement is needed, the next action may be `stop` only when a terminal boundary is explicitly named; otherwise choose `continue`, `revise`, `rerun`, or `escalate`.
66
+ - Run `.lab/.managed/scripts/validate_stage_report.py --stage-report <stage-report> --stage run` and include the report path plus validation result in the final user-facing summary.
@@ -72,3 +72,12 @@
72
72
  - evaluation normalization
73
73
  - bounded iteration
74
74
  - final report
75
+
76
+ ## Stage Report Closeout
77
+
78
+ - Before final handoff, write or update `.lab/stage-reports/<date>--spec--<target>.md` from `.lab/.managed/templates/stage-report.md`.
79
+ - Fill `Requested Outcome Mapping` before the core table so the final answer can be checked against the user's original request rather than only against internal stage state.
80
+ - Fill `Repair Control`; if no repair loop ran, mark it as not applicable and state that ordinary drafting or evidence fixes remain allowed inside the stage contract.
81
+ - Fill the `Core Explanation Table` in plain language: background, why now, what change artifacts were created, how the spec was structured, what worked, what did not work, what was verified, what remains unverified, what needs improvement and why, how to improve and why, key evidence, and the continue/stop/revise/rerun/escalate/handoff decision.
82
+ - If the table says improvement is needed, the next action may be `stop` only when a terminal boundary is explicitly named; otherwise choose `continue`, `revise`, `rerun`, or `escalate`.
83
+ - Run `.lab/.managed/scripts/validate_stage_report.py --stage-report <stage-report> --stage spec` and include the report path plus validation result in the final user-facing summary.