scientify 2.1.0 → 3.1.0
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.en.md +21 -1
- package/README.md +27 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -77
- package/dist/index.js.map +1 -1
- package/dist/src/cli/research.d.ts.map +1 -1
- package/dist/src/cli/research.js +47 -23
- package/dist/src/cli/research.js.map +1 -1
- package/dist/src/commands/metabolism-status.d.ts.map +1 -1
- package/dist/src/commands/metabolism-status.js +5 -25
- package/dist/src/commands/metabolism-status.js.map +1 -1
- package/dist/src/commands.d.ts +8 -8
- package/dist/src/commands.d.ts.map +1 -1
- package/dist/src/commands.js +230 -243
- package/dist/src/commands.js.map +1 -1
- package/dist/src/release-gate.d.ts +14 -0
- package/dist/src/release-gate.d.ts.map +1 -0
- package/dist/src/release-gate.js +124 -0
- package/dist/src/release-gate.js.map +1 -0
- package/dist/src/templates/bootstrap.d.ts.map +1 -1
- package/dist/src/templates/bootstrap.js +157 -94
- package/dist/src/templates/bootstrap.js.map +1 -1
- package/dist/src/types.d.ts +2 -10
- package/dist/src/types.d.ts.map +1 -1
- package/openclaw.plugin.json +11 -17
- package/package.json +2 -3
- package/skills/algorithm-selection/SKILL.md +103 -0
- package/skills/algorithm-selection/references/candidate-template.md +13 -0
- package/skills/algorithm-selection/references/selection-template.md +39 -0
- package/skills/artifact-review/SKILL.md +146 -0
- package/skills/artifact-review/references/release-gate-template.md +40 -0
- package/skills/artifact-review/references/review-checklist.md +45 -0
- package/skills/artifact-review/references/style-review-checklist.md +30 -0
- package/skills/baseline-runner/SKILL.md +103 -0
- package/skills/baseline-runner/references/baseline-matrix-template.md +9 -0
- package/skills/baseline-runner/references/baseline-report-template.md +25 -0
- package/skills/dataset-validate/SKILL.md +104 -0
- package/skills/dataset-validate/references/data-validation-template.md +38 -0
- package/skills/figure-standardize/SKILL.md +110 -0
- package/skills/figure-standardize/references/caption-template.md +12 -0
- package/skills/figure-standardize/references/figure-placement-template.md +30 -0
- package/skills/figure-standardize/references/figure-style-guide.md +36 -0
- package/skills/idea-generation/SKILL.md +20 -44
- package/skills/idea-generation/references/code-mapping.md +3 -3
- package/skills/idea-generation/references/idea-template.md +1 -1
- package/skills/idea-generation/references/reading-long-papers.md +3 -3
- package/skills/metabolism/SKILL.md +80 -36
- package/skills/paper-download/SKILL.md +61 -0
- package/skills/release-layout/SKILL.md +73 -0
- package/skills/release-layout/references/page-structure.md +14 -0
- package/skills/research-collect/SKILL.md +41 -111
- package/skills/research-experiment/SKILL.md +20 -12
- package/skills/research-implement/SKILL.md +10 -11
- package/skills/research-pipeline/SKILL.md +23 -31
- package/skills/research-plan/SKILL.md +7 -11
- package/skills/research-review/SKILL.md +21 -22
- package/skills/research-survey/SKILL.md +28 -25
- package/skills/write-paper/SKILL.md +252 -0
- package/skills/write-paper/references/boundary-notes-template.md +34 -0
- package/skills/write-paper/references/claim-inventory-template.md +32 -0
- package/skills/write-paper/references/evidence-contract.md +57 -0
- package/skills/write-paper/references/figure-callout-template.md +38 -0
- package/skills/write-paper/references/figures-manifest-template.md +44 -0
- package/skills/write-paper/references/latex/README.md +22 -0
- package/skills/write-paper/references/latex/build_paper.sh +41 -0
- package/skills/write-paper/references/latex/manuscript.tex +39 -0
- package/skills/write-paper/references/latex/references.bib +10 -0
- package/skills/write-paper/references/latex/sections/ablations.tex +3 -0
- package/skills/write-paper/references/latex/sections/abstract.tex +3 -0
- package/skills/write-paper/references/latex/sections/conclusion.tex +3 -0
- package/skills/write-paper/references/latex/sections/discussion_scope.tex +7 -0
- package/skills/write-paper/references/latex/sections/experimental_protocol.tex +3 -0
- package/skills/write-paper/references/latex/sections/introduction.tex +3 -0
- package/skills/write-paper/references/latex/sections/main_results.tex +9 -0
- package/skills/write-paper/references/latex/sections/method_system.tex +3 -0
- package/skills/write-paper/references/latex/sections/problem_setup.tex +3 -0
- package/skills/write-paper/references/latex/sections/related_work.tex +3 -0
- package/skills/write-paper/references/paper-template.md +155 -0
- package/skills/write-paper/references/paragraph-contract.md +139 -0
- package/skills/write-paper/references/paragraph-examples.md +171 -0
- package/skills/write-paper/references/style-banlist.md +81 -0
- package/skills/write-review-paper/SKILL.md +22 -16
- package/skills/write-review-paper/references/note-template.md +1 -1
- package/skills/write-review-paper/references/survey-template.md +1 -1
- package/dist/src/hooks/research-mode.d.ts +0 -22
- package/dist/src/hooks/research-mode.d.ts.map +0 -1
- package/dist/src/hooks/research-mode.js +0 -35
- package/dist/src/hooks/research-mode.js.map +0 -1
- package/dist/src/hooks/scientify-cron-autofill.d.ts +0 -15
- package/dist/src/hooks/scientify-cron-autofill.d.ts.map +0 -1
- package/dist/src/hooks/scientify-cron-autofill.js +0 -156
- package/dist/src/hooks/scientify-cron-autofill.js.map +0 -1
- package/dist/src/hooks/scientify-signature.d.ts +0 -21
- package/dist/src/hooks/scientify-signature.d.ts.map +0 -1
- package/dist/src/hooks/scientify-signature.js +0 -150
- package/dist/src/hooks/scientify-signature.js.map +0 -1
- package/dist/src/knowledge-state/project.d.ts +0 -13
- package/dist/src/knowledge-state/project.d.ts.map +0 -1
- package/dist/src/knowledge-state/project.js +0 -88
- package/dist/src/knowledge-state/project.js.map +0 -1
- package/dist/src/knowledge-state/render.d.ts +0 -63
- package/dist/src/knowledge-state/render.d.ts.map +0 -1
- package/dist/src/knowledge-state/render.js +0 -368
- package/dist/src/knowledge-state/render.js.map +0 -1
- package/dist/src/knowledge-state/store.d.ts +0 -19
- package/dist/src/knowledge-state/store.d.ts.map +0 -1
- package/dist/src/knowledge-state/store.js +0 -978
- package/dist/src/knowledge-state/store.js.map +0 -1
- package/dist/src/knowledge-state/types.d.ts +0 -182
- package/dist/src/knowledge-state/types.d.ts.map +0 -1
- package/dist/src/knowledge-state/types.js +0 -2
- package/dist/src/knowledge-state/types.js.map +0 -1
- package/dist/src/literature/subscription-state.d.ts +0 -112
- package/dist/src/literature/subscription-state.d.ts.map +0 -1
- package/dist/src/literature/subscription-state.js +0 -696
- package/dist/src/literature/subscription-state.js.map +0 -1
- package/dist/src/research-subscriptions/constants.d.ts +0 -16
- package/dist/src/research-subscriptions/constants.d.ts.map +0 -1
- package/dist/src/research-subscriptions/constants.js +0 -59
- package/dist/src/research-subscriptions/constants.js.map +0 -1
- package/dist/src/research-subscriptions/cron-client.d.ts +0 -8
- package/dist/src/research-subscriptions/cron-client.d.ts.map +0 -1
- package/dist/src/research-subscriptions/cron-client.js +0 -81
- package/dist/src/research-subscriptions/cron-client.js.map +0 -1
- package/dist/src/research-subscriptions/delivery.d.ts +0 -10
- package/dist/src/research-subscriptions/delivery.d.ts.map +0 -1
- package/dist/src/research-subscriptions/delivery.js +0 -82
- package/dist/src/research-subscriptions/delivery.js.map +0 -1
- package/dist/src/research-subscriptions/handlers.d.ts +0 -6
- package/dist/src/research-subscriptions/handlers.d.ts.map +0 -1
- package/dist/src/research-subscriptions/handlers.js +0 -204
- package/dist/src/research-subscriptions/handlers.js.map +0 -1
- package/dist/src/research-subscriptions/parse.d.ts +0 -11
- package/dist/src/research-subscriptions/parse.d.ts.map +0 -1
- package/dist/src/research-subscriptions/parse.js +0 -492
- package/dist/src/research-subscriptions/parse.js.map +0 -1
- package/dist/src/research-subscriptions/prompt.d.ts +0 -5
- package/dist/src/research-subscriptions/prompt.d.ts.map +0 -1
- package/dist/src/research-subscriptions/prompt.js +0 -347
- package/dist/src/research-subscriptions/prompt.js.map +0 -1
- package/dist/src/research-subscriptions/types.d.ts +0 -66
- package/dist/src/research-subscriptions/types.d.ts.map +0 -1
- package/dist/src/research-subscriptions/types.js +0 -2
- package/dist/src/research-subscriptions/types.js.map +0 -1
- package/dist/src/research-subscriptions.d.ts +0 -2
- package/dist/src/research-subscriptions.d.ts.map +0 -1
- package/dist/src/research-subscriptions.js +0 -2
- package/dist/src/research-subscriptions.js.map +0 -1
- package/dist/src/services/auto-updater.d.ts +0 -15
- package/dist/src/services/auto-updater.d.ts.map +0 -1
- package/dist/src/services/auto-updater.js +0 -188
- package/dist/src/services/auto-updater.js.map +0 -1
- package/dist/src/tools/arxiv-download.d.ts +0 -24
- package/dist/src/tools/arxiv-download.d.ts.map +0 -1
- package/dist/src/tools/arxiv-download.js +0 -177
- package/dist/src/tools/arxiv-download.js.map +0 -1
- package/dist/src/tools/github-search-tool.d.ts +0 -25
- package/dist/src/tools/github-search-tool.d.ts.map +0 -1
- package/dist/src/tools/github-search-tool.js +0 -114
- package/dist/src/tools/github-search-tool.js.map +0 -1
- package/dist/src/tools/openreview-lookup.d.ts +0 -31
- package/dist/src/tools/openreview-lookup.d.ts.map +0 -1
- package/dist/src/tools/openreview-lookup.js +0 -414
- package/dist/src/tools/openreview-lookup.js.map +0 -1
- package/dist/src/tools/paper-browser.d.ts +0 -23
- package/dist/src/tools/paper-browser.d.ts.map +0 -1
- package/dist/src/tools/paper-browser.js +0 -121
- package/dist/src/tools/paper-browser.js.map +0 -1
- package/dist/src/tools/scientify-cron.d.ts +0 -63
- package/dist/src/tools/scientify-cron.d.ts.map +0 -1
- package/dist/src/tools/scientify-cron.js +0 -265
- package/dist/src/tools/scientify-cron.js.map +0 -1
- package/dist/src/tools/scientify-literature-state.d.ts +0 -303
- package/dist/src/tools/scientify-literature-state.d.ts.map +0 -1
- package/dist/src/tools/scientify-literature-state.js +0 -957
- package/dist/src/tools/scientify-literature-state.js.map +0 -1
- package/dist/src/tools/unpaywall-download.d.ts +0 -21
- package/dist/src/tools/unpaywall-download.d.ts.map +0 -1
- package/dist/src/tools/unpaywall-download.js +0 -169
- package/dist/src/tools/unpaywall-download.js.map +0 -1
- package/dist/src/tools/workspace.d.ts +0 -32
- package/dist/src/tools/workspace.d.ts.map +0 -1
- package/dist/src/tools/workspace.js +0 -69
- package/dist/src/tools/workspace.js.map +0 -1
- package/skills/metabolism-init/SKILL.md +0 -80
- package/skills/research-subscription/SKILL.md +0 -119
|
@@ -15,16 +15,15 @@ metadata:
|
|
|
15
15
|
|
|
16
16
|
**Don't ask permission. Just do it.**
|
|
17
17
|
|
|
18
|
-
**Workspace:** `$W` = working directory provided in task parameter.
|
|
19
18
|
|
|
20
19
|
## Prerequisites
|
|
21
20
|
|
|
22
21
|
| File | Source |
|
|
23
22
|
|------|--------|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
23
|
+
| `ml_res.md` | /research-implement |
|
|
24
|
+
| `project/` | /research-implement |
|
|
25
|
+
| `plan_res.md` | /research-plan |
|
|
26
|
+
| `survey_res.md` | /research-survey |
|
|
28
27
|
|
|
29
28
|
**If `ml_res.md` is missing, STOP:** "需要先运行 /research-implement 完成代码实现"
|
|
30
29
|
|
|
@@ -32,7 +31,7 @@ metadata:
|
|
|
32
31
|
|
|
33
32
|
| File | Content |
|
|
34
33
|
|------|---------|
|
|
35
|
-
|
|
|
34
|
+
| `iterations/judge_v{N}.md` | 每轮审查报告 |
|
|
36
35
|
|
|
37
36
|
最终报告中 `verdict: PASS` 表示审查通过。
|
|
38
37
|
|
|
@@ -43,16 +42,16 @@ metadata:
|
|
|
43
42
|
### Step 1: 审查代码
|
|
44
43
|
|
|
45
44
|
读取以下内容:
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
45
|
+
- `plan_res.md` — 每个组件的预期
|
|
46
|
+
- `survey_res.md` — 核心公式
|
|
47
|
+
- `project/` — 实际代码
|
|
48
|
+
- `ml_res.md` — 执行结果
|
|
50
49
|
|
|
51
50
|
### Step 2: 提取原子性概念清单
|
|
52
51
|
|
|
53
52
|
**⚠️ 这是 Novix Judge Agent 的核心机制 — 逐一核对每个原子性学术概念。**
|
|
54
53
|
|
|
55
|
-
从
|
|
54
|
+
从 `survey_res.md` 的"关键公式汇总"和"核心方法对比"中,提取所有需要在代码中实现的**原子性学术概念**(每个公式、每个核心组件都是一个概念)。
|
|
56
55
|
|
|
57
56
|
为每个概念记录:
|
|
58
57
|
- 概念名称(如 "Multi-Head Attention", "Contrastive Loss", "Batch Normalization")
|
|
@@ -123,7 +122,7 @@ metadata:
|
|
|
123
122
|
|
|
124
123
|
### Step 4: 写入审查报告
|
|
125
124
|
|
|
126
|
-
写入
|
|
125
|
+
写入 `iterations/judge_v1.md`:
|
|
127
126
|
|
|
128
127
|
```markdown
|
|
129
128
|
# Review v1
|
|
@@ -201,14 +200,14 @@ metadata:
|
|
|
201
200
|
循环最多 3 次:
|
|
202
201
|
|
|
203
202
|
1. 读取 `judge_v{N}.md` 的修改建议
|
|
204
|
-
2. **防偏移检查:重新读取**
|
|
203
|
+
2. **防偏移检查:重新读取** `survey_res.md` 和 `plan_res.md`
|
|
205
204
|
- 对照原始学术设计目标
|
|
206
205
|
- 确保修改不是为了"绕过审查"而偏离学术严谨性
|
|
207
206
|
- 确认修改符合 survey 中的公式定义和 plan 中的设计意图
|
|
208
|
-
3. 修改
|
|
207
|
+
3. 修改 `project/` 中的代码(修复 bug、补全缺失实现)
|
|
209
208
|
4. 重新执行:
|
|
210
209
|
```bash
|
|
211
|
-
cd
|
|
210
|
+
cd project && source .venv/bin/activate && python3 run.py --epochs 2
|
|
212
211
|
```
|
|
213
212
|
5. 读取执行输出,验证修复
|
|
214
213
|
6. **重新执行 Step 2-4**(提取概念清单 → 逐项检查 → 写报告),写入 `judge_v{N+1}.md`
|
|
@@ -225,10 +224,10 @@ metadata:
|
|
|
225
224
|
#### 5b.1 性能诊断
|
|
226
225
|
|
|
227
226
|
重新读取以下材料进行诊断:
|
|
228
|
-
-
|
|
229
|
-
-
|
|
230
|
-
-
|
|
231
|
-
-
|
|
227
|
+
- `ml_res.md` — 2 epoch 验证的具体数值
|
|
228
|
+
- `survey_res.md` — baseline 方法的超参数设置(特别是学习率、batch size)
|
|
229
|
+
- `plan_res.md` — 当前实现的超参数配置
|
|
230
|
+
- `project/run.py` 和 `project/training/` — 训练配置代码
|
|
232
231
|
|
|
233
232
|
**诊断检查清单**:
|
|
234
233
|
|
|
@@ -255,11 +254,11 @@ metadata:
|
|
|
255
254
|
1. **调整学习率**(优先级:高,预期改善:显著)
|
|
256
255
|
- **当前值**: lr=1e-5 (from plan_res.md)
|
|
257
256
|
- **建议值**: lr=1e-3 (from survey_res.md Table 2, all baselines use 1e-3)
|
|
258
|
-
- **修改位置**:
|
|
257
|
+
- **修改位置**: `project/run.py:L15` — `optimizer = Adam(lr=1e-3)`
|
|
259
258
|
- **理由**: Loss 下降仅 0.9%,远低于正常 10%+,高度怀疑 lr 过小
|
|
260
259
|
|
|
261
260
|
2. **添加数据归一化**(优先级:中,预期改善:中等)
|
|
262
|
-
- **检查**:
|
|
261
|
+
- **检查**: `project/data/dataset.py` 是否有归一化
|
|
263
262
|
- **建议**: 添加 `transforms.Normalize(mean=[0.5], std=[0.5])`
|
|
264
263
|
- **理由**: 如果输入数据范围 [0,255],模型收敛会很慢
|
|
265
264
|
```
|
|
@@ -269,7 +268,7 @@ metadata:
|
|
|
269
268
|
1. 根据建议**逐项尝试**(从优先级高的开始)
|
|
270
269
|
2. 每次修改后:
|
|
271
270
|
```bash
|
|
272
|
-
cd
|
|
271
|
+
cd project && source .venv/bin/activate && python3 run.py --epochs 2
|
|
273
272
|
```
|
|
274
273
|
3. 读取新的执行输出,对比改进前后:
|
|
275
274
|
- Loss reduction 是否提升?(如 0.9% → 12%)
|
|
@@ -14,29 +14,22 @@ metadata:
|
|
|
14
14
|
|
|
15
15
|
**Don't ask permission. Just do it.**
|
|
16
16
|
|
|
17
|
-
**Workspace:** `$W` = working directory provided in task parameter.
|
|
18
|
-
|
|
19
17
|
## Prerequisites
|
|
20
18
|
|
|
21
19
|
Read and verify these files exist before starting:
|
|
22
20
|
|
|
23
21
|
| File | Source |
|
|
24
22
|
|------|--------|
|
|
25
|
-
|
|
|
26
|
-
| `$W/papers/_downloads/` or `$W/papers/{direction}/` | /research-collect |
|
|
27
|
-
| `$W/repos/` | /research-collect Phase 3 |
|
|
28
|
-
| `$W/prepare_res.md` | /research-collect Phase 3 |
|
|
23
|
+
| `papers/` | /research-collect 或 /metabolism |
|
|
29
24
|
|
|
30
25
|
**If papers are missing, STOP:** "需要先运行 /research-collect 完成论文下载"
|
|
31
26
|
|
|
32
|
-
**Note:** 如果 `prepare_res.md` 中注明"无可用参考仓库",代码映射步骤可跳过,但需在 survey_res.md 中标注。
|
|
33
|
-
|
|
34
27
|
## Output
|
|
35
28
|
|
|
36
29
|
| File | Content |
|
|
37
30
|
|------|---------|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
31
|
+
| `knowledge/paper_{id}.md` | Per-paper structured notes with frontmatter, formulas, and code mapping |
|
|
32
|
+
| `survey_res.md` | Synthesis report with method comparison, scope boundary, and concrete next-step suggestions |
|
|
40
33
|
|
|
41
34
|
---
|
|
42
35
|
|
|
@@ -45,30 +38,23 @@ Read and verify these files exist before starting:
|
|
|
45
38
|
### Step 1: 收集论文列表
|
|
46
39
|
|
|
47
40
|
```bash
|
|
48
|
-
ls
|
|
41
|
+
ls papers/
|
|
49
42
|
```
|
|
50
43
|
|
|
51
|
-
|
|
44
|
+
列出所有论文目录(arXiv 源文件)和 PDF 文件。
|
|
52
45
|
|
|
53
46
|
### Step 2: 逐篇深度分析
|
|
54
47
|
|
|
55
|
-
|
|
48
|
+
**对每篇论文:**
|
|
56
49
|
|
|
57
50
|
#### 2.1 读 .tex 源码
|
|
58
51
|
|
|
59
|
-
找到论文的 .tex 文件(在 `
|
|
52
|
+
找到论文的 .tex 文件(在 `papers/{arxiv_id}/` 下),重点读取:
|
|
60
53
|
- **Method / Approach** section
|
|
61
54
|
- **Model Architecture** section
|
|
62
55
|
- 数学公式定义
|
|
63
56
|
|
|
64
|
-
**对于大型论文**(>2000
|
|
65
|
-
```javascript
|
|
66
|
-
// 先读前 100 行找到 section 位置
|
|
67
|
-
paper_browser({ file_path: "$W/papers/{arxiv_id}/{file}.tex", start_line: 1, num_lines: 100 })
|
|
68
|
-
|
|
69
|
-
// 找到 Method section 后,跳转到该位置
|
|
70
|
-
paper_browser({ file_path: "$W/papers/{arxiv_id}/{file}.tex", start_line: 450, num_lines: 150 })
|
|
71
|
-
```
|
|
57
|
+
**对于大型论文**(>2000 行),分段读取关键 section,避免上下文溢出。
|
|
72
58
|
|
|
73
59
|
如果没有 .tex(只有 PDF),基于 abstract 分析。
|
|
74
60
|
|
|
@@ -83,16 +69,25 @@ paper_browser({ file_path: "$W/papers/{arxiv_id}/{file}.tex", start_line: 450, n
|
|
|
83
69
|
|
|
84
70
|
**⚠️ 强制性步骤(当 repos/ 存在时)** — 代码映射是下游 plan 和 implement 的关键输入。
|
|
85
71
|
|
|
86
|
-
读取
|
|
72
|
+
读取 `prepare_res.md` 中的仓库列表,对每个公式/核心概念:
|
|
87
73
|
1. 在对应仓库中搜索实现代码(用 grep 关键类名/函数名)
|
|
88
74
|
2. 记录**文件路径、行号、代码片段**
|
|
89
75
|
3. 如果多个仓库有不同实现,记录差异
|
|
90
76
|
|
|
91
77
|
#### 2.4 写入笔记
|
|
92
78
|
|
|
93
|
-
写入
|
|
79
|
+
写入 `knowledge/paper_{id}.md`:
|
|
94
80
|
|
|
95
81
|
```markdown
|
|
82
|
+
---
|
|
83
|
+
paper_id: "{arxiv_id}"
|
|
84
|
+
title: "{Paper Title}"
|
|
85
|
+
evidence_level: "full_text"
|
|
86
|
+
method_family: "{method family}"
|
|
87
|
+
key_formula_count: 1
|
|
88
|
+
code_mapping_count: 1
|
|
89
|
+
---
|
|
90
|
+
|
|
96
91
|
# {Paper Title}
|
|
97
92
|
|
|
98
93
|
- **arXiv:** {arxiv_id}
|
|
@@ -120,7 +115,7 @@ $$
|
|
|
120
115
|
|
|
121
116
|
### Step 3: 综合报告
|
|
122
117
|
|
|
123
|
-
读取所有 `
|
|
118
|
+
读取所有 `knowledge/paper_*.md`,写入 `survey_res.md`:
|
|
124
119
|
|
|
125
120
|
```markdown
|
|
126
121
|
# Survey Synthesis
|
|
@@ -135,6 +130,12 @@ $$
|
|
|
135
130
|
|------|------|----------|--------|------|
|
|
136
131
|
| ... | ... | ... | ... | ... |
|
|
137
132
|
|
|
133
|
+
## Scope Boundary
|
|
134
|
+
|
|
135
|
+
- Preconditions: {what conditions this method relies on}
|
|
136
|
+
- Not recommended when: {where this method should not be directly applied}
|
|
137
|
+
- Evidence strength: {full text / PDF / metadata}
|
|
138
|
+
|
|
138
139
|
## 技术路线建议
|
|
139
140
|
|
|
140
141
|
基于以上分析,推荐的技术路线是:
|
|
@@ -165,3 +166,5 @@ $$
|
|
|
165
166
|
2. 每篇笔记必须包含至少 1 个数学公式
|
|
166
167
|
3. 如果有 repos/,必须尝试找到公式到代码的映射
|
|
167
168
|
4. survey_res.md 必须包含方法对比表
|
|
169
|
+
5. survey_res.md must include a scope-boundary section and concrete guidance for the current project
|
|
170
|
+
6. Before writing the final synthesis, write at least 2 real paper notes to disk
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: write-paper
|
|
3
|
+
description: "Use this when the user wants a systems paper, experiment paper, technical report, or extended abstract drafted from existing Scientify artifacts. Builds a claim-bounded paper draft from experiment outputs, figures, and supporting notes."
|
|
4
|
+
metadata:
|
|
5
|
+
{
|
|
6
|
+
"openclaw":
|
|
7
|
+
{
|
|
8
|
+
"emoji": "📄",
|
|
9
|
+
},
|
|
10
|
+
}
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Paper Writing
|
|
14
|
+
|
|
15
|
+
**Don't ask permission. Just do it.**
|
|
16
|
+
|
|
17
|
+
Use this skill for experiment-driven or systems-style papers.
|
|
18
|
+
|
|
19
|
+
**Do not use this for pure survey writing.** For literature reviews or thesis review chapters, use `/write-review-paper` instead.
|
|
20
|
+
|
|
21
|
+
Outputs go to `paper/`.
|
|
22
|
+
|
|
23
|
+
## Prerequisites
|
|
24
|
+
|
|
25
|
+
You need a real evidence base from existing artifacts, ideally:
|
|
26
|
+
|
|
27
|
+
- `experiment_res.md`
|
|
28
|
+
- one or more figure files
|
|
29
|
+
- one or more comparison tables / result summaries
|
|
30
|
+
- optional support from `survey_res.md`, `plan_res.md`, `ml_res.md`
|
|
31
|
+
|
|
32
|
+
If the evidence base is too thin, write the draft conservatively and mark unsupported sections as `TODO`.
|
|
33
|
+
|
|
34
|
+
## Required Outputs
|
|
35
|
+
|
|
36
|
+
- `paper/claim_inventory.md`
|
|
37
|
+
- `paper/figures_manifest.md`
|
|
38
|
+
- `paper/draft.md`
|
|
39
|
+
- `paper/manuscript.tex`
|
|
40
|
+
- `paper/sections/*.tex`
|
|
41
|
+
- `paper/references.bib`
|
|
42
|
+
- `paper/build_paper.sh`
|
|
43
|
+
- `paper/build/build.log`
|
|
44
|
+
- `paper/build/manuscript.pdf` when the build succeeds
|
|
45
|
+
- `paper/build/build_errors.md` when the build fails
|
|
46
|
+
|
|
47
|
+
## Optional Supporting Outputs
|
|
48
|
+
|
|
49
|
+
- `paper/boundary_notes.md`
|
|
50
|
+
- venue- or artifact-specific optional sections such as:
|
|
51
|
+
- `paper/sections/ablations.tex`
|
|
52
|
+
- `paper/sections/discussion_scope.tex`
|
|
53
|
+
- `paper/sections/related_work.tex`
|
|
54
|
+
|
|
55
|
+
## Workflow
|
|
56
|
+
|
|
57
|
+
### Step 1: Build the Claim Inventory
|
|
58
|
+
|
|
59
|
+
Before drafting prose, create `claim_inventory.md`.
|
|
60
|
+
|
|
61
|
+
Each claim entry must use the same fixed fields:
|
|
62
|
+
|
|
63
|
+
- `claim_id`
|
|
64
|
+
- `claim_text`
|
|
65
|
+
- `claim_type` (`result`, `observation`, or `interpretation`)
|
|
66
|
+
- `source_files`
|
|
67
|
+
- `figure_or_table_anchor`
|
|
68
|
+
- `baseline`
|
|
69
|
+
- `protocol_or_guardrail`
|
|
70
|
+
- `evidence_type` (`simulator`, `local_runtime`, or `runtime`)
|
|
71
|
+
- `confidence` (`high`, `medium`, or `low`)
|
|
72
|
+
- `allowed_in_sections` (`abstract`, `intro`, `results`, `discussion`, `conclusion`, `boundary_note`)
|
|
73
|
+
|
|
74
|
+
Use `references/evidence-contract.md` and `references/claim-inventory-template.md`.
|
|
75
|
+
|
|
76
|
+
### Step 2: Build the Figures Manifest
|
|
77
|
+
|
|
78
|
+
Create `figures_manifest.md` as the shared contract for claim support, prose callouts, captions, and LaTeX figure blocks.
|
|
79
|
+
|
|
80
|
+
Each figure entry must include:
|
|
81
|
+
|
|
82
|
+
- `figure_id`
|
|
83
|
+
- `file_path`
|
|
84
|
+
- `latex_label`
|
|
85
|
+
- `section`
|
|
86
|
+
- `placement_hint`
|
|
87
|
+
- `caption_short`
|
|
88
|
+
- `caption_long`
|
|
89
|
+
- `takeaway_sentence`
|
|
90
|
+
- `callout_sentence`
|
|
91
|
+
- `baseline`
|
|
92
|
+
- `evidence_type`
|
|
93
|
+
- `source_metrics`
|
|
94
|
+
- `source_files`
|
|
95
|
+
- `supports_claim_ids`
|
|
96
|
+
- `must_appear_before_claim_ids`
|
|
97
|
+
|
|
98
|
+
Use:
|
|
99
|
+
|
|
100
|
+
- `references/figures-manifest-template.md`
|
|
101
|
+
- `references/figure-callout-template.md`
|
|
102
|
+
|
|
103
|
+
Treat this manifest as the single source of truth for:
|
|
104
|
+
|
|
105
|
+
- which claim a figure supports
|
|
106
|
+
- where the figure belongs in the paper
|
|
107
|
+
- what the first text callout should say
|
|
108
|
+
- what goes into the short and long caption
|
|
109
|
+
- what the eventual LaTeX block should render
|
|
110
|
+
|
|
111
|
+
If a result is intentionally table-only or text-only evidence, say that explicitly in the relevant results paragraph instead of inventing a figure placeholder.
|
|
112
|
+
|
|
113
|
+
### Step 3: Draft the Paper
|
|
114
|
+
|
|
115
|
+
Write `draft.md` using:
|
|
116
|
+
|
|
117
|
+
- `references/paper-template.md`
|
|
118
|
+
- `references/paragraph-contract.md`
|
|
119
|
+
- `references/style-banlist.md`
|
|
120
|
+
- `references/paragraph-examples.md`
|
|
121
|
+
|
|
122
|
+
Then populate the LaTeX starter bundle under `paper/`:
|
|
123
|
+
|
|
124
|
+
- update `paper/manuscript.tex`
|
|
125
|
+
- fill the core sections under `paper/sections/*.tex`
|
|
126
|
+
- add optional sections only when they materially help the current paper
|
|
127
|
+
- keep `paper/references.bib` aligned with the draft when citations are ready
|
|
128
|
+
- make `paper/sections/main_results.tex` consistent with `paper/figures_manifest.md`
|
|
129
|
+
|
|
130
|
+
Treat the manuscript as a composable section set, not a fixed checklist. The default core path is:
|
|
131
|
+
|
|
132
|
+
- `abstract`
|
|
133
|
+
- `introduction`
|
|
134
|
+
- `problem_setup`
|
|
135
|
+
- `method_system`
|
|
136
|
+
- `experimental_protocol`
|
|
137
|
+
- `main_results`
|
|
138
|
+
- `conclusion`
|
|
139
|
+
|
|
140
|
+
Optional modules should be chosen based on venue, evidence profile, and paper shape:
|
|
141
|
+
|
|
142
|
+
- `ablations`
|
|
143
|
+
- `discussion_scope`
|
|
144
|
+
- `related_work`
|
|
145
|
+
|
|
146
|
+
Choose a paper shape before filling sections:
|
|
147
|
+
|
|
148
|
+
- `result_note`
|
|
149
|
+
- use the core path only
|
|
150
|
+
- keep boundary handling in `main_results`, `conclusion`, or `paper/boundary_notes.md`
|
|
151
|
+
- `systems_full`
|
|
152
|
+
- use the core path plus whichever optional modules materially help
|
|
153
|
+
- add `discussion_scope` only when interpretation and evidence boundary need a dedicated home
|
|
154
|
+
- `artifact_summary`
|
|
155
|
+
- keep the structure lean and evidence-first
|
|
156
|
+
- prefer short results plus a compact conclusion boundary note over extra sections
|
|
157
|
+
- `workshop_short`
|
|
158
|
+
- compress setup and method aggressively
|
|
159
|
+
- avoid optional sections unless they carry real argumentative weight
|
|
160
|
+
|
|
161
|
+
Every result paragraph must stay within the claim inventory. If the evidence only supports a narrower claim, write the narrower claim.
|
|
162
|
+
|
|
163
|
+
Use this section contract while drafting:
|
|
164
|
+
|
|
165
|
+
- `Abstract` may only use claims with `confidence=high`.
|
|
166
|
+
- `Introduction` may use problem framing and setup claims, but must not introduce new result claims.
|
|
167
|
+
- `Results` must anchor each substantive paragraph to at least one `claim_id`.
|
|
168
|
+
- `Discussion` may interpret results, but interpretation must remain explicitly separated from observed outcomes.
|
|
169
|
+
- `Boundary and caveat handling` must explicitly cover evidence boundaries, missing validations, and unsupported comparisons somewhere in the paper.
|
|
170
|
+
- `Future Work` is the only place where unsupported but plausible ideas may appear.
|
|
171
|
+
|
|
172
|
+
Use the figures manifest as a hard drafting contract:
|
|
173
|
+
|
|
174
|
+
- every headline result claim must map to at least one `supports_claim_ids` entry in `paper/figures_manifest.md`, unless the paragraph explicitly states that the evidence is table-only or text-only
|
|
175
|
+
- the first prose mention of a figure must use or closely follow its `callout_sentence`
|
|
176
|
+
- a figure callout must appear before the figure block or at the first figure discussion point
|
|
177
|
+
- `caption_short`, `caption_long`, `latex_label`, `file_path`, and `placement_hint` must stay aligned with the eventual LaTeX figure block
|
|
178
|
+
- if a claim needs figure support but no manifest entry names it in `supports_claim_ids`, do not treat that claim as ready for the main results section
|
|
179
|
+
|
|
180
|
+
Use these paragraph-level rules:
|
|
181
|
+
|
|
182
|
+
- Every results paragraph must contain at least one quantitative statement.
|
|
183
|
+
- Every comparison sentence must explicitly name a baseline or comparison target.
|
|
184
|
+
- Every interpretation sentence must be clearly distinguishable from the observed evidence it builds on.
|
|
185
|
+
- Avoid adjective inflation when a metric, baseline, or evidence path would be more precise.
|
|
186
|
+
- If a paragraph only restates a figure without adding a takeaway or boundary, rewrite it.
|
|
187
|
+
|
|
188
|
+
### Stop Conditions
|
|
189
|
+
|
|
190
|
+
Do not continue into a full results draft if any of the following is true:
|
|
191
|
+
|
|
192
|
+
- `experiment_res.md` is missing and no equivalent result artifact exists.
|
|
193
|
+
- No figure or table anchor exists for a headline result.
|
|
194
|
+
- A claimed improvement has no explicit baseline.
|
|
195
|
+
- A result claim has no source file or no protocol / guardrail.
|
|
196
|
+
- `paper/figures_manifest.md` is missing for a figure-backed results section.
|
|
197
|
+
- a required figure entry is missing `section`, `placement_hint`, `callout_sentence`, or `supports_claim_ids`
|
|
198
|
+
|
|
199
|
+
If one of these conditions is triggered, stop after writing `claim_inventory.md` and a boundary/caveat note, and mark the blocked sections in `draft.md` as `TODO`.
|
|
200
|
+
|
|
201
|
+
Do not write a results paragraph if:
|
|
202
|
+
|
|
203
|
+
- it cannot be tied to a `claim_id`
|
|
204
|
+
- it has no quantitative statement
|
|
205
|
+
- it makes a comparison without naming a baseline
|
|
206
|
+
- it implicitly depends on a figure but the manifest does not specify the figure contract
|
|
207
|
+
|
|
208
|
+
### Step 4: Choose the Boundary Surface
|
|
209
|
+
|
|
210
|
+
Do not treat `Limitations` as a default section.
|
|
211
|
+
|
|
212
|
+
Choose the lightest surface that still makes the evidence boundary explicit:
|
|
213
|
+
|
|
214
|
+
- a dedicated `discussion_scope` section
|
|
215
|
+
- a short boundary paragraph in `Conclusion`
|
|
216
|
+
- a short caveat paragraph in `Main Results`
|
|
217
|
+
- a standalone `paper/boundary_notes.md` during drafting
|
|
218
|
+
|
|
219
|
+
Use a dedicated limitations section only when the venue, review criteria, or artifact risk explicitly requires it.
|
|
220
|
+
|
|
221
|
+
If you need a drafting aid, use `references/boundary-notes-template.md`.
|
|
222
|
+
|
|
223
|
+
### Step 5: Build the PDF
|
|
224
|
+
|
|
225
|
+
Run `bash paper/build_paper.sh`.
|
|
226
|
+
|
|
227
|
+
The build chain should:
|
|
228
|
+
|
|
229
|
+
- write compiler output to `paper/build/build.log`
|
|
230
|
+
- produce `paper/build/manuscript.pdf` when successful
|
|
231
|
+
- write `paper/build/build_errors.md` when the build fails or when `tectonic` is unavailable
|
|
232
|
+
|
|
233
|
+
### Step 6: Hand Off to the Release Gate
|
|
234
|
+
|
|
235
|
+
Do not treat the manuscript as ready to share immediately after the PDF build succeeds.
|
|
236
|
+
|
|
237
|
+
Before external sharing, run `/artifact-review` so the workspace also has:
|
|
238
|
+
|
|
239
|
+
- `review/artifact_review.md`
|
|
240
|
+
- `review/release_checklist.md`
|
|
241
|
+
- `review/release_gate.json`
|
|
242
|
+
|
|
243
|
+
Treat release readiness as unverified until the release gate is fresh and not `HOLD`.
|
|
244
|
+
|
|
245
|
+
## Writing Rules
|
|
246
|
+
|
|
247
|
+
1. No headline metric without baseline + protocol + source path.
|
|
248
|
+
2. No simulator-only result should be phrased as runtime validation.
|
|
249
|
+
3. Distinguish observed result from interpretation.
|
|
250
|
+
4. Keep unsupported ideas in a clearly marked future-work section, not in the main results.
|
|
251
|
+
5. Do not place a claim in a section that is not listed in its `allowed_in_sections`.
|
|
252
|
+
6. Do not use empty praise words where a metric, baseline, or scope boundary should appear.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Boundary Notes Template
|
|
2
|
+
|
|
3
|
+
Use this template when a dedicated `Limitations` section is too heavy or too venue-specific.
|
|
4
|
+
|
|
5
|
+
You can surface these notes in any of the following places:
|
|
6
|
+
|
|
7
|
+
- a short `Discussion / Scope Note` section
|
|
8
|
+
- a caveat paragraph at the end of `Main Results`
|
|
9
|
+
- a boundary paragraph in `Conclusion`
|
|
10
|
+
- a standalone drafting file such as `paper/boundary_notes.md`
|
|
11
|
+
|
|
12
|
+
Suggested structure:
|
|
13
|
+
|
|
14
|
+
```md
|
|
15
|
+
# Boundary Notes
|
|
16
|
+
|
|
17
|
+
## Supported Today
|
|
18
|
+
- State the strongest supported claim.
|
|
19
|
+
|
|
20
|
+
## Not Claimed
|
|
21
|
+
- State the stronger claim that is intentionally not made.
|
|
22
|
+
|
|
23
|
+
## Evidence Boundary
|
|
24
|
+
- Name whether the evidence is simulator, local runtime, or runtime.
|
|
25
|
+
|
|
26
|
+
## Validation Gaps
|
|
27
|
+
- List the smallest missing validations that prevent stronger wording.
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Writing rules:
|
|
31
|
+
|
|
32
|
+
- Keep this concrete and artifact-specific.
|
|
33
|
+
- Prefer a short, sharp boundary note over a generic limitations section.
|
|
34
|
+
- If the manuscript already has a natural home for caveats, fold these points there instead of forcing a dedicated section.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Claim Inventory Template
|
|
2
|
+
|
|
3
|
+
Use this structure for `paper/claim_inventory.md` before drafting any prose:
|
|
4
|
+
|
|
5
|
+
```yaml
|
|
6
|
+
- claim_id: "claim-001"
|
|
7
|
+
claim_text: "KV2 achieves 17.53% mean TTFT gain vs INT4-FIFO under the stated simulator protocol."
|
|
8
|
+
claim_type: "result"
|
|
9
|
+
source_files:
|
|
10
|
+
- "experiment_res.md"
|
|
11
|
+
- "Comparision-KV2/results/kv2_compare_quant_family_local_20260329.json"
|
|
12
|
+
figure_or_table_anchor: "fig-kv2-tradeoff-overview"
|
|
13
|
+
baseline: "INT4-FIFO"
|
|
14
|
+
protocol_or_guardrail: "quality_penalty_mean <= 0.02"
|
|
15
|
+
evidence_type: "simulator"
|
|
16
|
+
confidence: "high"
|
|
17
|
+
allowed_in_sections:
|
|
18
|
+
- "abstract"
|
|
19
|
+
- "results"
|
|
20
|
+
- "discussion"
|
|
21
|
+
- "conclusion"
|
|
22
|
+
- "boundary_note"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Authoring notes:
|
|
26
|
+
|
|
27
|
+
- Use one claim entry per independently reviewable statement.
|
|
28
|
+
- Use `claim_type=result` for measured outcomes.
|
|
29
|
+
- Use `claim_type=observation` for descriptive trends that stop short of causal interpretation.
|
|
30
|
+
- Use `claim_type=interpretation` for explanation or hypothesis, and keep these out of `abstract` unless independently supported.
|
|
31
|
+
- `allowed_in_sections` is a hard constraint, not a suggestion.
|
|
32
|
+
- If a field is unknown, stop and resolve the evidence gap instead of drafting around it.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Evidence Contract
|
|
2
|
+
|
|
3
|
+
Every headline claim should be recorded using this structure before drafting prose:
|
|
4
|
+
|
|
5
|
+
```yaml
|
|
6
|
+
- claim_id: "claim-001"
|
|
7
|
+
claim_text: "KV2 achieves 17.53% mean TTFT gain vs INT4-FIFO under the stated simulator protocol."
|
|
8
|
+
claim_type: "result"
|
|
9
|
+
source_files:
|
|
10
|
+
- "Comparision-KV2/results/kv2_compare_quant_family_local_20260329.json"
|
|
11
|
+
- "experiment_res.md"
|
|
12
|
+
figure_or_table_anchor: "fig-kv2-tradeoff-overview"
|
|
13
|
+
baseline: "INT4-FIFO"
|
|
14
|
+
evidence_type: "simulator"
|
|
15
|
+
protocol_or_guardrail: "quality_penalty_mean <= 0.02"
|
|
16
|
+
confidence: "high"
|
|
17
|
+
allowed_in_sections:
|
|
18
|
+
- "abstract"
|
|
19
|
+
- "results"
|
|
20
|
+
- "discussion"
|
|
21
|
+
- "conclusion"
|
|
22
|
+
- "boundary_note"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Required fields:
|
|
26
|
+
|
|
27
|
+
- `claim_id`
|
|
28
|
+
- `claim_text`
|
|
29
|
+
- `claim_type`
|
|
30
|
+
- `source_files`
|
|
31
|
+
- `figure_or_table_anchor`
|
|
32
|
+
- `baseline`
|
|
33
|
+
- `evidence_type`
|
|
34
|
+
- `protocol_or_guardrail`
|
|
35
|
+
- `confidence`
|
|
36
|
+
- `allowed_in_sections`
|
|
37
|
+
|
|
38
|
+
Field notes:
|
|
39
|
+
|
|
40
|
+
- `claim_id` must be stable within the draft and reused by review findings.
|
|
41
|
+
- `claim_type` must be one of `result`, `observation`, or `interpretation`.
|
|
42
|
+
- `source_files` should list every artifact needed to verify the claim.
|
|
43
|
+
- `figure_or_table_anchor` should point to the figure/table label used in the draft or manifest.
|
|
44
|
+
- `confidence` should be `high`, `medium`, or `low`.
|
|
45
|
+
- `allowed_in_sections` defines where the claim may appear in prose. Do not place the claim outside this list.
|
|
46
|
+
|
|
47
|
+
Allowed `evidence_type` values:
|
|
48
|
+
|
|
49
|
+
- `simulator`
|
|
50
|
+
- `local_runtime`
|
|
51
|
+
- `runtime`
|
|
52
|
+
|
|
53
|
+
Minimum writing gate:
|
|
54
|
+
|
|
55
|
+
- Do not draft a headline result if `baseline`, `protocol_or_guardrail`, or `source_files` is missing.
|
|
56
|
+
- Do not place a claim in `abstract` unless `confidence` is `high`.
|
|
57
|
+
- Do not write simulator-only evidence as runtime validation.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Figure Callout Template
|
|
2
|
+
|
|
3
|
+
Use this guide when writing the first prose mention of a figure.
|
|
4
|
+
|
|
5
|
+
The callout sentence should do three jobs:
|
|
6
|
+
|
|
7
|
+
1. name the figure
|
|
8
|
+
2. state the concrete takeaway
|
|
9
|
+
3. name the comparison target or evaluation frame when that is central to the claim
|
|
10
|
+
|
|
11
|
+
Preferred structure:
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
Figure \ref{{latex_label}} shows {takeaway_sentence} under {protocol or evaluation frame}.
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Examples:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
Figure \ref{fig:kv2-tradeoff-overview} shows that KV2 improves TTFT relative to INT4-FIFO under the shared simulator protocol.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
Figure \ref{fig:runtime-smoke} shows that the local runtime smoke test preserves the winner ordering observed in the simulator summary.
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Avoid callouts that only announce the figure:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
Figure 3 shows the results.
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Good callouts should:
|
|
34
|
+
|
|
35
|
+
- appear before the figure block or at the first discussion point
|
|
36
|
+
- contain the main takeaway, not just a pointer
|
|
37
|
+
- stay consistent with `caption_long`
|
|
38
|
+
- avoid introducing a stronger claim than the figure actually supports
|