dr-claw 1.1.2

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 (287) hide show
  1. package/LICENSE +1380 -0
  2. package/NOTICE +17 -0
  3. package/README.md +875 -0
  4. package/README.zh-CN.md +857 -0
  5. package/dist/api-docs.html +878 -0
  6. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  7. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  8. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  9. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  10. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  11. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  12. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  13. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  14. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  15. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  16. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  17. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  18. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  19. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  20. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  21. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  22. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  23. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  24. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  25. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  26. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  27. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  28. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  29. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  30. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  31. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  32. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  33. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  34. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  35. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  36. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  37. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  38. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  39. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  40. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  41. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  42. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  43. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  44. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  45. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  46. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  47. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  48. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  49. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  50. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  51. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  52. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  53. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  54. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  55. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  56. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  57. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  58. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  59. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  60. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  61. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  62. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  63. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  64. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  65. package/dist/assets/_basePickBy-C0n1uo4u.js +1 -0
  66. package/dist/assets/_baseUniq-BRNmhFkc.js +1 -0
  67. package/dist/assets/arc-DOMBmC_A.js +1 -0
  68. package/dist/assets/architectureDiagram-VXUJARFQ-CtMWglbD.js +36 -0
  69. package/dist/assets/blockDiagram-VD42YOAC-DK_gTkJy.js +122 -0
  70. package/dist/assets/c4Diagram-YG6GDRKO-DrDAvsn7.js +10 -0
  71. package/dist/assets/channel-BFOE7OyC.js +1 -0
  72. package/dist/assets/chunk-4BX2VUAB-CGbhdZcN.js +1 -0
  73. package/dist/assets/chunk-55IACEB6-sGeFSxen.js +1 -0
  74. package/dist/assets/chunk-B4BG7PRW-RxgHAU_P.js +165 -0
  75. package/dist/assets/chunk-DI55MBZ5-CvHUXZrx.js +220 -0
  76. package/dist/assets/chunk-FMBD7UC4-Sn7cXVNU.js +15 -0
  77. package/dist/assets/chunk-QN33PNHL-bDKOHppN.js +1 -0
  78. package/dist/assets/chunk-QZHKN3VN-B9kN5LGm.js +1 -0
  79. package/dist/assets/chunk-TZMSLE5B-CCBe6len.js +1 -0
  80. package/dist/assets/classDiagram-2ON5EDUG-DQoMNYlY.js +1 -0
  81. package/dist/assets/classDiagram-v2-WZHVMYZB-DQoMNYlY.js +1 -0
  82. package/dist/assets/clone-BulQSblH.js +1 -0
  83. package/dist/assets/cose-bilkent-S5V4N54A-r6sLiHBW.js +1 -0
  84. package/dist/assets/cytoscape.esm-5J0xJHOV.js +321 -0
  85. package/dist/assets/dagre-6UL2VRFP-AbsaR1Oa.js +4 -0
  86. package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  87. package/dist/assets/diagram-PSM6KHXK-DjCvdUyy.js +24 -0
  88. package/dist/assets/diagram-QEK2KX5R-CqiocXkH.js +43 -0
  89. package/dist/assets/diagram-S2PKOQOG-D5ALeoII.js +24 -0
  90. package/dist/assets/erDiagram-Q2GNP2WA-C1AeOsiz.js +60 -0
  91. package/dist/assets/flowDiagram-NV44I4VS-C98ve_DO.js +162 -0
  92. package/dist/assets/ganttDiagram-JELNMOA3-3zdLvcxD.js +267 -0
  93. package/dist/assets/gitGraphDiagram-V2S2FVAM-nDuDMsHh.js +65 -0
  94. package/dist/assets/graph-Blm-emkR.js +1 -0
  95. package/dist/assets/index-B8Yutsnm.css +1 -0
  96. package/dist/assets/index-Cf6gyhc3.js +654 -0
  97. package/dist/assets/infoDiagram-HS3SLOUP-CmzE3q0R.js +2 -0
  98. package/dist/assets/init-Gi6I4Gst.js +1 -0
  99. package/dist/assets/journeyDiagram-XKPGCS4Q-CYaW7LrP.js +139 -0
  100. package/dist/assets/kanban-definition-3W4ZIXB7-mkmW7p0j.js +89 -0
  101. package/dist/assets/layout-Ct2kFIId.js +1 -0
  102. package/dist/assets/linear-CKG9EwIJ.js +1 -0
  103. package/dist/assets/mermaid.core-CaKcUnnd.js +250 -0
  104. package/dist/assets/mindmap-definition-VGOIOE7T-Bct-pYin.js +68 -0
  105. package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
  106. package/dist/assets/pieDiagram-ADFJNKIX-C8wFD4Jr.js +30 -0
  107. package/dist/assets/quadrantDiagram-AYHSOK5B-CuiE_f46.js +7 -0
  108. package/dist/assets/requirementDiagram-UZGBJVZJ-C4v1CqU8.js +64 -0
  109. package/dist/assets/sankeyDiagram-TZEHDZUN-keAqqs-Y.js +10 -0
  110. package/dist/assets/sequenceDiagram-WL72ISMW-ClNbvKTB.js +145 -0
  111. package/dist/assets/stateDiagram-FKZM4ZOC-D8We-2vq.js +1 -0
  112. package/dist/assets/stateDiagram-v2-4FDKWEC3-BUURfjrE.js +1 -0
  113. package/dist/assets/timeline-definition-IT6M3QCI-DsvEMT5T.js +61 -0
  114. package/dist/assets/treemap-GDKQZRPO-TJrzN7Bj.js +162 -0
  115. package/dist/assets/vendor-codemirror-ansM-eig.js +33 -0
  116. package/dist/assets/vendor-react-BWF6YQQ3.js +8 -0
  117. package/dist/assets/vendor-xterm-DfcmCpbH.js +66 -0
  118. package/dist/assets/xychartDiagram-PRI3JC2R-BdATmY5F.js +7 -0
  119. package/dist/clear-cache.html +85 -0
  120. package/dist/convert-icons.md +53 -0
  121. package/dist/dr-claw.png +0 -0
  122. package/dist/favicon.png +0 -0
  123. package/dist/generate-icons.js +49 -0
  124. package/dist/icons/claude-ai-icon.svg +1 -0
  125. package/dist/icons/codex-white.svg +3 -0
  126. package/dist/icons/codex.svg +3 -0
  127. package/dist/icons/cursor-white.svg +12 -0
  128. package/dist/icons/cursor.svg +1 -0
  129. package/dist/icons/file.svg +16997 -0
  130. package/dist/icons/generate-icons.md +19 -0
  131. package/dist/icons/icon-128x128.png +0 -0
  132. package/dist/icons/icon-144x144.png +0 -0
  133. package/dist/icons/icon-152x152.png +0 -0
  134. package/dist/icons/icon-192x192.png +0 -0
  135. package/dist/icons/icon-384x384.png +0 -0
  136. package/dist/icons/icon-512x512.png +0 -0
  137. package/dist/icons/icon-72x72.png +0 -0
  138. package/dist/icons/icon-96x96.png +0 -0
  139. package/dist/icons/news/arxiv.svg +1 -0
  140. package/dist/icons/news/huggingface.svg +8 -0
  141. package/dist/icons/news/x-black.png +0 -0
  142. package/dist/icons/news/x-white.png +0 -0
  143. package/dist/icons/news/xiaohongshu.png +0 -0
  144. package/dist/index.html +51 -0
  145. package/dist/leveraged-cognition.png +0 -0
  146. package/dist/manifest.json +61 -0
  147. package/dist/screenshots/chat.png +0 -0
  148. package/dist/screenshots/new_claw.png +0 -0
  149. package/dist/screenshots/news_dashboard.png +0 -0
  150. package/dist/screenshots/project_dashboard.png +0 -0
  151. package/dist/screenshots/research_lab.png +0 -0
  152. package/dist/screenshots/skill_library.png +0 -0
  153. package/dist/screenshots/task_list.png +0 -0
  154. package/dist/screenshots/terminal_example.png +0 -0
  155. package/dist/screenshots/terminal_example1.png +0 -0
  156. package/dist/sw.js +58 -0
  157. package/dist/wechat-group-qr.jpg +0 -0
  158. package/package.json +133 -0
  159. package/public/api-docs.html +878 -0
  160. package/public/clear-cache.html +85 -0
  161. package/public/convert-icons.md +53 -0
  162. package/public/dr-claw.png +0 -0
  163. package/public/favicon.png +0 -0
  164. package/public/generate-icons.js +49 -0
  165. package/public/icons/claude-ai-icon.svg +1 -0
  166. package/public/icons/codex-white.svg +3 -0
  167. package/public/icons/codex.svg +3 -0
  168. package/public/icons/cursor-white.svg +12 -0
  169. package/public/icons/cursor.svg +1 -0
  170. package/public/icons/file.svg +16997 -0
  171. package/public/icons/generate-icons.md +19 -0
  172. package/public/icons/icon-128x128.png +0 -0
  173. package/public/icons/icon-144x144.png +0 -0
  174. package/public/icons/icon-152x152.png +0 -0
  175. package/public/icons/icon-192x192.png +0 -0
  176. package/public/icons/icon-384x384.png +0 -0
  177. package/public/icons/icon-512x512.png +0 -0
  178. package/public/icons/icon-72x72.png +0 -0
  179. package/public/icons/icon-96x96.png +0 -0
  180. package/public/icons/news/arxiv.svg +1 -0
  181. package/public/icons/news/huggingface.svg +8 -0
  182. package/public/icons/news/x-black.png +0 -0
  183. package/public/icons/news/x-white.png +0 -0
  184. package/public/icons/news/xiaohongshu.png +0 -0
  185. package/public/leveraged-cognition.png +0 -0
  186. package/public/manifest.json +61 -0
  187. package/public/screenshots/chat.png +0 -0
  188. package/public/screenshots/new_claw.png +0 -0
  189. package/public/screenshots/news_dashboard.png +0 -0
  190. package/public/screenshots/project_dashboard.png +0 -0
  191. package/public/screenshots/research_lab.png +0 -0
  192. package/public/screenshots/skill_library.png +0 -0
  193. package/public/screenshots/task_list.png +0 -0
  194. package/public/screenshots/terminal_example.png +0 -0
  195. package/public/screenshots/terminal_example1.png +0 -0
  196. package/public/sw.js +58 -0
  197. package/public/wechat-group-qr.jpg +0 -0
  198. package/scripts/export-skills-catalog-v2.mjs +746 -0
  199. package/scripts/fix-node-pty.js +45 -0
  200. package/scripts/gemini_image_core.py +470 -0
  201. package/scripts/install-python-tools.js +64 -0
  202. package/server/AGENTS.md +73 -0
  203. package/server/__tests__/gemini-legacy-thought.test.mjs +88 -0
  204. package/server/__tests__/runtimePorts.test.mjs +115 -0
  205. package/server/__tests__/session-delete.test.mjs +166 -0
  206. package/server/bin/compute-node +70 -0
  207. package/server/claude-sdk.js +799 -0
  208. package/server/cli-chat.js +488 -0
  209. package/server/cli.js +354 -0
  210. package/server/compute-node.js +439 -0
  211. package/server/constants/config.js +5 -0
  212. package/server/cursor-cli.js +340 -0
  213. package/server/database/auth.db +0 -0
  214. package/server/database/db.js +1852 -0
  215. package/server/database/init.sql +194 -0
  216. package/server/gemini-cli.js +1352 -0
  217. package/server/index.js +3154 -0
  218. package/server/load-env.js +71 -0
  219. package/server/local-gpu.js +860 -0
  220. package/server/middleware/auth.js +100 -0
  221. package/server/openai-codex.js +724 -0
  222. package/server/openrouter.js +890 -0
  223. package/server/project-token-usage.js +407 -0
  224. package/server/projects.js +3973 -0
  225. package/server/routes/agent.js +1272 -0
  226. package/server/routes/auth.js +128 -0
  227. package/server/routes/auto-research.js +558 -0
  228. package/server/routes/cli-auth.js +958 -0
  229. package/server/routes/codex.js +344 -0
  230. package/server/routes/commands.js +601 -0
  231. package/server/routes/compute.js +358 -0
  232. package/server/routes/cursor.js +795 -0
  233. package/server/routes/git.js +1348 -0
  234. package/server/routes/mcp-utils.js +48 -0
  235. package/server/routes/mcp.js +618 -0
  236. package/server/routes/news.js +711 -0
  237. package/server/routes/projects.js +633 -0
  238. package/server/routes/references.js +338 -0
  239. package/server/routes/settings.js +285 -0
  240. package/server/routes/skills.js +914 -0
  241. package/server/routes/taskmaster.js +2566 -0
  242. package/server/routes/telemetry.js +89 -0
  243. package/server/routes/user.js +155 -0
  244. package/server/scripts/fix_session_names.js +57 -0
  245. package/server/scripts/research-news/common_words.py +19 -0
  246. package/server/scripts/research-news/link_keywords.py +298 -0
  247. package/server/scripts/research-news/scan_existing_notes.py +266 -0
  248. package/server/scripts/research-news/scoring_utils.py +227 -0
  249. package/server/scripts/research-news/search_arxiv.py +842 -0
  250. package/server/scripts/research-news/search_huggingface.py +438 -0
  251. package/server/scripts/research-news/search_x.py +490 -0
  252. package/server/scripts/research-news/search_xiaohongshu.py +610 -0
  253. package/server/taskmaster-templates/README.md +150 -0
  254. package/server/taskmaster-templates/README.zh-CN.md +150 -0
  255. package/server/taskmaster-templates/ai-research-dataset.json +230 -0
  256. package/server/taskmaster-templates/ai-research-method-model.json +230 -0
  257. package/server/taskmaster-templates/ai-research-position-paper.json +230 -0
  258. package/server/telemetry.js +121 -0
  259. package/server/templates/AGENTS.md +103 -0
  260. package/server/templates/CLAUDE.md +104 -0
  261. package/server/templates/GEMINI.md +103 -0
  262. package/server/templates/cursor-project.md +108 -0
  263. package/server/templates/index.js +37 -0
  264. package/server/utils/__tests__/sessionTokenUsage.test.js +82 -0
  265. package/server/utils/auto-research-mailer.js +57 -0
  266. package/server/utils/cliResolution.js +170 -0
  267. package/server/utils/commandParser.js +303 -0
  268. package/server/utils/cursorCommand.js +61 -0
  269. package/server/utils/geminiApiKey.js +28 -0
  270. package/server/utils/gitConfig.js +24 -0
  271. package/server/utils/imageAttachmentFiles.js +35 -0
  272. package/server/utils/mcp-detector.js +198 -0
  273. package/server/utils/parsers/bibtex-parser.js +207 -0
  274. package/server/utils/permissions.js +100 -0
  275. package/server/utils/runtimePorts.js +212 -0
  276. package/server/utils/sessionFormatting.js +68 -0
  277. package/server/utils/sessionIndex.js +100 -0
  278. package/server/utils/sessionMode.js +95 -0
  279. package/server/utils/sessionTokenUsage.js +105 -0
  280. package/server/utils/taskmaster-websocket.js +129 -0
  281. package/server/utils/zotero-client.js +136 -0
  282. package/shared/errorClassifier.js +102 -0
  283. package/shared/geminiThinkingSupport.d.ts +22 -0
  284. package/shared/geminiThinkingSupport.js +96 -0
  285. package/shared/geminiThoughtParser.d.ts +8 -0
  286. package/shared/geminiThoughtParser.js +30 -0
  287. package/shared/modelConstants.js +139 -0
@@ -0,0 +1,150 @@
1
+ # TaskMaster Template Schema
2
+
3
+ This directory contains JSON templates used by the Pipeline Board.
4
+
5
+ Each template serves two purposes:
6
+
7
+ 1. Define the web form fields users fill in (`metaFields`, `sectionFields`).
8
+ 2. Define how tasks are generated from `research_brief.json` (`pipeline.stages.*.task_blueprints`).
9
+
10
+ ## How Templates Are Used
11
+
12
+ When a user applies a template:
13
+
14
+ 1. Backend creates `.pipeline/docs/research_brief.json` using the selected template.
15
+ 2. User-provided form values are mapped into JSON paths (for example `sections.ideation.problem_framing`).
16
+ 3. Backend parses that brief and generates `.pipeline/tasks/tasks.json` from `pipeline.stages`.
17
+
18
+ ## Required Top-Level Fields
19
+
20
+ Each template JSON should include:
21
+
22
+ - `id`: Stable template identifier.
23
+ - `name`: Human-readable template name shown in UI.
24
+ - `description`: Short UI description.
25
+ - `domain`: Logical grouping (for filtering).
26
+ - `category`: Usually same as domain.
27
+ - `format`: Currently `research-brief-json`.
28
+ - `fileName`: Usually `research_brief.json`.
29
+ - `metaFields`: Array of meta form field definitions.
30
+ - `sectionFields`: Form field definitions grouped by `survey`, `ideation`, `experiment`, `publication`, `promotion`.
31
+ - `pipeline`: Task generation blueprint (stage requirements, quality gates, and task blueprints).
32
+
33
+ ## Field Definition Schema
34
+
35
+ Fields inside `metaFields` and `sectionFields.*` use:
36
+
37
+ - `key`: Local field key.
38
+ - `label`: UI label.
39
+ - `path`: Dot-path written into the brief JSON.
40
+ - `placeholder`: Optional UI hint text.
41
+ - `type`: Optional, use `"array"` for multi-line list input.
42
+
43
+ For `type: "array"`, each input line becomes one array item.
44
+
45
+ ## Pipeline Schema
46
+
47
+ `pipeline` drives task generation. Typical shape:
48
+
49
+ - `version`: Pipeline schema version.
50
+ - `mode`: Optional mode marker (for example `"idea"`).
51
+ - `stages`: Object with keys:
52
+ - `survey`
53
+ - `ideation`
54
+ - `experiment`
55
+ - `publication`
56
+ - `promotion`
57
+
58
+ Each stage may define:
59
+
60
+ - `required_elements`: JSON paths that should exist in the brief.
61
+ - `optional_elements`: Additional paths for guidance.
62
+ - `quality_gate`: Checklist items.
63
+ - `task_blueprints`: Ordered task definitions used to build `tasks.json`.
64
+ - `recommended_skills`: Suggested skills for that stage.
65
+
66
+ ## Stage-to-Skills Mapping
67
+
68
+ Current backend stage skill map (also used as fallback when a task does not provide explicit `recommended_skills`):
69
+
70
+ | Stage | Base Skills | Type-Specific Hints |
71
+ |---|---|---|
72
+ | `survey` | `inno-deep-research`, `academic-researcher`, `dataset-discovery` | `exploration` -> `inno-deep-research`, `academic-researcher`, `dataset-discovery`; `analysis` -> `inno-deep-research`, `academic-researcher` |
73
+ | `ideation` | `inno-pipeline-planner`, `inno-idea-generation`, `inno-prepare-resources` | `analysis` -> `inno-idea-generation`, `academic-researcher`; `exploration` -> `inno-idea-generation`, `inno-code-survey` |
74
+ | `experiment` | `inno-code-survey`, `inno-experiment-dev`, `inno-experiment-analysis` | `implementation` -> `inno-experiment-dev`, `analysis` -> `inno-experiment-analysis`, `exploration` -> `inno-code-survey` |
75
+ | `publication` | `inno-paper-writing`, `inno-reference-audit`, `inno-rclone-to-overleaf` | `writing` -> `inno-paper-writing`, `analysis` -> `inno-reference-audit` |
76
+ | `promotion` | `making-academic-presentations` | `scripting`/`rendering`/`narration`/`delivery` -> `making-academic-presentations` |
77
+
78
+ Recommendation priority for each task:
79
+
80
+ 1. Stage-level `recommended_skills`
81
+ 2. Stage map base skills
82
+ 3. Stage map task-type skills
83
+ 4. Task blueprint `recommended_skills`
84
+
85
+ ## Task Blueprint Schema
86
+
87
+ Each item in `task_blueprints` supports:
88
+
89
+ - `id`: Stable blueprint id.
90
+ - `title`: Task title shown in UI.
91
+ - `description`: Task description.
92
+ - `taskType`: Suggested type (for example `analysis`, `implementation`, `writing`, `exploration`, `scripting`, `rendering`, `narration`, `delivery`).
93
+ - `priority`: Optional (`low`, `medium`, `high`).
94
+ - `dependencies`: Optional array of task IDs.
95
+ - `inputsNeeded`: Optional array of required JSON paths or inputs.
96
+ - `recommended_skills`: Optional per-task skills.
97
+ - `nextActionPrompt`: Optional prompt used by chat handoff.
98
+
99
+ ## Minimal Template Example
100
+
101
+ ```json
102
+ {
103
+ "id": "example-template",
104
+ "name": "Example Template",
105
+ "description": "Demo template",
106
+ "domain": "ai-research",
107
+ "category": "ai-research",
108
+ "format": "research-brief-json",
109
+ "fileName": "research_brief.json",
110
+ "metaFields": [
111
+ { "key": "title", "label": "Title", "path": "meta.title" }
112
+ ],
113
+ "sectionFields": {
114
+ "ideation": [
115
+ { "key": "problem_framing", "label": "Problem Framing", "path": "sections.ideation.problem_framing" }
116
+ ],
117
+ "experiment": [],
118
+ "publication": [],
119
+ "promotion": []
120
+ },
121
+ "pipeline": {
122
+ "version": "1.1",
123
+ "mode": "idea",
124
+ "stages": {
125
+ "ideation": {
126
+ "required_elements": ["sections.ideation.problem_framing"],
127
+ "quality_gate": ["Problem framing is specific"],
128
+ "task_blueprints": [
129
+ {
130
+ "id": "define_problem_scope",
131
+ "title": "Define problem scope",
132
+ "description": "Clarify scope, assumptions, and constraints.",
133
+ "taskType": "analysis"
134
+ }
135
+ ],
136
+ "recommended_skills": ["inno-idea-generation"]
137
+ },
138
+ "experiment": { "task_blueprints": [] },
139
+ "publication": { "task_blueprints": [] },
140
+ "promotion": { "task_blueprints": [] }
141
+ }
142
+ }
143
+ }
144
+ ```
145
+
146
+ ## Notes
147
+
148
+ - Keep `id` stable once released (it may be used in saved briefs).
149
+ - Keep `path` values aligned with the `research_brief.json` shape.
150
+ - Task order in `task_blueprints` matters; it affects generated task order.
@@ -0,0 +1,150 @@
1
+ # TaskMaster 模板结构说明
2
+
3
+ 本目录存放 Pipeline Board 使用的 JSON 模板。
4
+
5
+ 每个模板有两个职责:
6
+
7
+ 1. 定义 Web 表单字段(`metaFields`、`sectionFields`)。
8
+ 2. 定义从 `research_brief.json` 生成任务的规则(`pipeline.stages.*.task_blueprints`)。
9
+
10
+ ## 模板如何生效
11
+
12
+ 当用户应用模板时:
13
+
14
+ 1. 后端基于模板生成 `.pipeline/docs/research_brief.json`。
15
+ 2. 前端填写的字段按 `path` 回填到该 JSON(例如 `sections.ideation.problem_framing`)。
16
+ 3. 后端解析 brief,并根据 `pipeline.stages` 生成 `.pipeline/tasks/tasks.json`。
17
+
18
+ ## 顶层字段(建议)
19
+
20
+ 每个模板 JSON 建议包含:
21
+
22
+ - `id`:模板唯一标识(稳定)。
23
+ - `name`:UI 展示名称。
24
+ - `description`:模板简介。
25
+ - `domain`:领域分组(用于筛选)。
26
+ - `category`:分类(通常与 domain 一致)。
27
+ - `format`:当前为 `research-brief-json`。
28
+ - `fileName`:通常为 `research_brief.json`。
29
+ - `metaFields`:Meta 区域表单定义。
30
+ - `sectionFields`:分阶段表单定义(`survey/ideation/experiment/publication/promotion`)。
31
+ - `pipeline`:任务生成蓝图。
32
+
33
+ ## 表单字段定义
34
+
35
+ `metaFields` 和 `sectionFields.*` 的字段结构:
36
+
37
+ - `key`:字段键名。
38
+ - `label`:UI 显示名称。
39
+ - `path`:写入 brief 的点路径。
40
+ - `placeholder`:输入提示(可选)。
41
+ - `type`:可选,`"array"` 表示多行数组输入。
42
+
43
+ 当 `type: "array"` 时,前端每一行会转为数组一项。
44
+
45
+ ## Pipeline 结构
46
+
47
+ `pipeline` 决定任务生成逻辑,典型结构:
48
+
49
+ - `version`:pipeline 版本号。
50
+ - `mode`:模式标记(如 `"idea"`)。
51
+ - `stages`:阶段对象,通常包含:
52
+ - `survey`
53
+ - `ideation`
54
+ - `experiment`
55
+ - `publication`
56
+ - `promotion`
57
+
58
+ 每个阶段可定义:
59
+
60
+ - `required_elements`:该阶段关键字段路径。
61
+ - `optional_elements`:可选字段路径。
62
+ - `quality_gate`:阶段质量门检查项。
63
+ - `task_blueprints`:任务蓝图(按顺序生成任务)。
64
+ - `recommended_skills`:建议技能列表。
65
+
66
+ ## 阶段 Skills 映射表
67
+
68
+ 当前后端使用的阶段技能映射(当任务没有显式 `recommended_skills` 时会作为兜底):
69
+
70
+ | 阶段 | 基础技能 | 按任务类型补充 |
71
+ |---|---|---|
72
+ | `survey` | `inno-deep-research`, `academic-researcher`, `dataset-discovery` | `exploration` -> `inno-deep-research`、`academic-researcher`、`dataset-discovery`,`analysis` -> `inno-deep-research`、`academic-researcher` |
73
+ | `ideation` | `inno-pipeline-planner`, `inno-idea-generation`, `inno-prepare-resources` | `analysis` -> `inno-idea-generation`、`academic-researcher`,`exploration` -> `inno-idea-generation`、`inno-code-survey` |
74
+ | `experiment` | `inno-code-survey`, `inno-experiment-dev`, `inno-experiment-analysis` | `implementation` -> `inno-experiment-dev`,`analysis` -> `inno-experiment-analysis`,`exploration` -> `inno-code-survey` |
75
+ | `publication` | `inno-paper-writing`, `inno-reference-audit`, `inno-rclone-to-overleaf` | `writing` -> `inno-paper-writing`,`analysis` -> `inno-reference-audit` |
76
+ | `promotion` | `making-academic-presentations` | `scripting`/`rendering`/`narration`/`delivery` -> `making-academic-presentations` |
77
+
78
+ 每个任务推荐技能的合成优先级:
79
+
80
+ 1. 阶段配置 `recommended_skills`
81
+ 2. 阶段映射基础技能
82
+ 3. 阶段映射的任务类型技能
83
+ 4. 任务蓝图自身 `recommended_skills`
84
+
85
+ ## task_blueprints 字段
86
+
87
+ `task_blueprints` 中每个任务支持:
88
+
89
+ - `id`:蓝图任务 ID(稳定)。
90
+ - `title`:任务标题。
91
+ - `description`:任务描述。
92
+ - `taskType`:任务类型(如 `analysis`、`implementation`、`writing`、`exploration`、`scripting`、`rendering`、`narration`、`delivery`)。
93
+ - `priority`:可选,`low/medium/high`。
94
+ - `dependencies`:可选,依赖任务 ID 数组。
95
+ - `inputsNeeded`:可选,输入依赖路径或条件。
96
+ - `recommended_skills`:可选,任务级技能建议。
97
+ - `nextActionPrompt`:可选,Chat 接力提示词。
98
+
99
+ ## 最小模板示例
100
+
101
+ ```json
102
+ {
103
+ "id": "example-template",
104
+ "name": "示例模板",
105
+ "description": "演示模板",
106
+ "domain": "ai-research",
107
+ "category": "ai-research",
108
+ "format": "research-brief-json",
109
+ "fileName": "research_brief.json",
110
+ "metaFields": [
111
+ { "key": "title", "label": "标题", "path": "meta.title" }
112
+ ],
113
+ "sectionFields": {
114
+ "ideation": [
115
+ { "key": "problem_framing", "label": "问题界定", "path": "sections.ideation.problem_framing" }
116
+ ],
117
+ "experiment": [],
118
+ "publication": [],
119
+ "promotion": []
120
+ },
121
+ "pipeline": {
122
+ "version": "1.1",
123
+ "mode": "idea",
124
+ "stages": {
125
+ "ideation": {
126
+ "required_elements": ["sections.ideation.problem_framing"],
127
+ "quality_gate": ["问题界定足够具体"],
128
+ "task_blueprints": [
129
+ {
130
+ "id": "define_problem_scope",
131
+ "title": "定义问题范围",
132
+ "description": "明确边界、假设与约束。",
133
+ "taskType": "analysis"
134
+ }
135
+ ],
136
+ "recommended_skills": ["inno-idea-generation"]
137
+ },
138
+ "experiment": { "task_blueprints": [] },
139
+ "publication": { "task_blueprints": [] },
140
+ "promotion": { "task_blueprints": [] }
141
+ }
142
+ }
143
+ }
144
+ ```
145
+
146
+ ## 实践建议
147
+
148
+ - 模板 `id` 一旦发布尽量保持不变(可能已被历史 brief 引用)。
149
+ - `path` 必须与 `research_brief.json` 的结构一致。
150
+ - `task_blueprints` 顺序会直接影响 `tasks.json` 的生成顺序。
@@ -0,0 +1,230 @@
1
+ {
2
+ "id": "ai-research-dataset",
3
+ "name": "AI Research - Dataset-Centric",
4
+ "description": "For dataset construction, benchmark creation, and data-centric AI studies",
5
+ "domain": "ai-research",
6
+ "category": "ai-research",
7
+ "format": "research-brief-json",
8
+ "fileName": "research_brief.json",
9
+ "metaFields": [
10
+ { "key": "title", "label": "Paper Title", "path": "meta.title", "placeholder": "Optional project title" },
11
+ { "key": "lead_author", "label": "Lead Author", "path": "meta.lead_author", "placeholder": "Optional lead author" },
12
+ { "key": "target_venue", "label": "Target Venue", "path": "meta.target_venue", "placeholder": "Optional venue" }
13
+ ],
14
+ "sectionFields": {
15
+ "survey": [
16
+ { "key": "literature_scope", "label": "Literature Scope", "path": "sections.survey.literature_scope", "placeholder": "Existing datasets, benchmarks, and related survey boundary" },
17
+ { "key": "key_references", "label": "Key References", "path": "sections.survey.key_references", "type": "array", "placeholder": "One dataset or paper per line" },
18
+ { "key": "synthesis_summary", "label": "Synthesis Summary", "path": "sections.survey.synthesis_summary", "placeholder": "What existing resources cover well vs poorly" },
19
+ { "key": "open_gaps", "label": "Open Gaps", "path": "sections.survey.open_gaps", "type": "array", "placeholder": "One unmet need or benchmark gap per line" }
20
+ ],
21
+ "ideation": [
22
+ { "key": "research_goal", "label": "Research Goal", "path": "sections.ideation.research_goal", "placeholder": "What bottleneck does this dataset solve?" },
23
+ { "key": "problem_framing", "label": "Problem Framing", "path": "sections.ideation.problem_framing", "placeholder": "Define scope, users, and boundaries" },
24
+ { "key": "evidence_plan", "label": "Evidence Plan", "path": "sections.ideation.evidence_plan", "placeholder": "Key references and gap analysis" },
25
+ { "key": "success_criteria", "label": "Success Criteria", "path": "sections.ideation.success_criteria", "type": "array", "placeholder": "One criterion per line" }
26
+ ],
27
+ "experiment": [
28
+ { "key": "hypothesis_or_validation_goal", "label": "Validation Goal", "path": "sections.experiment.hypothesis_or_validation_goal", "placeholder": "What should experiments validate?" },
29
+ { "key": "dataset_or_data_source", "label": "Data Source Plan", "path": "sections.experiment.dataset_or_data_source", "placeholder": "Collection source and protocol" },
30
+ { "key": "method_or_protocol", "label": "Construction Protocol", "path": "sections.experiment.method_or_protocol", "placeholder": "Annotation, cleaning, governance" },
31
+ { "key": "evaluation_plan", "label": "Evaluation Plan", "path": "sections.experiment.evaluation_plan", "placeholder": "Metrics, baselines, ablations" }
32
+ ],
33
+ "publication": [
34
+ { "key": "paper_outline", "label": "Paper Outline", "path": "sections.publication.paper_outline", "placeholder": "Dataset story and contribution boundaries" },
35
+ { "key": "figures_tables_plan", "label": "Figures/Tables Plan", "path": "sections.publication.figures_tables_plan", "placeholder": "Leaderboards, data cards, comparisons" },
36
+ { "key": "artifact_plan", "label": "Artifact Plan", "path": "sections.publication.artifact_plan", "placeholder": "README, license, release assets" },
37
+ { "key": "submission_checklist", "label": "Submission Checklist", "path": "sections.publication.submission_checklist", "type": "array", "placeholder": "One item per line" }
38
+ ],
39
+ "promotion": [
40
+ { "key": "slide_outline", "label": "Slide Outline", "path": "sections.promotion.slide_outline", "placeholder": "Dataset pitch or talk outline" },
41
+ { "key": "deck_style", "label": "Deck Style", "path": "sections.promotion.deck_style", "placeholder": "Visual treatment for examples, tables, and benchmarks" },
42
+ { "key": "homepage_plan", "label": "Homepage Plan", "path": "sections.promotion.homepage_plan", "placeholder": "Dataset page structure, downloads, leaderboards, and examples" },
43
+ { "key": "tts_config", "label": "TTS Config", "path": "sections.promotion.tts_config", "placeholder": "Voice and narration settings for demo assets" },
44
+ { "key": "video_assembly_plan", "label": "Video Assembly Plan", "path": "sections.promotion.video_assembly_plan", "placeholder": "How to combine slides, audio, demos, and walkthrough clips" }
45
+ ]
46
+ },
47
+ "pipeline": {
48
+ "version": "1.1",
49
+ "mode": "idea",
50
+ "stages": {
51
+ "survey": {
52
+ "required_elements": [
53
+ "sections.survey.literature_scope",
54
+ "sections.survey.synthesis_summary"
55
+ ],
56
+ "optional_elements": [
57
+ "sections.survey.key_references",
58
+ "sections.survey.open_gaps"
59
+ ],
60
+ "quality_gate": [
61
+ "Existing datasets and benchmarks are mapped with explicit scope boundaries",
62
+ "Open gaps justify why a new dataset or benchmark is needed"
63
+ ],
64
+ "task_blueprints": [
65
+ {
66
+ "id": "dataset_prior_resource_survey",
67
+ "title": "Survey prior datasets, benchmarks, and data cards",
68
+ "description": "Collect the main related datasets and benchmark suites, then compare scope and governance tradeoffs.",
69
+ "taskType": "exploration",
70
+ "recommended_skills": ["inno-deep-research", "academic-researcher"]
71
+ },
72
+ {
73
+ "id": "dataset_gap_and_positioning",
74
+ "title": "Synthesize dataset gaps and positioning",
75
+ "description": "Explain which data coverage, quality, or evaluation gaps remain unsolved and how this project positions itself.",
76
+ "taskType": "analysis",
77
+ "recommended_skills": ["inno-deep-research", "academic-researcher"]
78
+ }
79
+ ],
80
+ "recommended_skills": [
81
+ "inno-deep-research",
82
+ "academic-researcher"
83
+ ]
84
+ },
85
+ "ideation": {
86
+ "required_elements": [
87
+ "sections.ideation.research_goal",
88
+ "sections.ideation.problem_framing"
89
+ ],
90
+ "optional_elements": [
91
+ "sections.ideation.evidence_plan",
92
+ "sections.ideation.success_criteria"
93
+ ],
94
+ "quality_gate": [
95
+ "Dataset scope, target users, and use restrictions are explicit",
96
+ "Value over existing datasets is articulated"
97
+ ],
98
+ "task_blueprints": [
99
+ {
100
+ "id": "dataset_problem_and_scope",
101
+ "title": "Define dataset problem statement and scope boundaries",
102
+ "description": "Specify target use-cases, inclusion/exclusion scope, and risk boundaries.",
103
+ "taskType": "analysis",
104
+ "recommended_skills": ["inno-idea-generation", "academic-researcher"]
105
+ },
106
+ {
107
+ "id": "dataset_schema_and_collection_plan",
108
+ "title": "Design schema and data collection plan",
109
+ "description": "Define label schema, sampling strategy, and collection channels.",
110
+ "taskType": "exploration",
111
+ "recommended_skills": ["inno-idea-generation", "dataset-discovery"]
112
+ }
113
+ ],
114
+ "recommended_skills": [
115
+ "inno-pipeline-planner",
116
+ "inno-idea-generation"
117
+ ]
118
+ },
119
+ "experiment": {
120
+ "required_elements": [
121
+ "sections.experiment.hypothesis_or_validation_goal",
122
+ "sections.experiment.method_or_protocol",
123
+ "sections.experiment.evaluation_plan"
124
+ ],
125
+ "optional_elements": [
126
+ "sections.experiment.dataset_or_data_source"
127
+ ],
128
+ "quality_gate": [
129
+ "Annotation/cleaning protocol is reproducible",
130
+ "Benchmark and baseline plan are executable"
131
+ ],
132
+ "task_blueprints": [
133
+ {
134
+ "id": "dataset_annotation_and_qc_protocol",
135
+ "title": "Specify annotation, cleaning, and quality-control protocol",
136
+ "description": "Define annotation guidelines, inter-annotator checks, and curation flow.",
137
+ "taskType": "implementation",
138
+ "recommended_skills": ["inno-experiment-dev"]
139
+ },
140
+ {
141
+ "id": "dataset_baseline_and_benchmark_plan",
142
+ "title": "Run baseline benchmark plan and error analysis",
143
+ "description": "Establish baseline models/heuristics, evaluate, and summarize failure patterns.",
144
+ "taskType": "analysis",
145
+ "recommended_skills": ["inno-experiment-analysis"]
146
+ }
147
+ ],
148
+ "recommended_skills": [
149
+ "inno-experiment-dev",
150
+ "inno-experiment-analysis"
151
+ ]
152
+ },
153
+ "publication": {
154
+ "required_elements": [
155
+ "sections.publication.paper_outline",
156
+ "sections.publication.submission_checklist"
157
+ ],
158
+ "optional_elements": [
159
+ "sections.publication.figures_tables_plan",
160
+ "sections.publication.artifact_plan"
161
+ ],
162
+ "quality_gate": [
163
+ "Data card and governance statements are complete",
164
+ "Release artifacts and benchmark tables are publication-ready"
165
+ ],
166
+ "task_blueprints": [
167
+ {
168
+ "id": "dataset_documentation_and_datacard",
169
+ "title": "Prepare dataset documentation and data card",
170
+ "description": "Draft dataset statement, bias/safety notes, and intended-use guidance.",
171
+ "taskType": "writing",
172
+ "recommended_skills": ["inno-paper-writing"]
173
+ },
174
+ {
175
+ "id": "dataset_release_and_submission_bundle",
176
+ "title": "Finalize release bundle and submission package",
177
+ "description": "Assemble benchmark tables, README/license, and supplementary artifacts.",
178
+ "taskType": "writing",
179
+ "recommended_skills": ["inno-paper-writing", "inno-reference-audit"]
180
+ }
181
+ ],
182
+ "recommended_skills": [
183
+ "inno-paper-writing",
184
+ "inno-reference-audit"
185
+ ]
186
+ },
187
+ "promotion": {
188
+ "required_elements": [
189
+ "sections.promotion.slide_outline"
190
+ ],
191
+ "optional_elements": [
192
+ "sections.promotion.deck_style",
193
+ "sections.promotion.tts_config",
194
+ "sections.promotion.video_assembly_plan",
195
+ "sections.promotion.homepage_plan"
196
+ ],
197
+ "quality_gate": [
198
+ "Slides and homepage highlight dataset value, access path, and benchmark evidence",
199
+ "Delivery plan covers downloads, walkthrough assets, and public-facing explanations"
200
+ ],
201
+ "task_blueprints": [
202
+ {
203
+ "id": "dataset_promotion_overview_story",
204
+ "title": "Create dataset overview story for slides and homepage",
205
+ "description": "Package the dataset motivation, coverage, and benchmark value into a public-facing narrative.",
206
+ "taskType": "scripting",
207
+ "recommended_skills": ["making-academic-presentations"]
208
+ },
209
+ {
210
+ "id": "dataset_promotion_assets",
211
+ "title": "Generate showcase visuals and supporting media assets",
212
+ "description": "Prepare examples, summary figures, and homepage visuals for dataset promotion.",
213
+ "taskType": "rendering",
214
+ "recommended_skills": ["making-academic-presentations"]
215
+ },
216
+ {
217
+ "id": "dataset_promotion_delivery_bundle",
218
+ "title": "Assemble narration, slide, and homepage delivery bundle",
219
+ "description": "Produce narration guidance and package assets for talks, demos, and dataset release communication.",
220
+ "taskType": "delivery",
221
+ "recommended_skills": ["making-academic-presentations"]
222
+ }
223
+ ],
224
+ "recommended_skills": [
225
+ "making-academic-presentations"
226
+ ]
227
+ }
228
+ }
229
+ }
230
+ }