@researai/deepscientist 1.5.0 → 1.5.1
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/AGENTS.md +26 -0
- package/README.md +19 -179
- package/assets/connectors/lingzhu/openclaw-bridge/README.md +124 -0
- package/assets/connectors/lingzhu/openclaw-bridge/index.ts +162 -0
- package/assets/connectors/lingzhu/openclaw-bridge/openclaw.plugin.json +145 -0
- package/assets/connectors/lingzhu/openclaw-bridge/package.json +35 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/cli.ts +180 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/config.ts +196 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/debug-log.ts +111 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/events.ts +4 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/http-handler.ts +1133 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/image-cache.ts +75 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/lingzhu-tools.ts +246 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/transform.ts +541 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/types.ts +131 -0
- package/assets/connectors/lingzhu/openclaw-bridge/tsconfig.json +14 -0
- package/assets/connectors/lingzhu/openclaw.lingzhu.config.template.json +39 -0
- package/bin/ds.js +233 -53
- package/docs/en/00_QUICK_START.md +134 -0
- package/docs/en/01_SETTINGS_REFERENCE.md +1104 -0
- package/docs/en/02_START_RESEARCH_GUIDE.md +404 -0
- package/docs/en/03_QQ_CONNECTOR_GUIDE.md +325 -0
- package/docs/en/04_LINGZHU_CONNECTOR_GUIDE.md +216 -0
- package/docs/en/05_TUI_GUIDE.md +141 -0
- package/docs/en/06_RUNTIME_AND_CANVAS.md +679 -0
- package/docs/en/07_MEMORY_AND_MCP.md +253 -0
- package/docs/en/08_FIGURE_STYLE_GUIDE.md +97 -0
- package/docs/en/09_DOCTOR.md +108 -0
- package/docs/en/90_ARCHITECTURE.md +245 -0
- package/docs/en/91_DEVELOPMENT.md +195 -0
- package/docs/en/99_ACKNOWLEDGEMENTS.md +29 -0
- package/docs/zh/00_QUICK_START.md +134 -0
- package/docs/zh/01_SETTINGS_REFERENCE.md +1137 -0
- package/docs/zh/02_START_RESEARCH_GUIDE.md +414 -0
- package/docs/zh/03_QQ_CONNECTOR_GUIDE.md +324 -0
- package/docs/zh/04_LINGZHU_CONNECTOR_GUIDE.md +230 -0
- package/docs/zh/05_TUI_GUIDE.md +128 -0
- package/docs/zh/06_RUNTIME_AND_CANVAS.md +271 -0
- package/docs/zh/07_MEMORY_AND_MCP.md +235 -0
- package/docs/zh/08_FIGURE_STYLE_GUIDE.md +97 -0
- package/docs/zh/09_DOCTOR.md +112 -0
- package/docs/zh/99_ACKNOWLEDGEMENTS.md +29 -0
- package/install.sh +32 -8
- package/package.json +4 -2
- package/pyproject.toml +1 -1
- package/src/deepscientist/artifact/guidance.py +9 -2
- package/src/deepscientist/artifact/service.py +482 -22
- package/src/deepscientist/bash_exec/monitor.py +27 -5
- package/src/deepscientist/bash_exec/runtime.py +639 -0
- package/src/deepscientist/bash_exec/service.py +99 -16
- package/src/deepscientist/bridges/base.py +3 -0
- package/src/deepscientist/bridges/connectors.py +292 -13
- package/src/deepscientist/channels/qq.py +19 -2
- package/src/deepscientist/channels/relay.py +1 -0
- package/src/deepscientist/cli.py +32 -25
- package/src/deepscientist/config/models.py +28 -2
- package/src/deepscientist/config/service.py +201 -6
- package/src/deepscientist/connector_runtime.py +2 -0
- package/src/deepscientist/daemon/api/handlers.py +50 -5
- package/src/deepscientist/daemon/api/router.py +1 -0
- package/src/deepscientist/daemon/app.py +442 -15
- package/src/deepscientist/doctor.py +444 -0
- package/src/deepscientist/home.py +1 -0
- package/src/deepscientist/latex_runtime.py +17 -4
- package/src/deepscientist/lingzhu_support.py +182 -0
- package/src/deepscientist/mcp/server.py +49 -2
- package/src/deepscientist/prompts/builder.py +181 -58
- package/src/deepscientist/quest/layout.py +1 -0
- package/src/deepscientist/quest/service.py +63 -2
- package/src/deepscientist/quest/stage_views.py +19 -1
- package/src/deepscientist/runtime_tools/__init__.py +16 -0
- package/src/deepscientist/runtime_tools/builtins.py +19 -0
- package/src/deepscientist/runtime_tools/models.py +29 -0
- package/src/deepscientist/runtime_tools/registry.py +40 -0
- package/src/deepscientist/runtime_tools/service.py +59 -0
- package/src/deepscientist/runtime_tools/tinytex.py +25 -0
- package/src/deepscientist/tinytex.py +276 -0
- package/src/prompts/connectors/lingzhu.md +12 -0
- package/src/prompts/connectors/qq.md +121 -0
- package/src/prompts/system.md +177 -33
- package/src/skills/analysis-campaign/SKILL.md +22 -6
- package/src/skills/baseline/SKILL.md +5 -4
- package/src/skills/decision/SKILL.md +4 -3
- package/src/skills/experiment/SKILL.md +5 -4
- package/src/skills/finalize/SKILL.md +5 -4
- package/src/skills/idea/SKILL.md +5 -4
- package/src/skills/intake-audit/SKILL.md +277 -0
- package/src/skills/intake-audit/references/state-audit-template.md +41 -0
- package/src/skills/rebuttal/SKILL.md +407 -0
- package/src/skills/rebuttal/references/action-plan-template.md +63 -0
- package/src/skills/rebuttal/references/evidence-update-template.md +30 -0
- package/src/skills/rebuttal/references/response-letter-template.md +113 -0
- package/src/skills/rebuttal/references/review-matrix-template.md +55 -0
- package/src/skills/review/SKILL.md +293 -0
- package/src/skills/review/references/experiment-todo-template.md +29 -0
- package/src/skills/review/references/review-report-template.md +83 -0
- package/src/skills/review/references/revision-log-template.md +40 -0
- package/src/skills/scout/SKILL.md +5 -4
- package/src/skills/write/SKILL.md +7 -3
- package/src/tui/dist/components/WelcomePanel.js +17 -43
- package/src/tui/dist/components/messages/BashExecOperationMessage.js +3 -2
- package/src/tui/package.json +1 -1
- package/src/ui/dist/assets/{AiManusChatView-7v-dHngU.js → AiManusChatView-w5lF2Ttt.js} +109 -575
- package/src/ui/dist/assets/{AnalysisPlugin-B_Xmz-KE.js → AnalysisPlugin-DJOED79I.js} +1 -1
- package/src/ui/dist/assets/{AutoFigurePlugin-Cko-0tm1.js → AutoFigurePlugin-DaG61Y0M.js} +63 -8
- package/src/ui/dist/assets/{CliPlugin-BsU0ht7q.js → CliPlugin-CV4LqUB_.js} +43 -609
- package/src/ui/dist/assets/{CodeEditorPlugin-DcMMP0Rt.js → CodeEditorPlugin-DylfAea4.js} +8 -8
- package/src/ui/dist/assets/{CodeViewerPlugin-BqoQ5QyY.js → CodeViewerPlugin-F7saY0LM.js} +5 -5
- package/src/ui/dist/assets/{DocViewerPlugin-D7eHNhU6.js → DocViewerPlugin-COP0c7jf.js} +3 -3
- package/src/ui/dist/assets/{GitDiffViewerPlugin-DLJN42T5.js → GitDiffViewerPlugin-CAS05pT9.js} +1 -1
- package/src/ui/dist/assets/{ImageViewerPlugin-gJMV7MOu.js → ImageViewerPlugin-Bco1CN_w.js} +5 -6
- package/src/ui/dist/assets/{LabCopilotPanel-B857sfxP.js → LabCopilotPanel-CvMlCD99.js} +12 -15
- package/src/ui/dist/assets/LabPlugin-BYankkE4.js +2676 -0
- package/src/ui/dist/assets/LabPlugin-D9jVIo0A.css +2698 -0
- package/src/ui/dist/assets/{LatexPlugin-DWKEo-Wj.js → LatexPlugin-LDSMR-t-.js} +16 -16
- package/src/ui/dist/assets/{MarkdownViewerPlugin-DBzoEmhv.js → MarkdownViewerPlugin-B7o80jgm.js} +4 -4
- package/src/ui/dist/assets/{MarketplacePlugin-DoHc-8vo.js → MarketplacePlugin-CM6ZOcpC.js} +3 -3
- package/src/ui/dist/assets/{NotebookEditor-CKjKH-yS.js → NotebookEditor-Dc61cXmK.js} +3 -3
- package/src/ui/dist/assets/{PdfLoader-zFoL0VPo.js → PdfLoader-DWowuQwx.js} +1 -1
- package/src/ui/dist/assets/{PdfMarkdownPlugin-DXPaL9Nt.js → PdfMarkdownPlugin-BsJM1q_a.js} +3 -3
- package/src/ui/dist/assets/{PdfViewerPlugin-DhK8qCFp.js → PdfViewerPlugin-DB2eEEFQ.js} +10 -10
- package/src/ui/dist/assets/{SearchPlugin-CdSi6krf.js → SearchPlugin-CraThSvt.js} +1 -1
- package/src/ui/dist/assets/{Stepper-V-WiDQJl.js → Stepper-CgocRTPq.js} +1 -1
- package/src/ui/dist/assets/{TextViewerPlugin-hIs1Efiu.js → TextViewerPlugin-B1JGhKtd.js} +4 -4
- package/src/ui/dist/assets/{VNCViewer-DG8b0q2X.js → VNCViewer-CclFC7FM.js} +9 -10
- package/src/ui/dist/assets/{bibtex-HDac6fVW.js → bibtex-D3IKsMl7.js} +1 -1
- package/src/ui/dist/assets/{code-BnBeNxBc.js → code-BP37Xx0p.js} +1 -1
- package/src/ui/dist/assets/{file-content-IRQ3jHb8.js → file-content-BAJSu-9r.js} +1 -1
- package/src/ui/dist/assets/{file-diff-panel-DZoQ9I6r.js → file-diff-panel-DUGeCTuy.js} +1 -1
- package/src/ui/dist/assets/{file-socket-BMCdLc-P.js → file-socket-CXc1Ojf7.js} +1 -1
- package/src/ui/dist/assets/{file-utils-CltILB3w.js → file-utils-2J21jt7M.js} +1 -1
- package/src/ui/dist/assets/{image-Boe6ffhu.js → image-CMMmgvcn.js} +1 -1
- package/src/ui/dist/assets/{index-BlplpvE1.js → index-BaVumsQT.js} +2 -2
- package/src/ui/dist/assets/{index-DZqJ-qAM.js → index-CWgMgpow.js} +60 -2154
- package/src/ui/dist/assets/{index-DO43pFZP.js → index-DmwmJmbW.js} +6372 -8434
- package/src/ui/dist/assets/{index-Bq2bvfkl.css → index-KGt-z-dD.css} +225 -2920
- package/src/ui/dist/assets/{index-2Zf65FZt.js → index-s7aHnNQ4.js} +1 -1
- package/src/ui/dist/assets/{message-square-mUHn_Ssb.js → message-square-CQRfX0Am.js} +1 -1
- package/src/ui/dist/assets/{monaco-fe0arNEU.js → monaco-B4TbdsrF.js} +1 -1
- package/src/ui/dist/assets/{popover-D_7i19qU.js → popover-B8Rokodk.js} +1 -1
- package/src/ui/dist/assets/{project-sync-DyVGrU7H.js → project-sync-D_i96KH4.js} +2 -8
- package/src/ui/dist/assets/{sigma-BzazRyxQ.js → sigma-D12PnzCN.js} +1 -1
- package/src/ui/dist/assets/{tooltip-DN_yjHFH.js → tooltip-B6YrI4aJ.js} +1 -1
- package/src/ui/dist/assets/trash-Bc8jGp0V.js +32 -0
- package/src/ui/dist/assets/{useCliAccess-DV2L2Qxy.js → useCliAccess-mXVCYSZ-.js} +12 -42
- package/src/ui/dist/assets/{useFileDiffOverlay-DyTj-p_V.js → useFileDiffOverlay-Bg6b9H9K.js} +1 -1
- package/src/ui/dist/assets/{wrap-text-ozYHtUwq.js → wrap-text-Drh5GEnL.js} +1 -1
- package/src/ui/dist/assets/{zoom-out-BN9MUyCQ.js → zoom-out-CJj9DZLn.js} +1 -1
- package/src/ui/dist/index.html +2 -2
- package/assets/fonts/Inter-Variable.ttf +0 -0
- package/assets/fonts/NotoSerifSC-Regular-C94HN_ZN.ttf +0 -0
- package/assets/fonts/NunitoSans-Variable.ttf +0 -0
- package/assets/fonts/Satoshi-Medium-ByP-Zb-9.woff2 +0 -0
- package/assets/fonts/SourceSans3-Variable.ttf +0 -0
- package/assets/fonts/ds-fonts.css +0 -83
- package/src/ui/dist/assets/Inter-Variable-VF2RPR_K.ttf +0 -0
- package/src/ui/dist/assets/LabPlugin-bL7rpic8.js +0 -43
- package/src/ui/dist/assets/NotoSerifSC-Regular-C94HN_ZN-C94HN_ZN.ttf +0 -0
- package/src/ui/dist/assets/NunitoSans-Variable-B_ZymHAd.ttf +0 -0
- package/src/ui/dist/assets/Satoshi-Medium-ByP-Zb-9-GkA34YXu.woff2 +0 -0
- package/src/ui/dist/assets/SourceSans3-Variable-CD-WOsSK.ttf +0 -0
- package/src/ui/dist/assets/info-CcsK_htA.js +0 -18
- package/src/ui/dist/assets/user-plus-BusDx-hF.js +0 -79
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rebuttal
|
|
3
|
+
description: Use when a quest already has a paper, draft, or review package and the task is to map reviewer feedback into experiments, manuscript deltas, and a durable rebuttal / revision response.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Rebuttal
|
|
7
|
+
|
|
8
|
+
Use this skill when the quest is in review, revision, or rebuttal mode.
|
|
9
|
+
|
|
10
|
+
This is not the same as ordinary `write`.
|
|
11
|
+
The task is no longer “draft the paper from evidence”.
|
|
12
|
+
The task is “respond to concrete reviewer pressure with the smallest honest set of experiments, text changes, claim adjustments, and response artifacts”.
|
|
13
|
+
|
|
14
|
+
## Interaction discipline
|
|
15
|
+
|
|
16
|
+
- Treat `artifact.interact(...)` as the main long-lived communication thread across TUI, web, and bound connectors.
|
|
17
|
+
- If `artifact.interact(...)` returns queued user requirements, treat them as the highest-priority user instruction bundle before continuing the rebuttal pass.
|
|
18
|
+
- Immediately follow any non-empty mailbox poll with another `artifact.interact(...)` update that confirms receipt; if the request is directly answerable, answer there, otherwise say the current subtask is paused, give a short plan plus nearest report-back point, and handle that request first.
|
|
19
|
+
- Emit `artifact.interact(kind='progress', reply_mode='threaded', ...)` only when there is real user-visible progress: the first meaningful signal of the rebuttal pass, a meaningful checkpoint, or an occasional keepalive during truly long work. Do not update by tool-call cadence.
|
|
20
|
+
- Keep progress updates chat-like and easy to understand: say what changed, what it means, and what happens next.
|
|
21
|
+
- Default to plain-language summaries. Do not mention file paths, artifact ids, branch/worktree ids, session ids, raw commands, or raw logs unless the user asks or needs them to act.
|
|
22
|
+
- Message templates are references only. Adapt to the actual context and vary wording so updates feel natural and non-robotic.
|
|
23
|
+
- Use `reply_mode='blocking'` only for real user decisions that cannot be resolved from local evidence.
|
|
24
|
+
- For any blocking decision request, provide 1 to 3 concrete options, put the recommended option first, explain each option's actual content plus pros and cons, wait up to 1 day when feasible, then choose the best option yourself and notify the user of the chosen option if the timeout expires.
|
|
25
|
+
- If a threaded user reply arrives, interpret it relative to the latest rebuttal progress update before assuming the task changed completely.
|
|
26
|
+
- When the rebuttal plan, the main supplementary-evidence package, or the final response bundle becomes durable, send one richer `artifact.interact(kind='milestone', reply_mode='threaded', ...)` update that says what reviewer concerns are now addressed, what still remains open, and what happens next.
|
|
27
|
+
|
|
28
|
+
## Purpose
|
|
29
|
+
|
|
30
|
+
`rebuttal` is an auxiliary orchestration skill for review-driven work.
|
|
31
|
+
|
|
32
|
+
It should convert reviewer material into a durable response workflow:
|
|
33
|
+
|
|
34
|
+
1. parse and normalize the review package
|
|
35
|
+
2. split comments into stable atomic items and classify what they actually require
|
|
36
|
+
3. decide which concerns need literature/positioning analysis, which need experiments, which need text, and which require claim downgrades
|
|
37
|
+
4. route supplementary runs to `analysis-campaign` only after the analysis step says they are truly needed
|
|
38
|
+
5. route manuscript edits to `write`
|
|
39
|
+
6. assemble the response letter and revision ledger
|
|
40
|
+
|
|
41
|
+
Default rebuttal stance: analysis before execution.
|
|
42
|
+
Do not jump from “reviewer asked for more evidence” straight to experiments.
|
|
43
|
+
Do not invent rebuttal-only special tools or side workflows.
|
|
44
|
+
Stay inside the normal DeepScientist surface: `memory`, `artifact`, `bash_exec`, plus ordinary stage/companion skills.
|
|
45
|
+
First decide whether the issue is actually:
|
|
46
|
+
|
|
47
|
+
- a wording / clarity gap
|
|
48
|
+
- a literature / novelty / positioning gap
|
|
49
|
+
- an evidence-presentation gap
|
|
50
|
+
- a missing baseline or comparator
|
|
51
|
+
- a genuinely new experiment gap
|
|
52
|
+
|
|
53
|
+
## Use when
|
|
54
|
+
|
|
55
|
+
- `startup_contract.custom_profile = revision_rebuttal`
|
|
56
|
+
- the quest already has:
|
|
57
|
+
- reviewer comments
|
|
58
|
+
- a meta-review
|
|
59
|
+
- a revision request
|
|
60
|
+
- a decision letter
|
|
61
|
+
- a list of required extra experiments for a submitted paper
|
|
62
|
+
- the user says:
|
|
63
|
+
- “补实验并写 rebuttal”
|
|
64
|
+
- “根据 review 修改论文”
|
|
65
|
+
- “先整理 reviewer comments 再决定实验”
|
|
66
|
+
|
|
67
|
+
## Do not use when
|
|
68
|
+
|
|
69
|
+
- the paper does not yet exist and the task is ordinary paper drafting
|
|
70
|
+
- there are no concrete review materials
|
|
71
|
+
- the work is actually a fresh ideation or baseline quest
|
|
72
|
+
|
|
73
|
+
## Non-negotiable rules
|
|
74
|
+
|
|
75
|
+
- Do not invent experiment results, response claims, or manuscript changes that have not been made.
|
|
76
|
+
- Do not promise “we will add” unless the work is truly planned and the response format explicitly allows future-work statements.
|
|
77
|
+
- Do not silently ignore hard reviewer concerns because they are inconvenient.
|
|
78
|
+
- Do not answer a reviewer with rhetoric when the issue actually requires evidence.
|
|
79
|
+
- Do not run supplementary experiments without first mapping them to named reviewer concerns.
|
|
80
|
+
- Do not keep the original claim scope if the new evidence no longer supports it.
|
|
81
|
+
- If a reviewer request cannot be fully satisfied, say so clearly and explain the honest limitation.
|
|
82
|
+
|
|
83
|
+
## Primary inputs
|
|
84
|
+
|
|
85
|
+
Use, in roughly this order:
|
|
86
|
+
|
|
87
|
+
- the current paper or draft
|
|
88
|
+
- the selected outline if one exists
|
|
89
|
+
- review comments, meta-review, or editor letter
|
|
90
|
+
- recent main and analysis experiment results
|
|
91
|
+
- prior decision and writing memory
|
|
92
|
+
- existing figures, tables, and claim-evidence maps
|
|
93
|
+
|
|
94
|
+
If the current paper/result state is still unclear, open `intake-audit` first before continuing the rebuttal workflow.
|
|
95
|
+
|
|
96
|
+
## Core outputs
|
|
97
|
+
|
|
98
|
+
The rebuttal pass should usually leave behind:
|
|
99
|
+
|
|
100
|
+
- `paper/rebuttal/review_matrix.md`
|
|
101
|
+
- `paper/rebuttal/action_plan.md`
|
|
102
|
+
- `paper/rebuttal/response_letter.md`
|
|
103
|
+
- `paper/rebuttal/text_deltas.md`
|
|
104
|
+
- `paper/rebuttal/evidence_update.md`
|
|
105
|
+
|
|
106
|
+
Use the templates in `references/` when needed:
|
|
107
|
+
|
|
108
|
+
- `review-matrix-template.md`
|
|
109
|
+
- `action-plan-template.md`
|
|
110
|
+
- `response-letter-template.md`
|
|
111
|
+
- `evidence-update-template.md`
|
|
112
|
+
|
|
113
|
+
## Atomic reviewer-item contract
|
|
114
|
+
|
|
115
|
+
Before any rebuttal experiment or major rewrite, normalize reviewer pressure into stable atomic items.
|
|
116
|
+
|
|
117
|
+
For each item:
|
|
118
|
+
|
|
119
|
+
- give it a stable id such as `R1-C1`, `R1-C2`, `R2-C1`
|
|
120
|
+
- preserve the reviewer wording as faithfully as possible
|
|
121
|
+
- if the original text is too long or noisy, controlled head/tail ellipsis is allowed
|
|
122
|
+
- do not rewrite the reviewer's meaning
|
|
123
|
+
- record whether the item is explicit or inferred
|
|
124
|
+
- inferred items are allowed only when comments are incomplete or the user gave only rough prose
|
|
125
|
+
- mark them clearly as inferred
|
|
126
|
+
- attach at least one evidence anchor:
|
|
127
|
+
- manuscript location
|
|
128
|
+
- existing result / table / figure
|
|
129
|
+
- literature comparison note
|
|
130
|
+
- or `missing_evidence` if the gap is still real
|
|
131
|
+
- decide one primary route:
|
|
132
|
+
- `text_revision`
|
|
133
|
+
- `evidence_repackaging`
|
|
134
|
+
- `literature_positioning`
|
|
135
|
+
- `baseline_recovery`
|
|
136
|
+
- `supplementary_experiment`
|
|
137
|
+
- `claim_downgrade`
|
|
138
|
+
- `explicit_limitation`
|
|
139
|
+
|
|
140
|
+
Do not let one vague reviewer paragraph remain as one vague work item.
|
|
141
|
+
The point is to make downstream routing auditable.
|
|
142
|
+
|
|
143
|
+
## Comment classes
|
|
144
|
+
|
|
145
|
+
Every substantive reviewer comment should be classified as one or more of:
|
|
146
|
+
|
|
147
|
+
- `editorial`
|
|
148
|
+
- wording, organization, typo, presentation
|
|
149
|
+
- `text_only`
|
|
150
|
+
- explanation gap, related-work gap, clarity gap, missing discussion
|
|
151
|
+
- `evidence_gap`
|
|
152
|
+
- the paper is missing a table, figure, comparison, or stronger analysis already latent in existing results
|
|
153
|
+
- `experiment_gap`
|
|
154
|
+
- genuinely new supplementary runs are required
|
|
155
|
+
- `claim_scope`
|
|
156
|
+
- the current claim is too broad and must be narrowed or downgraded
|
|
157
|
+
- `cannot_fully_address`
|
|
158
|
+
- the request is currently infeasible, out of scope, or impossible within the real evidence budget
|
|
159
|
+
|
|
160
|
+
Do not blur these categories.
|
|
161
|
+
The whole point is to route work correctly.
|
|
162
|
+
|
|
163
|
+
Useful stance values for draft replies:
|
|
164
|
+
|
|
165
|
+
- `agree`
|
|
166
|
+
- `partially_agree`
|
|
167
|
+
- `clarify`
|
|
168
|
+
- `respectful_disagree`
|
|
169
|
+
|
|
170
|
+
Useful concern-type labels when the simple class list is not enough:
|
|
171
|
+
|
|
172
|
+
- `non_experimental`
|
|
173
|
+
- `experimental`
|
|
174
|
+
- `writing_logic`
|
|
175
|
+
- `scope_novelty`
|
|
176
|
+
|
|
177
|
+
## Workflow
|
|
178
|
+
|
|
179
|
+
### 1. Normalize the review package
|
|
180
|
+
|
|
181
|
+
Collect reviewer inputs into a durable matrix using `references/review-matrix-template.md`.
|
|
182
|
+
|
|
183
|
+
For each comment, record:
|
|
184
|
+
|
|
185
|
+
- reviewer id if known
|
|
186
|
+
- original comment summary
|
|
187
|
+
- class
|
|
188
|
+
- severity
|
|
189
|
+
- whether it affects:
|
|
190
|
+
- acceptance risk
|
|
191
|
+
- the main claim
|
|
192
|
+
- only presentation
|
|
193
|
+
- recommended action
|
|
194
|
+
- stable item id such as `R1-C1`
|
|
195
|
+
- reviewer wording or a source-faithful clipped quote
|
|
196
|
+
- whether the item is explicit or inferred
|
|
197
|
+
- preliminary route:
|
|
198
|
+
- text
|
|
199
|
+
- literature
|
|
200
|
+
- baseline
|
|
201
|
+
- experiment
|
|
202
|
+
- claim scope
|
|
203
|
+
- limitation
|
|
204
|
+
|
|
205
|
+
If the user gave only rough prose rather than a structured review package, build that matrix yourself before planning experiments or edits.
|
|
206
|
+
|
|
207
|
+
### 2. Decide what must change
|
|
208
|
+
|
|
209
|
+
For each reviewer issue, decide whether the right answer is:
|
|
210
|
+
|
|
211
|
+
- explanation only
|
|
212
|
+
- existing evidence repackaging
|
|
213
|
+
- new supplementary experiment
|
|
214
|
+
- claim downgrade
|
|
215
|
+
- explicit limitation response
|
|
216
|
+
|
|
217
|
+
Then write one durable rebuttal plan in `paper/rebuttal/action_plan.md`.
|
|
218
|
+
That plan should explicitly include the analysis-experiment TODO list for reviewer-linked follow-up work.
|
|
219
|
+
|
|
220
|
+
The action plan should be the main thinking draft before execution.
|
|
221
|
+
For each serious item, record:
|
|
222
|
+
|
|
223
|
+
- item id
|
|
224
|
+
- concern type
|
|
225
|
+
- stance
|
|
226
|
+
- chosen route
|
|
227
|
+
- why that route is sufficient
|
|
228
|
+
- what evidence already exists
|
|
229
|
+
- what is still missing
|
|
230
|
+
|
|
231
|
+
For experimental items, do not stop at “run experiment”.
|
|
232
|
+
Write at least:
|
|
233
|
+
|
|
234
|
+
- hypothesis
|
|
235
|
+
- minimal success criterion
|
|
236
|
+
- required metric(s)
|
|
237
|
+
- MVP plan
|
|
238
|
+
- Enhanced plan
|
|
239
|
+
- fallback response wording if the experiment cannot be completed in time
|
|
240
|
+
|
|
241
|
+
For novelty / comparison / positioning complaints, do not default to experiments.
|
|
242
|
+
First decide whether the issue is better answered by a focused literature audit and clearer paper positioning.
|
|
243
|
+
|
|
244
|
+
### 3. Route experiments only when genuinely needed
|
|
245
|
+
|
|
246
|
+
If one or more comments truly require new runs:
|
|
247
|
+
|
|
248
|
+
1. if the complaint is mainly about novelty, related work, or scope positioning, open `scout` first instead of treating it as an experiment request
|
|
249
|
+
2. if the complaint requires an extra comparator baseline that is not yet available, open `baseline` first
|
|
250
|
+
3. record a `decision(action='launch_analysis_campaign')`
|
|
251
|
+
4. open `analysis-campaign`
|
|
252
|
+
5. create a campaign where each slice is tied to one or more reviewer concerns
|
|
253
|
+
6. after each slice finishes, immediately `artifact.record_analysis_slice(...)`
|
|
254
|
+
7. update the review matrix and evidence update note
|
|
255
|
+
|
|
256
|
+
Do not launch a free-floating ablation batch.
|
|
257
|
+
Every supplementary run should answer a named reviewer issue.
|
|
258
|
+
Every slice should reference one or more stable reviewer item ids.
|
|
259
|
+
After each completed reviewer-linked slice, record the result, the implication for the manuscript, and the concrete modification advice in `paper/rebuttal/evidence_update.md`.
|
|
260
|
+
Use the same shared supplementary-experiment protocol as ordinary analysis work; do not invent a rebuttal-only experiment system.
|
|
261
|
+
If ids or refs are unclear, recover them first with `artifact.resolve_runtime_refs(...)`, `artifact.get_analysis_campaign(...)`, or `artifact.list_paper_outlines(...)`.
|
|
262
|
+
|
|
263
|
+
### 4. Route manuscript changes explicitly
|
|
264
|
+
|
|
265
|
+
If the paper text, structure, or claim scope must change:
|
|
266
|
+
|
|
267
|
+
- open `write`
|
|
268
|
+
- revise the selected outline when the narrative or claim map changed materially
|
|
269
|
+
- keep `text_deltas.md` explicit:
|
|
270
|
+
- section
|
|
271
|
+
- old claim / weakness
|
|
272
|
+
- new wording or new scope
|
|
273
|
+
- evidence basis
|
|
274
|
+
- keep the revision reader-first:
|
|
275
|
+
- direct answer to reviewer concern
|
|
276
|
+
- manuscript change
|
|
277
|
+
- evidence basis
|
|
278
|
+
- remaining limitation if still unresolved
|
|
279
|
+
|
|
280
|
+
If a reviewer request forces a narrower story, revise the outline before polishing prose.
|
|
281
|
+
|
|
282
|
+
### 5. Assemble the response letter
|
|
283
|
+
|
|
284
|
+
Use `references/response-letter-template.md` when helpful.
|
|
285
|
+
|
|
286
|
+
The response should be:
|
|
287
|
+
|
|
288
|
+
- professional
|
|
289
|
+
- calm
|
|
290
|
+
- specific
|
|
291
|
+
- evidence-backed
|
|
292
|
+
- non-defensive
|
|
293
|
+
|
|
294
|
+
Good response structure:
|
|
295
|
+
|
|
296
|
+
- short appreciation / acknowledgement
|
|
297
|
+
- direct answer to the reviewer concern
|
|
298
|
+
- keep stable item ids visible when helpful
|
|
299
|
+
- restate reviewer wording faithfully before answering
|
|
300
|
+
- what changed:
|
|
301
|
+
- experiment
|
|
302
|
+
- table / figure
|
|
303
|
+
- text section
|
|
304
|
+
- claim scope
|
|
305
|
+
- if not fully addressed, why not and what honest limitation remains
|
|
306
|
+
|
|
307
|
+
If details are still genuinely unknown, use explicit placeholders such as `[[AUTHOR TO FILL]]` rather than inventing specifics.
|
|
308
|
+
|
|
309
|
+
Avoid:
|
|
310
|
+
|
|
311
|
+
- empty politeness
|
|
312
|
+
- evasive wording
|
|
313
|
+
- pretending a limitation is solved when it is only reframed
|
|
314
|
+
|
|
315
|
+
### 6. Final revision handoff
|
|
316
|
+
|
|
317
|
+
When the rebuttal package is durably ready:
|
|
318
|
+
|
|
319
|
+
- update the review matrix statuses
|
|
320
|
+
- update the response letter
|
|
321
|
+
- update text deltas and evidence update
|
|
322
|
+
- if the revised manuscript bundle is genuinely ready, route through `artifact.submit_paper_bundle(...)`
|
|
323
|
+
|
|
324
|
+
If a combined rebuttal note is useful, make sure the total package still covers:
|
|
325
|
+
|
|
326
|
+
- overview and revision strategy
|
|
327
|
+
- draft responses to reviewers
|
|
328
|
+
- point-to-point triage
|
|
329
|
+
- experiment action plan
|
|
330
|
+
- manuscript revision suggestions
|
|
331
|
+
- evidence mapping
|
|
332
|
+
- unresolved items and risk notes
|
|
333
|
+
|
|
334
|
+
## Companion skill routing
|
|
335
|
+
|
|
336
|
+
Open additional skills only when the rebuttal workflow requires them:
|
|
337
|
+
|
|
338
|
+
- `intake-audit`
|
|
339
|
+
- when the current draft/result/review state is still unclear
|
|
340
|
+
- `scout`
|
|
341
|
+
- when reviewer pressure is mainly about novelty, positioning, related work, or comparison framing
|
|
342
|
+
- `baseline`
|
|
343
|
+
- when the rebuttal requires an extra comparator baseline that is not yet trusted
|
|
344
|
+
- `analysis-campaign`
|
|
345
|
+
- when reviewer concerns require supplementary runs
|
|
346
|
+
- `write`
|
|
347
|
+
- when claims, outline, sections, or figures must be revised
|
|
348
|
+
- `figure-polish`
|
|
349
|
+
- when a new figure or revised figure will be part of the rebuttal or manuscript update
|
|
350
|
+
- `decision`
|
|
351
|
+
- when the rebuttal route is non-trivial, for example:
|
|
352
|
+
- whether to spend budget on a hard reviewer request
|
|
353
|
+
- whether to downgrade the claim
|
|
354
|
+
- whether to treat one concern as appendix-only
|
|
355
|
+
|
|
356
|
+
## Artifact routing guidance
|
|
357
|
+
|
|
358
|
+
Use these tools deliberately:
|
|
359
|
+
|
|
360
|
+
- `artifact.record(kind='decision', ...)`
|
|
361
|
+
- route choice, claim downgrade, literature-audit launch, baseline-recovery launch, supplementary-experiment launch, rebuttal completion recommendation
|
|
362
|
+
- `artifact.create_analysis_campaign(...)`
|
|
363
|
+
- multi-slice reviewer-driven supplementary work
|
|
364
|
+
- `artifact.record_analysis_slice(...)`
|
|
365
|
+
- one completed reviewer-facing supplementary slice
|
|
366
|
+
- `artifact.submit_paper_outline(mode='revise', ...)`
|
|
367
|
+
- when review changes the active paper blueprint
|
|
368
|
+
- `artifact.submit_paper_bundle(...)`
|
|
369
|
+
- when the revised manuscript package is durably ready
|
|
370
|
+
- `artifact.interact(...)`
|
|
371
|
+
- user-visible progress and rebuttal milestones
|
|
372
|
+
|
|
373
|
+
## Memory discipline
|
|
374
|
+
|
|
375
|
+
Stage-start requirement:
|
|
376
|
+
|
|
377
|
+
- run `memory.list_recent(scope='quest', limit=5)`
|
|
378
|
+
- run at least one `memory.search(...)` for:
|
|
379
|
+
- paper title
|
|
380
|
+
- main method name
|
|
381
|
+
- reviewer / rebuttal / revision
|
|
382
|
+
- key criticized claim or figure
|
|
383
|
+
|
|
384
|
+
Stage-end requirement:
|
|
385
|
+
|
|
386
|
+
- if the rebuttal pass produced a durable lesson, claim downgrade, or reviewer-driven route change, write at least one `memory.write(...)`
|
|
387
|
+
|
|
388
|
+
Useful tags include:
|
|
389
|
+
|
|
390
|
+
- `stage:rebuttal`
|
|
391
|
+
- `type:review-matrix`
|
|
392
|
+
- `type:claim-downgrade`
|
|
393
|
+
- `type:revision-lesson`
|
|
394
|
+
- `type:reviewer-request`
|
|
395
|
+
|
|
396
|
+
## Success condition
|
|
397
|
+
|
|
398
|
+
`rebuttal` is successful when:
|
|
399
|
+
|
|
400
|
+
- reviewer concerns are normalized into a durable matrix
|
|
401
|
+
- each serious concern has an explicit action class
|
|
402
|
+
- supplementary experiments, if needed, are routed cleanly
|
|
403
|
+
- manuscript deltas are explicit
|
|
404
|
+
- the response letter is evidence-backed and honest
|
|
405
|
+
|
|
406
|
+
The goal is not just “write a nicer response”.
|
|
407
|
+
The goal is to convert review pressure into a durable, auditable revision workflow.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Rebuttal Action Plan Template
|
|
2
|
+
|
|
3
|
+
## Overview & Revision Strategy
|
|
4
|
+
|
|
5
|
+
- top reviewer risks:
|
|
6
|
+
- current strongest evidence:
|
|
7
|
+
- current weakest evidence:
|
|
8
|
+
- global revision strategy:
|
|
9
|
+
|
|
10
|
+
## Item-by-item plan
|
|
11
|
+
|
|
12
|
+
### Item R1-C1
|
|
13
|
+
|
|
14
|
+
- class:
|
|
15
|
+
- concern type:
|
|
16
|
+
- stance:
|
|
17
|
+
- primary route:
|
|
18
|
+
- why this route is sufficient:
|
|
19
|
+
- existing evidence:
|
|
20
|
+
- missing evidence:
|
|
21
|
+
- manuscript delta needed:
|
|
22
|
+
- owner / next action:
|
|
23
|
+
|
|
24
|
+
**If supplementary experiment is needed**
|
|
25
|
+
|
|
26
|
+
- hypothesis:
|
|
27
|
+
- required metric(s):
|
|
28
|
+
- minimal success criterion:
|
|
29
|
+
- MVP plan:
|
|
30
|
+
- enhanced plan:
|
|
31
|
+
- fallback wording if unfinished:
|
|
32
|
+
|
|
33
|
+
### Item R1-C2
|
|
34
|
+
|
|
35
|
+
- class:
|
|
36
|
+
- concern type:
|
|
37
|
+
- stance:
|
|
38
|
+
- primary route:
|
|
39
|
+
- why this route is sufficient:
|
|
40
|
+
- existing evidence:
|
|
41
|
+
- missing evidence:
|
|
42
|
+
- manuscript delta needed:
|
|
43
|
+
- owner / next action:
|
|
44
|
+
|
|
45
|
+
## Experiment Action Plan
|
|
46
|
+
|
|
47
|
+
- reviewer items that require new runs:
|
|
48
|
+
- which items only need analysis of existing results:
|
|
49
|
+
- which items first require baseline recovery:
|
|
50
|
+
- which items first require literature / positioning audit:
|
|
51
|
+
|
|
52
|
+
## Claim-scope changes
|
|
53
|
+
|
|
54
|
+
- claim to keep:
|
|
55
|
+
- claim to narrow:
|
|
56
|
+
- claim to defer:
|
|
57
|
+
- limitation to state explicitly:
|
|
58
|
+
|
|
59
|
+
## Unresolved Items & Risk Notes
|
|
60
|
+
|
|
61
|
+
- unresolved item:
|
|
62
|
+
- blocker:
|
|
63
|
+
- best honest response if unresolved at deadline:
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Rebuttal Evidence Update Template
|
|
2
|
+
|
|
3
|
+
## Evidence Mapping Table
|
|
4
|
+
|
|
5
|
+
| Item ID | Evidence source | Evidence anchor | How it supports the reply | Remaining gap |
|
|
6
|
+
| --- | --- | --- | --- | --- |
|
|
7
|
+
| R1-C1 | | | | |
|
|
8
|
+
| R1-C2 | | | | |
|
|
9
|
+
| R2-C1 | | | | |
|
|
10
|
+
|
|
11
|
+
## Newly completed rebuttal evidence
|
|
12
|
+
|
|
13
|
+
- experiment / analysis slice:
|
|
14
|
+
- figure / table:
|
|
15
|
+
- manuscript section:
|
|
16
|
+
- key result:
|
|
17
|
+
- reviewer items covered:
|
|
18
|
+
|
|
19
|
+
## Still missing
|
|
20
|
+
|
|
21
|
+
- item id:
|
|
22
|
+
- what is still missing:
|
|
23
|
+
- why it matters:
|
|
24
|
+
- whether to downgrade claim / state limitation:
|
|
25
|
+
|
|
26
|
+
## Revision-ready summary
|
|
27
|
+
|
|
28
|
+
- strongest issues now addressed:
|
|
29
|
+
- issues still partially open:
|
|
30
|
+
- manuscript sections that must be updated next:
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Response Letter Template
|
|
2
|
+
|
|
3
|
+
## Cover note
|
|
4
|
+
|
|
5
|
+
We thank the reviewers for the careful reading and constructive feedback. Below we respond point by point and indicate the corresponding manuscript changes and supplementary evidence when applicable.
|
|
6
|
+
|
|
7
|
+
## Reviewer 1
|
|
8
|
+
|
|
9
|
+
### Item R1-C1
|
|
10
|
+
|
|
11
|
+
**Reviewer concern (verbatim or source-faithful clip)**
|
|
12
|
+
|
|
13
|
+
-
|
|
14
|
+
|
|
15
|
+
**Concern type**
|
|
16
|
+
|
|
17
|
+
- non_experimental / experimental / writing_logic / scope_novelty
|
|
18
|
+
|
|
19
|
+
**Stance**
|
|
20
|
+
|
|
21
|
+
- agree / partially_agree / clarify / respectful_disagree
|
|
22
|
+
|
|
23
|
+
**Response**
|
|
24
|
+
|
|
25
|
+
-
|
|
26
|
+
|
|
27
|
+
**What changed**
|
|
28
|
+
|
|
29
|
+
- experiment / figure / table / section:
|
|
30
|
+
- evidence basis:
|
|
31
|
+
- claim-scope effect:
|
|
32
|
+
- remaining limitation:
|
|
33
|
+
|
|
34
|
+
**If an experiment is still pending**
|
|
35
|
+
|
|
36
|
+
- MVP plan:
|
|
37
|
+
- Enhanced plan:
|
|
38
|
+
- fallback wording if unfinished:
|
|
39
|
+
|
|
40
|
+
### Item R1-C2
|
|
41
|
+
|
|
42
|
+
**Reviewer concern (verbatim or source-faithful clip)**
|
|
43
|
+
|
|
44
|
+
-
|
|
45
|
+
|
|
46
|
+
**Concern type**
|
|
47
|
+
|
|
48
|
+
- non_experimental / experimental / writing_logic / scope_novelty
|
|
49
|
+
|
|
50
|
+
**Stance**
|
|
51
|
+
|
|
52
|
+
- agree / partially_agree / clarify / respectful_disagree
|
|
53
|
+
|
|
54
|
+
**Response**
|
|
55
|
+
|
|
56
|
+
-
|
|
57
|
+
|
|
58
|
+
**What changed**
|
|
59
|
+
|
|
60
|
+
- experiment / figure / table / section:
|
|
61
|
+
- evidence basis:
|
|
62
|
+
- claim-scope effect:
|
|
63
|
+
- remaining limitation:
|
|
64
|
+
|
|
65
|
+
**If an experiment is still pending**
|
|
66
|
+
|
|
67
|
+
- MVP plan:
|
|
68
|
+
- Enhanced plan:
|
|
69
|
+
- fallback wording if unfinished:
|
|
70
|
+
|
|
71
|
+
## Reviewer 2
|
|
72
|
+
|
|
73
|
+
### Item R2-C1
|
|
74
|
+
|
|
75
|
+
**Reviewer concern (verbatim or source-faithful clip)**
|
|
76
|
+
|
|
77
|
+
-
|
|
78
|
+
|
|
79
|
+
**Concern type**
|
|
80
|
+
|
|
81
|
+
- non_experimental / experimental / writing_logic / scope_novelty
|
|
82
|
+
|
|
83
|
+
**Stance**
|
|
84
|
+
|
|
85
|
+
- agree / partially_agree / clarify / respectful_disagree
|
|
86
|
+
|
|
87
|
+
**Response**
|
|
88
|
+
|
|
89
|
+
-
|
|
90
|
+
|
|
91
|
+
**What changed**
|
|
92
|
+
|
|
93
|
+
- experiment / figure / table / section:
|
|
94
|
+
- evidence basis:
|
|
95
|
+
- claim-scope effect:
|
|
96
|
+
- remaining limitation:
|
|
97
|
+
|
|
98
|
+
**If an experiment is still pending**
|
|
99
|
+
|
|
100
|
+
- MVP plan:
|
|
101
|
+
- Enhanced plan:
|
|
102
|
+
- fallback wording if unfinished:
|
|
103
|
+
|
|
104
|
+
## Remaining limitations
|
|
105
|
+
|
|
106
|
+
- what could not be fully addressed:
|
|
107
|
+
- why:
|
|
108
|
+
- how the manuscript now reflects that limitation:
|
|
109
|
+
|
|
110
|
+
## Author placeholders
|
|
111
|
+
|
|
112
|
+
- If a concrete number, setup detail, or result is still unknown, use `[[AUTHOR TO FILL]]`.
|
|
113
|
+
- Do not fabricate missing details just to make the letter sound complete.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Review Matrix Template
|
|
2
|
+
|
|
3
|
+
Use stable atomic item ids such as `R1-C1`, `R1-C2`, `R2-C1`.
|
|
4
|
+
|
|
5
|
+
| Reviewer | Item ID | Reviewer comment (verbatim or source-faithful clip) | Concern summary | Class | Concern type | Severity | Stance | Primary route | Required action | Evidence anchor / gap | Status | Notes |
|
|
6
|
+
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
7
|
+
| R1 | R1-C1 | | | | | | | | | | pending | |
|
|
8
|
+
| R1 | R1-C2 | | | | | | | | | | pending | |
|
|
9
|
+
| R2 | R2-C1 | | | | | | | | | | pending | |
|
|
10
|
+
|
|
11
|
+
## Class guide
|
|
12
|
+
|
|
13
|
+
- `editorial`
|
|
14
|
+
- `text_only`
|
|
15
|
+
- `evidence_gap`
|
|
16
|
+
- `experiment_gap`
|
|
17
|
+
- `claim_scope`
|
|
18
|
+
- `cannot_fully_address`
|
|
19
|
+
|
|
20
|
+
## Status guide
|
|
21
|
+
|
|
22
|
+
- `pending`
|
|
23
|
+
- `in_progress`
|
|
24
|
+
- `addressed`
|
|
25
|
+
- `declined_with_reason`
|
|
26
|
+
|
|
27
|
+
## Concern type guide
|
|
28
|
+
|
|
29
|
+
- `non_experimental`
|
|
30
|
+
- `experimental`
|
|
31
|
+
- `writing_logic`
|
|
32
|
+
- `scope_novelty`
|
|
33
|
+
|
|
34
|
+
## Stance guide
|
|
35
|
+
|
|
36
|
+
- `agree`
|
|
37
|
+
- `partially_agree`
|
|
38
|
+
- `clarify`
|
|
39
|
+
- `respectful_disagree`
|
|
40
|
+
|
|
41
|
+
## Primary route guide
|
|
42
|
+
|
|
43
|
+
- `text_revision`
|
|
44
|
+
- `evidence_repackaging`
|
|
45
|
+
- `literature_positioning`
|
|
46
|
+
- `baseline_recovery`
|
|
47
|
+
- `supplementary_experiment`
|
|
48
|
+
- `claim_downgrade`
|
|
49
|
+
- `explicit_limitation`
|
|
50
|
+
|
|
51
|
+
## Notes
|
|
52
|
+
|
|
53
|
+
- If the user gave only rough prose, build atomic items yourself and mark inferred items clearly.
|
|
54
|
+
- Preserve reviewer wording as faithfully as possible; controlled ellipsis is allowed, semantic rewriting is not.
|
|
55
|
+
- `Evidence anchor / gap` should name the current manuscript/result/literature anchor, or say `missing_evidence`.
|