scientify 1.11.0 → 1.12.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.
Files changed (43) hide show
  1. package/README.md +2 -2
  2. package/README.zh.md +2 -2
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +16 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/src/cli/research.d.ts +10 -0
  7. package/dist/src/cli/research.d.ts.map +1 -0
  8. package/dist/src/cli/research.js +283 -0
  9. package/dist/src/cli/research.js.map +1 -0
  10. package/dist/src/commands/metabolism-status.d.ts +6 -0
  11. package/dist/src/commands/metabolism-status.d.ts.map +1 -0
  12. package/dist/src/commands/metabolism-status.js +100 -0
  13. package/dist/src/commands/metabolism-status.js.map +1 -0
  14. package/dist/src/hooks/cron-skill-inject.d.ts +21 -0
  15. package/dist/src/hooks/cron-skill-inject.d.ts.map +1 -0
  16. package/dist/src/hooks/cron-skill-inject.js +53 -0
  17. package/dist/src/hooks/cron-skill-inject.js.map +1 -0
  18. package/dist/src/templates/bootstrap.d.ts +8 -0
  19. package/dist/src/templates/bootstrap.d.ts.map +1 -0
  20. package/dist/src/templates/bootstrap.js +153 -0
  21. package/dist/src/templates/bootstrap.js.map +1 -0
  22. package/dist/src/tools/arxiv-download.d.ts +2 -2
  23. package/dist/src/tools/arxiv-download.d.ts.map +1 -1
  24. package/dist/src/tools/arxiv-download.js +9 -11
  25. package/dist/src/tools/arxiv-download.js.map +1 -1
  26. package/dist/src/tools/unpaywall-download.d.ts +2 -2
  27. package/dist/src/tools/unpaywall-download.js +4 -4
  28. package/dist/src/tools/unpaywall-download.js.map +1 -1
  29. package/openclaw.plugin.json +4 -2
  30. package/package.json +1 -1
  31. package/skills/idea-generation/SKILL.md +24 -29
  32. package/skills/metabolism/SKILL.md +118 -0
  33. package/skills/metabolism-init/SKILL.md +80 -0
  34. package/skills/{literature-survey → research-collect}/SKILL.md +23 -33
  35. package/skills/research-experiment/SKILL.md +1 -1
  36. package/skills/research-implement/SKILL.md +1 -1
  37. package/skills/research-pipeline/SKILL.md +6 -11
  38. package/skills/research-plan/SKILL.md +3 -3
  39. package/skills/research-review/SKILL.md +1 -1
  40. package/skills/research-survey/SKILL.md +6 -6
  41. package/skills/write-review-paper/SKILL.md +14 -14
  42. package/skills/_shared/workspace-spec.md +0 -164
  43. package/skills/install-scientify/SKILL.md +0 -106
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: metabolism-init
3
+ description: "Initialize knowledge metabolism for a research topic: broad literature survey, build baseline knowledge state, set up metabolism workspace"
4
+ user-invokable: true
5
+ ---
6
+
7
+ # Metabolism Initialization — Day 0 Baseline Building
8
+
9
+ 你正在为一个研究方向执行知识新陈代谢的初始化。这是 Day 0:构建领域基线知识。
10
+
11
+ ## 准备
12
+
13
+ 1. 检查 `metabolism/config.json` 是否存在
14
+ - 如果不存在:询问用户研究方向,创建 `metabolism/config.json`(包含 `keywords`, `categories`, `currentDay: 0`, `processed_ids: []`)
15
+ - 如果已存在且 `currentDay > 0`:提示用户已完成初始化,无需重复执行
16
+ 2. 创建目录结构(如不存在):
17
+ ```
18
+ metabolism/
19
+ knowledge/
20
+ hypotheses/
21
+ experiments/
22
+ conversations/
23
+ log/
24
+ ```
25
+
26
+ ## Step 1: 宽泛调研
27
+
28
+ 委托 /research-collect 执行宽泛调研(不限日期),构建初始知识:
29
+
30
+ ```
31
+ sessions_spawn({
32
+ task: "/research-collect\n研究主题: {从 config.json 的 keywords 提取}\n这是 Day 0 基线构建,请做宽泛调研(不限日期),覆盖领域经典工作和近期进展。\n预期产出: papers/_meta/*.json + papers/_downloads/",
33
+ label: "Day 0 Baseline Survey",
34
+ runTimeoutSeconds: 1800
35
+ })
36
+ ```
37
+
38
+ spawned session 共享工作目录,无需传路径。等待完成后,读取 `papers/_meta/*.json` 获取论文列表。
39
+
40
+ ## Step 2: 阅读与知识提取
41
+
42
+ 对每篇论文:
43
+ - 读 .tex 源码(优先)或 PDF
44
+ - 提取:核心方法、关键结论、领域现状
45
+
46
+ 将每篇论文的 arXiv ID / DOI 追加到 `metabolism/config.json` 的 `processed_ids`。
47
+
48
+ ## Step 3: 构建初始知识状态
49
+
50
+ 创建 `metabolism/knowledge/_index.md`:
51
+ - Research Goal(从 config.json 提取)
52
+ - Topics 表格(按论文主题聚类)
53
+ - Cross-topic Links(如有)
54
+ - Timeline(记录 Day 0)
55
+
56
+ 为每个识别出的主题创建 `metabolism/knowledge/topic-{name}.md`:
57
+ - 已知方法
58
+ - 关键论文与结论
59
+ - 开放问题
60
+
61
+ ## Step 4: 记录日志
62
+
63
+ 写入 `metabolism/log/{YYYY-MM-DD}-init.md`:
64
+
65
+ ```markdown
66
+ # Day 0 — Initialization
67
+
68
+ 日期: {YYYY-MM-DD}
69
+ 论文: {N} 篇
70
+ 主题: {列出识别的主题}
71
+ 状态: 基线构建完成
72
+ ```
73
+
74
+ 更新 `metabolism/config.json`:`currentDay` 设为 1。
75
+
76
+ ## 行为约束
77
+
78
+ 1. 不捏造论文中未出现的事实性声明
79
+ 2. 自主运行,不向人类提问(除初始配置外)
80
+ 3. 修改知识文件前必须先读取当前内容(如存在)
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: literature-survey
3
- description: "Use this when the user wants to find, download, or collect academic papers on a topic. Searches arXiv, filters by relevance, downloads PDFs and sources, clusters by research direction."
2
+ name: research-collect
3
+ description: "[Read when prompt contains /research-collect]"
4
4
  metadata:
5
5
  {
6
6
  "openclaw":
@@ -14,10 +14,12 @@ metadata:
14
14
 
15
15
  **Don't ask permission. Just do it.**
16
16
 
17
+ **Workspace:** `$W` = working directory provided in task parameter.
18
+
17
19
  ## Output Structure
18
20
 
19
21
  ```
20
- ~/.openclaw/workspace/projects/{project-id}/
22
+ $W/
21
23
  ├── survey/
22
24
  │ ├── search_terms.json # 检索词列表
23
25
  │ └── report.md # 最终报告
@@ -38,17 +40,13 @@ metadata:
38
40
 
39
41
  ### Phase 1: 准备
40
42
 
43
+ 确保工作目录结构存在:
44
+
41
45
  ```bash
42
- ACTIVE=$(cat ~/.openclaw/workspace/projects/.active 2>/dev/null)
43
- if [ -z "$ACTIVE" ]; then
44
- PROJECT_ID="<topic-slug>"
45
- mkdir -p ~/.openclaw/workspace/projects/$PROJECT_ID/{survey,papers/_downloads,papers/_meta}
46
- echo "$PROJECT_ID" > ~/.openclaw/workspace/projects/.active
47
- fi
48
- PROJECT_DIR="$HOME/.openclaw/workspace/projects/$(cat ~/.openclaw/workspace/projects/.active)"
46
+ mkdir -p "$W/survey" "$W/papers/_downloads" "$W/papers/_meta"
49
47
  ```
50
48
 
51
- 生成 4-8 个检索词,保存到 `survey/search_terms.json`。
49
+ 生成 4-8 个检索词,保存到 `$W/survey/search_terms.json`。
52
50
 
53
51
  ---
54
52
 
@@ -76,13 +74,13 @@ arxiv_search({ query: "<term>", max_results: 30 })
76
74
  ```
77
75
  arxiv_download({
78
76
  arxiv_ids: ["<有用的论文ID>"],
79
- output_dir: "$PROJECT_DIR/papers/_downloads"
77
+ output_dir: "papers/_downloads"
80
78
  })
81
79
  ```
82
80
 
83
81
  #### 2.4 写入元数据
84
82
 
85
- 为每篇下载的论文创建元数据文件 `papers/_meta/{arxiv_id}.json`:
83
+ 为每篇下载的论文创建元数据文件 `$W/papers/_meta/{arxiv_id}.json`:
86
84
 
87
85
  ```json
88
86
  {
@@ -105,7 +103,7 @@ arxiv_download({
105
103
 
106
104
  #### 3.1 选择高分论文
107
105
 
108
- 读取 `papers/_meta/` 下得分 ≥4 的论文,选出 **Top 5** 最相关论文。
106
+ 读取 `$W/papers/_meta/` 下得分 ≥4 的论文,选出 **Top 5** 最相关论文。
109
107
 
110
108
  #### 3.2 搜索参考仓库
111
109
 
@@ -116,41 +114,32 @@ arxiv_download({
116
114
 
117
115
  使用 `github_search` 工具:
118
116
  ```javascript
119
- // 示例:
120
117
  github_search({
121
118
  query: "{paper_title} implementation",
122
119
  max_results: 10,
123
120
  sort: "stars",
124
- language: "python" // 可选:根据论文领域选择语言
125
- })
126
-
127
- // 如果有具体方法名:
128
- github_search({
129
- query: "{method_name} {author_last_name}",
130
- max_results: 5
121
+ language: "python"
131
122
  })
132
123
  ```
133
124
 
134
- **提示**:如果需要 GitHub API 高频率限制,设置环境变量 `GITHUB_TOKEN`。
135
-
136
125
  #### 3.3 筛选与 clone
137
126
 
138
127
  对搜索到的仓库,评估:
139
128
  - Star 数(建议 >100)
140
129
  - 代码质量(有 README、有 requirements.txt、代码结构清晰)
141
- - 与论文的匹配度(README 中引用了论文 / 实现了论文中的方法)
130
+ - 与论文的匹配度
142
131
 
143
- 选择 **3-5 个**最相关的仓库,clone 到 `repos/`:
132
+ 选择 **3-5 个**最相关的仓库,clone 到 `$W/repos/`:
144
133
 
145
134
  ```bash
146
- mkdir -p "$PROJECT_DIR/repos"
147
- cd "$PROJECT_DIR/repos"
135
+ mkdir -p "$W/repos"
136
+ cd "$W/repos"
148
137
  git clone --depth 1 <repo_url>
149
138
  ```
150
139
 
151
140
  #### 3.4 写入选择报告
152
141
 
153
- 创建 `$PROJECT_DIR/prepare_res.md`:
142
+ 创建 `$W/prepare_res.md`:
154
143
 
155
144
  ```markdown
156
145
  # 参考仓库选择
@@ -179,7 +168,7 @@ git clone --depth 1 <repo_url>
179
168
  #### 4.1 读取所有元数据
180
169
 
181
170
  ```bash
182
- ls $PROJECT_DIR/papers/_meta/
171
+ ls $W/papers/_meta/
183
172
  ```
184
173
 
185
174
  读取所有 `.json` 文件,汇总论文列表。
@@ -191,15 +180,15 @@ ls $PROJECT_DIR/papers/_meta/
191
180
  #### 4.3 创建文件夹并移动
192
181
 
193
182
  ```bash
194
- mkdir -p "$PROJECT_DIR/papers/data-driven"
195
- mv "$PROJECT_DIR/papers/_downloads/2401.12345" "$PROJECT_DIR/papers/data-driven/"
183
+ mkdir -p "$W/papers/data-driven"
184
+ mv "$W/papers/_downloads/2401.12345" "$W/papers/data-driven/"
196
185
  ```
197
186
 
198
187
  ---
199
188
 
200
189
  ### Phase 5: 生成报告
201
190
 
202
- 创建 `survey/report.md`:
191
+ 创建 `$W/survey/report.md`:
203
192
  - 调研概要(检索词数、论文数、方向数)
204
193
  - 各研究方向概述
205
194
  - Top 10 论文
@@ -222,3 +211,4 @@ mv "$PROJECT_DIR/papers/_downloads/2401.12345" "$PROJECT_DIR/papers/data-driven/
222
211
  |------|---------|
223
212
  | `arxiv_search` | 搜索论文(无副作用) |
224
213
  | `arxiv_download` | 下载 .tex/.pdf(需绝对路径) |
214
+ | `github_search` | 搜索参考仓库 |
@@ -15,7 +15,7 @@ metadata:
15
15
 
16
16
  **Don't ask permission. Just do it.**
17
17
 
18
- **Workspace:** See `../_shared/workspace-spec.md`. Set `$W` to the active project directory.
18
+ **Workspace:** `$W` = working directory provided in task parameter.
19
19
 
20
20
  ## Prerequisites
21
21
 
@@ -15,7 +15,7 @@ metadata:
15
15
 
16
16
  **Don't ask permission. Just do it.**
17
17
 
18
- **Workspace:** See `../_shared/workspace-spec.md`. Set `$W` to the active project directory.
18
+ **Workspace:** `$W` = working directory provided in task parameter.
19
19
 
20
20
  ## Prerequisites
21
21
 
@@ -94,22 +94,17 @@ task 必须以 `/skill-name` 开头(触发 slash command 解析),后续行
94
94
 
95
95
  ## Workspace
96
96
 
97
- See `../_shared/workspace-spec.md`. Set `$W` to the active project directory.
97
+ `$W` = agent workspace root (see AGENTS.md for layout).
98
98
 
99
99
  ---
100
100
 
101
101
  ## Step 0: 初始化
102
102
 
103
- ```bash
104
- ACTIVE=$(cat ~/.openclaw/workspace/projects/.active 2>/dev/null)
105
- ```
103
+ `$W` 即当前 agent 的工作目录(AGENTS.md 中定义)。
106
104
 
107
- 如果没有 active project:
108
- 1. 问用户:研究主题是什么?
109
- 2. 创建项目目录
110
- 3. 写入 `task.json`
105
+ 检查 `$W/SOUL.md` 是否包含研究方向信息。如果没有(BOOTSTRAP 未完成),提示用户先完成 BOOTSTRAP 配置。
111
106
 
112
- 设置 `$W = ~/.openclaw/workspace/projects/{project-id}`
107
+ 确保 `$W` 下存在必要的子目录(如 `survey/`, `papers/` 等)。
113
108
 
114
109
  ---
115
110
 
@@ -122,8 +117,8 @@ ACTIVE=$(cat ~/.openclaw/workspace/projects/.active 2>/dev/null)
122
117
  **检查:** `$W/papers/_meta/` 目录存在且有 `.json` 文件?
123
118
 
124
119
  **如果缺失,调用 sessions_spawn 工具(然后停止,等待完成通知):**
125
- - task: `"/literature-survey\n工作目录: {$W绝对路径}\n研究主题: {从task.json提取}\n请搜索、筛选、下载论文到工作目录的 papers/ 下。"`
126
- - label: `"Literature Survey"`
120
+ - task: `"/research-collect\n工作目录: {$W绝对路径}\n研究主题: {从task.json提取}\n请搜索、筛选、下载论文到工作目录的 papers/ 下。"`
121
+ - label: `"Research Collect"`
127
122
  - runTimeoutSeconds: `1800`
128
123
 
129
124
  **验证:** `ls $W/papers/_meta/*.json` 至少有 3 个文件
@@ -14,7 +14,7 @@ metadata:
14
14
 
15
15
  **Don't ask permission. Just do it.**
16
16
 
17
- **Workspace:** See `../_shared/workspace-spec.md`. Set `$W` to the active project directory.
17
+ **Workspace:** `$W` = working directory provided in task parameter.
18
18
 
19
19
  ## Prerequisites
20
20
 
@@ -23,8 +23,8 @@ metadata:
23
23
  | `$W/task.json` | /research-pipeline or user |
24
24
  | `$W/survey_res.md` | /research-survey |
25
25
  | `$W/notes/paper_*.md` | /research-survey |
26
- | `$W/repos/` | /literature-survey Phase 3 |
27
- | `$W/prepare_res.md` | /literature-survey Phase 3 |
26
+ | `$W/repos/` | /research-collect Phase 3 |
27
+ | `$W/prepare_res.md` | /research-collect Phase 3 |
28
28
 
29
29
  **If `survey_res.md` is missing, STOP:** "需要先运行 /research-survey 完成深度分析"
30
30
 
@@ -15,7 +15,7 @@ metadata:
15
15
 
16
16
  **Don't ask permission. Just do it.**
17
17
 
18
- **Workspace:** See `../_shared/workspace-spec.md`. Set `$W` to the active project directory.
18
+ **Workspace:** `$W` = working directory provided in task parameter.
19
19
 
20
20
  ## Prerequisites
21
21
 
@@ -14,7 +14,7 @@ metadata:
14
14
 
15
15
  **Don't ask permission. Just do it.**
16
16
 
17
- **Workspace:** See `../_shared/workspace-spec.md`. Set `$W` to the active project directory.
17
+ **Workspace:** `$W` = working directory provided in task parameter.
18
18
 
19
19
  ## Prerequisites
20
20
 
@@ -22,12 +22,12 @@ Read and verify these files exist before starting:
22
22
 
23
23
  | File | Source |
24
24
  |------|--------|
25
- | `$W/papers/_meta/*.json` | /literature-survey |
26
- | `$W/papers/_downloads/` or `$W/papers/{direction}/` | /literature-survey |
27
- | `$W/repos/` | /literature-survey Phase 3 |
28
- | `$W/prepare_res.md` | /literature-survey Phase 3 |
25
+ | `$W/papers/_meta/*.json` | /research-collect |
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 |
29
29
 
30
- **If papers are missing, STOP:** "需要先运行 /literature-survey 完成论文下载"
30
+ **If papers are missing, STOP:** "需要先运行 /research-collect 完成论文下载"
31
31
 
32
32
  **Note:** 如果 `prepare_res.md` 中注明"无可用参考仓库",代码映射步骤可跳过,但需在 survey_res.md 中标注。
33
33
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: write-review-paper
3
- description: "Use this when the user wants to write a literature review, survey paper, or thesis chapter from existing papers. Guides reading strategy, note-taking, synthesis, and academic writing. NOT for searching new papers (/literature-survey) or generating ideas (/idea-generation)."
3
+ description: "Use this when the user wants to write a literature review, survey paper, or thesis chapter from existing papers. Guides reading strategy, note-taking, synthesis, and academic writing. NOT for searching new papers (/research-collect) or generating ideas (/idea-generation)."
4
4
  metadata:
5
5
  {
6
6
  "openclaw":
@@ -16,18 +16,18 @@ metadata:
16
16
 
17
17
  Guide for writing a structured literature review or survey paper from papers you've already collected. This skill helps with reading strategy, note organization, and academic writing.
18
18
 
19
- **Workspace:** See `../_shared/workspace-spec.md` for directory structure. Outputs go to `$WORKSPACE/review/`.
19
+ **Workspace:** `$W` = working directory provided in task parameter. Outputs go to `$W/review/`.
20
20
 
21
21
  ## Prerequisites
22
22
 
23
23
  Before starting, ensure you have:
24
- 1. Papers collected in `$WORKSPACE/papers/`
25
- 2. Ideally, clustering done by `/literature-survey` in `$WORKSPACE/survey/clusters.json`
24
+ 1. Papers collected in `$W/papers/`
25
+ 2. Ideally, clustering done by `/research-collect` in `$W/survey/clusters.json`
26
26
 
27
- Check active project:
27
+ Check workspace:
28
28
  ```bash
29
- cat ~/.openclaw/workspace/projects/.active 2>/dev/null
30
- ls $WORKSPACE/papers/
29
+ ls $W/papers/
30
+ ls $W/survey/ 2>/dev/null
31
31
  ```
32
32
 
33
33
  ---
@@ -44,7 +44,7 @@ Based on clusters from survey, prioritize reading:
44
44
  | P2 (重要) | 主要方法论、重要实验结果 | 读摘要+方法+实验 |
45
45
  | P3 (参考) | 辅助材料、边缘相关 | 仅读摘要 |
46
46
 
47
- Create `$WORKSPACE/review/reading_plan.md`:
47
+ Create `$W/review/reading_plan.md`:
48
48
 
49
49
  ```markdown
50
50
  # Reading Plan
@@ -62,7 +62,7 @@ Create `$WORKSPACE/review/reading_plan.md`:
62
62
 
63
63
  ### 1.2 Reading Notes Template
64
64
 
65
- For each paper, create `$WORKSPACE/review/notes/{paper_id}.md` using template in `references/note-template.md`.
65
+ For each paper, create `$W/review/notes/{paper_id}.md` using template in `references/note-template.md`.
66
66
 
67
67
  ---
68
68
 
@@ -70,7 +70,7 @@ For each paper, create `$WORKSPACE/review/notes/{paper_id}.md` using template in
70
70
 
71
71
  ### 2.1 Build Comparison Table
72
72
 
73
- Create `$WORKSPACE/review/comparison.md`:
73
+ Create `$W/review/comparison.md`:
74
74
 
75
75
  ```markdown
76
76
  # Method Comparison
@@ -83,7 +83,7 @@ Create `$WORKSPACE/review/comparison.md`:
83
83
 
84
84
  ### 2.2 Timeline Analysis
85
85
 
86
- Create `$WORKSPACE/review/timeline.md`:
86
+ Create `$W/review/timeline.md`:
87
87
 
88
88
  ```markdown
89
89
  # Research Timeline
@@ -106,7 +106,7 @@ Create `$WORKSPACE/review/timeline.md`:
106
106
 
107
107
  ### 2.3 Taxonomy Design
108
108
 
109
- Create `$WORKSPACE/review/taxonomy.md`:
109
+ Create `$W/review/taxonomy.md`:
110
110
 
111
111
  ```markdown
112
112
  # Taxonomy of Approaches
@@ -140,7 +140,7 @@ Create `$WORKSPACE/review/taxonomy.md`:
140
140
 
141
141
  ### 3.1 Survey Paper Template
142
142
 
143
- Create `$WORKSPACE/review/draft.md` using template in `references/survey-template.md`.
143
+ Create `$W/review/draft.md` using template in `references/survey-template.md`.
144
144
 
145
145
  Key sections: Abstract → Introduction → Background → Taxonomy → Comparison → Datasets → Future Directions → Conclusion
146
146
 
@@ -198,7 +198,7 @@ For a thesis chapter:
198
198
  ## Output Files
199
199
 
200
200
  ```
201
- $WORKSPACE/review/
201
+ $W/review/
202
202
  ├── reading_plan.md # 阅读计划
203
203
  ├── notes/ # 阅读笔记
204
204
  │ ├── {paper_id}.md
@@ -1,164 +0,0 @@
1
- # Workspace Directory Specification
2
-
3
- All Scientify skills share a unified project-based workspace structure.
4
-
5
- ## Base Path
6
-
7
- ```
8
- ~/.openclaw/workspace/projects/
9
- ├── .active # Current project ID (plain text)
10
- ├── {project-id}/ # Each research topic has its own project
11
- │ └── ...
12
- └── {another-project}/
13
- ```
14
-
15
- ## Project Structure
16
-
17
- ```
18
- ~/.openclaw/workspace/projects/{project-id}/
19
- ├── project.json # Project metadata
20
- ├── task.json # Research task definition
21
-
22
- ├── survey/ # /literature-survey outputs
23
- │ ├── search_terms.json # Generated search keywords
24
- │ ├── raw_results.json # All search results
25
- │ ├── filtered_papers.json # Papers with relevance scores
26
- │ ├── clusters.json # Clustered by research direction
27
- │ └── report.md # Final survey report
28
-
29
- ├── papers/ # Downloaded paper sources
30
- │ ├── {direction-1}/ # Organized by cluster
31
- │ │ ├── paper_list.md
32
- │ │ └── {arxiv_id}/ # .tex source files
33
- │ ├── {direction-2}/
34
- │ └── uncategorized/
35
-
36
- ├── repos/ # Cloned reference repositories
37
- │ ├── {repo-name-1}/
38
- │ └── {repo-name-2}/
39
-
40
- ├── ideas/ # /idea-generation outputs
41
- │ ├── gaps.md # Identified research gaps
42
- │ ├── idea_1.md ... idea_5.md # Generated ideas
43
- │ ├── selected_idea.md # Enhanced best idea
44
- │ ├── implementation_report.md # Code mapping
45
- │ └── summary.md # Final summary
46
-
47
- ├── review/ # /write-review-paper outputs
48
- │ ├── reading_plan.md # Prioritized reading list
49
- │ ├── notes/ # Per-paper reading notes
50
- │ │ └── {paper_id}.md
51
- │ ├── comparison.md # Method comparison table
52
- │ ├── timeline.md # Research timeline
53
- │ ├── taxonomy.md # Classification system
54
- │ ├── draft.md # Survey paper draft
55
- │ └── bibliography.bib # References
56
-
57
- ├── notes/ # /research-survey: per-paper deep notes
58
- │ └── paper_{arxiv_id}.md
59
- ├── survey_res.md # /research-survey: deep analysis + method comparison
60
- ├── plan_res.md # /research-plan: 4-part implementation plan
61
- ├── project/ # /research-implement: code implementation
62
- │ ├── model/
63
- │ ├── data/
64
- │ ├── training/
65
- │ ├── testing/
66
- │ ├── utils/
67
- │ ├── run.py
68
- │ └── requirements.txt
69
- ├── ml_res.md # /research-implement: execution report with [RESULT] lines
70
- ├── iterations/ # /research-review: judge iterations
71
- │ ├── judge_v1.md
72
- │ └── judge_v2.md
73
- ├── experiment_res.md # /research-experiment: full training + ablation results
74
- └── knowledge_state/ # scheduled research state artifacts
75
- ├── knowledge/
76
- ├── paper_notes/
77
- ├── daily_changes/
78
- ├── hypotheses/
79
- ├── logs/
80
- ├── state.json
81
- └── events.jsonl
82
- ```
83
-
84
- ## Conventions
85
-
86
- ### File Existence = Step Completion
87
-
88
- Check output file before executing any step. If exists, skip.
89
-
90
- Enables:
91
- - **Crash recovery**: resume from last completed step
92
- - **Incremental progress**: rerunning skips completed work
93
- - **Transparency**: inspect progress by listing directory
94
-
95
- ### Project Metadata
96
-
97
- **project.json:**
98
- ```json
99
- {
100
- "id": "battery-rul-prediction",
101
- "name": "Battery RUL Prediction",
102
- "created": "2024-01-15T10:00:00Z",
103
- "topics": ["battery", "remaining useful life", "prediction"]
104
- }
105
- ```
106
-
107
- **task.json:**
108
- ```json
109
- {
110
- "domain": "battery health",
111
- "focus": "RUL prediction using transformer",
112
- "date_limit": "2024-01-01",
113
- "created": "2024-01-15"
114
- }
115
- ```
116
-
117
- ### Immutability
118
-
119
- Once written, do NOT modify outputs unless user explicitly asks.
120
- Exception: `project/` is mutable during implement-review-iterate loop.
121
-
122
- ### Active Project
123
-
124
- ```bash
125
- # Read active project
126
- cat ~/.openclaw/workspace/projects/.active
127
-
128
- # Set active project
129
- echo "battery-rul-prediction" > ~/.openclaw/workspace/projects/.active
130
-
131
- # Set $WORKSPACE variable
132
- WORKSPACE=~/.openclaw/workspace/projects/$(cat ~/.openclaw/workspace/projects/.active)
133
- ```
134
-
135
- ### Scheduled Subscription Storage
136
-
137
- `research-subscription` writes both global incremental state and project-level knowledge_state files.
138
-
139
- - Scheduled jobs are stored in OpenClaw cron storage.
140
- - Incremental dedupe state/logs are stored under `~/.openclaw/workspace/scientify/`:
141
- - `literature-state.json`
142
- - `literature-push-log.jsonl`
143
- - Project-level research state is stored under:
144
- - `~/.openclaw/workspace/projects/{project-id}/knowledge_state/`
145
- - Includes `knowledge/`, `paper_notes/`, `daily_changes/`, `hypotheses/`, `logs/`, `state.json`, `events.jsonl`
146
- - `paper_notes/` stores per-paper deep-reading records (domain/subdomains/cross-domain links/research goal/approach/design/contributions/practical insights/must-understand points/limitations/evidence anchors).
147
- - Use `openclaw cron list --all --json` for global inspection.
148
- - Use `/research-subscriptions` for scope-aware inspection within Scientify.
149
- - Use `/research-unsubscribe` to remove jobs for the current sender/channel scope.
150
-
151
- ## Skill Outputs Summary
152
-
153
- | Skill | Primary Outputs |
154
- |-------|-----------------|
155
- | `/literature-survey` | `survey/`, `papers/` |
156
- | `/research-survey` | `notes/paper_*.md`, `survey_res.md` |
157
- | `/research-plan` | `plan_res.md` |
158
- | `/research-implement` | `project/`, `ml_res.md` |
159
- | `/research-review` | `iterations/judge_v*.md` |
160
- | `/research-experiment` | `experiment_res.md` |
161
- | `/research-pipeline` | Orchestrator — spawns the above 5 skills in sequence |
162
- | `/idea-generation` | `ideas/` |
163
- | `/write-review-paper` | `review/` |
164
- | `research-subscription` | Creates OpenClaw cron jobs, updates global incremental state (`~/.openclaw/workspace/scientify/`), and persists project-level `knowledge_state/` artifacts for traceability |