scientify 3.0.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.
Files changed (64) hide show
  1. package/README.en.md +21 -1
  2. package/README.md +27 -0
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/cli/research.d.ts.map +1 -1
  6. package/dist/src/cli/research.js +42 -1
  7. package/dist/src/cli/research.js.map +1 -1
  8. package/dist/src/commands.d.ts.map +1 -1
  9. package/dist/src/commands.js +159 -1
  10. package/dist/src/commands.js.map +1 -1
  11. package/dist/src/release-gate.d.ts +14 -0
  12. package/dist/src/release-gate.d.ts.map +1 -0
  13. package/dist/src/release-gate.js +124 -0
  14. package/dist/src/release-gate.js.map +1 -0
  15. package/dist/src/templates/bootstrap.d.ts.map +1 -1
  16. package/dist/src/templates/bootstrap.js +139 -62
  17. package/dist/src/templates/bootstrap.js.map +1 -1
  18. package/openclaw.plugin.json +8 -1
  19. package/package.json +1 -1
  20. package/skills/algorithm-selection/SKILL.md +103 -0
  21. package/skills/algorithm-selection/references/candidate-template.md +13 -0
  22. package/skills/algorithm-selection/references/selection-template.md +39 -0
  23. package/skills/artifact-review/SKILL.md +146 -0
  24. package/skills/artifact-review/references/release-gate-template.md +40 -0
  25. package/skills/artifact-review/references/review-checklist.md +45 -0
  26. package/skills/artifact-review/references/style-review-checklist.md +30 -0
  27. package/skills/baseline-runner/SKILL.md +103 -0
  28. package/skills/baseline-runner/references/baseline-matrix-template.md +9 -0
  29. package/skills/baseline-runner/references/baseline-report-template.md +25 -0
  30. package/skills/dataset-validate/SKILL.md +104 -0
  31. package/skills/dataset-validate/references/data-validation-template.md +38 -0
  32. package/skills/figure-standardize/SKILL.md +110 -0
  33. package/skills/figure-standardize/references/caption-template.md +12 -0
  34. package/skills/figure-standardize/references/figure-placement-template.md +30 -0
  35. package/skills/figure-standardize/references/figure-style-guide.md +36 -0
  36. package/skills/release-layout/SKILL.md +73 -0
  37. package/skills/release-layout/references/page-structure.md +14 -0
  38. package/skills/research-experiment/SKILL.md +10 -1
  39. package/skills/research-survey/SKILL.md +19 -2
  40. package/skills/write-paper/SKILL.md +252 -0
  41. package/skills/write-paper/references/boundary-notes-template.md +34 -0
  42. package/skills/write-paper/references/claim-inventory-template.md +32 -0
  43. package/skills/write-paper/references/evidence-contract.md +57 -0
  44. package/skills/write-paper/references/figure-callout-template.md +38 -0
  45. package/skills/write-paper/references/figures-manifest-template.md +44 -0
  46. package/skills/write-paper/references/latex/README.md +22 -0
  47. package/skills/write-paper/references/latex/build_paper.sh +41 -0
  48. package/skills/write-paper/references/latex/manuscript.tex +39 -0
  49. package/skills/write-paper/references/latex/references.bib +10 -0
  50. package/skills/write-paper/references/latex/sections/ablations.tex +3 -0
  51. package/skills/write-paper/references/latex/sections/abstract.tex +3 -0
  52. package/skills/write-paper/references/latex/sections/conclusion.tex +3 -0
  53. package/skills/write-paper/references/latex/sections/discussion_scope.tex +7 -0
  54. package/skills/write-paper/references/latex/sections/experimental_protocol.tex +3 -0
  55. package/skills/write-paper/references/latex/sections/introduction.tex +3 -0
  56. package/skills/write-paper/references/latex/sections/main_results.tex +9 -0
  57. package/skills/write-paper/references/latex/sections/method_system.tex +3 -0
  58. package/skills/write-paper/references/latex/sections/problem_setup.tex +3 -0
  59. package/skills/write-paper/references/latex/sections/related_work.tex +3 -0
  60. package/skills/write-paper/references/paper-template.md +155 -0
  61. package/skills/write-paper/references/paragraph-contract.md +139 -0
  62. package/skills/write-paper/references/paragraph-examples.md +171 -0
  63. package/skills/write-paper/references/style-banlist.md +81 -0
  64. package/skills/write-review-paper/SKILL.md +10 -4
package/README.en.md CHANGED
@@ -226,8 +226,22 @@ Or invoke a specific skill directly with a slash command:
226
226
  /research-pipeline
227
227
  /research-collect
228
228
  /idea-generation
229
+ /algorithm-selection
230
+ /dataset-validate
229
231
  ```
230
232
 
233
+ ## New Skills for Midstream ML Work
234
+
235
+ - `/algorithm-selection`
236
+ - use this after `/research-survey` and before `/research-plan`
237
+ - purpose: make 2-3 candidate routes explicit and record `Chosen Route / Rejected Routes / Fallback Route`
238
+ - `/dataset-validate`
239
+ - use this when `plan_res.md` already exists and you want to validate data quality before implementation or model review
240
+ - purpose: review data reality, splits, labels, leakage risk, and mock-data usage separately from model quality
241
+ - `/baseline-runner`
242
+ - use this when `plan_res.md` already exists and the project needs real baseline comparisons
243
+ - purpose: standardize baselines, protocol, metrics, and result recording, then write `baseline_res.md`
244
+
231
245
  ### 3. Monitor sub-agent progress
232
246
 
233
247
  When the orchestrator spawns sub-agents, you'll see:
@@ -262,11 +276,18 @@ Check status anytime:
262
276
  | **research-pipeline** | `/research-pipeline` | Orchestrator. Spawns sub-agents for each phase, verifies outputs between steps. |
263
277
  | **research-collect** | `/research-collect` | Search arXiv → filter → download .tex sources → cluster → generate survey report. |
264
278
  | **research-survey** | `/research-survey` | Deep analysis of papers: extract formulas, map to code, produce method comparison table. |
279
+ | **algorithm-selection** | `/algorithm-selection` | Choose between 2-3 plausible ML routes, record rejected routes, and keep a fallback. |
265
280
  | **research-plan** | `/research-plan` | Create 4-part implementation plan (Dataset/Model/Training/Testing) from survey results. |
281
+ | **dataset-validate** | `/dataset-validate` | Audit data reality, splits, labels, and leakage risk before model review. |
282
+ | **baseline-runner** | `/baseline-runner` | Run or audit strong baselines under the same protocol before headline comparisons. |
266
283
  | **research-implement** | `/research-implement` | Implement ML code from plan, run 2-epoch validation with `uv` venv isolation. |
267
284
  | **research-review** | `/research-review` | Review implementation. Iterates fix → rerun → review up to 3 times. |
268
285
  | **research-experiment** | `/research-experiment` | Full training + ablation experiments. Requires review PASS. |
269
286
  | **idea-generation** | `/idea-generation` | Generate 5 innovative research ideas from a topic, select and enhance the best one. |
287
+ | **write-paper** | `/write-paper` | Draft a result-driven paper or technical report from experiment artifacts. |
288
+ | **artifact-review** | `/artifact-review` | Review a draft, README, or figure set before external sharing. |
289
+ | **figure-standardize** | `/figure-standardize` | Normalize figure filenames, captions, labels, and reuse metadata. |
290
+ | **release-layout** | `/release-layout` | Repackage existing artifacts into a clearer README or release entry surface. |
270
291
 
271
292
  </details>
272
293
 
@@ -306,7 +327,6 @@ Check status anytime:
306
327
  | `/papers` | List downloaded papers with metadata |
307
328
  | `/ideas` | List generated ideas |
308
329
  | `/projects` | List all projects |
309
- | `/project-switch <id>` | Switch active project |
310
330
  | `/project-delete <id>` | Delete a project |
311
331
  | `/research-subscribe ...` | Create/update scheduled Scientify jobs |
312
332
  | `/research-subscriptions` | Show your scheduled Scientify jobs |
package/README.md CHANGED
@@ -226,8 +226,22 @@ openclaw gateway
226
226
  /research-pipeline
227
227
  /research-collect
228
228
  /idea-generation
229
+ /algorithm-selection
230
+ /dataset-validate
229
231
  ```
230
232
 
233
+ ## 机器学习中段任务的新增技能
234
+
235
+ - `/algorithm-selection`
236
+ - 用在 `/research-survey` 之后、`/research-plan` 之前
237
+ - 作用:把 2-3 条候选路线写清楚,明确 `Chosen Route / Rejected Routes / Fallback Route`
238
+ - `/dataset-validate`
239
+ - 用在 `plan_res.md` 已经存在、准备实现或审查模型之前
240
+ - 作用:单独审数据真实性、split、label、leakage 和 mock 风险,把数据质量和模型质量分开
241
+ - `/baseline-runner`
242
+ - 用在 `plan_res.md` 已经存在、需要真实 baseline 对比时
243
+ - 作用:统一 baseline、协议、指标和结果记录,产出 `baseline_res.md`
244
+
231
245
  ### 3. 监控子 agent 进度
232
246
 
233
247
  编排器 spawn 子 agent 后,你会看到:
@@ -250,6 +264,19 @@ openclaw gateway
250
264
  /ideas # 列出已生成想法
251
265
  ```
252
266
 
267
+ ## 中后段项目的快捷技能
268
+
269
+ 如果项目已经有一部分产物,不必总是从 `/metabolism` 或 `/research-survey` 重新开始。可以直接进入这些 skill:
270
+
271
+ - `/write-paper`
272
+ - 适合:已经有 `experiment_res.md`、结果图或结果表,准备整理成 paper draft
273
+ - `/artifact-review`
274
+ - 适合:已有 draft、README 更新或准备对外分享的 figures,想先做发布前审查
275
+ - `/figure-standardize`
276
+ - 适合:图已经有了,但文件名、caption、单位、标签风格不统一
277
+ - `/release-layout`
278
+ - 适合:项目已有成果,想把 README 或 release 入口改得更清楚、更适合外部阅读
279
+
253
280
  ---
254
281
 
255
282
  ## 已知限制
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ import { handleMetabolismStatus } from "./src/commands/metabolism-status.js";
10
10
  export default definePluginEntry({
11
11
  id: "scientify",
12
12
  name: "Scientify",
13
- description: "AI-powered research workflow automation with continuous knowledge metabolism",
13
+ description: "Continuous AI research workflow for survey, planning, implementation, review, experimentation, and writing",
14
14
  register(api) {
15
15
  // Register tools
16
16
  api.registerTool(createArxivSearchTool());
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../../src/cli/research.ts"],"names":[],"mappings":"AAgRA;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,IAAI,CAAC,OAAO,aAAa,EAAE,iBAAiB,EAAE,aAAa,GAAG,QAAQ,CAAC,QA4D7E"}
1
+ {"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../../src/cli/research.ts"],"names":[],"mappings":"AA6TA;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,IAAI,CAAC,OAAO,aAAa,EAAE,iBAAiB,EAAE,aAAa,GAAG,QAAQ,CAAC,QA4D7E"}
@@ -2,6 +2,7 @@ import fs from "node:fs";
2
2
  import path from "node:path";
3
3
  import os from "node:os";
4
4
  import { renderBootstrapMd, renderSoulMd, renderAgentsMd } from "../templates/bootstrap.js";
5
+ import { formatReleaseGateStatus, getReleaseGateNextStep, hasReleaseFacingArtifacts, readReleaseGateStatus } from "../release-gate.js";
5
6
  const OPENCLAW_HOME = path.join(os.homedir(), ".openclaw");
6
7
  const OPENCLAW_CONFIG = path.join(OPENCLAW_HOME, "openclaw.json");
7
8
  const CRON_JOBS_PATH = path.join(OPENCLAW_HOME, "cron", "jobs.json");
@@ -43,7 +44,7 @@ function addCronJob(agentId) {
43
44
  payload: {
44
45
  kind: "agentTurn",
45
46
  agentId,
46
- message: "执行每日知识新陈代谢。阅读 AGENTS.md 了解工作流,然后使用 /metabolism 技能完成今日代谢。",
47
+ message: "Run daily knowledge metabolism. Read AGENTS.md for the workflow, then use the /metabolism skill to complete today's cycle.",
47
48
  },
48
49
  delivery: { mode: "announce" },
49
50
  enabled: true,
@@ -73,6 +74,20 @@ function findPluginSkillsDir(entryDir) {
73
74
  }
74
75
  return path.join(entryDir, "skills");
75
76
  }
77
+ function copyDirectoryContents(src, dst) {
78
+ if (!fs.existsSync(src))
79
+ return;
80
+ fs.mkdirSync(dst, { recursive: true });
81
+ for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
82
+ const srcPath = path.join(src, entry.name);
83
+ const dstPath = path.join(dst, entry.name);
84
+ if (entry.isDirectory()) {
85
+ copyDirectoryContents(srcPath, dstPath);
86
+ continue;
87
+ }
88
+ fs.copyFileSync(srcPath, dstPath);
89
+ }
90
+ }
76
91
  function listResearchProjects() {
77
92
  const config = readOpenClawConfig();
78
93
  const agents = config.agents?.list ?? [];
@@ -120,6 +135,12 @@ function initProject(id, pluginSkillsDir) {
120
135
  path.join(workspace, "knowledge"),
121
136
  path.join(workspace, "ideas"),
122
137
  path.join(workspace, "experiments"),
138
+ path.join(workspace, "paper"),
139
+ path.join(workspace, "paper", "sections"),
140
+ path.join(workspace, "paper", "figures"),
141
+ path.join(workspace, "paper", "build"),
142
+ path.join(workspace, "paper", "assets"),
143
+ path.join(workspace, "review"),
123
144
  path.join(workspace, "log"),
124
145
  path.join(workspace, "skills", "metabolism"),
125
146
  ];
@@ -139,6 +160,15 @@ function initProject(id, pluginSkillsDir) {
139
160
  else {
140
161
  console.warn(`Warning: metabolism SKILL.md not found at ${srcSkill}`);
141
162
  }
163
+ // 3b. Copy paper starter bundle from write-paper references
164
+ const srcLatexBundle = path.join(pluginSkillsDir, "write-paper", "references", "latex");
165
+ const dstPaperDir = path.join(workspace, "paper");
166
+ if (fs.existsSync(srcLatexBundle)) {
167
+ copyDirectoryContents(srcLatexBundle, dstPaperDir);
168
+ }
169
+ else {
170
+ console.warn(`Warning: LaTeX starter bundle not found at ${srcLatexBundle}`);
171
+ }
142
172
  // 4. Modify openclaw.json
143
173
  const config = readOpenClawConfig();
144
174
  // Add agent to agents.list
@@ -193,6 +223,17 @@ function showStatus(id) {
193
223
  console.log(` Day: ${project.currentDay}`);
194
224
  console.log(` Topics: ${topicCount}`);
195
225
  console.log(` Hypotheses: ${hypothesisCount}`);
226
+ const gateStatus = readReleaseGateStatus(project.workspace);
227
+ if (hasReleaseFacingArtifacts(project.workspace) || gateStatus.state !== "missing") {
228
+ console.log(` Release: ${formatReleaseGateStatus(gateStatus)}`);
229
+ if (gateStatus.state === "stale" && gateStatus.staleReasons.length > 0) {
230
+ console.log(` Gate Note: ${gateStatus.staleReasons[0]}`);
231
+ }
232
+ const nextStep = getReleaseGateNextStep(project.workspace, gateStatus);
233
+ if (nextStep) {
234
+ console.log(` Next: ${nextStep}`);
235
+ }
236
+ }
196
237
  if (project.createdAt) {
197
238
  console.log(` Created: ${project.createdAt}`);
198
239
  }
@@ -1 +1 @@
1
- {"version":3,"file":"research.js","sourceRoot":"","sources":["../../../src/cli/research.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"research.js","sourceRoot":"","sources":["../../../src/cli/research.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAqC5E;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CA8BpF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,oBAAoB,GAAG,mBAAmB,CA+B3E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,oBAAoB,GAAG,mBAAmB,CA4B1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CAE9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CAEnF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CAEnF"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAgN5E;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CAiDpF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,oBAAoB,GAAG,mBAAmB,CA+B3E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,oBAAoB,GAAG,mBAAmB,CA4B1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CAE9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CAEnF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CAEnF"}
@@ -1,6 +1,7 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
3
  import * as os from "node:os";
4
+ import { formatReleaseGateStatus, getReleaseGateNextStep, hasReleaseFacingArtifacts, readReleaseGateStatus } from "./release-gate.js";
4
5
  const OPENCLAW_HOME = path.join(os.homedir(), ".openclaw");
5
6
  /**
6
7
  * List all research agents from openclaw.json.
@@ -30,6 +31,144 @@ function countFiles(dirPath, filter) {
30
31
  return 0;
31
32
  }
32
33
  }
34
+ function fileExists(filePath) {
35
+ try {
36
+ return fs.existsSync(filePath);
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ function readLatestReviewVerdict(workspace) {
43
+ const iterationsDir = path.join(workspace, "iterations");
44
+ if (!fileExists(iterationsDir))
45
+ return "MISSING";
46
+ try {
47
+ const files = fs.readdirSync(iterationsDir)
48
+ .filter((f) => /^judge_v\d+\.md$/.test(f))
49
+ .sort((a, b) => {
50
+ const na = Number(a.match(/\d+/)?.[0] ?? "0");
51
+ const nb = Number(b.match(/\d+/)?.[0] ?? "0");
52
+ return nb - na;
53
+ });
54
+ const latest = files[0];
55
+ if (!latest)
56
+ return "MISSING";
57
+ const content = fs.readFileSync(path.join(iterationsDir, latest), "utf-8");
58
+ const verdictMatch = content.match(/##\s+Verdict:\s+([A-Z_]+)/);
59
+ const verdict = verdictMatch?.[1];
60
+ return verdict ?? "UNKNOWN";
61
+ }
62
+ catch {
63
+ return "UNKNOWN";
64
+ }
65
+ }
66
+ function buildProjectSnapshot(workspace) {
67
+ return {
68
+ hasConfig: fileExists(path.join(workspace, "config.json")),
69
+ hasSurvey: fileExists(path.join(workspace, "survey_res.md")),
70
+ hasSelection: fileExists(path.join(workspace, "selection_res.md")),
71
+ hasPlan: fileExists(path.join(workspace, "plan_res.md")),
72
+ hasDataValidation: fileExists(path.join(workspace, "data_validation.md")),
73
+ hasBaseline: fileExists(path.join(workspace, "baseline_res.md")),
74
+ hasImplementationReport: fileExists(path.join(workspace, "ml_res.md")),
75
+ latestReviewVerdict: readLatestReviewVerdict(workspace),
76
+ hasExperiment: fileExists(path.join(workspace, "experiment_res.md")),
77
+ };
78
+ }
79
+ function inferNextAction(snapshot) {
80
+ if (!snapshot.hasConfig) {
81
+ return {
82
+ stage: "Bootstrap pending",
83
+ command: "complete BOOTSTRAP configuration",
84
+ expectedOutputs: ["config.json", "SOUL.md"],
85
+ reason: "The project is missing its base configuration, so later survey, selection, and experiment steps do not yet share a stable direction.",
86
+ };
87
+ }
88
+ if (!snapshot.hasSurvey) {
89
+ return {
90
+ stage: "Survey needed",
91
+ command: "/research-survey",
92
+ expectedOutputs: ["knowledge/", "survey_res.md"],
93
+ reason: "There is no deep survey result yet, so route selection and implementation would be premature.",
94
+ };
95
+ }
96
+ if (!snapshot.hasSelection && !snapshot.hasPlan) {
97
+ return {
98
+ stage: "Route selection",
99
+ command: "/algorithm-selection",
100
+ expectedOutputs: ["selection_res.md"],
101
+ reason: "A survey exists, but the project has not yet narrowed candidate approaches into Chosen / Rejected / Fallback routes.",
102
+ };
103
+ }
104
+ if (!snapshot.hasPlan) {
105
+ return {
106
+ stage: "Planning",
107
+ command: "/research-plan",
108
+ expectedOutputs: ["plan_res.md"],
109
+ reason: "The project still needs a concrete Dataset / Model / Training / Testing plan before implementation.",
110
+ };
111
+ }
112
+ if (!snapshot.hasDataValidation) {
113
+ return {
114
+ stage: "Dataset validation",
115
+ command: "/dataset-validate",
116
+ expectedOutputs: ["data_validation.md"],
117
+ reason: "Data reality, splits, labels, and leakage risk should be reviewed separately before judging model quality.",
118
+ };
119
+ }
120
+ if (!snapshot.hasBaseline) {
121
+ return {
122
+ stage: "Baseline setup",
123
+ command: "/baseline-runner",
124
+ expectedOutputs: ["baseline_res.md", "experiments/baselines/"],
125
+ reason: "The project still lacks baseline results under a matched protocol, so headline comparisons would be too early.",
126
+ };
127
+ }
128
+ if (!snapshot.hasImplementationReport) {
129
+ return {
130
+ stage: "Implementation",
131
+ command: "/research-implement",
132
+ expectedOutputs: ["project/", "ml_res.md"],
133
+ reason: "The route, plan, data check, and baseline contract are already in place, so the next step is implementation plus 2-epoch validation.",
134
+ };
135
+ }
136
+ if (snapshot.latestReviewVerdict !== "PASS") {
137
+ return {
138
+ stage: "Review",
139
+ command: "/research-review",
140
+ expectedOutputs: ["iterations/judge_v{N}.md"],
141
+ reason: "Implementation exists, but review has not yet reached PASS, so model quality still needs a dedicated review pass.",
142
+ };
143
+ }
144
+ if (!snapshot.hasExperiment) {
145
+ return {
146
+ stage: "Full experiment",
147
+ command: "/research-experiment",
148
+ expectedOutputs: ["experiment_res.md", "experiment_analysis/"],
149
+ reason: "Implementation and review are ready, so the next step is full training, ablations, and supplementary experiments.",
150
+ };
151
+ }
152
+ return {
153
+ stage: "Experiment complete",
154
+ command: "/write-review-paper",
155
+ expectedOutputs: ["review/"],
156
+ reason: "The core ML execution chain is complete, so the project can move into synthesis, survey writing, or outward-facing summaries.",
157
+ };
158
+ }
159
+ function formatArtifactPresence(snapshot) {
160
+ const items = [
161
+ ["survey", snapshot.hasSurvey],
162
+ ["selection", snapshot.hasSelection],
163
+ ["plan", snapshot.hasPlan],
164
+ ["data_validation", snapshot.hasDataValidation],
165
+ ["baseline", snapshot.hasBaseline],
166
+ ["implement", snapshot.hasImplementationReport],
167
+ ["review", snapshot.latestReviewVerdict === "PASS"],
168
+ ["experiment", snapshot.hasExperiment],
169
+ ];
170
+ return items.map(([label, ok]) => `${ok ? "yes" : "no"} ${label}`).join(" | ");
171
+ }
33
172
  /**
34
173
  * /research-status - Show workspace status for all research agents
35
174
  */
@@ -46,6 +185,8 @@ export function handleResearchStatus(_ctx) {
46
185
  const ideasCount = countFiles(path.join(w, "ideas"), (f) => f.endsWith(".md"));
47
186
  const topicCount = countFiles(path.join(w, "knowledge"), (f) => f.startsWith("topic-"));
48
187
  const hypothesisCount = countFiles(path.join(w, "ideas"), (f) => f.startsWith("hyp-"));
188
+ const snapshot = buildProjectSnapshot(w);
189
+ const next = inferNextAction(snapshot);
49
190
  let currentDay = 0;
50
191
  try {
51
192
  const config = JSON.parse(fs.readFileSync(path.join(w, "config.json"), "utf-8"));
@@ -54,7 +195,24 @@ export function handleResearchStatus(_ctx) {
54
195
  catch { /* not yet bootstrapped */ }
55
196
  output += `**${projectId}** (Day ${currentDay})\n`;
56
197
  output += ` Workspace: \`${w}\`\n`;
57
- output += ` Topics: ${topicCount} | Hypotheses: ${hypothesisCount} | Papers: ${papersCount} | Ideas: ${ideasCount}\n\n`;
198
+ output += ` Topics: ${topicCount} | Hypotheses: ${hypothesisCount} | Papers: ${papersCount} | Ideas: ${ideasCount}\n`;
199
+ output += ` Stage: ${next.stage}\n`;
200
+ output += ` Artifacts: ${formatArtifactPresence(snapshot)}\n`;
201
+ output += ` Next: \`${next.command}\`\n`;
202
+ output += ` Why: ${next.reason}\n`;
203
+ output += ` Expected: ${next.expectedOutputs.map((p) => `\`${p}\``).join(", ")}\n`;
204
+ const gateStatus = readReleaseGateStatus(w);
205
+ if (hasReleaseFacingArtifacts(w) || gateStatus.state !== "missing") {
206
+ output += ` Release Gate: ${formatReleaseGateStatus(gateStatus)}\n`;
207
+ if (gateStatus.state === "stale" && gateStatus.staleReasons.length > 0) {
208
+ output += ` Gate Detail: ${gateStatus.staleReasons[0]}\n`;
209
+ }
210
+ const nextStep = getReleaseGateNextStep(w, gateStatus);
211
+ if (nextStep) {
212
+ output += ` Release Next: ${nextStep}\n`;
213
+ }
214
+ }
215
+ output += `\n`;
58
216
  }
59
217
  return { text: output };
60
218
  }
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type ReleaseVerdict = "HOLD" | "CONDITIONAL_GO" | "GO";
2
+ export interface ReleaseGateStatus {
3
+ state: "missing" | "invalid" | "fresh" | "stale";
4
+ verdict?: ReleaseVerdict;
5
+ gatePath: string;
6
+ checkedFiles: string[];
7
+ staleReasons: string[];
8
+ generatedAt?: string;
9
+ }
10
+ export declare function hasReleaseFacingArtifacts(workspace: string): boolean;
11
+ export declare function readReleaseGateStatus(workspace: string): ReleaseGateStatus;
12
+ export declare function formatReleaseGateStatus(status: ReleaseGateStatus): string;
13
+ export declare function getReleaseGateNextStep(workspace: string, status: ReleaseGateStatus): string | null;
14
+ //# sourceMappingURL=release-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-gate.d.ts","sourceRoot":"","sources":["../../src/release-gate.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAY9D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IACjD,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA6BD,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAkE1E;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAazE;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAuBlG"}
@@ -0,0 +1,124 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ function isReleaseVerdict(value) {
4
+ return value === "HOLD" || value === "CONDITIONAL_GO" || value === "GO";
5
+ }
6
+ function normalizeStringArray(value) {
7
+ return Array.isArray(value)
8
+ ? value.filter((item) => typeof item === "string" && item.length > 0)
9
+ : [];
10
+ }
11
+ function defaultReleaseGateInputs(workspace) {
12
+ const candidates = [
13
+ "paper/draft.md",
14
+ "paper/claim_inventory.md",
15
+ "paper/figures_manifest.md",
16
+ "paper/manuscript.tex",
17
+ "README.md",
18
+ "docs/index.html",
19
+ ];
20
+ return candidates.filter((relativePath) => fs.existsSync(path.join(workspace, relativePath)));
21
+ }
22
+ function resolveWorkspacePath(workspace, candidate) {
23
+ return path.isAbsolute(candidate) ? candidate : path.join(workspace, candidate);
24
+ }
25
+ export function hasReleaseFacingArtifacts(workspace) {
26
+ return defaultReleaseGateInputs(workspace).length > 0;
27
+ }
28
+ export function readReleaseGateStatus(workspace) {
29
+ const gatePath = path.join(workspace, "review", "release_gate.json");
30
+ if (!fs.existsSync(gatePath)) {
31
+ return {
32
+ state: "missing",
33
+ gatePath,
34
+ checkedFiles: [],
35
+ staleReasons: [],
36
+ };
37
+ }
38
+ let parsed;
39
+ try {
40
+ parsed = JSON.parse(fs.readFileSync(gatePath, "utf-8"));
41
+ }
42
+ catch {
43
+ return {
44
+ state: "invalid",
45
+ gatePath,
46
+ checkedFiles: [],
47
+ staleReasons: ["release_gate.json is not valid JSON"],
48
+ };
49
+ }
50
+ if (!isReleaseVerdict(parsed.release_verdict)) {
51
+ return {
52
+ state: "invalid",
53
+ gatePath,
54
+ checkedFiles: [],
55
+ staleReasons: ["release_gate.json is missing a valid release_verdict"],
56
+ };
57
+ }
58
+ const checkedFiles = normalizeStringArray(parsed.checked_files);
59
+ const freshnessInputs = normalizeStringArray(parsed.stale_if_any_newer_than);
60
+ const trackedInputs = freshnessInputs.length > 0
61
+ ? freshnessInputs
62
+ : checkedFiles.length > 0
63
+ ? checkedFiles
64
+ : defaultReleaseGateInputs(workspace);
65
+ const gateMtimeMs = fs.statSync(gatePath).mtimeMs;
66
+ const staleReasons = [];
67
+ for (const candidate of trackedInputs) {
68
+ const candidatePath = resolveWorkspacePath(workspace, candidate);
69
+ const displayPath = path.isAbsolute(candidate) ? candidate : candidate;
70
+ if (!fs.existsSync(candidatePath)) {
71
+ staleReasons.push(`${displayPath} is missing`);
72
+ continue;
73
+ }
74
+ if (fs.statSync(candidatePath).mtimeMs > gateMtimeMs) {
75
+ staleReasons.push(`${displayPath} changed after the last gate`);
76
+ }
77
+ }
78
+ return {
79
+ state: staleReasons.length > 0 ? "stale" : "fresh",
80
+ verdict: parsed.release_verdict,
81
+ gatePath,
82
+ checkedFiles,
83
+ staleReasons,
84
+ generatedAt: parsed.generated_at,
85
+ };
86
+ }
87
+ export function formatReleaseGateStatus(status) {
88
+ switch (status.state) {
89
+ case "missing":
90
+ return "not run";
91
+ case "invalid":
92
+ return "invalid";
93
+ case "stale":
94
+ return status.verdict ? `${status.verdict} (stale)` : "stale";
95
+ case "fresh":
96
+ return status.verdict ? `${status.verdict} (fresh)` : "fresh";
97
+ default:
98
+ return status.state;
99
+ }
100
+ }
101
+ export function getReleaseGateNextStep(workspace, status) {
102
+ if (!hasReleaseFacingArtifacts(workspace) && status.state === "missing") {
103
+ return null;
104
+ }
105
+ switch (status.state) {
106
+ case "missing":
107
+ return "Run `/artifact-review` before sharing the current paper, figures, or release page.";
108
+ case "invalid":
109
+ return "Rerun `/artifact-review` to regenerate a valid `review/release_gate.json`.";
110
+ case "stale":
111
+ return "Rerun `/artifact-review` because one or more reviewed artifacts changed after the last gate.";
112
+ case "fresh":
113
+ if (status.verdict === "HOLD") {
114
+ return "Fix the blocking findings in `review/artifact_review.md`, then rerun `/artifact-review`.";
115
+ }
116
+ if (status.verdict === "CONDITIONAL_GO") {
117
+ return "Resolve the remaining P1 findings or explicitly accept a conditional release before sharing.";
118
+ }
119
+ return "Release gate is fresh. You can proceed to `/release-layout` or share the reviewed artifacts.";
120
+ default:
121
+ return null;
122
+ }
123
+ }
124
+ //# sourceMappingURL=release-gate.js.map