superlab 0.1.66 → 0.1.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/lib/i18n.cjs +0 -6
  2. package/lib/lab_write_contract.json +4 -4
  3. package/package-assets/claude/commands/lab/write.md +2 -1
  4. package/package-assets/claude/commands/lab-write.md +2 -1
  5. package/package-assets/claude/commands/lab:write.md +2 -1
  6. package/package-assets/claude/commands/lab/357/274/232write.md +2 -1
  7. package/package-assets/codex/prompts/lab/write.md +2 -1
  8. package/package-assets/codex/prompts/lab-write.md +2 -1
  9. package/package-assets/codex/prompts/lab:write.md +2 -1
  10. package/package-assets/codex/prompts/lab/357/274/232write.md +2 -1
  11. package/package-assets/shared/lab/.managed/scripts/validate_manuscript_delivery.py +119 -83
  12. package/package-assets/shared/lab/.managed/scripts/validate_paper_plan.py +2 -0
  13. package/package-assets/shared/lab/.managed/scripts/validate_reference_consumption.py +348 -0
  14. package/package-assets/shared/lab/.managed/scripts/validate_section_draft.py +70 -141
  15. package/package-assets/shared/lab/.managed/templates/paper-figure.tex +2 -1
  16. package/package-assets/shared/lab/.managed/templates/paper-plan.md +4 -4
  17. package/package-assets/shared/lab/.managed/templates/reference-consumption-plan.md +41 -0
  18. package/package-assets/shared/lab/.managed/templates/write-iteration.md +17 -27
  19. package/package-assets/shared/skills/lab/SKILL.md +6 -1
  20. package/package-assets/shared/skills/lab/references/paper-writing/examples/experiments/figure-placeholder-and-discussion.md +10 -6
  21. package/package-assets/shared/skills/lab/references/paper-writing/examples/experiments-examples.md +1 -1
  22. package/package-assets/shared/skills/lab/references/paper-writing/section-style-policies.md +12 -0
  23. package/package-assets/shared/skills/lab/stages/write.md +32 -20
  24. package/package.json +1 -1
  25. package/package-assets/shared/lab/.managed/scripts/extract_reference_paper_structure.py +0 -1200
  26. package/package-assets/shared/lab/.managed/templates/reference-template-intake.md +0 -50
@@ -91,14 +91,6 @@ def has_meaningful_field_value(value: str) -> bool:
91
91
  return normalized not in {"", "-", "n/a", "na", "none", "no", "not applicable", "null", "false"}
92
92
 
93
93
 
94
- def latest_write_iteration(project_root: Path) -> Path | None:
95
- iteration_dir = project_root / ".lab" / "writing" / "iterations"
96
- if not iteration_dir.exists():
97
- return None
98
- iteration_files = sorted(iteration_dir.glob("*.md"))
99
- return iteration_files[-1] if iteration_files else None
100
-
101
-
102
94
  SECTION_STYLE_WARNINGS = {
103
95
  "abstract": [
104
96
  (
@@ -206,13 +198,73 @@ SECTION_STYLE_WARNINGS = {
206
198
  ],
207
199
  }
208
200
 
201
+ SERVICE_STYLE_PHRASES = (
202
+ "user asked",
203
+ "the user asked",
204
+ "as requested by the user",
205
+ "let me explain",
206
+ "i will explain",
207
+ "below i",
208
+ "用户说",
209
+ "用户要求",
210
+ "按你的要求",
211
+ "我来解释",
212
+ "我会说明",
213
+ "下面我",
214
+ "这版",
215
+ "已完成",
216
+ "已按",
217
+ )
218
+
219
+ WORKFLOW_ONLY_MANUSCRIPT_PHRASES = (
220
+ "figure intent",
221
+ "asset intent",
222
+ "placeholder",
223
+ "workflow-language",
224
+ "translation layer",
225
+ "review layer",
226
+ "图的意图",
227
+ "资产意图",
228
+ "占位符",
229
+ "工作流语言",
230
+ "同步到",
231
+ )
232
+ INTERNAL_EXPERIMENT_PROVENANCE_PHRASES = (
233
+ "tuning run",
234
+ "tuning runs",
235
+ "historical probe",
236
+ "rank-margin probe",
237
+ "rerun id",
238
+ "run id",
239
+ "实验包",
240
+ "历史 probe",
241
+ "调参运行",
242
+ "调参轮次",
243
+ )
244
+ INTERNAL_CONFIG_LABEL_PATTERN = re.compile(
245
+ r"\b[a-z]{1,4}\d+(?:[-_][a-z]?\d+(?:\.\d+)?){1,4}\b",
246
+ flags=re.IGNORECASE,
247
+ )
248
+
209
249
 
210
250
  def check_common_section_gate_risks(text: str, issues: list[str]):
211
251
  prose_text = strip_latex_commands(text)
252
+ if contains_any(prose_text, SERVICE_STYLE_PHRASES):
253
+ issues.append(
254
+ "service-style or AI-assistant meta language appears in reader-facing prose; rewrite it as academic manuscript text"
255
+ )
256
+ if contains_any(prose_text, WORKFLOW_ONLY_MANUSCRIPT_PHRASES):
257
+ issues.append(
258
+ "workflow-only placeholder language appears in reader-facing prose; move authoring notes out of the manuscript"
259
+ )
212
260
  if re.search(r"\b[a-z0-9]+(?:_[a-z0-9]+)+\b", prose_text):
213
261
  issues.append(
214
262
  "reader-facing prose appears to contain internal identifier-like tokens; map them once for the reader and move them back out of prose before more polishing"
215
263
  )
264
+ if contains_any(prose_text, INTERNAL_EXPERIMENT_PROVENANCE_PHRASES) or INTERNAL_CONFIG_LABEL_PATTERN.search(prose_text):
265
+ issues.append(
266
+ "reader-facing prose appears to contain internal experiment provenance or tuning/config labels; move run provenance to workflow notes or map it to paper-facing diagnostic terminology"
267
+ )
216
268
  if contains_any(
217
269
  prose_text,
218
270
  (
@@ -310,6 +362,16 @@ def check_neighbor_asset_files(section: str, section_path: Path, issues: list[st
310
362
  issues.append(
311
363
  f"{section} section is missing the required paper-layer asset file: {asset_path.as_posix()}"
312
364
  )
365
+ continue
366
+ asset_text = strip_latex_commands(read_text(asset_path))
367
+ if contains_any(asset_text, SERVICE_STYLE_PHRASES):
368
+ issues.append(
369
+ f"{asset_path.as_posix()} contains service-style or AI-assistant meta language; rewrite it as paper-facing asset text"
370
+ )
371
+ if contains_any(asset_text, WORKFLOW_ONLY_MANUSCRIPT_PHRASES):
372
+ issues.append(
373
+ f"{asset_path.as_posix()} contains workflow-only placeholder language; move authoring notes out of captions and paper-facing asset text"
374
+ )
313
375
 
314
376
 
315
377
  def check_paper_topology_targeting(section_path: Path, issues: list[str]):
@@ -440,32 +502,6 @@ def check_active_paper_topology(section_path: Path, issues: list[str]):
440
502
  issues.extend(validate_topology_artifacts(project_root))
441
503
 
442
504
 
443
- def check_reference_template_intake(section_path: Path, issues: list[str]):
444
- project_root = find_project_root(section_path)
445
- if project_root is None:
446
- return
447
-
448
- reference_root = project_root / ".lab" / "writing" / "reference-patterns"
449
- aggregate_playbook = reference_root / "aggregate-template-playbook.md"
450
- legacy_notes_root = project_root / ".lab" / "writing" / "pdf-structure-notes"
451
- has_legacy_notes = legacy_notes_root.exists() and any(legacy_notes_root.glob("*"))
452
-
453
- latest_iteration = latest_write_iteration(project_root)
454
- reference_sources = ""
455
- if latest_iteration:
456
- iteration_text = read_text(latest_iteration)
457
- reference_sources = extract_markdown_field(
458
- iteration_text,
459
- "Reference Template Intake",
460
- "Reference sources used:",
461
- )
462
-
463
- if (has_legacy_notes or has_meaningful_field_value(reference_sources)) and not aggregate_playbook.exists():
464
- issues.append(
465
- "reference papers appear to be used without .lab/writing/reference-patterns/aggregate-template-playbook.md; run extract_reference_paper_structure.py and use structured section/visual templates instead of legacy pdf-structure-notes"
466
- )
467
-
468
-
469
505
  def check_abstract(text: str, issues: list[str]):
470
506
  numbers = re.findall(r"\b\d+(?:\.\d+)?\b", text)
471
507
  if len(numbers) > 6:
@@ -538,100 +574,6 @@ def check_method(text: str, issues: list[str]):
538
574
  issues.append("method should explain the technical advantage")
539
575
 
540
576
 
541
- def has_performance_claim(text: str) -> bool:
542
- return contains_any(
543
- text,
544
- (
545
- "outperform",
546
- "outperforms",
547
- "improve",
548
- "improves",
549
- "improved",
550
- "gain",
551
- "gains",
552
- "better",
553
- "stronger",
554
- "superior",
555
- "state-of-the-art",
556
- "sota",
557
- "reduce",
558
- "reduces",
559
- "降低",
560
- "提升",
561
- "优于",
562
- "超过",
563
- "更好",
564
- "增益",
565
- ),
566
- )
567
-
568
-
569
- def has_numeric_or_table_evidence(text: str) -> bool:
570
- if re.search(r"\b\d+\.\d+\b", text):
571
- return True
572
- if re.search(r"\b\d+(?:\.\d+)?\s*(?:%|pp|points?|AUUC|Qini|AUC|F1)\b", text, flags=re.IGNORECASE):
573
- return True
574
- if r"\pm" in text:
575
- return True
576
- return bool(
577
- re.search(r"\\(?:auto|c|C)?ref\{(?:tab|fig):", text)
578
- or re.search(r"\b(?:Table|Figure|Fig\.|表|图)~?\\ref\{", text)
579
- )
580
-
581
-
582
- def has_generic_comparator_without_anchor(text: str) -> bool:
583
- generic_comparator = contains_any(
584
- text,
585
- (
586
- "previous methods",
587
- "prior methods",
588
- "existing methods",
589
- "several baselines",
590
- "the baselines",
591
- "baseline suite",
592
- "previous work",
593
- "prior work",
594
- "现有方法",
595
- "已有方法",
596
- "若干基线",
597
- "基线集合",
598
- ),
599
- )
600
- if not generic_comparator:
601
- return False
602
- if r"\cite{" in text or r"\citet{" in text or r"\citep{" in text:
603
- return False
604
- return not bool(re.search(r"\b[A-Z][A-Za-z0-9-]{2,}(?:\s*,\s*[A-Z][A-Za-z0-9-]{2,})+", text))
605
-
606
-
607
- def has_repeated_split_protocol(text: str) -> bool:
608
- return bool(
609
- re.search(r"\b\d+\s+(?:random\s+)?(?:splits|seeds|runs)\b", text, flags=re.IGNORECASE)
610
- or re.search(r"\bacross\s+(?:random\s+)?(?:splits|seeds|runs)\b", text, flags=re.IGNORECASE)
611
- or re.search(r"\b重复\s*\d+\s*次", text)
612
- )
613
-
614
-
615
- def has_variance_report(text: str) -> bool:
616
- return contains_any(
617
- text,
618
- (
619
- r"\pm",
620
- "standard deviation",
621
- "std",
622
- "confidence interval",
623
- "confidence intervals",
624
- "ci",
625
- "variance",
626
- "mean",
627
- "平均",
628
- "标准差",
629
- "置信区间",
630
- "方差",
631
- ),
632
- )
633
-
634
-
635
577
  def check_experiments(text: str, issues: list[str]):
636
578
  if not contains_any(
637
579
  text,
@@ -659,18 +601,6 @@ def check_experiments(text: str, issues: list[str]):
659
601
  ),
660
602
  ):
661
603
  issues.append("experiments should include benchmark scene notes")
662
- if has_performance_claim(text) and not has_numeric_or_table_evidence(text):
663
- issues.append(
664
- "experiment performance claims should tie to concrete metric or numeric evidence instead of prose-only claims"
665
- )
666
- if has_generic_comparator_without_anchor(text):
667
- issues.append(
668
- "experiments use generic comparator names; name the comparator family, table anchor, or citations before more polish"
669
- )
670
- if has_repeated_split_protocol(text) and not has_variance_report(text):
671
- issues.append(
672
- "repeated split or seed protocol should report variance, confidence intervals, or an explicit variance disposition"
673
- )
674
604
 
675
605
 
676
606
  def check_conclusion(text: str, issues: list[str]):
@@ -706,7 +636,6 @@ def main():
706
636
  check_workflow_language_targeting(section_path, blocking_issues)
707
637
  check_common_section_gate_risks(text, warning_issues)
708
638
  check_section_style_policy(text, args.section, warning_issues)
709
- check_reference_template_intake(section_path, warning_issues)
710
639
  SECTION_CHECKS[args.section](text, warning_issues)
711
640
  check_neighbor_asset_files(args.section, section_path, warning_issues)
712
641
 
@@ -1,6 +1,7 @@
1
1
  \begin{figure}[t]
2
2
  \centering
3
3
  \fbox{\rule{0pt}{1.2in}\rule{0.9\linewidth}{0pt}}
4
- \caption{Figure title. Figure intent: explain what this figure should show and why the reader needs it.}
4
+ % Authoring note: record what this figure should show and why the reader needs it in the paper plan or write-iteration artifact, not in the caption.
5
+ \caption{Figure title. Replace with a paper-facing caption that states the visual content and the supported claim.}
5
6
  \label{fig:placeholder}
6
7
  \end{figure}
@@ -51,19 +51,19 @@
51
51
  - Problem setting or teaser figure:
52
52
  - Asset file:
53
53
  - Section:
54
- - Figure intent:
54
+ - Figure role:
55
55
  - Evidence:
56
56
  - Status:
57
57
  - Method overview figure:
58
58
  - Asset file:
59
59
  - Section:
60
- - Figure intent:
60
+ - Figure role:
61
61
  - Evidence:
62
62
  - Status:
63
63
  - Results overview figure:
64
64
  - Asset file:
65
65
  - Section:
66
- - Figure intent:
66
+ - Figure role:
67
67
  - Evidence:
68
68
  - Status:
69
69
 
@@ -73,7 +73,7 @@
73
73
  - Asset file:
74
74
  - Asset type:
75
75
  - Section:
76
- - Asset intent:
76
+ - Asset role:
77
77
  - Evidence:
78
78
  - Status:
79
79
 
@@ -0,0 +1,41 @@
1
+ # Reference Consumption Plan
2
+
3
+ ## Sources
4
+
5
+ - Source:
6
+
7
+ ## Adopted Structure Slots
8
+
9
+ - slot_name -> target subsection / paragraph / asset
10
+
11
+ ## Rejected or Waived Slots
12
+
13
+ - slot_name -> waiver reason
14
+
15
+ ## Section Mapping
16
+
17
+ - slot_name -> current-paper section or subsection
18
+
19
+ ## Paragraph Role Mapping
20
+
21
+ - paragraph_role -> current-paper paragraph
22
+ - paragraph_role -> current-paper local bridge / transition sentence
23
+
24
+ ## Asset Mapping
25
+
26
+ - asset_role -> current-paper figure/table/analysis asset
27
+
28
+ ## Section Realization Check
29
+
30
+ - Adopted slots that are visibly realized in the current section:
31
+ - Adopted slots that still need prose, subsection, paragraph, or asset support:
32
+ - Reason any dense paragraph was kept instead of splitting into reader-facing anchors:
33
+
34
+ ## Reuse Boundary
35
+
36
+ - Reuse structure, section order, paragraph roles, asset function, placement logic, and bridge logic only.
37
+ - Do not copy wording, claims, metrics, captions, or conclusions from reference papers.
38
+
39
+ ## Validation
40
+
41
+ - `validate_reference_consumption.py` result:
@@ -67,33 +67,6 @@
67
67
  - Any discouraged move kept and why:
68
68
  - Any banned move found:
69
69
 
70
- ## Review Issue Bundle
71
-
72
- - Issue bundle path:
73
- - New issues:
74
- - Resolved issues:
75
- - Open issues:
76
- - Quote-backed findings recorded:
77
- - Script-backed findings separated from judgment-backed findings:
78
-
79
- ## Re-Audit Status
80
-
81
- - Previous issue bundle compared:
82
- - Fully addressed root causes:
83
- - Partially addressed root causes:
84
- - Not addressed root causes:
85
- - New root causes:
86
- - Which root-cause issues block further prose polish:
87
-
88
- ## Reference Template Intake
89
-
90
- - Reference sources used:
91
- - Aggregate template playbook:
92
- - Section templates consulted:
93
- - Visual/table templates consulted:
94
- - Multi-template reproduction plan:
95
- - Structure-only reuse boundary:
96
-
97
70
  ## Table Semantics
98
71
 
99
72
  - Metrics promised in Method:
@@ -142,6 +115,23 @@
142
115
  - Was workflow-language paper layer included in the exported/pushed bundle:
143
116
  - If workflow-language was omitted, why was canonical-only export acceptable:
144
117
 
118
+ ## Reference Structure Consumption
119
+
120
+ - Was reference-guided deep writing triggered:
121
+ - Reference sources used:
122
+ - Reference consumption plan path:
123
+ - Were section/subsection slots mapped before prose:
124
+ - Were paragraph roles mapped before prose:
125
+ - Were table/figure roles mapped before prose:
126
+ - Were adopted slots visibly realized in the section, not only in the plan:
127
+ - Did any adopted experiment slot remain collapsed into an overly dense paragraph:
128
+ - Which reference slots were adopted:
129
+ - Which reference slots were waived and why:
130
+ - Did the round avoid copying reference wording, claims, metrics, captions, or conclusions:
131
+ - Did final prose avoid service-style or AI-assistant meta language:
132
+ - Did final prose avoid workflow-only placeholder language:
133
+ - Validator command and result:
134
+
145
135
  ## Decision
146
136
 
147
137
  - Continue or stop:
@@ -246,6 +246,10 @@ Use this skill when the user invokes `/lab:*` or asks for the structured researc
246
246
  - Keep one canonical natural-language paper-facing name per concept.
247
247
  - Once a paper-facing model or ablation label is chosen, reuse the canonical label instead of replacing it with a narrative alias in later prose, tables, or captions.
248
248
  - Before drafting or polishing, check the current section block in `skills/lab/references/paper-writing/section-style-policies.md` and follow its encouraged, discouraged, and banned expression lists.
249
+ - When the user provides reference PDFs, paper URLs, local reference-paper paths, or asks to write by reference, stay within `/lab:write` but switch to reference-guided deep writing: extract structure, map section/subsection slots, paragraph roles, and table/figure roles to the current paper, record the mapping, and only then draft prose.
250
+ - The reference-consumption plan is not sufficient by itself. The current section must visibly realize the adopted structure slots through subsection or paragraph anchors, table/figure placement, local bridges, and reader-facing prose.
251
+ - Reference-guided writing may reuse structure, paragraph roles, asset placement, and bridge logic, but must not copy reference wording, claims, metrics, captions, or conclusions.
252
+ - Keep service-style, AI-assistant meta language, and workflow-only placeholder language out of manuscript prose, captions, table notes, and paper-facing analysis assets.
249
253
  - Before any additional tighten, compress, or polish pass on the same section, run a section-level acceptance gate first.
250
254
  - The section-level acceptance gate must explicitly check canonical naming consistency, adjacent-section consistency, claim/metric/ranking consistency with evidence, local clarity, local concision, and section-style compliance.
251
255
  - If the current section still contains a banned expression or banned rhetorical move from the section-style policy, the round has not passed the section-level acceptance gate.
@@ -262,12 +266,13 @@ Use this skill when the user invokes `/lab:*` or asks for the structured researc
262
266
  - 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.
263
267
  - 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.
264
268
  - Short table headers are allowed, but any abbreviation in a paper-facing table must be expanded locally in the same table.
269
+ - Local table notes must be filled with real reader-facing explanations; default template text such as "explain what each row represents" or "expand local abbreviations" is still incomplete.
265
270
  - 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.
266
271
  - Do not treat `\resizebox{\linewidth}{!}{...}` as the default main-table fit strategy.
267
272
  - Fit paper-facing main tables by redesign first: shorten headers, move secondary metrics out of the main table, reduce or split columns, then adjust `\tabcolsep` conservatively; only use `\resizebox` as a last resort and document why.
268
273
  - Keep `\tabcolsep` adjustments conservative and avoid shrinking below a roughly readable floor for paper-facing main tables.
269
274
  - Do not rely on `\scriptsize` or `\tiny` as the default way to make a main table fit.
270
- - Keep internal identifiers out of prose unless they are mapped once for the reader and then moved back out of prose.
275
+ - Keep internal identifiers, tuning-run labels, probe names, config strings, rerun ids, and package labels out of prose unless they are mapped once for the reader and then moved back out of prose.
271
276
  - Do not rely on unexplained jargon density as a substitute for academic tone.
272
277
  - Bind each claim to evidence from `report`, iteration reports, or normalized summaries.
273
278
  - Use the write-stage contract in `.codex/skills/lab/stages/write.md` or `.claude/skills/lab/stages/write.md` as the single source of truth for template choice, paper-plan requirements, section-specific references, validator calls, asset coverage, and final manuscript gates.
@@ -10,9 +10,11 @@ attachment.
10
10
  \begin{figure}[t]
11
11
  \centering
12
12
  \fbox{\rule{0pt}{1.55in}\rule{0.92\linewidth}{0pt}}
13
- \caption{Method overview. Figure intent: show the full pipeline, highlight the
14
- boundary between the structured scoring module and the post-hoc calibration
15
- stage, and make the train-time versus inference-time data flow easy to inspect.}
13
+ % Authoring note: the final visual should show the full pipeline, highlight the
14
+ % module boundary, and make train-time versus inference-time data flow visible.
15
+ \caption{Method overview of the proposed model. The diagram separates the
16
+ structured scoring module from the post-hoc calibration stage and indicates the
17
+ data flow used during training and inference.}
16
18
  \label{fig:method-overview}
17
19
  \end{figure}
18
20
  ```
@@ -23,9 +25,11 @@ stage, and make the train-time versus inference-time data flow easy to inspect.}
23
25
  \begin{figure}[t]
24
26
  \centering
25
27
  \fbox{\rule{0pt}{1.55in}\rule{0.92\linewidth}{0pt}}
26
- \caption{Benchmark-level results overview. Figure intent: summarize the trend
27
- across datasets, show error bars or confidence intervals, and reveal whether the
28
- main gain is stable or dominated by one benchmark.}
28
+ % Authoring note: the final visual should summarize cross-dataset trends and
29
+ % uncertainty without introducing a claim absent from the result tables.
30
+ \caption{Benchmark-level results overview. The plot summarizes the primary
31
+ metric across datasets and shows whether the reported gain is stable across the
32
+ evaluated settings.}
29
33
  \label{fig:results-overview}
30
34
  \end{figure}
31
35
  ```
@@ -8,7 +8,7 @@ glue, not just checklists.
8
8
 
9
9
  1. Main results should live in a real `table` environment.
10
10
  2. Ablations should live in a separate `table` environment.
11
- 3. Method and experiments should each have at least one figure placeholder with an explicit `Figure intent`.
11
+ 3. Method and experiments should each have at least one figure placeholder with a reader-ready caption and any authoring notes kept outside the caption.
12
12
  4. Captions should explain the table or figure message briefly; longer interpretation belongs in prose.
13
13
 
14
14
  ## Example Files
@@ -30,6 +30,8 @@ These are paper-facing defaults. They are not project-specific branding rules.
30
30
  - Roadmap prose such as "In this paper, we first..., then..., finally...".
31
31
  - Reviewer-facing instructions such as "the reader can see" or "as shown clearly below".
32
32
  - Unbounded superiority claims such as "universally", "always", or "in every setting".
33
+ - Service-style or AI-assistant meta language such as "用户说", "按你的要求", "我来解释", "let me explain", or "as requested by the user".
34
+ - Workflow-only placeholder language such as "图的意图", "资产意图", "占位符", "workflow-language", or "sync this wording".
33
35
 
34
36
  ## Introduction
35
37
 
@@ -51,6 +53,8 @@ These are paper-facing defaults. They are not project-specific branding rules.
51
53
  - Empty macro-importance claims such as "this problem is increasingly critical" with no concrete consequence.
52
54
  - Marketing-style first-claim language such as "revolutionary", "game-changing", or "unprecedented" without evidence.
53
55
  - Paragraphs that only praise the paper instead of stating the research gap.
56
+ - Service-style or AI-assistant meta language such as "用户说", "按你的要求", "我来解释", "let me explain", or "as requested by the user".
57
+ - Workflow-only placeholder language such as "图的意图", "资产意图", "占位符", "workflow-language", or "sync this wording".
54
58
 
55
59
  ## Related Work
56
60
 
@@ -71,6 +75,8 @@ These are paper-facing defaults. They are not project-specific branding rules.
71
75
  - Laundry-list paragraphs that only say "X does..., Y does..., Z does..." with no comparison.
72
76
  - Claims that related work is weak or obsolete without specifying the missing capability.
73
77
  - Hiding the closest prior work behind broad category language.
78
+ - Service-style or AI-assistant meta language such as "用户说", "按你的要求", "我来解释", "let me explain", or "as requested by the user".
79
+ - Workflow-only placeholder language such as "图的意图", "资产意图", "占位符", "workflow-language", or "sync this wording".
74
80
 
75
81
  ## Method
76
82
 
@@ -92,6 +98,8 @@ These are paper-facing defaults. They are not project-specific branding rules.
92
98
  - Marketing-style or self-promotional wording such as "elegant", "powerful", "dramatically stronger", or "significantly outperforms prior methods" when used as prose decoration rather than evidence-backed result reporting.
93
99
  - Explaining the method by saying it is "better", "stronger", or "more advanced" without saying how it works.
94
100
  - Introducing new narrative aliases for canonical model or ablation labels after they have already been locked.
101
+ - Service-style or AI-assistant meta language such as "用户说", "按你的要求", "我来解释", "let me explain", or "as requested by the user".
102
+ - Workflow-only placeholder language such as "图的意图", "资产意图", "占位符", "workflow-language", or "sync this wording".
95
103
 
96
104
  ## Experiments
97
105
 
@@ -114,6 +122,8 @@ These are paper-facing defaults. They are not project-specific branding rules.
114
122
  - Self-evaluations such as "结果也很清楚", "the defense results are very clear", or "the table is self-explanatory".
115
123
  - Layout-process commentary in scientific prose, such as "由于表列较多,这里采用页宽自适应排版" or "we use page-width adaptive layout here".
116
124
  - Claims that a table "proves" something when the evidence only supports a bounded empirical result.
125
+ - Service-style or AI-assistant meta language such as "用户说", "按你的要求", "我来解释", "let me explain", or "as requested by the user".
126
+ - Workflow-only placeholder language such as "图的意图", "资产意图", "占位符", "workflow-language", or "sync this wording".
117
127
 
118
128
  ## Conclusion
119
129
 
@@ -134,3 +144,5 @@ These are paper-facing defaults. They are not project-specific branding rules.
134
144
  - Introducing new evidence, new experiments, or new mechanism claims.
135
145
  - Expanding the paper's scope beyond what the experiments support.
136
146
  - Ending with generic hype such as "this opens a new era" or "this will broadly transform the field".
147
+ - Service-style or AI-assistant meta language such as "用户说", "按你的要求", "我来解释", "let me explain", or "as requested by the user".
148
+ - Workflow-only placeholder language such as "图的意图", "资产意图", "占位符", "workflow-language", or "sync this wording".