superlab 0.1.51 → 0.1.53

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 CHANGED
@@ -327,8 +327,10 @@ If `paper_template_root` is configured, `/lab:write` should inspect that templat
327
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.
328
328
  If the user approves the default scaffold, persist that choice in `.lab/config/workflow.json` and stop asking on ordinary rounds.
329
329
  Ordinary manuscript drafting rounds should follow `workflow_language`.
330
- If `workflow_language` and `paper_language` differ, `/lab:write` should preserve a readable workflow-language deliverable first, then the first final-draft or export round should ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, then persist that decision.
331
- The workflow-language deliverable is a real reading copy, not a review layer, and should stay persisted until it is explicitly refreshed.
330
+ If `workflow_language` and `paper_language` differ, `/lab:write` should preserve a full workflow-language paper layer first, then the first final-draft or export round should ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, then persist that decision.
331
+ The workflow-language paper layer is a real LaTeX mirror of the paper, not a review layer, and should stay persisted until it is explicitly refreshed.
332
+ Paper-facing tables must be locally interpretable: readers should be able to recover row meaning, column meaning, metric direction, and any relevant denominator or unit from the table title, note, and adjacent prose without chasing the Method section. Short headers are allowed, but abbreviations must be expanded locally in the same table.
333
+ If Method or Experiments prose promises a metric family, the main table set must either expose that family directly or explicitly mark missing metrics as appendix-only and explain why.
332
334
  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.
333
335
  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.
334
336
 
package/lib/i18n.cjs CHANGED
@@ -2026,7 +2026,9 @@ ZH_CONTENT[path.join(".codex", "skills", "lab", "stages", "write.md")] = `# \`/l
2026
2026
  - 每轮只改一个 section 或一个明确子问题。
2027
2027
  - 最终稿必须是 LaTeX。
2028
2028
  - 普通起草轮次先跟随 \`workflow_language\`。
2029
- - 把可阅读的 workflow-language 交付稿当成正式持久化产物,而不是 review 层。
2029
+ - workflow-language 论文层当成正式持久化产物,而不是 review 层。
2030
+ - workflow-language 层必须是一套完整的 LaTeX 镜像,至少包含 \`workflow-language/main.tex\`、\`workflow-language/references.bib\`、\`workflow-language/sections/*.tex\`、\`workflow-language/tables/*.tex\`、\`workflow-language/figures/*.tex\` 和 \`workflow-language/analysis/analysis-asset.tex\`。
2031
+ - 不要再把新的 workflow-language 输出写到已经废弃的 review 层路径,例如 \`docs/lab/paper/review_zh/\`。
2030
2032
  - 如果配置了 \`paper_template_root\`,先检查该模板目录,再按其结构起草论文。
2031
2033
  - 已接入的模板目录可能包含用户或上游修改,默认不要改模板文件。
2032
2034
  - 如果没有配置模板且 \`paper_template_decision\` 是 \`unconfirmed\`,在第一次起草 \`.tex\` 之前必须先追问一次:继续使用默认 LaTeX scaffold,还是先接入模板目录。
@@ -2036,12 +2038,12 @@ ZH_CONTENT[path.join(".codex", "skills", "lab", "stages", "write.md")] = `# \`/l
2036
2038
  - 如果当前是最终导出或最终定稿轮次、\`paper_template_root\` 仍为空、\`paper_template_decision\` 是 \`default-scaffold\`,且 \`paper_template_final_reminder_acknowledged\` 是 \`false\`,就在最终定稿前再提醒一次是否切到模板。
2037
2039
  - 如果用户在最终提醒里仍确认继续使用默认 scaffold,就把 \`paper_template_final_reminder_acknowledged\` 持久化为 \`true\`。
2038
2040
  - 普通 manuscript 起草轮次虽然也是 LaTeX,但普通 \`.tex\` section 草稿必须先跟随 \`workflow_language\`,不要把 \`paper_language\` 当成默认草稿语言。
2039
- - 如果当前是最终导出或最终定稿轮次,且 \`workflow_language\` 与 \`paper_language\` 不一致、\`paper_language_finalization_decision\` 还是 \`unconfirmed\`,就先完成并保留 workflow-language 交付稿,再追问一次:保持当前 workflow language,还是把 canonical manuscript 转换成 \`paper_language\`。
2041
+ - 如果当前是最终导出或最终定稿轮次,且 \`workflow_language\` 与 \`paper_language\` 不一致、\`paper_language_finalization_decision\` 还是 \`unconfirmed\`,就先完成并保留 workflow-language 论文层,再追问一次:保持当前 workflow language,还是把 canonical manuscript 转换成 \`paper_language\`。
2040
2042
  - 如果用户选择保持当前 workflow language,就把 \`paper_language_finalization_decision\` 持久化成 \`keep-workflow-language\`。
2041
2043
  - 如果用户选择转换成最终论文语言,就把 \`paper_language_finalization_decision\` 持久化成 \`convert-to-paper-language\`。
2042
2044
  - 如果 \`workflow_language\` 与 \`paper_language\` 不一致,就不要在确认前先把最终论文正文改写成 \`paper_language\`;必须先追问、再持久化、再改稿。
2043
- - 如果 \`workflow_language\` 与 \`paper_language\` 不一致,就要在最新 write iteration artifact 里记录工作流语言、论文语言、最终语言决定、为什么这样决定,以及 workflow-language 交付稿路径。
2044
- - 如果 \`paper_language_finalization_decision\` 是 \`convert-to-paper-language\`,在接受最终定稿前必须保留 workflow-language 交付稿,并把 canonical manuscript 转换到 \`paper_language\`。
2045
+ - 如果 \`workflow_language\` 与 \`paper_language\` 不一致,就要在最新 write iteration artifact 里记录工作流语言、论文语言、最终语言决定、为什么这样决定,以及 workflow-language 论文层路径。
2046
+ - 如果 \`paper_language_finalization_decision\` 是 \`convert-to-paper-language\`,在接受最终定稿前必须保留 workflow-language 论文层,并把 canonical manuscript 转换到 \`paper_language\`。
2045
2047
  - 把 \`.lab/writing/terminology-glossary.md\` 当成写作期 glossary,用来沉淀全称、批准缩写、对外解释和可接受别名;它和 \`.lab/context/terminology-lock.md\` 的职责不同,不能混用。
2046
2048
  - 无论当前语言是什么,都要满足同一套学术可读性标准;如果本轮引入或改写了关键术语、缩写、指标名、机制名或系统标签,就在首次出现时顺手说明它是什么、为什么在这里重要。
2047
2049
  - 第一次出现先写全称;如果后面要复用简称或缩写,就在首次出现时定义。
@@ -2868,12 +2870,12 @@ ZH_CONTENT[path.join(".codex", "skills", "lab", "stages", "auto.md")] = `# \`/la
2868
2870
  - 如果用户在最终提醒里仍确认继续使用默认 scaffold,就持久化 \`paper_template_final_reminder_acknowledged: true\`
2869
2871
  - 普通 \`write\` 起草轮次先跟随 \`workflow_language\`。
2870
2872
  - 普通 \`write\` 起草轮次里的 manuscript 仍然是 LaTeX,所以普通 manuscript \`.tex\` sections 也必须先保留在 \`workflow_language\`,还不是 \`paper_language\` 版本。
2871
- - 把可阅读的 workflow-language 交付稿当成正式持久化产物,而不是 review 层。
2872
- - 如果当前写作目标是最终导出、\`workflow_language\` 与 \`paper_language\` 不一致,且 \`paper_language_finalization_decision\` 还是 \`unconfirmed\`,就在最终定稿前先完成并保留 workflow-language 交付稿,再追问一次:保持当前 workflow language,还是转换成 \`paper_language\`
2873
+ - workflow-language 论文层当成正式持久化产物,而不是 review 层。
2874
+ - 如果当前写作目标是最终导出、\`workflow_language\` 与 \`paper_language\` 不一致,且 \`paper_language_finalization_decision\` 还是 \`unconfirmed\`,就在最终定稿前先完成并保留 workflow-language 论文层,再追问一次:保持当前 workflow language,还是转换成 \`paper_language\`
2873
2875
  - 如果用户选择保持当前语言,就持久化 \`paper_language_finalization_decision: keep-workflow-language\`
2874
2876
  - 如果用户选择转换,就持久化 \`paper_language_finalization_decision: convert-to-paper-language\`
2875
2877
  - 如果当前写作目标是最终导出,且语言不一致,就不要在追问前先把最终论文正文改成 \`paper_language\`;先问、先持久化,再改稿
2876
- - 如果当前写作目标是最终导出,且语言不一致,就在最新 write iteration 里记录语言决策审计:工作流语言、论文语言、最终语言决定、为什么这样决定,以及 workflow-language 交付稿路径
2878
+ - 如果当前写作目标是最终导出,且语言不一致,就在最新 write iteration 里记录语言决策审计:工作流语言、论文语言、最终语言决定、为什么这样决定,以及 workflow-language 论文层路径
2877
2879
  - 把 \`.lab/writing/terminology-glossary.md\` 当成写作期 glossary,用来沉淀全称、批准缩写、对外解释和可接受别名
2878
2880
  - 当循环推进 \`write\` 时,无论 workflow language 还是 paper language,都要满足同一套学术可读性标准;如果本轮引入或改写了关键术语、缩写、指标名、机制名或系统标签,就在首次出现时说明它是什么、为什么在这里重要
2879
2881
  - 当循环推进 \`write\` 时,第一次出现先写全称;如果后面要复用简称或缩写,就在首次出现时定义;一个概念只保留一个 paper-facing 名称,并尽量避免新造的连字符拼接标签
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "stage_prompt": {
3
- "codex_en": "This command runs the `/lab:write` stage. Use `.codex/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat a readable workflow-language deliverable as a real persisted artifact rather than a review layer. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, and do not use labels containing `_` or `-` in reader-facing prose. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record the terminology-clarity self-check in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language deliverable first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language deliverable path in the latest write iteration, and only then edit the final manuscript in the chosen language.",
4
- "claude_en": "This command runs the `write` stage of the lab workflow. Use `.claude/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat a readable workflow-language deliverable as a real persisted artifact rather than a review layer. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, and do not use labels containing `_` or `-` in reader-facing prose. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record the terminology-clarity self-check in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language deliverable first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language deliverable path in the latest write iteration, and only then edit the final manuscript in the chosen language.",
5
- "codex_zh": "本命令运行 `/lab:write` 阶段。把 `.codex/skills/lab/stages/write.md` 当成模板选择、paper-plan、section 参考、校验 gate、资产覆盖和最终 manuscript 规则的单一来源。读取与当前 section 对应的 paper-writing reference 和 bundled example-bank 文件,一次只修改一个 section;普通草稿轮次把写作校验当 warning,最终定稿或导出轮次必须满足 write-stage 的接受 gate。普通起草轮次先跟随 `workflow_language`,普通 `.tex` section 草稿也必须先停留在 `workflow_language`,不能把 `paper_language` 当成默认草稿语言,并把可阅读的 workflow-language 交付稿当成正式持久化产物,而不是 review 层。把 `.lab/writing/terminology-glossary.md` 作为写作期 glossary,用来沉淀全称、批准缩写、对外解释和可接受别名。无论当前语言是什么,都要满足同一套学术可读性标准:如果本轮引入或改写了关键术语、缩写、指标名、机制名或系统标签,就先写全称;如果后面要复用短写,就在首次出现时定义;同时说明它是什么、为什么在这里重要,保持一个概念只有一个 paper-facing 名称,并尽量避免新造的连字符拼接标签。内部标识符默认不要进入 reader-facing prose;若必须出现,只能在完成一次读者映射后使用,并把 terminology-clarity 自检写进 write iteration artifact。如果当前稿件将从托管默认 scaffold 开始,且还没有模板决定,就先追问一次:继续使用默认 scaffold,还是先接入模板目录。如果进入最终定稿时 `workflow_language` 与 `paper_language` 不一致,就先完成并保留 workflow-language 交付稿,再追问一次:保持当前语言,还是把 canonical manuscript 转成 `paper_language`;先持久化这个决定,再在最新 write iteration 里记录语言决策和 workflow-language 交付稿路径,最后才允许按该语言修改最终稿。",
6
- "claude_zh": "本命令运行 lab workflow 的 `write` 阶段。把 `.claude/skills/lab/stages/write.md` 当成模板选择、paper-plan、section 参考、校验 gate、资产覆盖和最终 manuscript 规则的单一来源。读取与当前 section 对应的 paper-writing reference 和 bundled example-bank 文件,一次只修改一个 section;普通草稿轮次把写作校验当 warning,最终定稿或导出轮次必须满足 write-stage 的接受 gate。普通起草轮次先跟随 `workflow_language`,普通 `.tex` section 草稿也必须先停留在 `workflow_language`,不能把 `paper_language` 当成默认草稿语言,并把可阅读的 workflow-language 交付稿当成正式持久化产物,而不是 review 层。把 `.lab/writing/terminology-glossary.md` 作为写作期 glossary,用来沉淀全称、批准缩写、对外解释和可接受别名。无论当前语言是什么,都要满足同一套学术可读性标准:如果本轮引入或改写了关键术语、缩写、指标名、机制名或系统标签,就先写全称;如果后面要复用短写,就在首次出现时定义;同时说明它是什么、为什么在这里重要,保持一个概念只有一个 paper-facing 名称,并尽量避免新造的连字符拼接标签。内部标识符默认不要进入 reader-facing prose;若必须出现,只能在完成一次读者映射后使用,并把 terminology-clarity 自检写进 write iteration artifact。如果当前稿件将从托管默认 scaffold 开始,且还没有模板决定,就先追问一次:继续使用默认 scaffold,还是先接入模板目录。如果进入最终定稿时 `workflow_language` 与 `paper_language` 不一致,就先完成并保留 workflow-language 交付稿,再追问一次:保持当前语言,还是把 canonical manuscript 转成 `paper_language`;先持久化这个决定,再在最新 write iteration 里记录语言决策和 workflow-language 交付稿路径,最后才允许按该语言修改最终稿。"
3
+ "codex_en": "This command runs the `/lab:write` stage. Use `.codex/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat the workflow-language paper layer as a real persisted artifact rather than a review layer, and preserve it as a full LaTeX mirror with `workflow-language/main.tex`, `workflow-language/references.bib`, `workflow-language/sections/*.tex`, `workflow-language/tables/*.tex`, `workflow-language/figures/*.tex`, and `workflow-language/analysis/analysis-asset.tex`. Do not write new workflow-language output to deprecated review-layer paths such as `docs/lab/paper/review_zh/`. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, do not use labels containing `_` or `-` in reader-facing prose, and apply the same first-mention rule to table headers, table captions, table notes, and figure captions or labels. Main tables must be locally self-contained: the title, header, note, and adjacent prose should tell the reader what each row and column means, the metric direction, and any relevant unit, denominator, or event condition. Short headers remain allowed, but abbreviations in paper-facing tables must be expanded locally in the same table. If Method or Experiments prose promises a metric family, the main table set must either expose those metrics directly or explicitly mark the missing ones as appendix-only and explain why. If a metric is measured but omitted because it is zero everywhere, redundant, or appendix-only, state that disposition explicitly in the table note instead of silently dropping it. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record both the terminology-clarity self-check and the table-semantics audit in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language paper layer first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language paper-layer path in the latest write iteration, and only then edit the final manuscript in the chosen language.",
4
+ "claude_en": "This command runs the `write` stage of the lab workflow. Use `.claude/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat the workflow-language paper layer as a real persisted artifact rather than a review layer, and preserve it as a full LaTeX mirror with `workflow-language/main.tex`, `workflow-language/references.bib`, `workflow-language/sections/*.tex`, `workflow-language/tables/*.tex`, `workflow-language/figures/*.tex`, and `workflow-language/analysis/analysis-asset.tex`. Do not write new workflow-language output to deprecated review-layer paths such as `docs/lab/paper/review_zh/`. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, do not use labels containing `_` or `-` in reader-facing prose, and apply the same first-mention rule to table headers, table captions, table notes, and figure captions or labels. Main tables must be locally self-contained: the title, header, note, and adjacent prose should tell the reader what each row and column means, the metric direction, and any relevant unit, denominator, or event condition. Short headers remain allowed, but abbreviations in paper-facing tables must be expanded locally in the same table. If Method or Experiments prose promises a metric family, the main table set must either expose those metrics directly or explicitly mark the missing ones as appendix-only and explain why. If a metric is measured but omitted because it is zero everywhere, redundant, or appendix-only, state that disposition explicitly in the table note instead of silently dropping it. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record both the terminology-clarity self-check and the table-semantics audit in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language paper layer first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language paper-layer path in the latest write iteration, and only then edit the final manuscript in the chosen language.",
5
+ "codex_zh": "本命令运行 `/lab:write` 阶段。把 `.codex/skills/lab/stages/write.md` 当成模板选择、paper-plan、section 参考、校验 gate、资产覆盖和最终 manuscript 规则的单一来源。读取与当前 section 对应的 paper-writing reference 和 bundled example-bank 文件,一次只修改一个 section;普通草稿轮次把写作校验当 warning,最终定稿或导出轮次必须满足 write-stage 的接受 gate。普通起草轮次先跟随 `workflow_language`,普通 `.tex` section 草稿也必须先停留在 `workflow_language`,不能把 `paper_language` 当成默认草稿语言,并把 workflow-language 论文层当成正式持久化产物,而不是 review 层。workflow-language 层必须是一套完整的 LaTeX 镜像,至少包含 `workflow-language/main.tex`、`workflow-language/references.bib`、`workflow-language/sections/*.tex`、`workflow-language/tables/*.tex`、`workflow-language/figures/*.tex` 和 `workflow-language/analysis/analysis-asset.tex`。不要再把新的 workflow-language 输出写到已经废弃的 review 层路径,例如 `docs/lab/paper/review_zh/`。把 `.lab/writing/terminology-glossary.md` 作为写作期 glossary,用来沉淀全称、批准缩写、对外解释和可接受别名。无论当前语言是什么,都要满足同一套学术可读性标准:如果本轮引入或改写了关键术语、缩写、指标名、机制名或系统标签,就先写全称;如果后面要复用短写,就在首次出现时定义;同时说明它是什么、为什么在这里重要,保持一个概念只有一个 paper-facing 名称,并尽量避免新造的连字符拼接标签。相同的首次解释规则也适用于表头、caption、表注和图注;如果术语第一次出现在表里,就必须在同一张表里局部解释。主表必须局部自足:读者只看表题、表头、表注和邻近引入或解读,就应当知道每行是什么、每列是什么、指标方向是什么,以及需要的单位、分母或触发条件。表头可以短,但表里的缩写必须在同表局部展开。如果 Method 或 Experiments 承诺了一组指标,主表就必须直接展示这些指标,或者明确标成 appendix-only 并解释原因;如果某个指标因为恒为零、冗余或只放附录而不单列,也必须在表注里显式说明,不能静默省略。内部标识符默认不要进入 reader-facing prose;若必须出现,只能在完成一次读者映射后使用,并把 terminology-clarity 自检和 table-semantics 审计一起写进 write iteration artifact。如果当前稿件将从托管默认 scaffold 开始,且还没有模板决定,就先追问一次:继续使用默认 scaffold,还是先接入模板目录。如果进入最终定稿时 `workflow_language` 与 `paper_language` 不一致,就先完成并保留 workflow-language 论文层,再追问一次:保持当前语言,还是把 canonical manuscript 转成 `paper_language`;先持久化这个决定,再在最新 write iteration 里记录语言决策和 workflow-language 论文层路径,最后才允许按该语言修改最终稿。",
6
+ "claude_zh": "本命令运行 lab workflow 的 `write` 阶段。把 `.claude/skills/lab/stages/write.md` 当成模板选择、paper-plan、section 参考、校验 gate、资产覆盖和最终 manuscript 规则的单一来源。读取与当前 section 对应的 paper-writing reference 和 bundled example-bank 文件,一次只修改一个 section;普通草稿轮次把写作校验当 warning,最终定稿或导出轮次必须满足 write-stage 的接受 gate。普通起草轮次先跟随 `workflow_language`,普通 `.tex` section 草稿也必须先停留在 `workflow_language`,不能把 `paper_language` 当成默认草稿语言,并把 workflow-language 论文层当成正式持久化产物,而不是 review 层。workflow-language 层必须是一套完整的 LaTeX 镜像,至少包含 `workflow-language/main.tex`、`workflow-language/references.bib`、`workflow-language/sections/*.tex`、`workflow-language/tables/*.tex`、`workflow-language/figures/*.tex` 和 `workflow-language/analysis/analysis-asset.tex`。不要再把新的 workflow-language 输出写到已经废弃的 review 层路径,例如 `docs/lab/paper/review_zh/`。把 `.lab/writing/terminology-glossary.md` 作为写作期 glossary,用来沉淀全称、批准缩写、对外解释和可接受别名。无论当前语言是什么,都要满足同一套学术可读性标准:如果本轮引入或改写了关键术语、缩写、指标名、机制名或系统标签,就先写全称;如果后面要复用短写,就在首次出现时定义;同时说明它是什么、为什么在这里重要,保持一个概念只有一个 paper-facing 名称,并尽量避免新造的连字符拼接标签。相同的首次解释规则也适用于表头、caption、表注和图注;如果术语第一次出现在表里,就必须在同一张表里局部解释。主表必须局部自足:读者只看表题、表头、表注和邻近引入或解读,就应当知道每行是什么、每列是什么、指标方向是什么,以及需要的单位、分母或触发条件。表头可以短,但表里的缩写必须在同表局部展开。如果 Method 或 Experiments 承诺了一组指标,主表就必须直接展示这些指标,或者明确标成 appendix-only 并解释原因;如果某个指标因为恒为零、冗余或只放附录而不单列,也必须在表注里显式说明,不能静默省略。内部标识符默认不要进入 reader-facing prose;若必须出现,只能在完成一次读者映射后使用,并把 terminology-clarity 自检和 table-semantics 审计一起写进 write iteration artifact。如果当前稿件将从托管默认 scaffold 开始,且还没有模板决定,就先追问一次:继续使用默认 scaffold,还是先接入模板目录。如果进入最终定稿时 `workflow_language` 与 `paper_language` 不一致,就先完成并保留 workflow-language 论文层,再追问一次:保持当前语言,还是把 canonical manuscript 转成 `paper_language`;先持久化这个决定,再在最新 write iteration 里记录语言决策和 workflow-language 论文层路径,最后才允许按该语言修改最终稿。"
7
7
  }
8
8
  }
@@ -7,4 +7,4 @@ argument-hint: section or writing target
7
7
  Use the installed `lab` skill at `.claude/skills/lab/SKILL.md`.
8
8
 
9
9
  Execute the requested `/lab-write` command against the user's argument now. Do not only recommend another lab stage. If a blocking prerequisite is missing, say exactly what is missing and ask at most one clarifying question.
10
- This command runs the `write` stage of the lab workflow. Use `.claude/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat a readable workflow-language deliverable as a real persisted artifact rather than a review layer. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, and do not use labels containing `_` or `-` in reader-facing prose. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record the terminology-clarity self-check in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language deliverable first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language deliverable path in the latest write iteration, and only then edit the final manuscript in the chosen language.
10
+ This command runs the `write` stage of the lab workflow. Use `.claude/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat the workflow-language paper layer as a real persisted artifact rather than a review layer, and preserve it as a full LaTeX mirror with `workflow-language/main.tex`, `workflow-language/references.bib`, `workflow-language/sections/*.tex`, `workflow-language/tables/*.tex`, `workflow-language/figures/*.tex`, and `workflow-language/analysis/analysis-asset.tex`. Do not write new workflow-language output to deprecated review-layer paths such as `docs/lab/paper/review_zh/`. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, do not use labels containing `_` or `-` in reader-facing prose, and apply the same first-mention rule to table headers, table captions, table notes, and figure captions or labels. Main tables must be locally self-contained: the title, header, note, and adjacent prose should tell the reader what each row and column means, the metric direction, and any relevant unit, denominator, or event condition. Short headers remain allowed, but abbreviations in paper-facing tables must be expanded locally in the same table. If Method or Experiments prose promises a metric family, the main table set must either expose those metrics directly or explicitly mark the missing ones as appendix-only and explain why. If a metric is measured but omitted because it is zero everywhere, redundant, or appendix-only, state that disposition explicitly in the table note instead of silently dropping it. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record both the terminology-clarity self-check and the table-semantics audit in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language paper layer first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language paper-layer path in the latest write iteration, and only then edit the final manuscript in the chosen language.
@@ -7,4 +7,4 @@ argument-hint: section or writing target
7
7
  Use the installed `lab` skill at `.claude/skills/lab/SKILL.md`.
8
8
 
9
9
  Execute the requested `/lab-write` command against the user's argument now. Do not only recommend another lab stage. If a blocking prerequisite is missing, say exactly what is missing and ask at most one clarifying question.
10
- This command runs the `write` stage of the lab workflow. Use `.claude/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat a readable workflow-language deliverable as a real persisted artifact rather than a review layer. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, and do not use labels containing `_` or `-` in reader-facing prose. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record the terminology-clarity self-check in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language deliverable first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language deliverable path in the latest write iteration, and only then edit the final manuscript in the chosen language.
10
+ This command runs the `write` stage of the lab workflow. Use `.claude/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat the workflow-language paper layer as a real persisted artifact rather than a review layer, and preserve it as a full LaTeX mirror with `workflow-language/main.tex`, `workflow-language/references.bib`, `workflow-language/sections/*.tex`, `workflow-language/tables/*.tex`, `workflow-language/figures/*.tex`, and `workflow-language/analysis/analysis-asset.tex`. Do not write new workflow-language output to deprecated review-layer paths such as `docs/lab/paper/review_zh/`. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, do not use labels containing `_` or `-` in reader-facing prose, and apply the same first-mention rule to table headers, table captions, table notes, and figure captions or labels. Main tables must be locally self-contained: the title, header, note, and adjacent prose should tell the reader what each row and column means, the metric direction, and any relevant unit, denominator, or event condition. Short headers remain allowed, but abbreviations in paper-facing tables must be expanded locally in the same table. If Method or Experiments prose promises a metric family, the main table set must either expose those metrics directly or explicitly mark the missing ones as appendix-only and explain why. If a metric is measured but omitted because it is zero everywhere, redundant, or appendix-only, state that disposition explicitly in the table note instead of silently dropping it. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record both the terminology-clarity self-check and the table-semantics audit in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language paper layer first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language paper-layer path in the latest write iteration, and only then edit the final manuscript in the chosen language.
@@ -7,4 +7,4 @@ argument-hint: section or writing target
7
7
  Use the installed `lab` skill at `.claude/skills/lab/SKILL.md`.
8
8
 
9
9
  Execute the requested `/lab-write` command against the user's argument now. Do not only recommend another lab stage. If a blocking prerequisite is missing, say exactly what is missing and ask at most one clarifying question.
10
- This command runs the `write` stage of the lab workflow. Use `.claude/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat a readable workflow-language deliverable as a real persisted artifact rather than a review layer. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, and do not use labels containing `_` or `-` in reader-facing prose. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record the terminology-clarity self-check in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language deliverable first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language deliverable path in the latest write iteration, and only then edit the final manuscript in the chosen language.
10
+ This command runs the `write` stage of the lab workflow. Use `.claude/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat the workflow-language paper layer as a real persisted artifact rather than a review layer, and preserve it as a full LaTeX mirror with `workflow-language/main.tex`, `workflow-language/references.bib`, `workflow-language/sections/*.tex`, `workflow-language/tables/*.tex`, `workflow-language/figures/*.tex`, and `workflow-language/analysis/analysis-asset.tex`. Do not write new workflow-language output to deprecated review-layer paths such as `docs/lab/paper/review_zh/`. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, do not use labels containing `_` or `-` in reader-facing prose, and apply the same first-mention rule to table headers, table captions, table notes, and figure captions or labels. Main tables must be locally self-contained: the title, header, note, and adjacent prose should tell the reader what each row and column means, the metric direction, and any relevant unit, denominator, or event condition. Short headers remain allowed, but abbreviations in paper-facing tables must be expanded locally in the same table. If Method or Experiments prose promises a metric family, the main table set must either expose those metrics directly or explicitly mark the missing ones as appendix-only and explain why. If a metric is measured but omitted because it is zero everywhere, redundant, or appendix-only, state that disposition explicitly in the table note instead of silently dropping it. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record both the terminology-clarity self-check and the table-semantics audit in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language paper layer first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language paper-layer path in the latest write iteration, and only then edit the final manuscript in the chosen language.
@@ -7,4 +7,4 @@ argument-hint: section or writing target
7
7
  Use the installed `lab` skill at `.claude/skills/lab/SKILL.md`.
8
8
 
9
9
  Execute the requested `/lab-write` command against the user's argument now. Do not only recommend another lab stage. If a blocking prerequisite is missing, say exactly what is missing and ask at most one clarifying question.
10
- This command runs the `write` stage of the lab workflow. Use `.claude/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat a readable workflow-language deliverable as a real persisted artifact rather than a review layer. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, and do not use labels containing `_` or `-` in reader-facing prose. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record the terminology-clarity self-check in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language deliverable first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language deliverable path in the latest write iteration, and only then edit the final manuscript in the chosen language.
10
+ This command runs the `write` stage of the lab workflow. Use `.claude/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat the workflow-language paper layer as a real persisted artifact rather than a review layer, and preserve it as a full LaTeX mirror with `workflow-language/main.tex`, `workflow-language/references.bib`, `workflow-language/sections/*.tex`, `workflow-language/tables/*.tex`, `workflow-language/figures/*.tex`, and `workflow-language/analysis/analysis-asset.tex`. Do not write new workflow-language output to deprecated review-layer paths such as `docs/lab/paper/review_zh/`. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, do not use labels containing `_` or `-` in reader-facing prose, and apply the same first-mention rule to table headers, table captions, table notes, and figure captions or labels. Main tables must be locally self-contained: the title, header, note, and adjacent prose should tell the reader what each row and column means, the metric direction, and any relevant unit, denominator, or event condition. Short headers remain allowed, but abbreviations in paper-facing tables must be expanded locally in the same table. If Method or Experiments prose promises a metric family, the main table set must either expose those metrics directly or explicitly mark the missing ones as appendix-only and explain why. If a metric is measured but omitted because it is zero everywhere, redundant, or appendix-only, state that disposition explicitly in the table note instead of silently dropping it. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record both the terminology-clarity self-check and the table-semantics audit in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language paper layer first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language paper-layer path in the latest write iteration, and only then edit the final manuscript in the chosen language.
@@ -6,4 +6,4 @@ argument-hint: section or writing target
6
6
  Use the installed `lab` skill at `.codex/skills/lab/SKILL.md`.
7
7
 
8
8
  Execute the requested `/lab:write` stage against the user's argument now. Do not only recommend another lab stage. If a blocking prerequisite is missing, say exactly what is missing and ask at most one clarifying question.
9
- This command runs the `/lab:write` stage. Use `.codex/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat a readable workflow-language deliverable as a real persisted artifact rather than a review layer. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, and do not use labels containing `_` or `-` in reader-facing prose. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record the terminology-clarity self-check in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language deliverable first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language deliverable path in the latest write iteration, and only then edit the final manuscript in the chosen language.
9
+ This command runs the `/lab:write` stage. Use `.codex/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat the workflow-language paper layer as a real persisted artifact rather than a review layer, and preserve it as a full LaTeX mirror with `workflow-language/main.tex`, `workflow-language/references.bib`, `workflow-language/sections/*.tex`, `workflow-language/tables/*.tex`, `workflow-language/figures/*.tex`, and `workflow-language/analysis/analysis-asset.tex`. Do not write new workflow-language output to deprecated review-layer paths such as `docs/lab/paper/review_zh/`. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, do not use labels containing `_` or `-` in reader-facing prose, and apply the same first-mention rule to table headers, table captions, table notes, and figure captions or labels. Main tables must be locally self-contained: the title, header, note, and adjacent prose should tell the reader what each row and column means, the metric direction, and any relevant unit, denominator, or event condition. Short headers remain allowed, but abbreviations in paper-facing tables must be expanded locally in the same table. If Method or Experiments prose promises a metric family, the main table set must either expose those metrics directly or explicitly mark the missing ones as appendix-only and explain why. If a metric is measured but omitted because it is zero everywhere, redundant, or appendix-only, state that disposition explicitly in the table note instead of silently dropping it. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record both the terminology-clarity self-check and the table-semantics audit in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language paper layer first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language paper-layer path in the latest write iteration, and only then edit the final manuscript in the chosen language.
@@ -6,4 +6,4 @@ argument-hint: section or writing target
6
6
  Use the installed `lab` skill at `.codex/skills/lab/SKILL.md`.
7
7
 
8
8
  Execute the requested `/lab:write` stage against the user's argument now. Do not only recommend another lab stage. If a blocking prerequisite is missing, say exactly what is missing and ask at most one clarifying question.
9
- This command runs the `/lab:write` stage. Use `.codex/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat a readable workflow-language deliverable as a real persisted artifact rather than a review layer. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, and do not use labels containing `_` or `-` in reader-facing prose. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record the terminology-clarity self-check in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language deliverable first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language deliverable path in the latest write iteration, and only then edit the final manuscript in the chosen language.
9
+ This command runs the `/lab:write` stage. Use `.codex/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat the workflow-language paper layer as a real persisted artifact rather than a review layer, and preserve it as a full LaTeX mirror with `workflow-language/main.tex`, `workflow-language/references.bib`, `workflow-language/sections/*.tex`, `workflow-language/tables/*.tex`, `workflow-language/figures/*.tex`, and `workflow-language/analysis/analysis-asset.tex`. Do not write new workflow-language output to deprecated review-layer paths such as `docs/lab/paper/review_zh/`. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, do not use labels containing `_` or `-` in reader-facing prose, and apply the same first-mention rule to table headers, table captions, table notes, and figure captions or labels. Main tables must be locally self-contained: the title, header, note, and adjacent prose should tell the reader what each row and column means, the metric direction, and any relevant unit, denominator, or event condition. Short headers remain allowed, but abbreviations in paper-facing tables must be expanded locally in the same table. If Method or Experiments prose promises a metric family, the main table set must either expose those metrics directly or explicitly mark the missing ones as appendix-only and explain why. If a metric is measured but omitted because it is zero everywhere, redundant, or appendix-only, state that disposition explicitly in the table note instead of silently dropping it. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record both the terminology-clarity self-check and the table-semantics audit in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language paper layer first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language paper-layer path in the latest write iteration, and only then edit the final manuscript in the chosen language.
@@ -6,4 +6,4 @@ argument-hint: section or writing target
6
6
  Use the installed `lab` skill at `.codex/skills/lab/SKILL.md`.
7
7
 
8
8
  Execute the requested `/lab:write` stage against the user's argument now. Do not only recommend another lab stage. If a blocking prerequisite is missing, say exactly what is missing and ask at most one clarifying question.
9
- This command runs the `/lab:write` stage. Use `.codex/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat a readable workflow-language deliverable as a real persisted artifact rather than a review layer. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, and do not use labels containing `_` or `-` in reader-facing prose. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record the terminology-clarity self-check in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language deliverable first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language deliverable path in the latest write iteration, and only then edit the final manuscript in the chosen language.
9
+ This command runs the `/lab:write` stage. Use `.codex/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat the workflow-language paper layer as a real persisted artifact rather than a review layer, and preserve it as a full LaTeX mirror with `workflow-language/main.tex`, `workflow-language/references.bib`, `workflow-language/sections/*.tex`, `workflow-language/tables/*.tex`, `workflow-language/figures/*.tex`, and `workflow-language/analysis/analysis-asset.tex`. Do not write new workflow-language output to deprecated review-layer paths such as `docs/lab/paper/review_zh/`. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, do not use labels containing `_` or `-` in reader-facing prose, and apply the same first-mention rule to table headers, table captions, table notes, and figure captions or labels. Main tables must be locally self-contained: the title, header, note, and adjacent prose should tell the reader what each row and column means, the metric direction, and any relevant unit, denominator, or event condition. Short headers remain allowed, but abbreviations in paper-facing tables must be expanded locally in the same table. If Method or Experiments prose promises a metric family, the main table set must either expose those metrics directly or explicitly mark the missing ones as appendix-only and explain why. If a metric is measured but omitted because it is zero everywhere, redundant, or appendix-only, state that disposition explicitly in the table note instead of silently dropping it. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record both the terminology-clarity self-check and the table-semantics audit in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language paper layer first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language paper-layer path in the latest write iteration, and only then edit the final manuscript in the chosen language.
@@ -6,4 +6,4 @@ argument-hint: section or writing target
6
6
  Use the installed `lab` skill at `.codex/skills/lab/SKILL.md`.
7
7
 
8
8
  Execute the requested `/lab:write` stage against the user's argument now. Do not only recommend another lab stage. If a blocking prerequisite is missing, say exactly what is missing and ask at most one clarifying question.
9
- This command runs the `/lab:write` stage. Use `.codex/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat a readable workflow-language deliverable as a real persisted artifact rather than a review layer. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, and do not use labels containing `_` or `-` in reader-facing prose. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record the terminology-clarity self-check in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language deliverable first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language deliverable path in the latest write iteration, and only then edit the final manuscript in the chosen language.
9
+ This command runs the `/lab:write` stage. Use `.codex/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section references, validator gates, asset coverage, and final manuscript rules. Read the matching paper-writing reference and any bundled example-bank files for the requested section, revise only one section, and keep draft rounds warning-only while final-draft or export rounds must satisfy the write-stage acceptance gates. Draft ordinary manuscript rounds in `workflow_language`, and ordinary `.tex` section drafts must stay in `workflow_language` instead of treating `paper_language` as the default draft language. Treat the workflow-language paper layer as a real persisted artifact rather than a review layer, and preserve it as a full LaTeX mirror with `workflow-language/main.tex`, `workflow-language/references.bib`, `workflow-language/sections/*.tex`, `workflow-language/tables/*.tex`, `workflow-language/figures/*.tex`, and `workflow-language/analysis/analysis-asset.tex`. Do not write new workflow-language output to deprecated review-layer paths such as `docs/lab/paper/review_zh/`. Maintain `.lab/writing/terminology-glossary.md` as the write-stage glossary for full forms, approved short forms, reader-facing explanations, and aliases. Apply the same academic readability standard in every language: when the round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, use the full form first, define any short form at first mention, explain what the term is and why it matters here, keep one natural-language paper-facing name per concept, use natural-language full names in prose, do not use labels containing `_` or `-` in reader-facing prose, and apply the same first-mention rule to table headers, table captions, table notes, and figure captions or labels. Main tables must be locally self-contained: the title, header, note, and adjacent prose should tell the reader what each row and column means, the metric direction, and any relevant unit, denominator, or event condition. Short headers remain allowed, but abbreviations in paper-facing tables must be expanded locally in the same table. If Method or Experiments prose promises a metric family, the main table set must either expose those metrics directly or explicitly mark the missing ones as appendix-only and explain why. If a metric is measured but omitted because it is zero everywhere, redundant, or appendix-only, state that disposition explicitly in the table note instead of silently dropping it. Keep internal identifiers out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose, and record both the terminology-clarity self-check and the table-semantics audit in the write iteration artifact. If the manuscript would start from the managed scaffold and no template decision is recorded yet, ask once whether to keep the default scaffold or attach a template directory first. If finalization reaches a round where `workflow_language` and `paper_language` differ, finish and preserve the workflow-language paper layer first, then ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`, persist that answer, record both the language decision and the workflow-language paper-layer path in the latest write iteration, and only then edit the final manuscript in the chosen language.
@@ -22,6 +22,14 @@ WORKFLOW_LANGUAGE_DELIVERABLE_REVIEW_MARKERS = (
22
22
  "Claim-Evidence 映射",
23
23
  "Claim-Evidence Map",
24
24
  )
25
+ REQUIRED_TABLE_NOTE_MARKERS = (
26
+ "% Rows:",
27
+ "% Columns:",
28
+ "% Metric definitions:",
29
+ "% Comparison scope:",
30
+ "% Important caveat:",
31
+ )
32
+ TABLE_ABBREVIATION_EXCEPTIONS = {"TODO", "TBD"}
25
33
 
26
34
 
27
35
  def parse_args():
@@ -99,6 +107,31 @@ def extract_label(text: str) -> str | None:
99
107
  return match.group(1) if match else None
100
108
 
101
109
 
110
+ def extract_caption(text: str) -> str:
111
+ match = re.search(r"\\caption\{(.+?)\}", text, flags=re.DOTALL)
112
+ return match.group(1) if match else ""
113
+
114
+
115
+ def extract_table_note(text: str) -> str:
116
+ return "\n".join(line.strip() for line in text.splitlines() if line.strip().startswith("%"))
117
+
118
+
119
+ def detect_uppercase_abbreviations(text: str) -> set[str]:
120
+ return {
121
+ token
122
+ for token in re.findall(r"\b[A-Z]{2,6}\b", text)
123
+ if token not in TABLE_ABBREVIATION_EXCEPTIONS
124
+ }
125
+
126
+
127
+ def has_local_abbreviation_expansion(context: str, token: str) -> bool:
128
+ patterns = (
129
+ rf"[A-Za-z\u4e00-\u9fff][^\n]{{0,80}}[\((]{re.escape(token)}[\))]",
130
+ rf"{re.escape(token)}\s*[:=:]",
131
+ )
132
+ return any(re.search(pattern, context) for pattern in patterns)
133
+
134
+
102
135
  def section_references_label(text: str, label: str) -> bool:
103
136
  return bool(re.search(REF_PATTERN_TEMPLATE % re.escape(label), text))
104
137
 
@@ -146,6 +179,14 @@ def check_table_file(path: Path, issues: list[str], label: str):
146
179
  issues.append(f"{label} must contain both caption and label")
147
180
  if not all(token in text for token in (r"\toprule", r"\midrule", r"\bottomrule")):
148
181
  issues.append(f"{label} must use booktabs structure")
182
+ if not all(marker in text for marker in REQUIRED_TABLE_NOTE_MARKERS):
183
+ issues.append(f"{label} must include a local table note scaffold")
184
+ caption_text = extract_caption(text)
185
+ note_text = extract_table_note(text)
186
+ local_context = "\n".join((caption_text, note_text))
187
+ for token in sorted(detect_uppercase_abbreviations(text)):
188
+ if not has_local_abbreviation_expansion(local_context, token):
189
+ issues.append(f"{label} uses abbreviation `{token}` without local expansion")
149
190
 
150
191
 
151
192
  def check_figure_file(path: Path, issues: list[str], label: str):
@@ -271,8 +312,9 @@ def check_asset_consumption(paper_dir: Path, issues: list[str]):
271
312
  require_section_reference(experiments_text, analysis_label, issues, "experiments section", "analysis asset")
272
313
 
273
314
  main_results_text = read_text(tables_dir / "main-results.tex") if (tables_dir / "main-results.tex").exists() else ""
315
+ main_results_tabular = main_results_text.split(r"\end{tabular}")[0] if main_results_text else ""
274
316
  prose_for_ranking_claims = "\n".join((introduction_text, experiments_text))
275
- if re.search(r"\bQini\b", prose_for_ranking_claims, flags=re.IGNORECASE) and "Qini" not in main_results_text:
317
+ if re.search(r"\bQini\b", prose_for_ranking_claims, flags=re.IGNORECASE) and "Qini" not in main_results_tabular:
276
318
  issues.append("manuscript prose mentions Qini but tables/main-results.tex does not expose it")
277
319
 
278
320
 
@@ -372,36 +414,80 @@ def check_language_layers(paper_dir: Path, issues: list[str]):
372
414
  if section_text and not text_looks_like_language(section_text, target_language):
373
415
  issues.append(
374
416
  f"final manuscript sections should follow {target_language} after paper_language_finalization_decision={finalization_decision}"
375
- )
417
+ )
376
418
 
377
419
  if finalization_decision != "convert-to-paper-language":
378
420
  return
379
421
 
380
- workflow_deliverable_sections = paper_dir / "workflow-language" / "sections"
381
- if not workflow_deliverable_sections.exists():
422
+ workflow_layer_dir = paper_dir / "workflow-language"
423
+ workflow_deliverable_sections = workflow_layer_dir / "sections"
424
+ workflow_tables_dir = workflow_layer_dir / "tables"
425
+ workflow_figures_dir = workflow_layer_dir / "figures"
426
+ workflow_analysis_dir = workflow_layer_dir / "analysis"
427
+ if not workflow_layer_dir.exists():
382
428
  issues.append(
383
- "missing persisted workflow-language deliverable under workflow-language/sections before converting the final manuscript to paper_language"
429
+ "missing persisted workflow-language paper layer under workflow-language/ before converting the final manuscript to paper_language"
384
430
  )
385
431
  return
432
+ workflow_main_tex = workflow_layer_dir / "main.tex"
433
+ workflow_references = workflow_layer_dir / "references.bib"
434
+ if not workflow_main_tex.exists():
435
+ issues.append("workflow-language paper layer is missing main.tex")
436
+ if not workflow_references.exists():
437
+ issues.append("workflow-language paper layer is missing references.bib")
438
+ if not workflow_deliverable_sections.exists():
439
+ issues.append("workflow-language paper layer is missing sections/")
440
+ if not workflow_tables_dir.exists():
441
+ issues.append("workflow-language paper layer is missing tables/")
442
+ if not workflow_figures_dir.exists():
443
+ issues.append("workflow-language paper layer is missing figures/")
444
+ if not workflow_analysis_dir.exists():
445
+ issues.append("workflow-language paper layer is missing analysis/")
386
446
 
387
447
  manuscript_section_files = sorted(path for path in sections_dir.glob("*.tex") if path.is_file())
388
448
  for manuscript_section in manuscript_section_files:
389
- companion_path = workflow_deliverable_sections / f"{manuscript_section.stem}.md"
449
+ companion_path = workflow_deliverable_sections / f"{manuscript_section.stem}.tex"
390
450
  if not companion_path.exists():
391
451
  issues.append(
392
- f"workflow-language deliverable is missing section companion: workflow-language/sections/{manuscript_section.stem}.md"
452
+ f"workflow-language paper layer is missing section companion: workflow-language/sections/{manuscript_section.stem}.tex"
393
453
  )
394
454
  continue
395
455
  companion_text = read_text(companion_path)
396
456
  if not text_looks_like_language(companion_text, workflow_language):
397
457
  issues.append(
398
- f"workflow-language deliverable section {companion_path.name} should follow workflow_language={workflow_language}"
458
+ f"workflow-language paper-layer section {companion_path.name} should follow workflow_language={workflow_language}"
399
459
  )
400
460
  if any(marker in companion_text for marker in WORKFLOW_LANGUAGE_DELIVERABLE_REVIEW_MARKERS):
401
461
  issues.append(
402
- f"workflow-language deliverable section {companion_path.name} contains review-only scaffolding and cannot substitute for a readable deliverable"
462
+ f"workflow-language paper-layer section {companion_path.name} contains review-only scaffolding and cannot substitute for a readable deliverable"
403
463
  )
404
464
 
465
+ mirror_asset_dirs = [
466
+ (paper_dir / "tables", workflow_tables_dir, REQUIRED_TABLE_FILES, "table asset"),
467
+ (paper_dir / "figures", workflow_figures_dir, REQUIRED_FIGURE_FILES, "figure asset"),
468
+ (paper_dir / "analysis", workflow_analysis_dir, ("analysis-asset.tex",), "analysis asset"),
469
+ ]
470
+ for manuscript_dir, workflow_dir, filenames, asset_label in mirror_asset_dirs:
471
+ for filename in filenames:
472
+ manuscript_path = manuscript_dir / filename
473
+ if not manuscript_path.exists():
474
+ continue
475
+ workflow_path = workflow_dir / filename
476
+ if not workflow_path.exists():
477
+ issues.append(
478
+ f"workflow-language paper layer is missing mirrored {asset_label}: workflow-language/{workflow_dir.name}/{filename}"
479
+ )
480
+ continue
481
+ workflow_text = read_text(workflow_path)
482
+ if not text_looks_like_language(workflow_text, workflow_language):
483
+ issues.append(
484
+ f"workflow-language paper-layer asset {workflow_path.name} should follow workflow_language={workflow_language}"
485
+ )
486
+ if any(marker in workflow_text for marker in WORKFLOW_LANGUAGE_DELIVERABLE_REVIEW_MARKERS):
487
+ issues.append(
488
+ f"workflow-language paper-layer asset {workflow_path.name} contains review-only scaffolding and cannot substitute for a readable deliverable"
489
+ )
490
+
405
491
 
406
492
  def main():
407
493
  args = parse_args()
@@ -10,4 +10,9 @@ Ours & 0.0000 & 0.0000 \\
10
10
  Baseline & 0.0000 & 0.0000 \\
11
11
  \bottomrule
12
12
  \end{tabular}
13
+ % Rows: explain what each row represents.
14
+ % Columns: explain what each column represents and its direction.
15
+ % Metric definitions: expand local abbreviations, units, denominators, or event conditions.
16
+ % Comparison scope: explain which setting, split, attack family, or benchmark scope this table covers.
17
+ % Important caveat: state any omitted metrics, zero-valued metrics, or appendix-only reporting decision.
13
18
  \end{table}
@@ -40,6 +40,15 @@
40
40
  - Did any alias drift remain unresolved:
41
41
  - Remaining reader-facing jargon risk:
42
42
 
43
+ ## Table Semantics
44
+
45
+ - Metrics promised in Method:
46
+ - Metrics shown in main tables:
47
+ - Any omitted metric and why:
48
+ - Were all abbreviations expanded at local first mention:
49
+ - Did each main table include a local table note:
50
+ - Can a reader interpret rows and columns without chasing Method:
51
+
43
52
  ## Language Decision
44
53
 
45
54
  - Workflow language:
@@ -213,15 +213,20 @@ Use this skill when the user invokes `/lab:*` or asks for the structured researc
213
213
  - Write one paper section or one explicit subproblem per round.
214
214
  - Ordinary manuscript drafting rounds should follow `workflow_language`.
215
215
  - In those ordinary rounds, the manuscript is still LaTeX, so the initial `.tex` section drafts must stay in `workflow_language` rather than jumping straight to `paper_language`.
216
- - Treat the readable workflow-language paper as a real persisted deliverable, not as a review layer.
217
- - If `workflow_language` and `paper_language` differ, finish and preserve the workflow-language deliverable first, then the first final-draft or export round must ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`.
216
+ - Treat the workflow-language paper as a real persisted paper layer, not as a review layer.
217
+ - If `workflow_language` and `paper_language` differ, finish and preserve the workflow-language paper layer first, then the first final-draft or export round must ask once whether to keep the draft language or convert the canonical manuscript to `paper_language`.
218
218
  - When the languages differ, do not rewrite final manuscript sections in `paper_language` before that question has been answered; ask first, persist the choice, then edit the final manuscript in the chosen language.
219
- - When the languages differ, record the workflow language, paper language, finalization decision, why the decision was chosen, and the workflow-language deliverable path in the latest write iteration artifact.
219
+ - When the languages differ, record the workflow language, paper language, finalization decision, why the decision was chosen, and the workflow-language paper-layer path in the latest write iteration artifact.
220
220
  - Apply the same reader-facing standard in both languages: when a round introduces or revises key terms, abbreviations, metrics, mechanism names, or system labels, explain them at first mention by saying what they are and why they matter here.
221
221
  - First mention should use the full form. If a short form or acronym will be reused, define it at first mention and then keep usage stable.
222
+ - Apply the same first-mention rule to table headers, captions, notes, and figure captions or labels; if a term first appears in a table, explain it locally in that table.
222
223
  - Keep one canonical natural-language paper-facing name per concept.
223
224
  - Use natural-language full names in prose, and define any approved short form once before reusing it.
224
225
  - Do not use labels containing `_` or `-` in reader-facing prose.
226
+ - Main tables must be locally self-contained: a reader should be able to understand row meaning, column meaning, metric direction, and any relevant unit or denominator from the table title, table note, and adjacent prose without chasing the Method section.
227
+ - If Method or Experiments prose promises a metric family, the main table set must either expose that metric family directly or mark the missing items as appendix-only and explain why.
228
+ - Short table headers are allowed, but any abbreviation in a paper-facing table must be expanded locally in the same table.
229
+ - If a metric is measured but omitted because it is zero everywhere, redundant, or appendix-only, state that decision explicitly in the table note instead of silently dropping it.
225
230
  - Keep internal identifiers out of prose unless they are mapped once for the reader and then moved back out of prose.
226
231
  - Do not rely on unexplained jargon density as a substitute for academic tone.
227
232
  - Bind each claim to evidence from `report`, iteration reports, or normalized summaries.
@@ -252,7 +257,7 @@ Use this skill when the user invokes `/lab:*` or asks for the structured researc
252
257
  - No final report without validated normalized results.
253
258
  - No paper-writing round without stable report artifacts, an approved framing artifact, evidence links, and LaTeX manuscript output.
254
259
  - No final-draft or export round without passing section-quality, claim-safety, and manuscript-delivery validation.
255
- - 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 deliverable path.
260
+ - 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.
256
261
 
257
262
  ## References
258
263
 
@@ -65,9 +65,11 @@ Run these on every round:
65
65
  - LaTeX is the required manuscript output format.
66
66
  - Ordinary manuscript drafting rounds should follow `workflow_language`.
67
67
  - During ordinary rounds, ordinary `.tex` section drafts must stay in `workflow_language`; do not treat `paper_language` as the default draft language.
68
- - Treat the workflow-language manuscript as a real deliverable layer, not just an internal review note.
69
- - If the user asks to read the paper in `workflow_language`, materialize or refresh a readable workflow-language deliverable under `<deliverables_root>/paper/workflow-language/sections/<section>.md` instead of pointing to a review layer.
70
- - The workflow-language deliverable should mirror the current manuscript logic in reader-facing prose and must not contain review-only scaffolding such as paragraph outlines, self-check blocks, or claim-evidence maps.
68
+ - Treat the workflow-language manuscript as a real persisted paper layer, not just an internal review note.
69
+ - If the user asks to read the paper in `workflow_language`, materialize or refresh a full workflow-language paper layer under `<deliverables_root>/paper/workflow-language/` instead of pointing to a review layer.
70
+ - The workflow-language paper layer must stay in LaTeX and mirror the canonical paper structure with its own `main.tex`, `references.bib`, `sections/*.tex`, `tables/*.tex`, `figures/*.tex`, and `analysis/analysis-asset.tex`.
71
+ - The workflow-language paper layer must mirror the current manuscript logic in reader-facing prose and must not contain review-only scaffolding such as paragraph outlines, self-check blocks, or claim-evidence maps.
72
+ - Do not write new workflow-language output to deprecated review-layer paths such as `docs/lab/paper/review_zh/`.
71
73
  - If `paper_template_root` is configured, inspect that template directory before drafting and align the manuscript structure to it.
72
74
  - Treat attached template directories as user-owned and potentially modified. Do not rewrite template files unless the user explicitly asks.
73
75
  - If no paper template is configured and `paper_template_decision` is `unconfirmed`, ask one explicit question before the first `.tex` drafting round: continue with the default LaTeX scaffold, or attach a template directory first.
@@ -83,11 +85,11 @@ Run these on every round:
83
85
  - If the current round is a final manuscript export or final-draft pass, `paper_template_root` is still empty, `paper_template_decision` is `default-scaffold`, and `paper_template_final_reminder_acknowledged` is `false`, ask one final reminder question about switching to a template before finalizing.
84
86
  - If the user confirms staying on the default scaffold at that final reminder, persist `paper_template_final_reminder_acknowledged: true`.
85
87
  - If the current round is a final manuscript export or final-draft pass, `workflow_language` and `paper_language` differ, and `paper_language_finalization_decision` is `unconfirmed`, ask one explicit question before finalizing: keep the manuscript in `workflow_language`, or convert the final manuscript to `paper_language`.
86
- - When `workflow_language` and `paper_language` differ, finish and preserve the readable workflow-language deliverable first, then ask whether the canonical manuscript should be converted to `paper_language`.
88
+ - When `workflow_language` and `paper_language` differ, finish and preserve the workflow-language paper layer first, then ask whether the canonical manuscript should be converted to `paper_language`.
87
89
  - Do not rewrite final manuscript sections in `paper_language` before that question has been answered. Ask first, persist the answer, then edit the final manuscript.
88
90
  - If the user chooses to keep the draft language, persist `paper_language_finalization_decision: keep-workflow-language`.
89
91
  - If the user chooses to convert, persist `paper_language_finalization_decision: convert-to-paper-language`.
90
- - If `paper_language_finalization_decision` is `convert-to-paper-language`, preserve the workflow-language deliverable under `<deliverables_root>/paper/workflow-language/sections/` and convert only the canonical manuscript output to `paper_language` before accepting the final round.
92
+ - If `paper_language_finalization_decision` is `convert-to-paper-language`, preserve the workflow-language paper layer under `<deliverables_root>/paper/workflow-language/` and convert only the canonical manuscript output to `paper_language` before accepting the final round.
91
93
  - Load only the current section guide. Do not load every section guide at once.
92
94
  - Reuse example-bank structure, paragraph roles, sentence logic, and paper-facing LaTeX asset patterns when examples are bundled, but never copy wording verbatim.
93
95
  - Treat example cites and example file names as writing references, not as evidence for the current paper.
@@ -95,11 +97,17 @@ Run these on every round:
95
97
  - Academic readability standards are the same in `workflow_language` and `paper_language`; changing languages must not lower external-reader clarity.
96
98
  - If the current round introduces or revises key terms, abbreviations, metric names, mechanism names, or system labels, explain them at first mention by briefly stating what they are and why they matter here.
97
99
  - First mention should use the full form. If a short form or acronym will be reused later, define it at first mention as `Full Form (Short Form)` before switching to the short form.
100
+ - Apply the same first-mention rule to table headers, table captions, table notes, and figure captions or labels; if a term or abbreviation first appears in a table, expand it locally in that table.
98
101
  - Keep one canonical natural-language paper-facing name per concept. Do not let one concept drift across paper-facing names, experiment labels, and internal identifiers.
99
102
  - Use natural-language full names in prose. If an approved short form is needed later, define it once and reuse it consistently.
100
103
  - Do not use labels containing `_` or `-` in reader-facing prose.
101
104
  - Keep internal identifiers, config keys, and experiment package labels out of reader-facing prose unless they are mapped once for the reader and then moved back out of prose.
102
105
  - Do not use unexplained terminology density as a substitute for academic tone.
106
+ - Main tables must be locally self-contained: a reader looking at the table title, header, note, and adjacent introduction or interpretation should be able to determine what each row represents, what each column measures, the metric direction, and any relevant unit, denominator, or event condition.
107
+ - Short headers remain allowed, but they must be resolved locally through the same table's caption or table note instead of forcing the reader to chase the Method section.
108
+ - If the Method or Experiments prose says the paper reports a metric family, the main table set must either expose those metrics directly or explicitly mark the missing ones as appendix-only and explain why.
109
+ - If a metric is measured but omitted because it is uniformly zero, redundant, or appendix-only, state that disposition explicitly in the caption or table note instead of silently dropping it.
110
+ - Every main table should have a short table-introduction sentence before it and a short interpretation sentence after it so the reader knows what question the table answers and how to read the result.
103
111
  - Build the paper asset plan before prose when the section carries introduction, experimental, method, related-work, or conclusion claims:
104
112
  - record the asset coverage targets and gaps for the current paper
105
113
  - record which table asset files the section needs, what each table should show, and which evidence supports it
@@ -131,6 +139,7 @@ Run these on every round:
131
139
  - If the current paper contains experimental claims, materialize one additional paper-facing analysis asset with caption, label, and explicit asset intent:
132
140
  - `<deliverables_root>/paper/analysis/analysis-asset.tex`
133
141
  - Table assets must use paper-facing LaTeX structure with `booktabs`, caption, label, and consistent precision.
142
+ - Table assets must also include a local table note that explains row meaning, column meaning, metric definitions, comparison scope, and any important caveat.
134
143
  - Figure placeholders must explain what the final figure should show and why the reader needs it.
135
144
  - Core asset coverage for a paper-facing final draft should include a problem-setting or teaser figure, a method overview figure, a results overview figure, a main-results table, an ablation table, and one additional analysis asset.
136
145
  - Keep `.lab/writing/plan.md` synchronized with the current table plan, figure plan, citation plan, and section-to-asset map whenever manuscript assets change.
@@ -138,14 +147,14 @@ Run these on every round:
138
147
  - If the final-round section or claim validators fail, keep editing the affected section until it passes; do not stop at asset-complete but rhetorically weak or unsafe prose.
139
148
  - Run `.lab/.managed/scripts/validate_manuscript_delivery.py --paper-dir <deliverables_root>/paper` before accepting a final-draft or export round.
140
149
  - The manuscript-delivery validator should fail if the core figures and tables are only inserted but never cited from section prose, if final manuscript acceptance tries to bypass the one-time `paper_language_finalization_decision` gate when `workflow_language` and `paper_language` differ, or if the latest write iteration does not audit that language decision.
141
- - The manuscript-delivery validator should also fail if `paper_language_finalization_decision=convert-to-paper-language` but the persisted workflow-language deliverable is missing, missing section coverage, written in the wrong language, or still contains review-only scaffolding.
150
+ - The manuscript-delivery validator should also fail if `paper_language_finalization_decision=convert-to-paper-language` but the persisted workflow-language paper layer is missing, missing `main.tex` or `references.bib`, missing mirrored section or asset coverage, written in the wrong language, or still contains review-only scaffolding.
142
151
  - If the manuscript validator fails, keep editing and asset generation until it passes; do not stop at prose-only completion.
143
152
  - Run a LaTeX compile smoke test when a local LaTeX toolchain is available; if not available, record the missing verification in the write iteration artifact.
144
153
  - Record what changed and why in a write-iteration artifact.
145
154
  - Maintain `.lab/writing/terminology-glossary.md` as the write-stage source for full forms, approved short forms, reader-facing explanations, and aliases whenever terminology changes.
146
155
  - When a round introduces or revises key terms, include a compact terminology note in the user-facing round summary and record the terminology-clarity self-check in the write-iteration artifact.
147
156
  - When `workflow_language` and `paper_language` differ, record the final manuscript language choice in the write-iteration artifact with the workflow language, paper language, finalization decision, and why that decision was chosen.
148
- - When `workflow_language` and `paper_language` differ, also record the persisted workflow-language deliverable path in the write-iteration artifact.
157
+ - When `workflow_language` and `paper_language` differ, also record the persisted workflow-language paper-layer path in the write-iteration artifact.
149
158
  - Keep the handoff wording in the write-iteration artifact explicit and stable: say what is completed, what scope is frozen for the next round, what the next owner is allowed to do, what they must read first, and what counts as accept, revise, or reject.
150
159
  - Return paragraph-level roles for the revised prose when drafting.
151
160
  - Run the five-dimension self-review checklist before accepting a round.
@@ -168,7 +177,15 @@ Run these on every round:
168
177
  - `<deliverables_root>/paper/figures/method-overview.tex`
169
178
  - `<deliverables_root>/paper/figures/results-overview.tex`
170
179
  - `<deliverables_root>/paper/analysis/analysis-asset.tex`
171
- - `<deliverables_root>/paper/workflow-language/sections/<section>.md` when the user requests a readable workflow-language deliverable or when `paper_language_finalization_decision=convert-to-paper-language`
180
+ - `<deliverables_root>/paper/workflow-language/main.tex` when the user requests a workflow-language paper layer or when `paper_language_finalization_decision=convert-to-paper-language`
181
+ - `<deliverables_root>/paper/workflow-language/references.bib` when the user requests a workflow-language paper layer or when `paper_language_finalization_decision=convert-to-paper-language`
182
+ - `<deliverables_root>/paper/workflow-language/sections/<section>.tex` when the user requests a workflow-language paper layer or when `paper_language_finalization_decision=convert-to-paper-language`
183
+ - `<deliverables_root>/paper/workflow-language/tables/main-results.tex` when the current paper contains experimental claims and `paper_language_finalization_decision=convert-to-paper-language`
184
+ - `<deliverables_root>/paper/workflow-language/tables/ablations.tex` when the current paper contains experimental claims and `paper_language_finalization_decision=convert-to-paper-language`
185
+ - `<deliverables_root>/paper/workflow-language/figures/problem-setting.tex` when the current paper contains method or experiments claims and `paper_language_finalization_decision=convert-to-paper-language`
186
+ - `<deliverables_root>/paper/workflow-language/figures/method-overview.tex` when the current paper contains method or experiments claims and `paper_language_finalization_decision=convert-to-paper-language`
187
+ - `<deliverables_root>/paper/workflow-language/figures/results-overview.tex` when the current paper contains experimental claims and `paper_language_finalization_decision=convert-to-paper-language`
188
+ - `<deliverables_root>/paper/workflow-language/analysis/analysis-asset.tex` when the current paper contains experimental claims and `paper_language_finalization_decision=convert-to-paper-language`
172
189
 
173
190
  ## Stop Conditions
174
191
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superlab",
3
- "version": "0.1.51",
3
+ "version": "0.1.53",
4
4
  "description": "Strict /lab research workflow installer for Codex and Claude",
5
5
  "keywords": [
6
6
  "codex",