@research-copilot/plugin 1.1.16 → 1.1.18

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 (799) hide show
  1. package/dist/.claude-plugin/plugin.json +1 -1
  2. package/dist/.codex-plugin/plugin.toml +1 -1
  3. package/dist/.cursor-plugin/plugin.json +1 -1
  4. package/dist/.gemini-plugin/plugin.json +1 -1
  5. package/dist/.opencode-plugin/plugin.json +1 -1
  6. package/dist/.windsurf-plugin/plugin.json +1 -1
  7. package/dist/skills/ablation-planner/SKILL.md +126 -0
  8. package/dist/skills/alphaxiv/SKILL.md +186 -0
  9. package/dist/skills/analyze-results/SKILL.md +45 -0
  10. package/dist/skills/arxiv/SKILL.md +210 -0
  11. package/dist/skills/auto-paper-improvement-loop/SKILL.md +574 -0
  12. package/dist/skills/auto-review-loop/SKILL.md +370 -0
  13. package/dist/skills/auto-review-loop-llm/SKILL.md +247 -0
  14. package/dist/skills/auto-review-loop-minimax/SKILL.md +290 -0
  15. package/dist/skills/benchmark-paper-template/SKILL.md +142 -0
  16. package/dist/skills/benchmark-paper-template/references/benchmark-design.md +180 -0
  17. package/dist/skills/benchmark-paper-template/references/checklist.md +113 -0
  18. package/dist/skills/benchmark-paper-template/references/construction-pipeline.md +127 -0
  19. package/dist/skills/benchmark-paper-template/references/experiments.md +159 -0
  20. package/dist/skills/benchmark-paper-template/references/gap-analysis.md +86 -0
  21. package/dist/skills/benchmark-paper-template/references/instantiation-template.md +194 -0
  22. package/dist/skills/benchmark-paper-template/references/orchestrator-notes.md +96 -0
  23. package/dist/skills/benchmark-paper-template/references/paper-structure.md +209 -0
  24. package/dist/skills/citation-audit/SKILL.md +494 -0
  25. package/dist/skills/claims-drafting/SKILL.md +239 -0
  26. package/dist/skills/comm-lit-review/SKILL.md +299 -0
  27. package/dist/skills/comm-lit-review/references/domain-taxonomy.md +57 -0
  28. package/dist/skills/comm-lit-review/references/output-template.md +37 -0
  29. package/dist/skills/comm-lit-review/references/source-policy.md +99 -0
  30. package/dist/skills/comm-lit-review/references/venue-tiering.md +112 -0
  31. package/dist/skills/composer/SKILL.md +840 -0
  32. package/dist/skills/composer/references/section_guides.md +675 -0
  33. package/dist/skills/composer/references/writing_standards.md +629 -0
  34. package/dist/skills/composer/scripts/chapter_quality_check.py +470 -0
  35. package/dist/skills/composer/scripts/final_evaluation.py +550 -0
  36. package/dist/skills/deepxiv/SKILL.md +142 -0
  37. package/dist/skills/dse-loop/SKILL.md +277 -0
  38. package/dist/skills/embodiment-description/SKILL.md +129 -0
  39. package/dist/skills/exa-search/SKILL.md +192 -0
  40. package/dist/skills/experiment-audit/SKILL.md +262 -0
  41. package/dist/skills/experiment-bridge/SKILL.md +316 -0
  42. package/dist/skills/experiment-plan/SKILL.md +249 -0
  43. package/dist/skills/experiment-queue/SKILL.md +380 -0
  44. package/dist/skills/experiment-queue/scripts/build_manifest.py +142 -0
  45. package/dist/skills/experiment-queue/scripts/queue_manager.py +426 -0
  46. package/dist/skills/feishu-notify/SKILL.md +155 -0
  47. package/dist/skills/figure-description/SKILL.md +138 -0
  48. package/dist/skills/figure-designer/SKILL.md +207 -0
  49. package/dist/skills/figure-designer/references/design-rules.md +99 -0
  50. package/dist/skills/figure-designer/references/experimental-results.md +127 -0
  51. package/dist/skills/figure-designer/references/motivated-example.md +138 -0
  52. package/dist/skills/figure-designer/references/solution-overview.md +145 -0
  53. package/dist/skills/figure-designer/references/tools.md +124 -0
  54. package/dist/skills/figure-spec/SKILL.md +252 -0
  55. package/dist/skills/figure-spec/scripts/figure_renderer.py +799 -0
  56. package/dist/skills/formula-derivation/SKILL.md +280 -0
  57. package/dist/skills/gemini-search/SKILL.md +205 -0
  58. package/dist/skills/grant-proposal/SKILL.md +625 -0
  59. package/dist/skills/humanizer/AGENTS.md +25 -0
  60. package/dist/skills/humanizer/SKILL.md +621 -0
  61. package/dist/skills/idea-creator/SKILL.md +311 -0
  62. package/dist/skills/idea-discovery/SKILL.md +340 -0
  63. package/dist/skills/idea-discovery-robot/SKILL.md +362 -0
  64. package/dist/skills/idea-evaluator/SKILL.md +265 -0
  65. package/dist/skills/idea-evaluator/references/fatal-flaws.md +192 -0
  66. package/dist/skills/idea-evaluator/references/five-dimensions.md +251 -0
  67. package/dist/skills/idea-evaluator/references/lifecycle-capability-matching.md +177 -0
  68. package/dist/skills/idea-evaluator/references/paradigm-elephant.md +112 -0
  69. package/dist/skills/idea-evaluator/references/paradigm-examples.md +107 -0
  70. package/dist/skills/idea-evaluator/references/paradigm-first-principles.md +115 -0
  71. package/dist/skills/idea-evaluator/references/paradigm-hamming.md +137 -0
  72. package/dist/skills/idea-evaluator/references/paradigm-shift-probe.md +160 -0
  73. package/dist/skills/idea-evaluator/references/paradigm-technology-cycle.md +116 -0
  74. package/dist/skills/idea-evaluator/references/worked-examples.md +206 -0
  75. package/dist/skills/interview-cheatsheet/SKILL.md +245 -0
  76. package/dist/skills/intro-drafter/SKILL.md +250 -0
  77. package/dist/skills/intro-drafter/references/contribution-patterns.md +116 -0
  78. package/dist/skills/intro-drafter/references/flowchart.md +204 -0
  79. package/dist/skills/intro-drafter/references/paper-types.md +155 -0
  80. package/dist/skills/intro-drafter/references/running-example.md +133 -0
  81. package/dist/skills/intro-drafter/references/worked-examples.md +161 -0
  82. package/dist/skills/invention-structuring/SKILL.md +188 -0
  83. package/dist/skills/jurisdiction-format/SKILL.md +192 -0
  84. package/dist/skills/kill-argument/SKILL.md +384 -0
  85. package/dist/skills/llm-wiki/.mise.toml +2 -0
  86. package/dist/skills/llm-wiki/.nvmrc +1 -0
  87. package/dist/skills/llm-wiki/AGENTS.md +132 -0
  88. package/dist/skills/llm-wiki/CHANGELOG.md +459 -0
  89. package/dist/skills/llm-wiki/CLAUDE.md +109 -0
  90. package/dist/skills/llm-wiki/HERMES.md +44 -0
  91. package/dist/skills/llm-wiki/SKILL.md +1133 -0
  92. package/dist/skills/llm-wiki/assets/graph-demo.gif +0 -0
  93. package/dist/skills/llm-wiki/assets/graph-preview.png +0 -0
  94. package/dist/skills/llm-wiki/deps/LICENSE-d3.txt +13 -0
  95. package/dist/skills/llm-wiki/deps/LICENSE-marked.txt +44 -0
  96. package/dist/skills/llm-wiki/deps/LICENSE-purify.txt +568 -0
  97. package/{LICENSE → dist/skills/llm-wiki/deps/LICENSE-roughjs.txt} +1 -1
  98. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/SKILL.md +261 -0
  99. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/references/config/first-time-setup.md +106 -0
  100. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/cdp.ts +179 -0
  101. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/constants.ts +13 -0
  102. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/defuddle-converter.ts +58 -0
  103. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/html-to-markdown.ts +135 -0
  104. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/legacy-converter.ts +629 -0
  105. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/main.ts +314 -0
  106. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/markdown-conversion-shared.ts +305 -0
  107. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/media-localizer.ts +317 -0
  108. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/package.json +14 -0
  109. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/paths.ts +29 -0
  110. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/vendor/baoyu-chrome-cdp/package.json +9 -0
  111. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/vendor/baoyu-chrome-cdp/src/index.test.ts +307 -0
  112. package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/vendor/baoyu-chrome-cdp/src/index.ts +523 -0
  113. package/dist/skills/llm-wiki/deps/d3.min.js +2 -0
  114. package/dist/skills/llm-wiki/deps/marked.min.js +6 -0
  115. package/dist/skills/llm-wiki/deps/purify.min.js +3 -0
  116. package/dist/skills/llm-wiki/deps/rough.min.js +7 -0
  117. package/dist/skills/llm-wiki/deps/youtube-transcript/SKILL.md +47 -0
  118. package/dist/skills/llm-wiki/deps/youtube-transcript/scripts/get_transcript.py +72 -0
  119. package/dist/skills/llm-wiki/docs/design/oriental-atlas/DESIGN.md +183 -0
  120. package/dist/skills/llm-wiki/docs/design/oriental-atlas/design-brief.md +170 -0
  121. package/dist/skills/llm-wiki/docs/design/oriental-atlas/oriental-editorial-atlas.html +1908 -0
  122. package/dist/skills/llm-wiki/docs/design/oriental-atlas/reviews/result-review.md +68 -0
  123. package/dist/skills/llm-wiki/docs/plans/2026-06-15-omp-tool-status-events-phased-plan.md +655 -0
  124. package/dist/skills/llm-wiki/docs/plans/2026-06-15-omp-tool-status-events-progress.json +913 -0
  125. package/dist/skills/llm-wiki/docs/spark/2026-06-15-omp-tool-status-events-design.md +174 -0
  126. package/dist/skills/llm-wiki/install.ps1 +87 -0
  127. package/dist/skills/llm-wiki/install.sh +722 -0
  128. package/dist/skills/llm-wiki/package-lock.json +10309 -0
  129. package/dist/skills/llm-wiki/package.json +24 -0
  130. package/dist/skills/llm-wiki/packages/graph-engine/package.json +33 -0
  131. package/dist/skills/llm-wiki/packages/graph-engine/src/anim/.gitkeep +1 -0
  132. package/dist/skills/llm-wiki/packages/graph-engine/src/anim/index.ts +179 -0
  133. package/dist/skills/llm-wiki/packages/graph-engine/src/diff.ts +121 -0
  134. package/dist/skills/llm-wiki/packages/graph-engine/src/graph-node.ts +37 -0
  135. package/dist/skills/llm-wiki/packages/graph-engine/src/index.ts +140 -0
  136. package/dist/skills/llm-wiki/packages/graph-engine/src/model/atlas.ts +18 -0
  137. package/dist/skills/llm-wiki/packages/graph-engine/src/model/index.ts +6 -0
  138. package/dist/skills/llm-wiki/packages/graph-engine/src/model/labels.ts +11 -0
  139. package/dist/skills/llm-wiki/packages/graph-engine/src/model/learning.ts +8 -0
  140. package/dist/skills/llm-wiki/packages/graph-engine/src/model/legacy-helpers.ts +1373 -0
  141. package/dist/skills/llm-wiki/packages/graph-engine/src/model/queue.ts +7 -0
  142. package/dist/skills/llm-wiki/packages/graph-engine/src/model/storage.ts +4 -0
  143. package/dist/skills/llm-wiki/packages/graph-engine/src/model/visibility.ts +9 -0
  144. package/dist/skills/llm-wiki/packages/graph-engine/src/render/.gitkeep +1 -0
  145. package/dist/skills/llm-wiki/packages/graph-engine/src/render/index.ts +59 -0
  146. package/dist/skills/llm-wiki/packages/graph-engine/src/render/legend.ts +25 -0
  147. package/dist/skills/llm-wiki/packages/graph-engine/src/render/model.ts +593 -0
  148. package/dist/skills/llm-wiki/packages/graph-engine/src/render/preview.ts +65 -0
  149. package/dist/skills/llm-wiki/packages/graph-engine/src/render/search.ts +48 -0
  150. package/dist/skills/llm-wiki/packages/graph-engine/src/render/static-renderer.ts +2783 -0
  151. package/dist/skills/llm-wiki/packages/graph-engine/src/render/toolbar.ts +40 -0
  152. package/dist/skills/llm-wiki/packages/graph-engine/src/render/viewport.ts +272 -0
  153. package/dist/skills/llm-wiki/packages/graph-engine/src/select/.gitkeep +1 -0
  154. package/dist/skills/llm-wiki/packages/graph-engine/src/select/index.ts +189 -0
  155. package/dist/skills/llm-wiki/packages/graph-engine/src/sim/index.ts +298 -0
  156. package/dist/skills/llm-wiki/packages/graph-engine/src/sim/pins.ts +96 -0
  157. package/dist/skills/llm-wiki/packages/graph-engine/src/themes/.gitkeep +1 -0
  158. package/dist/skills/llm-wiki/packages/graph-engine/src/themes/index.ts +8 -0
  159. package/dist/skills/llm-wiki/packages/graph-engine/src/themes/tokens.ts +107 -0
  160. package/dist/skills/llm-wiki/packages/graph-engine/src/types.ts +313 -0
  161. package/dist/skills/llm-wiki/packages/graph-engine/test/anim.test.ts +100 -0
  162. package/dist/skills/llm-wiki/packages/graph-engine/test/diff.test.ts +133 -0
  163. package/dist/skills/llm-wiki/packages/graph-engine/test/helpers.test.ts +275 -0
  164. package/dist/skills/llm-wiki/packages/graph-engine/test/learning.test.ts +259 -0
  165. package/dist/skills/llm-wiki/packages/graph-engine/test/preview.test.ts +56 -0
  166. package/dist/skills/llm-wiki/packages/graph-engine/test/queue.test.ts +114 -0
  167. package/dist/skills/llm-wiki/packages/graph-engine/test/render-model.test.ts +322 -0
  168. package/dist/skills/llm-wiki/packages/graph-engine/test/runtime-state.test.ts +281 -0
  169. package/dist/skills/llm-wiki/packages/graph-engine/test/search-and-legend.test.ts +111 -0
  170. package/dist/skills/llm-wiki/packages/graph-engine/test/select.test.ts +168 -0
  171. package/dist/skills/llm-wiki/packages/graph-engine/test/sim.test.ts +123 -0
  172. package/dist/skills/llm-wiki/packages/graph-engine/test/themes.test.ts +62 -0
  173. package/dist/skills/llm-wiki/packages/graph-engine/test/toolbar.test.ts +64 -0
  174. package/dist/skills/llm-wiki/packages/graph-engine/test/viewport.test.ts +167 -0
  175. package/dist/skills/llm-wiki/packages/graph-engine/tsconfig.json +17 -0
  176. package/dist/skills/llm-wiki/packages/graph-engine/vite.config.ts +15 -0
  177. package/dist/skills/llm-wiki/platforms/claude/CLAUDE.md +37 -0
  178. package/dist/skills/llm-wiki/platforms/claude/companions/llm-wiki-upgrade/SKILL.md +95 -0
  179. package/dist/skills/llm-wiki/platforms/codex/AGENTS.md +23 -0
  180. package/dist/skills/llm-wiki/scripts/adapter-state.sh +424 -0
  181. package/dist/skills/llm-wiki/scripts/build-graph-data.sh +395 -0
  182. package/dist/skills/llm-wiki/scripts/build-graph-html.sh +453 -0
  183. package/dist/skills/llm-wiki/scripts/cache.sh +352 -0
  184. package/dist/skills/llm-wiki/scripts/create-source-page.sh +100 -0
  185. package/dist/skills/llm-wiki/scripts/delete-helper.sh +68 -0
  186. package/dist/skills/llm-wiki/scripts/graph-analysis.js +732 -0
  187. package/dist/skills/llm-wiki/scripts/hook-session-start.sh +46 -0
  188. package/dist/skills/llm-wiki/scripts/init-wiki.sh +95 -0
  189. package/dist/skills/llm-wiki/scripts/lib/source-signal-eligibility.js +158 -0
  190. package/dist/skills/llm-wiki/scripts/lint-fix.sh +114 -0
  191. package/dist/skills/llm-wiki/scripts/lint-runner.sh +217 -0
  192. package/dist/skills/llm-wiki/scripts/runtime-context.sh +77 -0
  193. package/dist/skills/llm-wiki/scripts/shared-config.sh +83 -0
  194. package/dist/skills/llm-wiki/scripts/source-record-contract.tsv +10 -0
  195. package/dist/skills/llm-wiki/scripts/source-registry.sh +349 -0
  196. package/dist/skills/llm-wiki/scripts/source-registry.tsv +10 -0
  197. package/dist/skills/llm-wiki/scripts/source-signal-coverage.js +83 -0
  198. package/dist/skills/llm-wiki/scripts/validate-step1.sh +144 -0
  199. package/dist/skills/llm-wiki/scripts/wiki-compat.sh +267 -0
  200. package/dist/skills/llm-wiki/setup.sh +8 -0
  201. package/dist/skills/llm-wiki/templates/entity-template.md +30 -0
  202. package/dist/skills/llm-wiki/templates/graph-styles/wash/footer.html +27 -0
  203. package/dist/skills/llm-wiki/templates/graph-styles/wash/graph-wash-helpers.js +1326 -0
  204. package/dist/skills/llm-wiki/templates/graph-styles/wash/graph-wash.js +1009 -0
  205. package/dist/skills/llm-wiki/templates/graph-styles/wash/header.html +2002 -0
  206. package/dist/skills/llm-wiki/templates/index-en-template.md +51 -0
  207. package/dist/skills/llm-wiki/templates/index-template.md +51 -0
  208. package/dist/skills/llm-wiki/templates/log-en-template.md +11 -0
  209. package/dist/skills/llm-wiki/templates/log-template.md +11 -0
  210. package/dist/skills/llm-wiki/templates/overview-en-template.md +41 -0
  211. package/dist/skills/llm-wiki/templates/overview-template.md +41 -0
  212. package/dist/skills/llm-wiki/templates/purpose-en-template.md +16 -0
  213. package/dist/skills/llm-wiki/templates/purpose-template.md +16 -0
  214. package/dist/skills/llm-wiki/templates/query-template.md +19 -0
  215. package/dist/skills/llm-wiki/templates/schema-template.md +185 -0
  216. package/dist/skills/llm-wiki/templates/source-template.md +51 -0
  217. package/dist/skills/llm-wiki/templates/synthesis-template.md +25 -0
  218. package/dist/skills/llm-wiki/templates/topic-template.md +35 -0
  219. package/dist/skills/llm-wiki/tests/adapter-state.sh +338 -0
  220. package/dist/skills/llm-wiki/tests/browser/graph-density-preview.mjs +53 -0
  221. package/dist/skills/llm-wiki/tests/browser/graph-html-insights.mjs +41 -0
  222. package/dist/skills/llm-wiki/tests/browser/graph-node-slim.mjs +71 -0
  223. package/dist/skills/llm-wiki/tests/browser/graph-stage-4-5.mjs +717 -0
  224. package/dist/skills/llm-wiki/tests/expected/graph-data-empty.json +60 -0
  225. package/dist/skills/llm-wiki/tests/expected/graph-data-sample.json +396 -0
  226. package/dist/skills/llm-wiki/tests/expected/graph-interactive-basic.html +1736 -0
  227. package/dist/skills/llm-wiki/tests/expected/lint-output.txt +44 -0
  228. package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/index.md +1 -0
  229. package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/entities/Alpha.md +10 -0
  230. package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/entities/Beta.md +7 -0
  231. package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/entities/Delta.md +8 -0
  232. package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/entities/Gamma.md +8 -0
  233. package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/queries/20260422-abc.md +10 -0
  234. package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/synthesis/Crystal.md +8 -0
  235. package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/topics/Overview.md +9 -0
  236. package/dist/skills/llm-wiki/tests/fixtures/graph-data-empty-wiki/wiki/entities/.gitkeep +0 -0
  237. package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/purpose.md +3 -0
  238. package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/entities/Attention.md +7 -0
  239. package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/entities/Decoder.md +7 -0
  240. package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/entities/Encoder.md +7 -0
  241. package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/entities/GPT.md +7 -0
  242. package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/entities/Transformer.md +13 -0
  243. package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/sources/paper.md +9 -0
  244. package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/topics/arch.md +12 -0
  245. package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/topics/finetune.md +9 -0
  246. package/dist/skills/llm-wiki/tests/fixtures/graph-interactive-basic/wiki/graph-data.json +40 -0
  247. package/dist/skills/llm-wiki/tests/fixtures/graph-interactive-dense/wiki/graph-data.json +3965 -0
  248. package/dist/skills/llm-wiki/tests/fixtures/graph-interactive-multicomm/wiki/graph-data.json +212 -0
  249. package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/index.md +14 -0
  250. package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/entities/C++.md +6 -0
  251. package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/entities/Lonely.md +4 -0
  252. package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/entities/Other.md +8 -0
  253. package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/entities/Real.md +7 -0
  254. package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/sources/2026-01-01-test-source.md +15 -0
  255. package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/sources/2026-02-01-inline-img.md +12 -0
  256. package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/topics/AIbasic.md +3 -0
  257. package/dist/skills/llm-wiki/tests/graph-analysis-helper.regression-1.sh +237 -0
  258. package/dist/skills/llm-wiki/tests/graph-browser-stage-4-5.regression-1.sh +157 -0
  259. package/dist/skills/llm-wiki/tests/graph-build-failures.regression-1.sh +91 -0
  260. package/dist/skills/llm-wiki/tests/graph-data-confidence-merge.regression-1.sh +309 -0
  261. package/dist/skills/llm-wiki/tests/graph-data-source-paths.regression-1.sh +49 -0
  262. package/dist/skills/llm-wiki/tests/graph-html-a11y.regression-1.sh +47 -0
  263. package/dist/skills/llm-wiki/tests/graph-html-brand-link.regression-1.sh +47 -0
  264. package/dist/skills/llm-wiki/tests/graph-html-density.regression-1.sh +228 -0
  265. package/dist/skills/llm-wiki/tests/graph-html-drawer-neighbors.regression-1.sh +47 -0
  266. package/dist/skills/llm-wiki/tests/graph-html-insights.regression-1.sh +80 -0
  267. package/dist/skills/llm-wiki/tests/graph-html-long-label.regression-1.sh +92 -0
  268. package/dist/skills/llm-wiki/tests/graph-html-minimap.regression-1.sh +51 -0
  269. package/dist/skills/llm-wiki/tests/graph-html-mobile.regression-1.sh +48 -0
  270. package/dist/skills/llm-wiki/tests/graph-html-oriental-atlas-contract.regression-1.sh +94 -0
  271. package/dist/skills/llm-wiki/tests/graph-html-oriental-design-contract.regression-1.sh +82 -0
  272. package/dist/skills/llm-wiki/tests/graph-html-search.regression-1.sh +52 -0
  273. package/dist/skills/llm-wiki/tests/graph-html-styles.regression-1.sh +66 -0
  274. package/dist/skills/llm-wiki/tests/graph-html-toolbar.regression-1.sh +62 -0
  275. package/dist/skills/llm-wiki/tests/js/graph-wash-bootstrap.test.js +110 -0
  276. package/dist/skills/llm-wiki/tests/js/graph-wash-helpers.test.js +296 -0
  277. package/dist/skills/llm-wiki/tests/js/graph-wash-learning.test.js +260 -0
  278. package/dist/skills/llm-wiki/tests/js/graph-wash-queue.test.js +115 -0
  279. package/dist/skills/llm-wiki/tests/js/graph-wash-runtime-state.test.js +282 -0
  280. package/dist/skills/llm-wiki/tests/js/source-signal-coverage.test.js +48 -0
  281. package/dist/skills/llm-wiki/tests/js/source-signal-eligibility.test.js +202 -0
  282. package/dist/skills/llm-wiki/tests/lib/graph-html-engine-helpers.sh +110 -0
  283. package/dist/skills/llm-wiki/tests/lint-output.regression-1.sh +32 -0
  284. package/dist/skills/llm-wiki/tests/regression.sh +1754 -0
  285. package/dist/skills/llm-wiki/workbench/.claude/skills/.gitkeep +0 -0
  286. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/SKILL.md +590 -0
  287. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/__init__.py +1 -0
  288. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/accept_changes.py +135 -0
  289. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/comment.py +318 -0
  290. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/helpers/__init__.py +0 -0
  291. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/helpers/merge_runs.py +199 -0
  292. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/helpers/simplify_redlines.py +197 -0
  293. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/pack.py +159 -0
  294. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  295. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  296. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  297. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  298. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  299. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  300. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  301. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  302. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  303. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  304. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  305. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  306. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  307. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  308. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  309. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  310. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  311. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  312. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  313. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  314. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  315. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  316. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  317. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  318. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  319. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  320. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  321. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  322. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  323. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  324. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  325. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  326. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  327. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  328. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  329. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  330. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  331. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  332. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  333. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/soffice.py +183 -0
  334. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/unpack.py +132 -0
  335. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/validate.py +111 -0
  336. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/validators/__init__.py +15 -0
  337. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/validators/base.py +847 -0
  338. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/validators/docx.py +446 -0
  339. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/validators/pptx.py +275 -0
  340. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/validators/redlining.py +247 -0
  341. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/templates/comments.xml +3 -0
  342. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  343. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  344. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/templates/commentsIds.xml +3 -0
  345. package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/templates/people.xml +3 -0
  346. package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/SKILL.md +314 -0
  347. package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/forms.md +294 -0
  348. package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/reference.md +612 -0
  349. package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/check_bounding_boxes.py +65 -0
  350. package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/check_fillable_fields.py +11 -0
  351. package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/convert_pdf_to_images.py +33 -0
  352. package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/create_validation_image.py +37 -0
  353. package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/extract_form_field_info.py +122 -0
  354. package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/extract_form_structure.py +115 -0
  355. package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/fill_fillable_fields.py +98 -0
  356. package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
  357. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/SKILL.md +232 -0
  358. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/editing.md +205 -0
  359. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/pptxgenjs.md +420 -0
  360. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/__init__.py +0 -0
  361. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/add_slide.py +195 -0
  362. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/clean.py +286 -0
  363. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/helpers/__init__.py +0 -0
  364. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/helpers/merge_runs.py +199 -0
  365. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
  366. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/pack.py +159 -0
  367. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  368. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  369. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  370. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  371. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  372. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  373. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  374. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  375. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  376. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  377. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  378. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  379. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  380. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  381. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  382. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  383. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  384. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  385. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  386. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  387. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  388. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  389. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  390. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  391. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  392. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  393. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  394. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  395. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  396. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  397. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  398. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
  399. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  400. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  401. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  402. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  403. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  404. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  405. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  406. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/soffice.py +183 -0
  407. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/unpack.py +132 -0
  408. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/validate.py +111 -0
  409. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/validators/__init__.py +15 -0
  410. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/validators/base.py +847 -0
  411. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/validators/docx.py +446 -0
  412. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/validators/pptx.py +275 -0
  413. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/validators/redlining.py +247 -0
  414. package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/thumbnail.py +289 -0
  415. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/SKILL.md +292 -0
  416. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
  417. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/helpers/merge_runs.py +199 -0
  418. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
  419. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/pack.py +159 -0
  420. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  421. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  422. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  423. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  424. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  425. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  426. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  427. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  428. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  429. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  430. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  431. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  432. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  433. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  434. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  435. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  436. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  437. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  438. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  439. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  440. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  441. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  442. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  443. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  444. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  445. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  446. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  447. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  448. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  449. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  450. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  451. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  452. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  453. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  454. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  455. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  456. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  457. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  458. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  459. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/soffice.py +183 -0
  460. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/unpack.py +132 -0
  461. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/validate.py +111 -0
  462. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/validators/__init__.py +15 -0
  463. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/validators/base.py +847 -0
  464. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/validators/docx.py +446 -0
  465. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/validators/pptx.py +275 -0
  466. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/validators/redlining.py +247 -0
  467. package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/recalc.py +184 -0
  468. package/dist/skills/llm-wiki/workbench/AGENTS.md +110 -0
  469. package/dist/skills/llm-wiki/workbench/CLAUDE.md +54 -0
  470. package/dist/skills/llm-wiki/workbench/PRODUCT.md +1268 -0
  471. package/dist/skills/llm-wiki/workbench/docs/current-kb-retrieval-design.md +587 -0
  472. package/dist/skills/llm-wiki/workbench/docs/graph-evolution-1-design.md +210 -0
  473. package/dist/skills/llm-wiki/workbench/docs/stage-2-design.md +1139 -0
  474. package/dist/skills/llm-wiki/workbench/docs/stage-3-design.md +1269 -0
  475. package/dist/skills/llm-wiki/workbench/docs/stage-3.5-design.md +1164 -0
  476. package/dist/skills/llm-wiki/workbench/docs/stage-4-design.md +504 -0
  477. package/dist/skills/llm-wiki/workbench/docs/stage-4.5-design.md +195 -0
  478. package/dist/skills/llm-wiki/workbench/docs/superpowers/specs/2026-05-28-resizable-preview-layout-design.md +165 -0
  479. package/dist/skills/llm-wiki/workbench/docs/superpowers/specs/2026-05-28-settings-panel-scroll-fix.md +50 -0
  480. package/dist/skills/llm-wiki/workbench/server/package.json +29 -0
  481. package/dist/skills/llm-wiki/workbench/server/src/agent.ts +457 -0
  482. package/dist/skills/llm-wiki/workbench/server/src/artifacts.ts +248 -0
  483. package/dist/skills/llm-wiki/workbench/server/src/auth.ts +164 -0
  484. package/dist/skills/llm-wiki/workbench/server/src/config.ts +130 -0
  485. package/dist/skills/llm-wiki/workbench/server/src/conversations.test.ts +121 -0
  486. package/dist/skills/llm-wiki/workbench/server/src/conversations.ts +255 -0
  487. package/dist/skills/llm-wiki/workbench/server/src/digest/batch.ts +189 -0
  488. package/dist/skills/llm-wiki/workbench/server/src/digest/concurrency.test.ts +36 -0
  489. package/dist/skills/llm-wiki/workbench/server/src/digest/concurrency.ts +31 -0
  490. package/dist/skills/llm-wiki/workbench/server/src/digest/subagent.ts +91 -0
  491. package/dist/skills/llm-wiki/workbench/server/src/extensions/artifacts.ts +81 -0
  492. package/dist/skills/llm-wiki/workbench/server/src/extensions/knowledge-base.ts +263 -0
  493. package/dist/skills/llm-wiki/workbench/server/src/extensions/new-wiki.ts +42 -0
  494. package/dist/skills/llm-wiki/workbench/server/src/extensions/synthesis.ts +172 -0
  495. package/dist/skills/llm-wiki/workbench/server/src/graph-watcher.test.ts +196 -0
  496. package/dist/skills/llm-wiki/workbench/server/src/graph.test.ts +84 -0
  497. package/dist/skills/llm-wiki/workbench/server/src/graph.ts +379 -0
  498. package/dist/skills/llm-wiki/workbench/server/src/index.ts +1148 -0
  499. package/dist/skills/llm-wiki/workbench/server/src/knowledge-bases.test.ts +30 -0
  500. package/dist/skills/llm-wiki/workbench/server/src/knowledge-bases.ts +321 -0
  501. package/dist/skills/llm-wiki/workbench/server/src/pages.test.ts +16 -0
  502. package/dist/skills/llm-wiki/workbench/server/src/pages.ts +158 -0
  503. package/dist/skills/llm-wiki/workbench/server/src/retrieval.test.ts +151 -0
  504. package/dist/skills/llm-wiki/workbench/server/src/retrieval.ts +427 -0
  505. package/dist/skills/llm-wiki/workbench/server/src/tool-status-events.test.ts +363 -0
  506. package/dist/skills/llm-wiki/workbench/server/src/tool-status-events.ts +616 -0
  507. package/dist/skills/llm-wiki/workbench/server/src/wiki-init.test.ts +19 -0
  508. package/dist/skills/llm-wiki/workbench/server/src/wiki-init.ts +188 -0
  509. package/dist/skills/llm-wiki/workbench/server/tsconfig.json +10 -0
  510. package/dist/skills/llm-wiki/workbench/tsconfig.json +20 -0
  511. package/dist/skills/llm-wiki/workbench/web/components.json +21 -0
  512. package/dist/skills/llm-wiki/workbench/web/eslint.config.js +22 -0
  513. package/dist/skills/llm-wiki/workbench/web/index.html +13 -0
  514. package/dist/skills/llm-wiki/workbench/web/package.json +48 -0
  515. package/dist/skills/llm-wiki/workbench/web/src/App.tsx +749 -0
  516. package/dist/skills/llm-wiki/workbench/web/src/components/AddExternalDialog.tsx +373 -0
  517. package/dist/skills/llm-wiki/workbench/web/src/components/ArtifactView.tsx +15 -0
  518. package/dist/skills/llm-wiki/workbench/web/src/components/BatchDigestPanel.tsx +106 -0
  519. package/dist/skills/llm-wiki/workbench/web/src/components/ChatPanel.tsx +821 -0
  520. package/dist/skills/llm-wiki/workbench/web/src/components/CommandMenu.tsx +65 -0
  521. package/dist/skills/llm-wiki/workbench/web/src/components/ExportButtons.tsx +54 -0
  522. package/dist/skills/llm-wiki/workbench/web/src/components/GraphPanel.tsx +516 -0
  523. package/dist/skills/llm-wiki/workbench/web/src/components/GraphReader.tsx +48 -0
  524. package/dist/skills/llm-wiki/workbench/web/src/components/GraphSelection.tsx +100 -0
  525. package/dist/skills/llm-wiki/workbench/web/src/components/MarkdownView.tsx +56 -0
  526. package/dist/skills/llm-wiki/workbench/web/src/components/NewWikiDialog.tsx +101 -0
  527. package/dist/skills/llm-wiki/workbench/web/src/components/RefMenu.tsx +40 -0
  528. package/dist/skills/llm-wiki/workbench/web/src/components/RightDrawer.tsx +227 -0
  529. package/dist/skills/llm-wiki/workbench/web/src/components/SettingsPanel.tsx +331 -0
  530. package/dist/skills/llm-wiki/workbench/web/src/components/Sidebar.tsx +436 -0
  531. package/dist/skills/llm-wiki/workbench/web/src/components/ToolHistorySummary.tsx +123 -0
  532. package/dist/skills/llm-wiki/workbench/web/src/components/ToolStatusRunway.tsx +90 -0
  533. package/dist/skills/llm-wiki/workbench/web/src/components/renderers/DownloadOnlyRenderer.tsx +88 -0
  534. package/dist/skills/llm-wiki/workbench/web/src/components/renderers/HtmlRenderer.tsx +92 -0
  535. package/dist/skills/llm-wiki/workbench/web/src/components/ui/button.tsx +52 -0
  536. package/dist/skills/llm-wiki/workbench/web/src/components/ui/command.tsx +50 -0
  537. package/dist/skills/llm-wiki/workbench/web/src/components/ui/dialog.tsx +156 -0
  538. package/dist/skills/llm-wiki/workbench/web/src/components/ui/input.tsx +21 -0
  539. package/dist/skills/llm-wiki/workbench/web/src/components/ui/tooltip.tsx +57 -0
  540. package/dist/skills/llm-wiki/workbench/web/src/index.css +1737 -0
  541. package/dist/skills/llm-wiki/workbench/web/src/lib/api.ts +648 -0
  542. package/dist/skills/llm-wiki/workbench/web/src/lib/drawer-state.ts +79 -0
  543. package/dist/skills/llm-wiki/workbench/web/src/lib/graph-reader.ts +25 -0
  544. package/dist/skills/llm-wiki/workbench/web/src/lib/graph-selection-drawer.ts +35 -0
  545. package/dist/skills/llm-wiki/workbench/web/src/lib/graph-selection.ts +96 -0
  546. package/dist/skills/llm-wiki/workbench/web/src/lib/legacy-tool-status.ts +113 -0
  547. package/dist/skills/llm-wiki/workbench/web/src/lib/sse.ts +72 -0
  548. package/dist/skills/llm-wiki/workbench/web/src/lib/tool-status-format.ts +170 -0
  549. package/dist/skills/llm-wiki/workbench/web/src/lib/tool-status-model.ts +392 -0
  550. package/dist/skills/llm-wiki/workbench/web/src/lib/utils.ts +10 -0
  551. package/dist/skills/llm-wiki/workbench/web/src/lib/wiki-links.ts +32 -0
  552. package/dist/skills/llm-wiki/workbench/web/src/main.tsx +10 -0
  553. package/dist/skills/llm-wiki/workbench/web/test/api.test.ts +61 -0
  554. package/dist/skills/llm-wiki/workbench/web/test/chat-panel-tool-status.test.tsx +26 -0
  555. package/dist/skills/llm-wiki/workbench/web/test/graph-drawer-state.test.ts +78 -0
  556. package/dist/skills/llm-wiki/workbench/web/test/graph-reader-request.test.ts +32 -0
  557. package/dist/skills/llm-wiki/workbench/web/test/graph-reader.test.ts +62 -0
  558. package/dist/skills/llm-wiki/workbench/web/test/graph-selection-drawer.test.ts +56 -0
  559. package/dist/skills/llm-wiki/workbench/web/test/graph-selection.test.ts +83 -0
  560. package/dist/skills/llm-wiki/workbench/web/test/tool-history-summary.test.tsx +124 -0
  561. package/dist/skills/llm-wiki/workbench/web/test/tool-status-format.test.ts +107 -0
  562. package/dist/skills/llm-wiki/workbench/web/test/tool-status-model.test.ts +324 -0
  563. package/dist/skills/llm-wiki/workbench/web/test/tool-status-runway.test.ts +134 -0
  564. package/dist/skills/llm-wiki/workbench/web/test/wiki-links.test.ts +23 -0
  565. package/dist/skills/llm-wiki/workbench/web/tsconfig.app.json +30 -0
  566. package/dist/skills/llm-wiki/workbench/web/tsconfig.json +7 -0
  567. package/dist/skills/llm-wiki/workbench/web/tsconfig.node.json +24 -0
  568. package/dist/skills/llm-wiki/workbench/web/vite.config.ts +26 -0
  569. package/dist/skills/mean-reviewer/SECURITY.md +23 -0
  570. package/dist/skills/mean-reviewer/SKILL.md +203 -0
  571. package/dist/skills/mean-reviewer/examples/13446_1000_Layer_Networks_for_.pdf +0 -0
  572. package/dist/skills/mean-reviewer/examples/13446_mean_reviewer.md +116 -0
  573. package/dist/skills/mean-reviewer/examples/13446_mean_reviewer_author_rebuttal_simulated.md +282 -0
  574. package/dist/skills/mean-reviewer/examples/13446_mean_reviewer_reply.md +91 -0
  575. package/dist/skills/mean-reviewer/examples/13446_official_review.json +973 -0
  576. package/dist/skills/mean-reviewer/examples/ChatGPT_AC_Roleplay.jpeg +0 -0
  577. package/dist/skills/medical-imaging-review/SKILL.md +295 -0
  578. package/dist/skills/medical-imaging-review/references/CITATION_INTEGRITY.md +233 -0
  579. package/dist/skills/medical-imaging-review/references/DOMAINS.md +302 -0
  580. package/dist/skills/medical-imaging-review/references/HALLUCINATION_PATTERNS.md +211 -0
  581. package/dist/skills/medical-imaging-review/references/MCP_SETUP.md +216 -0
  582. package/dist/skills/medical-imaging-review/references/PARADIGM.md +221 -0
  583. package/dist/skills/medical-imaging-review/references/QUALITY_CHECKLIST.md +169 -0
  584. package/dist/skills/medical-imaging-review/references/TEMPLATES.md +291 -0
  585. package/dist/skills/medical-imaging-review/references/WORKFLOW.md +289 -0
  586. package/dist/skills/mermaid-diagram/SKILL.md +379 -0
  587. package/dist/skills/meta-apply/SKILL.md +137 -0
  588. package/dist/skills/meta-optimize/SKILL.md +253 -0
  589. package/dist/skills/monitor-experiment/SKILL.md +98 -0
  590. package/dist/skills/novelty-check/SKILL.md +89 -0
  591. package/dist/skills/openalex/SKILL.md +228 -0
  592. package/dist/skills/overleaf-sync/SKILL.md +220 -0
  593. package/dist/skills/paper-claim-audit/SKILL.md +340 -0
  594. package/dist/skills/paper-compile/SKILL.md +253 -0
  595. package/dist/skills/paper-figure/SKILL.md +279 -0
  596. package/dist/skills/paper-illustration/SKILL.md +690 -0
  597. package/dist/skills/paper-illustration-image2/SKILL.md +383 -0
  598. package/dist/skills/paper-illustration-image2/scripts/paper_illustration_image2.py +255 -0
  599. package/dist/skills/paper-plan/SKILL.md +278 -0
  600. package/dist/skills/paper-poster/SKILL.md +19 -0
  601. package/dist/skills/paper-poster-html/DESIGN_FINAL.md +176 -0
  602. package/dist/skills/paper-poster-html/IMPLEMENTATION_CONVENTIONS.md +161 -0
  603. package/dist/skills/paper-poster-html/LICENSES/posterly-MIT.txt +21 -0
  604. package/dist/skills/paper-poster-html/NOTICE.md +57 -0
  605. package/dist/skills/paper-poster-html/SKILL.md +357 -0
  606. package/dist/skills/paper-poster-html/scripts/_posterly/__init__.py +0 -0
  607. package/dist/skills/paper-poster-html/scripts/_posterly/canvas.py +200 -0
  608. package/dist/skills/paper-poster-html/scripts/_posterly/measure.py +588 -0
  609. package/dist/skills/paper-poster-html/scripts/_posterly/polish.py +498 -0
  610. package/dist/skills/paper-poster-html/scripts/_posterly/preflight.py +489 -0
  611. package/dist/skills/paper-poster-html/scripts/_posterly/render.py +215 -0
  612. package/dist/skills/paper-poster-html/scripts/_posterly/textutil.py +16 -0
  613. package/dist/skills/paper-poster-html/scripts/_posterly/verify_final.py +171 -0
  614. package/dist/skills/paper-poster-html/scripts/asset_check.py +897 -0
  615. package/dist/skills/paper-poster-html/scripts/extract_pdf_figures.py +666 -0
  616. package/dist/skills/paper-poster-html/scripts/poster_check.py +251 -0
  617. package/dist/skills/paper-poster-html/scripts/preprocess_figures.py +238 -0
  618. package/dist/skills/paper-poster-html/scripts/render_preview.py +217 -0
  619. package/dist/skills/paper-poster-html/scripts/run_gates.py +556 -0
  620. package/dist/skills/paper-poster-html/scripts/style_check.py +1324 -0
  621. package/dist/skills/paper-poster-html/templates/COMPONENTS.md +462 -0
  622. package/dist/skills/paper-poster-html/templates/landscape_4col.html +1032 -0
  623. package/dist/skills/paper-poster-html/templates/landscape_hero.html +1046 -0
  624. package/dist/skills/paper-poster-html/templates/portrait_2col.html +947 -0
  625. package/dist/skills/paper-poster-html/templates/tokens/acl.json +9 -0
  626. package/dist/skills/paper-poster-html/templates/tokens/cvpr.json +9 -0
  627. package/dist/skills/paper-poster-html/templates/tokens/generic.json +9 -0
  628. package/dist/skills/paper-poster-html/templates/tokens/iclr.json +9 -0
  629. package/dist/skills/paper-poster-html/templates/tokens/icml.json +9 -0
  630. package/dist/skills/paper-poster-html/templates/tokens/neurips.json +9 -0
  631. package/dist/skills/paper-slide-deck/SKILL.md +464 -0
  632. package/dist/skills/paper-slide-deck/references/analysis-framework.md +392 -0
  633. package/dist/skills/paper-slide-deck/references/base-prompt.md +70 -0
  634. package/dist/skills/paper-slide-deck/references/content-rules.md +95 -0
  635. package/dist/skills/paper-slide-deck/references/figure-container-template.md +177 -0
  636. package/dist/skills/paper-slide-deck/references/modification-guide.md +85 -0
  637. package/dist/skills/paper-slide-deck/references/outline-template.md +437 -0
  638. package/dist/skills/paper-slide-deck/references/styles/academic-paper.md +109 -0
  639. package/dist/skills/paper-slide-deck/references/styles/blueprint.md +67 -0
  640. package/dist/skills/paper-slide-deck/references/styles/bold-editorial.md +70 -0
  641. package/dist/skills/paper-slide-deck/references/styles/chalkboard.md +68 -0
  642. package/dist/skills/paper-slide-deck/references/styles/corporate.md +69 -0
  643. package/dist/skills/paper-slide-deck/references/styles/dark-atmospheric.md +69 -0
  644. package/dist/skills/paper-slide-deck/references/styles/editorial-infographic.md +73 -0
  645. package/dist/skills/paper-slide-deck/references/styles/fantasy-animation.md +69 -0
  646. package/dist/skills/paper-slide-deck/references/styles/intuition-machine.md +72 -0
  647. package/dist/skills/paper-slide-deck/references/styles/minimal.md +64 -0
  648. package/dist/skills/paper-slide-deck/references/styles/notion.md +69 -0
  649. package/dist/skills/paper-slide-deck/references/styles/pixel-art.md +67 -0
  650. package/dist/skills/paper-slide-deck/references/styles/scientific.md +73 -0
  651. package/dist/skills/paper-slide-deck/references/styles/sketch-notes.md +66 -0
  652. package/dist/skills/paper-slide-deck/references/styles/vector-illustration.md +72 -0
  653. package/dist/skills/paper-slide-deck/references/styles/vintage.md +73 -0
  654. package/dist/skills/paper-slide-deck/references/styles/watercolor.md +68 -0
  655. package/dist/skills/paper-slide-deck/scripts/apply-template.ts +282 -0
  656. package/dist/skills/paper-slide-deck/scripts/detect-figures.ts +283 -0
  657. package/dist/skills/paper-slide-deck/scripts/extract-figure.ts +140 -0
  658. package/dist/skills/paper-slide-deck/scripts/generate-slides.py +182 -0
  659. package/dist/skills/paper-slide-deck/scripts/merge-to-pdf.ts +116 -0
  660. package/dist/skills/paper-slide-deck/scripts/merge-to-pptx.ts +137 -0
  661. package/dist/skills/paper-slide-deck/scripts/package-lock.json +899 -0
  662. package/dist/skills/paper-slide-deck/scripts/package.json +8 -0
  663. package/dist/skills/paper-slides/SKILL.md +571 -0
  664. package/dist/skills/paper-talk/SKILL.md +381 -0
  665. package/dist/skills/paper-write/SKILL.md +411 -0
  666. package/dist/skills/paper-write/templates/IEEEtran.bst +2409 -0
  667. package/dist/skills/paper-write/templates/IEEEtran.cls +6347 -0
  668. package/dist/skills/paper-write/templates/aaai2026.bst +1493 -0
  669. package/dist/skills/paper-write/templates/aaai2026.sty +315 -0
  670. package/dist/skills/paper-write/templates/aaai2026.tex +952 -0
  671. package/dist/skills/paper-write/templates/acl.sty +312 -0
  672. package/dist/skills/paper-write/templates/acl2026.tex +377 -0
  673. package/dist/skills/paper-write/templates/acl_natbib.bst +1940 -0
  674. package/dist/skills/paper-write/templates/acm.bst +3081 -0
  675. package/dist/skills/paper-write/templates/acm_mm2026.tex +204 -0
  676. package/dist/skills/paper-write/templates/acmart.cls +3520 -0
  677. package/dist/skills/paper-write/templates/cvpr.bst +1448 -0
  678. package/dist/skills/paper-write/templates/cvpr.sty +508 -0
  679. package/dist/skills/paper-write/templates/cvpr2026.tex +63 -0
  680. package/dist/skills/paper-write/templates/iclr2026.tex +84 -0
  681. package/dist/skills/paper-write/templates/iclr2026_conference.bst +1440 -0
  682. package/dist/skills/paper-write/templates/iclr2026_conference.sty +246 -0
  683. package/dist/skills/paper-write/templates/icml2025.tex +87 -0
  684. package/dist/skills/paper-write/templates/icml2026.sty +767 -0
  685. package/dist/skills/paper-write/templates/icml2026.tex +662 -0
  686. package/dist/skills/paper-write/templates/ieee_conference.tex +89 -0
  687. package/dist/skills/paper-write/templates/ieee_journal.tex +93 -0
  688. package/dist/skills/paper-write/templates/math_commands.tex +48 -0
  689. package/dist/skills/paper-write/templates/neurips2025.tex +80 -0
  690. package/dist/skills/paper-write/templates/neurips2026.tex +493 -0
  691. package/dist/skills/paper-write/templates/neurips_2026.sty +437 -0
  692. package/dist/skills/paper-writing/SKILL.md +632 -0
  693. package/dist/skills/patent-novelty-check/SKILL.md +153 -0
  694. package/dist/skills/patent-pipeline/SKILL.md +344 -0
  695. package/dist/skills/patent-review/SKILL.md +202 -0
  696. package/dist/skills/pixel-art/SKILL.md +139 -0
  697. package/dist/skills/pre-submission-reviewer/SKILL.md +247 -0
  698. package/dist/skills/pre-submission-reviewer/references/forbidden-patterns.md +163 -0
  699. package/dist/skills/pre-submission-reviewer/references/grammar-rules.md +135 -0
  700. package/dist/skills/pre-submission-reviewer/references/latex-rules.md +158 -0
  701. package/dist/skills/pre-submission-reviewer/references/logic-and-structure.md +125 -0
  702. package/dist/skills/pre-submission-reviewer/references/section-guides.md +169 -0
  703. package/dist/skills/prior-art-search/SKILL.md +146 -0
  704. package/dist/skills/proof-checker/SKILL.md +499 -0
  705. package/dist/skills/proof-writer/SKILL.md +222 -0
  706. package/dist/skills/qzcli/SKILL.md +316 -0
  707. package/dist/skills/rebuttal/SKILL.md +304 -0
  708. package/dist/skills/render-html/SKILL.md +299 -0
  709. package/dist/skills/render-html/scripts/render_html.py +905 -0
  710. package/dist/skills/render-html/scripts/templates/academic.html +342 -0
  711. package/dist/skills/render-html/scripts/templates/dashboard.html +333 -0
  712. package/dist/skills/research-lit/SKILL.md +353 -0
  713. package/dist/skills/research-paper-writing/SKILL.md +99 -0
  714. package/dist/skills/research-paper-writing/agents/openai.yaml +4 -0
  715. package/dist/skills/research-paper-writing/references/abstract.md +102 -0
  716. package/dist/skills/research-paper-writing/references/conclusion.md +35 -0
  717. package/dist/skills/research-paper-writing/references/does-my-writing-flow-source.md +45 -0
  718. package/dist/skills/research-paper-writing/references/examples/abstract/template-a.md +21 -0
  719. package/dist/skills/research-paper-writing/references/examples/abstract/template-b.md +34 -0
  720. package/dist/skills/research-paper-writing/references/examples/abstract/template-c.md +28 -0
  721. package/dist/skills/research-paper-writing/references/examples/abstract-examples.md +13 -0
  722. package/dist/skills/research-paper-writing/references/examples/index.md +21 -0
  723. package/dist/skills/research-paper-writing/references/examples/introduction/novel-task-challenge-decomposition.md +18 -0
  724. package/dist/skills/research-paper-writing/references/examples/introduction/pipeline-not-recommended-abstract-only.md +30 -0
  725. package/dist/skills/research-paper-writing/references/examples/introduction/pipeline-version-1-one-contribution-multi-advantages.md +30 -0
  726. package/dist/skills/research-paper-writing/references/examples/introduction/pipeline-version-2-two-contributions.md +34 -0
  727. package/dist/skills/research-paper-writing/references/examples/introduction/pipeline-version-3-new-module-on-existing-pipeline.md +18 -0
  728. package/dist/skills/research-paper-writing/references/examples/introduction/pipeline-version-4-observation-driven.md +16 -0
  729. package/dist/skills/research-paper-writing/references/examples/introduction/technical-challenge-version-1-existing-task.md +32 -0
  730. package/dist/skills/research-paper-writing/references/examples/introduction/technical-challenge-version-2-existing-task-insight-backed-by-traditional.md +33 -0
  731. package/dist/skills/research-paper-writing/references/examples/introduction/technical-challenge-version-3-novel-task.md +21 -0
  732. package/dist/skills/research-paper-writing/references/examples/introduction/version-1-task-then-application.md +14 -0
  733. package/dist/skills/research-paper-writing/references/examples/introduction/version-2-application-first.md +10 -0
  734. package/dist/skills/research-paper-writing/references/examples/introduction/version-3-general-to-specific-setting.md +14 -0
  735. package/dist/skills/research-paper-writing/references/examples/introduction/version-4-open-with-challenge.md +20 -0
  736. package/dist/skills/research-paper-writing/references/examples/introduction-examples.md +25 -0
  737. package/dist/skills/research-paper-writing/references/examples/method/example-of-the-three-elements.md +67 -0
  738. package/dist/skills/research-paper-writing/references/examples/method/method-writing-common-issues-note.md +10 -0
  739. package/dist/skills/research-paper-writing/references/examples/method/module-design-instant-ngp.md +55 -0
  740. package/dist/skills/research-paper-writing/references/examples/method/module-motivation-patterns.md +15 -0
  741. package/dist/skills/research-paper-writing/references/examples/method/module-triad-neural-body.md +19 -0
  742. package/dist/skills/research-paper-writing/references/examples/method/neural-body-annotated-figure-text.md +66 -0
  743. package/dist/skills/research-paper-writing/references/examples/method/overview-template.md +30 -0
  744. package/dist/skills/research-paper-writing/references/examples/method/pre-writing-questions.md +17 -0
  745. package/dist/skills/research-paper-writing/references/examples/method/section-skeleton.md +9 -0
  746. package/dist/skills/research-paper-writing/references/examples/method-examples.md +24 -0
  747. package/dist/skills/research-paper-writing/references/experiments.md +102 -0
  748. package/dist/skills/research-paper-writing/references/introduction.md +408 -0
  749. package/dist/skills/research-paper-writing/references/method.md +196 -0
  750. package/dist/skills/research-paper-writing/references/paper-review.md +86 -0
  751. package/dist/skills/research-paper-writing/references/related-work.md +41 -0
  752. package/dist/skills/research-pipeline/SKILL.md +257 -0
  753. package/dist/skills/research-proposal/SKILL.md +573 -0
  754. package/dist/skills/research-proposal/assets/proposal_scaffold_en.md +323 -0
  755. package/dist/skills/research-proposal/assets/proposal_scaffold_zh.md +346 -0
  756. package/dist/skills/research-proposal/references/DOMAIN_TEMPLATES.md +518 -0
  757. package/dist/skills/research-proposal/references/LITERATURE_WORKFLOW.md +529 -0
  758. package/dist/skills/research-proposal/references/QUALITY_CHECKLIST.md +325 -0
  759. package/dist/skills/research-proposal/references/STRUCTURE_GUIDE.md +398 -0
  760. package/dist/skills/research-proposal/references/WRITING_STYLE_GUIDE.md +661 -0
  761. package/dist/skills/research-refine/SKILL.md +716 -0
  762. package/dist/skills/research-refine-pipeline/SKILL.md +186 -0
  763. package/dist/skills/research-review/SKILL.md +119 -0
  764. package/dist/skills/research-wiki/SKILL.md +373 -0
  765. package/dist/skills/resubmit-pipeline/SKILL.md +427 -0
  766. package/dist/skills/result-to-claim/SKILL.md +190 -0
  767. package/dist/skills/run-experiment/SKILL.md +227 -0
  768. package/dist/skills/scientific-figure-making/SKILL.md +38 -0
  769. package/dist/skills/scientific-figure-making/references/api.md +152 -0
  770. package/dist/skills/scientific-figure-making/references/common-patterns.md +74 -0
  771. package/dist/skills/scientific-figure-making/references/demos.md +30 -0
  772. package/dist/skills/scientific-figure-making/references/design-theory.md +138 -0
  773. package/dist/skills/scientific-figure-making/references/tutorials.md +135 -0
  774. package/dist/skills/semantic-scholar/SKILL.md +219 -0
  775. package/dist/skills/serverless-modal/SKILL.md +324 -0
  776. package/dist/skills/slides-polish/SKILL.md +563 -0
  777. package/dist/skills/specification-writing/SKILL.md +211 -0
  778. package/dist/skills/strategist/SKILL.md +670 -0
  779. package/dist/skills/strategist/references/quality_standards.md +336 -0
  780. package/dist/skills/strategist/references/search_strategy.md +459 -0
  781. package/dist/skills/strategist/scripts/evaluate_samples.py +300 -0
  782. package/dist/skills/strategist/scripts/gap_analysis.py +399 -0
  783. package/dist/skills/system-profile/SKILL.md +103 -0
  784. package/dist/skills/tech-paper-template/SKILL.md +192 -0
  785. package/dist/skills/tech-paper-template/references/consistency-checks.md +166 -0
  786. package/dist/skills/tech-paper-template/references/paper-types.md +127 -0
  787. package/dist/skills/tech-paper-template/references/thinking-template.md +194 -0
  788. package/dist/skills/tech-paper-template/references/worked-examples.md +124 -0
  789. package/dist/skills/training-check/SKILL.md +83 -0
  790. package/dist/skills/vast-gpu/SKILL.md +380 -0
  791. package/dist/skills/vibe-research-workflow/SKILL.md +189 -0
  792. package/dist/skills/vibe-research-workflow/references/behavior-guidelines.md +149 -0
  793. package/dist/skills/vibe-research-workflow/references/tool-selection.md +144 -0
  794. package/dist/skills/vibe-research-workflow/references/vibe-coding.md +154 -0
  795. package/dist/skills/vibe-research-workflow/references/vibe-figure.md +131 -0
  796. package/dist/skills/vibe-research-workflow/references/vibe-writing.md +181 -0
  797. package/dist/skills/wiki-enrich/SKILL.md +254 -0
  798. package/dist/skills/writing-systems-papers/SKILL.md +184 -0
  799. package/package.json +1 -1
@@ -0,0 +1,655 @@
1
+ # OMP 风格动态工具状态执行计划
2
+
3
+ 日期:2026-06-15
4
+
5
+ ## 目标
6
+
7
+ 实现 `docs/spark/2026-06-15-omp-tool-status-events-design.md`:升级项目内部使用的 `pi-agent` 依赖,对齐新版 `omp` 更细的工具事件模型,并在当前 assistant 回复内部实现彩色动态工具条和丰富折叠历史摘要。
8
+
9
+ 这不是 MVP。最终效果必须接近 `omp`:当前动作活跃、清楚、有节奏;历史动作不铺满屏幕,而是可折叠、可检查。
10
+
11
+ ## 源文档
12
+
13
+ - `docs/spark/2026-06-15-omp-tool-status-events-design.md`
14
+ - `AGENTS.md`
15
+ - `workbench/AGENTS.md`
16
+ - `workbench/PRODUCT.md`
17
+
18
+ ## 任务规模
19
+
20
+ L 级 phased plan。理由:该工作跨项目依赖迁移、后端事件协议、前端状态模型、视觉组件、历史消息兼容、自动测试和浏览器验收,且自然分阶段验证。
21
+
22
+ ## 规格评审
23
+
24
+ 结论:可以执行。
25
+
26
+ - 没有阻塞性产品决策缺口:用户已经确认升级对象是项目内部依赖,目标是对齐新版 `omp` 的动态当前工具条和折叠历史摘要。
27
+ - 主要漂移风险:实现时退回只包装旧 start/end 事件的轻量方案;本计划通过阶段 1 的依赖迁移验收和阶段 2 的稳定事件协议避免这个漂移。
28
+ - 主要技术风险:新版 `pi-agent` API 或事件字段与当前项目不兼容;本计划把依赖/API 勘查和后端适配层放在最前面,并要求迁移验收不过不得进入 UI 阶段。
29
+
30
+ ## 执行规则
31
+
32
+ - 执行分支:`codex/feat-omp-tool-status-events`。
33
+ - 不在 `main` 上执行本计划。
34
+ - 执行开始前确认当前分支是专用分支,工作区除 `.superpowers/` 临时草图外没有无法分离的用户改动。
35
+ - 每完成一个已验证工作单元就提交一次,并把提交哈希记录到 `docs/plans/2026-06-15-omp-tool-status-events-progress.json`。
36
+ - 验证失败时不提交。
37
+ - 不自动 push、merge、amend。
38
+ - 阶段验收通过后直接进入下一阶段,不要求用户逐阶段确认。
39
+ - 执行者只能更新 progress 文件里的状态、证据、提交哈希、决策记录和 turn log,不能改写任务定义和验收标准。
40
+
41
+ ## /goal 协议
42
+
43
+ 每次继续工作时:
44
+
45
+ 1. 读取 progress 文件,确认当前 phase/task。
46
+ 2. 运行 `git log --oneline -15` 和本计划的基线 smoke check。
47
+ 3. 只处理当前工作单元。
48
+ 4. 验证通过后更新 progress、提交该工作单元、记录提交哈希。
49
+ 5. 阶段验收全部通过后,记录阶段完成并进入下一阶段。
50
+
51
+ ## Progress 文件
52
+
53
+ `docs/plans/2026-06-15-omp-tool-status-events-progress.json`
54
+
55
+ ## 基线 Smoke Check
56
+
57
+ 每个工作单元开始前运行:
58
+
59
+ ```bash
60
+ npm run typecheck
61
+ ```
62
+
63
+ 如果依赖迁移中途导致全量 typecheck 暂时无法运行,当前工作单元必须先记录失败原因,并改跑该阶段指定的更小检查。恢复全量 `npm run typecheck` 是阶段验收条件,不能跳过。
64
+
65
+ ## 实现面地图
66
+
67
+ ### 后端
68
+
69
+ - `workbench/server/package.json`
70
+ - `package-lock.json`
71
+ - `workbench/server/src/agent.ts`
72
+ - `workbench/server/src/index.ts`
73
+ - `workbench/server/src/conversations.ts`
74
+ - 新增建议:`workbench/server/src/tool-status-events.ts`
75
+ - 新增建议:`workbench/server/src/tool-status-events.test.ts`
76
+ - 可能涉及 extension 类型导入:
77
+ - `workbench/server/src/extensions/knowledge-base.ts`
78
+ - `workbench/server/src/extensions/artifacts.ts`
79
+ - `workbench/server/src/extensions/new-wiki.ts`
80
+ - `workbench/server/src/extensions/synthesis.ts`
81
+ - `workbench/server/src/digest/subagent.ts`
82
+
83
+ ### 前端
84
+
85
+ - `workbench/web/src/lib/api.ts`
86
+ - `workbench/web/src/components/ChatPanel.tsx`
87
+ - `workbench/web/src/index.css`
88
+ - 新增建议:`workbench/web/src/lib/tool-status-model.ts`
89
+ - 新增建议:`workbench/web/src/lib/tool-status-format.ts`
90
+ - 新增建议:`workbench/web/src/components/ToolStatusRunway.tsx`
91
+ - 新增建议:`workbench/web/src/components/ToolHistorySummary.tsx`
92
+ - 新增测试:
93
+ - `workbench/web/test/tool-status-model.test.ts`
94
+ - `workbench/web/test/tool-status-format.test.ts`
95
+
96
+ ### 文档
97
+
98
+ - `README.md`
99
+ - `CHANGELOG.md`
100
+ - 必要时更新 `workbench/PRODUCT.md` 的阶段记录或 ADR 摘要。
101
+
102
+ ## 数据流
103
+
104
+ ```text
105
+ prompt request(runId)
106
+ -> ordered server writer
107
+ ├─ knowledge retrieval events
108
+ ├─ pi-agent raw events
109
+ ├─ artifact events
110
+ └─ done/error/cancel
111
+ -> server adapter: tool-status-events.ts
112
+ -> /api/prompt SSE stable v1 events
113
+ -> web api.ts typed events
114
+ -> tool-status-model.ts reducer keyed by runId/messageId
115
+ -> ChatPanel assistant message state
116
+ -> ToolStatusRunway + ToolHistorySummary
117
+ ```
118
+
119
+ 前端不得直接绑定底层 `pi-agent` 原始事件字段。后端负责把版本差异整理成工作台自己的稳定事件。
120
+
121
+ 同一次 assistant 回复必须有稳定 `runId` 和 `messageId`,文本、工具、artifact、错误、完成、取消事件都必须带同一个边界 ID。前端只允许把事件归到匹配的当前 assistant 消息里,迟到事件不能污染下一条回复。
122
+
123
+ ## 事件协议契约
124
+
125
+ 后端和前端必须共享同一份工作台 Tool Status 事件定义,避免两边各自手写字段后漂移。
126
+
127
+ 要求:
128
+
129
+ - 新增或明确一份稳定 v1 事件契约,覆盖 `assistant_text_delta`、`tool_status_start`、`tool_status_update`、`tool_status_end`、`tool_status_summary`、`assistant_done`、`assistant_error`、`assistant_cancelled`。
130
+ - 契约至少包含 `schemaVersion`、`runId`、`messageId`、单调递增 `seq`、工具调用 ID、工具名、用户可读动作、目标、状态、分组、摘要可见性、错误信息。
131
+ - 不能使用“或等价事件”作为实现逃口;阶段 2 之后 `/api/prompt` 对前端只输出 v1 契约事件,legacy 事件只能作为临时兼容或 feature flag fallback。
132
+ - 后端输出前先做隐私脱敏,不能把完整用户 home 绝对路径、原始长命令或敏感路径只交给前端截断。
133
+ - 后端适配器测试必须用样例原始事件证明能输出契约事件。
134
+ - 前端 reducer/formatter 测试必须复用同一批样例契约事件,证明能生成当前工具条和折叠摘要。
135
+ - 历史消息转换必须输出同一套摘要数据,不恢复运行中跑马灯;旧历史缺少参数、目标、错误时只能做“尽力摘要”,不能伪造丰富明细。
136
+ - 取消和断开连接必须是一等状态:客户端主动停止、浏览器断开、后端 abort 都要清理当前运行工具;前端不能留下永远运行中的工具条。
137
+
138
+ ## 并发、排序和降级
139
+
140
+ - `/api/prompt` 必须对同一 active session 做并发保护:已有 prompt 运行时,新 prompt 要么返回明确错误,要么进入显式队列;不得让两个 prompt 共享同一全局 active session 并交错写事件。
141
+ - 后端必须为每个 prompt 建立单一有序 writer。知识库检索、pi-agent 订阅、artifact、done/error/cancel 都通过这个 writer 分配 `seq`,避免 `done` 先于工具结束、artifact 插错回复等乱序。
142
+ - 取消分两层处理:前端本地立即把当前 runway 标为 cancelled;后端对 session 执行 abort 和资源清理。浏览器已经断开时,后端不承诺还能把 cancelled 事件写回该浏览器。
143
+ - 迁移期可以有显式 feature flag fallback,例如 `legacy` / `tool-status-v1`,但阶段 5 结束时默认路径必须是 v1;fallback 的存在不能成为跳过验收的理由。
144
+ - 真实模型浏览器验收之外,还必须提供可重复的假事件流或测试入口,用固定事件脚本验证 UI 动态、折叠、取消、长历史和窄屏表现。
145
+
146
+ ## 阶段 1:依赖迁移和事件能力验证
147
+
148
+ 目标:把项目内部 `pi-agent` 依赖迁移到能对齐新版 `omp` 事件模型的包版本,并证明现有主链路没有被破坏。
149
+
150
+ 实现面:
151
+
152
+ - `workbench/server/package.json`
153
+ - `package-lock.json`
154
+ - `workbench/server/src/agent.ts`
155
+ - `workbench/server/src/conversations.ts`
156
+ - `workbench/server/src/extensions/*`
157
+ - `workbench/server/src/digest/subagent.ts`
158
+
159
+ 任务:
160
+
161
+ ### 1.1 依赖和 API 勘查
162
+
163
+ 确认当前项目使用的 `@earendil-works/*` 包、全局 `omp` 使用的 `@oh-my-pi/*` 包、npm 上可用目标版本,以及新版 SDK 的导出路径和事件类型。正式改项目依赖前,先做一个隔离探针,证明目标包能在本项目的 Node 后端环境里被导入、创建会话,并产出需要的工具事件。
164
+
165
+ 验收:
166
+
167
+ - 记录目标包名和版本选择依据到 progress 的 `decision_log`;依据以 npm 版本、package 元数据、源码导出和 lockfile 证据为准,全局 `omp` 只能作为参考样本,不能作为唯一依据。
168
+ - 把新版包当成潜在 runtime migration 审核,不只当小版本 bump;必须逐项确认 SessionManager、auth/model 配置、ResourceLoader、extensions、message types、artifact 事件、abort 能力是否仍可用。
169
+ - 隔离探针在不修改项目正式依赖的前提下证明:Node 能导入目标 SDK、创建最小 session、订阅并观察到 `tool_execution_start` / `tool_execution_update` / `tool_execution_end` 中可用的工具名、参数、意图和结束状态;如果探针失败,progress 必须记录失败点,且不得进入 1.2。
170
+ - 隔离探针必须在临时目录执行,记录命令、目标版本、Node 版本和可复现证据;不能修改项目 `package.json`、`package-lock.json` 或 `node_modules`。
171
+ - 不修改功能代码。
172
+ - `npm run typecheck` 在原状态下 exits 0;如果原状态已经失败,progress 必须记录失败输出,并且 1.2 的验收必须先恢复迁移相关 typecheck。
173
+
174
+ ### 1.2 迁移项目依赖和导入路径
175
+
176
+ 把项目内部依赖迁移到目标 `pi-agent` 包族,更新导入路径和类型使用,直到后端可以编译。
177
+
178
+ 验收:
179
+
180
+ - `npm install` exits 0。
181
+ - `npm run typecheck --workspace=@llm-wiki-agent/server` exits 0。
182
+ - 不修改用户全局 `omp` 或全局 `pi-agent`。
183
+ - 不直接修改 `node_modules`。
184
+
185
+ ### 1.3 后端运行烟测
186
+
187
+ 启动后端和前端,证明基础会话、知识库上下文、Skill 注册、会话历史读取仍然可用。
188
+
189
+ 验收:
190
+
191
+ - `npm run dev` 能启动前端和后端,前端端口为 `5180`,后端端口为 `8787`。
192
+ - `npm run dev` 烟测必须有明确 readiness 检查和进程清理记录;不能只看长运行命令没有退出。
193
+ - 浏览器打开 `http://localhost:5180/` 能加载。
194
+ - 选中一个知识库后能看到当前模型和对话区域。
195
+ - 发送一个普通问题能收到 assistant 回复。
196
+ - 发送一个会触发当前知识库检索的问题,后端没有报错。
197
+ - `npm run typecheck` exits 0。
198
+
199
+ 阶段 1 完成规则:1.1、1.2、1.3 全部验收通过并提交后,自动进入阶段 2。
200
+
201
+ ## 阶段 2:后端稳定工具事件协议
202
+
203
+ 目标:后端提供工作台自己的稳定工具事件,不让前端依赖底层事件差异。
204
+
205
+ 实现面:
206
+
207
+ - `workbench/server/src/index.ts`
208
+ - `workbench/server/src/tool-status-events.ts`
209
+ - `workbench/server/src/tool-status-events.test.ts`
210
+ - `workbench/server/src/conversations.ts`
211
+
212
+ 任务:
213
+
214
+ ### 2.1 建立 Tool Status 事件适配器
215
+
216
+ 新增后端适配器,把新版 `pi-agent` 原始事件转换为稳定事件:`assistant_text_delta`、`tool_status_start`、`tool_status_update`、`tool_status_end`、`tool_status_summary`、`assistant_done`、`assistant_error`。
217
+
218
+ 验收:
219
+
220
+ - 契约事件固定为 v1 schema,所有事件都有 `schemaVersion`、`runId`、`messageId`、`seq`。
221
+ - 适配器能处理工具开始、参数更新、工具结束、工具失败、缺参数事件。
222
+ - 适配器能从 read/write/bash/search/skill 常见参数生成用户可读动作和目标。
223
+ - 适配器输出前完成路径和命令脱敏;测试覆盖用户 home 绝对路径、长路径、长命令。
224
+ - 并行工具状态规则明确:runway 显示最近活跃工具,同时记录仍在运行的其他工具数量;工具 B 结束时不能误关仍在运行的工具 A。
225
+ - 后端测试覆盖并快照一组契约事件样例,作为前端解析和历史摘要测试的同源输入。
226
+ - `node --import tsx --test workbench/server/src/tool-status-events.test.ts` exits 0。
227
+
228
+ ### 2.2 接入 `/api/prompt` SSE
229
+
230
+ 把 `/api/prompt` 从旧的 `tool_start` / `tool_end` 输出改为稳定工具事件。当前知识库检索也要作为同一套工具状态事件进入前端,而不是单独塞进旧工具列表。
231
+
232
+ 验收:
233
+
234
+ - `text_delta` 或等价正文增量仍能正常流式输出。
235
+ - 知识库检索开始、完成、为空、失败都有工具状态事件。
236
+ - artifact_created 事件不被破坏。
237
+ - 所有事件通过单一 ordered writer 输出,`seq` 单调递增;done/error/cancel 只能在当前 writer flush 后输出。
238
+ - 同一 active session 的并发 prompt 被明确拒绝或排队,测试覆盖并发请求不会混写事件。
239
+ - 客户端断开或主动停止时,后端调用新版 session abort 能力;若底层不支持,必须记录降级理由,并至少停止继续写 SSE。
240
+ - 中断时后端清理当前运行工具状态;如果客户端仍连接则发送 `assistant_cancelled` 和 active tools 的 `cancelled` 收尾事件,如果已断开则只做后端清理和持久化安全处理。
241
+ - `npm run typecheck --workspace=@llm-wiki-agent/server` exits 0。
242
+
243
+ ### 2.3 历史消息摘要兼容
244
+
245
+ 更新会话历史转换,让历史 assistant 消息能显示完成后的工具摘要,而不是恢复动态跑马灯或旧的一长串工具。
246
+
247
+ 验收:
248
+
249
+ - 旧会话中已有工具调用仍能显示为摘要。
250
+ - 旧会话缺少目标、参数、结果、错误时显示“历史工具调用”这类 best-effort 摘要,不伪造不存在的细节。
251
+ - 新会话摘要的持久化策略明确:要么从 pi session messages 可再生,要么保存工作台摘要字段;刷新页面后折叠摘要不能凭空消失。
252
+ - 没有工具调用的历史消息不显示空摘要。
253
+ - `node --import tsx --test workbench/server/src/tool-status-events.test.ts workbench/server/src/retrieval.test.ts` exits 0。
254
+
255
+ 阶段 2 完成规则:所有任务验收通过,`npm run typecheck` exits 0,并提交后自动进入阶段 3。
256
+
257
+ ## 阶段 3:前端工具状态模型
258
+
259
+ 目标:前端建立独立的工具状态模型,当前工具条和历史摘要由模型驱动,不再把实时工具直接塞进消息数组。
260
+
261
+ 实现面:
262
+
263
+ - `workbench/web/src/lib/api.ts`
264
+ - `workbench/web/src/lib/tool-status-model.ts`
265
+ - `workbench/web/src/lib/tool-status-format.ts`
266
+ - `workbench/web/src/components/ChatPanel.tsx`
267
+ - `workbench/web/test/tool-status-model.test.ts`
268
+ - `workbench/web/test/tool-status-format.test.ts`
269
+
270
+ 任务:
271
+
272
+ ### 3.1 定义前端 Tool Status 类型和 reducer
273
+
274
+ 新增前端类型和 reducer,把 start/update/end/summary 事件归并成当前运行项、完成项、分组摘要、失败项。
275
+
276
+ 验收:
277
+
278
+ - reducer 单测覆盖连续工具切换、缺参数、失败、取消、并行工具、摘要截断。
279
+ - reducer 按 `runId` / `messageId` 归属事件,迟到、重复、未知 run 的事件不会污染当前 assistant 消息。
280
+ - reducer 单测复用阶段 2 的契约事件样例;如果后端事件字段变化,前端测试必须失败。
281
+ - 高频 `tool_status_update` 不得逐条触发昂贵渲染:模型或 ChatPanel 必须合并短时间内的更新,目标刷新节奏控制在约 80-150ms,视觉上顺滑但不刷屏。
282
+ - 完成历史和摘要必须有容量上限;超过上限时折叠为“还有 N 项”,不能让一次长任务把消息对象或 DOM 无限撑大。
283
+ - `npm run test --workspace=@llm-wiki-agent/web -- tool-status-model.test.ts` exits 0,或若 npm test 不支持文件过滤,则 `npm run test --workspace=@llm-wiki-agent/web` exits 0。
284
+
285
+ ### 3.2 格式化用户可读工具动作
286
+
287
+ 新增格式化逻辑,保证 read/write/bash/search/skill 的动作标签和目标短句稳定、可截断、可分组。
288
+
289
+ 验收:
290
+
291
+ - 格式化单测覆盖长路径、长命令、空参数、未知工具。
292
+ - 输出不包含私密绝对路径的完整用户目录;长路径默认保留相对路径或文件名尾部。
293
+ - `npm run test --workspace=@llm-wiki-agent/web` exits 0。
294
+
295
+ ### 3.3 重接 ChatPanel 流式事件
296
+
297
+ ChatPanel 使用新工具状态模型驱动当前 assistant 回复。旧的 `message.tools` 实时追加逻辑停止用于运行中工具展示。
298
+
299
+ 验收:
300
+
301
+ - 文本流仍显示在当前 assistant 回复中。
302
+ - 同一时间当前回复只显示一个当前工具状态。
303
+ - 工具完成后进入摘要,不再生成一长串 `.msg-tool` 行。
304
+ - streaming 期间提供明确的停止入口,触发 AbortController,并立即在前端本地把当前工具条收尾为取消状态;后端成功 abort 是额外确认,不作为前端清理的前置条件。
305
+ - prompt 运行中的按钮和输入状态清楚,不允许用户误以为可以发起第二个并发 prompt;如果后端返回并发拒绝,前端显示可理解错误。
306
+ - `npm run typecheck --workspace=@llm-wiki-agent/web` exits 0。
307
+
308
+ 阶段 3 完成规则:所有任务验收通过,`npm run typecheck` exits 0,并提交后自动进入阶段 4。
309
+
310
+ ## 阶段 4:OMP 风格视觉组件
311
+
312
+ 目标:实现当前 assistant 回复内部的彩色动态工具条,以及丰富但折叠的历史摘要。
313
+
314
+ 实现面:
315
+
316
+ - `workbench/web/src/components/ToolStatusRunway.tsx`
317
+ - `workbench/web/src/components/ToolHistorySummary.tsx`
318
+ - `workbench/web/src/components/ChatPanel.tsx`
319
+ - `workbench/web/src/index.css`
320
+
321
+ 任务:
322
+
323
+ ### 4.1 实现 ToolStatusRunway
324
+
325
+ 新增彩色动态工具条,显示动作动词、目标、状态;支持运行中、完成、失败、取消;支持深色和浅色主题。
326
+
327
+ 验收:
328
+
329
+ - 运行中状态有彩色动态效果。
330
+ - 失败和取消状态视觉上可区分。
331
+ - 目标过长时不会撑破布局。
332
+ - 明确视觉指标:默认折叠摘要最多展示 3 个关键目标,展开明细最多直接渲染 50 项,超过显示剩余数量;工具条更新节奏约 80-150ms;窄屏 390px 无横向滚动。
333
+ - 支持 reduced-motion:系统减少动态效果时取消跑马灯动画,但保留清楚状态、颜色和文本。
334
+ - 深浅主题下状态色和文字对比度可读。
335
+ - `npm run typecheck --workspace=@llm-wiki-agent/web` exits 0。
336
+
337
+ ### 4.2 实现 ToolHistorySummary
338
+
339
+ 新增折叠摘要组件,默认展示分组、数量和少量关键目标;展开后展示完整清单。
340
+
341
+ 验收:
342
+
343
+ - 默认折叠态空间占用小。
344
+ - Read/Write/Bash/Search/Skill 能按组展示。
345
+ - 超过展示上限时显示剩余数量。
346
+ - 极长任务的展开明细也要有可控上限,避免一次消息渲染上百行工具明细导致页面卡顿。
347
+ - 展开/收起不影响正文 Markdown 排版。
348
+ - `npm run test --workspace=@llm-wiki-agent/web` exits 0。
349
+
350
+ ### 4.3 替换旧工具列表视觉
351
+
352
+ 移除或停用当前 `.msg-tools` 实时流水账展示,确保新组件挂在当前 assistant 回复内部、正文之前。
353
+
354
+ 验收:
355
+
356
+ - 复杂任务运行时主聊天区不会出现连续几十行工具名。
357
+ - 历史消息显示折叠摘要,不显示动态跑马灯。
358
+ - 窄屏下没有横向滚动。
359
+ - `npm run typecheck` exits 0。
360
+
361
+ 阶段 4 完成规则:所有任务验收通过,`npm run typecheck` exits 0,并提交后自动进入阶段 5。
362
+
363
+ ## 阶段 5:端到端验收、文档和收尾
364
+
365
+ 目标:真实跑通长任务,确认体验接近 `omp`,并更新用户可见文档。
366
+
367
+ 实现面:
368
+
369
+ - `README.md`
370
+ - `CHANGELOG.md`
371
+ - 必要时 `workbench/PRODUCT.md`
372
+ - 浏览器验证记录写入 progress 文件
373
+
374
+ 任务:
375
+
376
+ ### 5.1 真实任务浏览器验收
377
+
378
+ 启动应用并运行一个会触发多次 read/write/bash 或 Skill 工具调用的代表性任务。
379
+
380
+ 验收:
381
+
382
+ - Browser 打开 `http://localhost:5180/`。
383
+ - 使用假事件流或测试入口跑固定脚本,稳定覆盖 start/update/end/fail/cancel/long-history/parallel-tools;真实模型长任务作为补充验收。
384
+ - 在 1440px、768px、390px 视口下检查聊天区。
385
+ - 运行任务期间当前 assistant 回复中始终只有一个当前工具条。
386
+ - 工具切换时工具条内容更新。
387
+ - 点击停止后当前工具条显示取消状态,后端不继续向该次请求写入工具事件。
388
+ - 工具结束后出现折叠摘要。
389
+ - 展开摘要后能看到分组和明细。
390
+ - 没有明显文字溢出、遮挡输入框、横向滚动。
391
+ - 验收截图或文字证据记录到 progress。
392
+
393
+ ### 5.2 回归验证
394
+
395
+ 跑自动检查和核心后端/前端测试。
396
+
397
+ 验收:
398
+
399
+ - `npm run typecheck` exits 0。
400
+ - `npm run test --workspace=@llm-wiki-agent/web` exits 0。
401
+ - `node --import tsx --test workbench/server/src/*.test.ts` exits 0,或如果某些既有 server 测试因环境前置条件失败,记录失败测试名、失败原因,并至少证明本次新增/修改的 server 测试 exits 0。
402
+ - 不允许本次新增/修改的 server 测试被“既有环境问题”豁免;新增测试必须稳定通过。
403
+
404
+ ### 5.3 文档更新
405
+
406
+ 按仓库规则更新用户可见文档。
407
+
408
+ 验收:
409
+
410
+ - `CHANGELOG.md` 顶部增加本次功能条目。
411
+ - `README.md` 的功能列表提到 `omp` 风格动态工具状态和折叠摘要。
412
+ - 如果实现中改变了产品阶段或 ADR 决策,`workbench/PRODUCT.md` 有对应说明;如果没有改变,progress 记录“不需要更新 PRODUCT.md”的理由。
413
+ - `git diff --check` exits 0。
414
+
415
+ 阶段 5 完成规则:所有验收通过,progress 记录最终状态和残余风险,提交最后一个工作单元后停止并汇报。
416
+
417
+ ## 测试计划
418
+
419
+ 自动测试:
420
+
421
+ - `npm run typecheck`
422
+ - `npm run typecheck --workspace=@llm-wiki-agent/server`
423
+ - `npm run typecheck --workspace=@llm-wiki-agent/web`
424
+ - `npm run test --workspace=@llm-wiki-agent/web`
425
+ - `node --import tsx --test workbench/server/src/tool-status-events.test.ts`
426
+ - `node --import tsx --test workbench/server/src/*.test.ts`
427
+
428
+ 浏览器测试:
429
+
430
+ - `http://localhost:5180/`
431
+ - 视口:1440px desktop、768px tablet、390px mobile
432
+ - 场景:普通问答、当前知识库检索、多工具长任务、停止/取消、并行工具事件脚本、长历史摘要、历史会话恢复、深色/浅色主题切换、reduced-motion
433
+
434
+ ## 不在范围内
435
+
436
+ - 不修改用户本机全局 `omp`。
437
+ - 不直接修改 `node_modules`。
438
+ - 不把工具完整输出铺进主聊天区。
439
+ - 不重做整个聊天系统。
440
+ - 不新增桌面打包能力。
441
+ - 不新增无关知识库功能。
442
+
443
+ ## 失败模式和恢复
444
+
445
+ - 依赖升级后 SDK API 不兼容:阶段 1 必须先修 imports/typecheck,不能进入 UI 阶段;必要时锁定可用新版版本并记录理由。
446
+ - 新版事件缺少某些工具参数:后端适配器必须降级显示工具名和通用动作,不能让前端空白。
447
+ - 两个 prompt 并发进入同一 session:后端必须拒绝或排队,不能混写事件;前端收到拒绝时显示清楚错误。
448
+ - 多来源异步写 SSE 乱序:所有输出必须经过 ordered writer,done/error/cancel 是最后的终态事件。
449
+ - 迟到事件污染下一条回复:事件契约必须带 `runId` / `messageId` / `seq`,前端 reducer 丢弃不匹配事件。
450
+ - 多工具并行导致当前工具跳动过快:前端模型显示最近活跃项,摘要保留全部,必要时显示“另有 N 项运行中”。
451
+ - 高频工具更新导致前端卡顿:前端必须合并短时间内的 update 事件,并限制历史摘要容量;完整原始输出不进入主聊天 DOM。
452
+ - 历史会话缺少新摘要字段:历史转换必须从已有 assistant tool calls 生成摘要,不能破坏旧会话展示。
453
+ - 用户中断请求但后台继续跑:`/api/prompt` 必须把客户端 abort 传到底层 session 并做后端清理;前端本地立即收尾为 cancelled,如果底层 abort 不可用,必须记录降级并确保 UI 不显示假运行。
454
+ - 旧历史缺少丰富工具信息:只显示 best-effort 摘要,不伪造参数、目标或错误。
455
+ - 隐私路径泄露:后端适配器在事件输出和历史摘要生成前脱敏,前端截断只是第二道保护。
456
+ - 动画影响可读性或性能:CSS 动效必须可读,长文本截断;如果系统减少动态效果,仍要保留清楚状态。
457
+
458
+ ## 决策记录
459
+
460
+ - 决策:采用项目内依赖升级,而不是只做前端包装。
461
+ 原因:用户明确要求对齐新版 `omp` 事件模型,不接受 MVP 版。
462
+ 拒绝方案:只用旧 start/end 事件做粗粒度工具条。
463
+ 来源:用户确认“升级这个项目里依赖的那份 pi-agent,然后对齐新版 omp 的事件模型”。
464
+
465
+ - 决策:前端不直接绑定 `pi-agent` 原始事件。
466
+ 原因:底层依赖升级可能带来事件字段变化,工作台需要稳定协议。
467
+ 拒绝方案:ChatPanel 直接识别所有底层事件字段。
468
+ 来源:spec 的“事件设计”和现有 SSE 结构。
469
+
470
+ - 决策:工具条放在当前 assistant 回复内部、正文之前。
471
+ 原因:用户在视觉草图中选择 A。
472
+ 拒绝方案:悬浮输入框上方或顶部状态栏。
473
+ 来源:用户选择。
474
+
475
+ ## /goal Starter
476
+
477
+ ```text
478
+ /goal Implement docs/plans/2026-06-15-omp-tool-status-events-phased-plan.md by following its execution ledger.
479
+
480
+ Each turn:
481
+ 1. Read docs/plans/2026-06-15-omp-tool-status-events-progress.json, then the current task in the plan.
482
+ 2. Run `git log --oneline -15` and `npm run typecheck`; repair a broken state before starting new work.
483
+ 3. Work only on the current work unit.
484
+ 4. After verification passes: update the progress file (status, evidence, and log fields only), commit that unit, record the commit hash. Never commit on failed verification. Never push, merge, or amend.
485
+ 5. When a phase's acceptance checks all pass, record it and continue to the next phase without asking.
486
+
487
+ Done when every task is complete, every acceptance check is proven, and the progress file records final status and residual risk.
488
+ ```
489
+
490
+ ## 工程审核补充
491
+
492
+ ### Review 状态
493
+
494
+ - Step 0 scope challenge:复杂度确实高,但用户已确认不要 MVP,保留完整 `omp` 级体验。
495
+ - Architecture review:发现 4 组必须加固点,均已写入计划:依赖隔离探针、共享事件契约、停止/取消收尾、请求边界与事件排序。
496
+ - Code quality review:没有要求删减模块;当前拆分方向合理,关键是不要把新状态逻辑继续堆进 ChatPanel。
497
+ - Test review:需要从计划阶段就绑定契约 fixture、取消路径、性能上限和浏览器验收。
498
+ - Performance review:已补充高频 update 合并和历史摘要上限。
499
+ - Outside voice:Codex 独立审核已运行,采纳其关于 run/message ID、ordered writer、并发保护、假事件流、历史 best-effort 和后端脱敏的建议。
500
+
501
+ ### What Already Exists
502
+
503
+ - `/api/prompt` 已经把 pi-agent 事件转成 SSE,但目前只有粗粒度 `tool_start` / `tool_end`。
504
+ - 当前知识库检索已经有 start / done / empty / error 事件,但它走的是旧工具列表逻辑。
505
+ - 前端 `ChatPanel` 已经有 `AbortController`,但没有清楚的停止入口,也没有把中断传成工具取消状态。
506
+ - `parseSSE` 已经支持 `POST + fetch + ReadableStream`,适合保留,不需要改成 EventSource。
507
+ - 历史会话转换已经能提取 assistant 里的工具名,但只能输出扁平 done 列表,需要升级为摘要数据。
508
+
509
+ ### Tool Status State Machine
510
+
511
+ ```text
512
+ raw pi-agent event
513
+ ├─ tool_execution_start
514
+ │ -> running(toolCallId)
515
+ ├─ tool_execution_update
516
+ │ -> running(toolCallId, latest args/result)
517
+ ├─ tool_execution_end(isError=false)
518
+ │ -> done(toolCallId) -> summary
519
+ ├─ tool_execution_end(isError=true)
520
+ │ -> failed(toolCallId) -> summary
521
+ └─ client abort / session abort
522
+ -> cancelled(active toolCallIds) -> summary
523
+
524
+ frontend render
525
+ running latest active item -> ToolStatusRunway
526
+ done/failed/cancelled items -> ToolHistorySummary
527
+ old persisted messages -> summary only, never live runway
528
+ ```
529
+
530
+ ### Test Coverage Diagram
531
+
532
+ ```text
533
+ CODE PATHS USER FLOWS
534
+ [+] Dependency migration [+] Normal prompt
535
+ ├── [GAP] Node import/session probe [Phase 1.1] └── [GAP] text streams, no tool UI regression
536
+ ├── [GAP] package/import migration [Phase 1.2] [+] Knowledge-base retrieval
537
+ └── [GAP] backend smoke [Phase 1.3] ├── [GAP] start/done/empty/error as tool status
538
+ └── [GAP] retrieval failure degrades visibly
539
+ [+] Backend stable events
540
+ ├── [GAP] raw start/update/end -> contract [Phase 2.1] [+] Multi-tool long task [->E2E]
541
+ ├── [GAP] failure/missing args fallback [Phase 2.1] ├── [GAP] one live runway, not a wall of tools
542
+ ├── [GAP] prompt SSE emits v1 contract [Phase 2.2] ├── [GAP] tool switching stays readable
543
+ ├── [GAP] ordered seq writer [Phase 2.2] ├── [GAP] parallel tool status stays coherent
544
+ ├── [GAP] concurrent prompt guard [Phase 2.2] └── [GAP] finished folded summary expands
545
+ ├── [GAP] abort/disconnect -> cleanup [Phase 2.2]
546
+ └── [GAP] old history -> best-effort summary [Phase 2.3]
547
+ [+] Stop/cancel [->E2E]
548
+ [+] Frontend model/render ├── [GAP] stop button aborts current request
549
+ ├── [GAP] reducer: switch/parallel/fail/cancel [3.1] ├── [GAP] active runway becomes cancelled
550
+ ├── [GAP] run/message ID event ownership [3.1] └── [GAP] backend stops writing that stream
551
+ ├── [GAP] shared fixture compatibility [3.1]
552
+ ├── [GAP] update coalescing/history cap [3.1]
553
+ ├── [GAP] safe labels/truncation/privacy [3.2] [+] Responsive visual QA
554
+ └── [GAP] ChatPanel integration [3.3] ├── [GAP] 1440px / 768px / 390px
555
+ ├── [GAP] no overflow or input overlap
556
+ [+] Visual components ├── [GAP] dark/light states readable
557
+ ├── [GAP] ToolStatusRunway states [4.1]
558
+ ├── [GAP] ToolHistorySummary fold/expand [4.2]
559
+ ├── [GAP] fake event stream visual script [5.1]
560
+ └── [GAP] old .msg-tools disabled [4.3]
561
+
562
+ COVERAGE NOW: plan-stage only, implementation not started.
563
+ REQUIRED BEFORE SHIP: all GAP lines above must have unit, server, or browser evidence in progress.json.
564
+ ```
565
+
566
+ ### Failure Modes
567
+
568
+ | Flow | Realistic failure | Planned coverage | User impact if missed |
569
+ |---|---|---|---|
570
+ | Dependency upgrade | Target package imports in Bun but fails under project Node | Phase 1.1 isolated probe | Upgrade breaks backend before UI work starts |
571
+ | Event adapter | Bottom-layer event fields change names | Shared contract fixture tests | Frontend silently stops showing tools |
572
+ | Prompt boundary | Late event from one reply lands in another reply | runId/messageId/seq reducer tests | Wrong tool appears under the wrong answer |
573
+ | Prompt concurrency | Two API prompts share one active session | same-session prompt guard test | Tool events and history mix together |
574
+ | Event ordering | done/artifact/tool end race each other | ordered writer test | Summary appears before the tool actually ends |
575
+ | Prompt SSE | Client disconnect does not abort session | Phase 2.2 abort test and browser stop QA | User thinks task stopped while backend keeps running |
576
+ | Frontend reducer | Parallel tools leave stale running item | Reducer tests for parallel and cancel | Runway spins forever or shows wrong current action |
577
+ | Formatter | Long absolute path leaks local home path | Formatter tests for long path privacy | Private path appears in chat UI |
578
+ | History conversion | Old sessions restore live-looking tools | History summary compatibility test | Old messages look like they are still running |
579
+ | Visual components | Long command stretches layout | 390px/768px/1440px browser QA | Chat text overlaps or horizontal scroll appears |
580
+ | High-frequency updates | Every update forces visible re-render | Coalescing and history cap tests | Long tasks feel laggy and visually noisy |
581
+
582
+ No silent critical gap remains after the added requirements, assuming implementation follows the acceptance checks.
583
+
584
+ ### Parallelization Strategy
585
+
586
+ | Step | Modules touched | Depends on |
587
+ |---|---|---|
588
+ | Phase 1 dependency probe/migration | server dependencies, server imports | — |
589
+ | Phase 2 backend contract | server prompt route, server adapter, history conversion | Phase 1 |
590
+ | Phase 3 frontend model | web API/types, reducer, formatter | Phase 2 contract fixture |
591
+ | Phase 4 visual components | web components, CSS, ChatPanel | Phase 3 model |
592
+ | Phase 5 QA/docs | browser QA, README, CHANGELOG | Phases 1-4 |
593
+
594
+ Recommended order: Phase 1 is sequential. After Phase 2 contract fixtures exist, Phase 3 reducer/formatter and Phase 4 visual styling can partially overlap only if both use the same fixture contract. Final ChatPanel integration and browser QA stay sequential.
595
+
596
+ Conflict flags: Phase 3 and Phase 4 both touch `workbench/web/src/components/ChatPanel.tsx`; keep that integration in one lane to avoid merge churn.
597
+
598
+ ### Implementation Tasks
599
+
600
+ Synthesized from this review's findings. Each task derives from a specific finding above. Run with Claude Code or Codex; checkbox as you ship.
601
+
602
+ - [ ] **T1 (P1, human: ~2h / CC: ~20min)** — dependency — Prove target pi-agent package in isolated Node probe before migration
603
+ - Surfaced by: Architecture review D2 — `@oh-my-pi` package is Bun-oriented, so project migration needs a Node import/session/event probe first.
604
+ - Files: `workbench/server/package.json`, `package-lock.json`, progress ledger.
605
+ - Verify: isolated probe evidence recorded, then `npm run typecheck` still passes in the pre-migration state.
606
+ - [ ] **T2 (P1, human: ~2h / CC: ~20min)** — event contract — Create shared backend/frontend tool status contract fixtures
607
+ - Surfaced by: Architecture review D3 — backend and frontend would otherwise hand-write event fields and drift silently.
608
+ - Files: `workbench/server/src/tool-status-events.ts`, `workbench/server/src/tool-status-events.test.ts`, `workbench/web/src/lib/tool-status-model.ts`, `workbench/web/test/tool-status-model.test.ts`.
609
+ - Verify: backend adapter tests and frontend reducer tests reuse the same fixture data.
610
+ - [ ] **T3 (P1, human: ~2h / CC: ~20min)** — cancel flow — Propagate stop/disconnect to session abort and cancelled tool endings
611
+ - Surfaced by: Architecture review D4 — current UI has an AbortController but no stop path, and `/api/prompt` does not call `session.abort()` on disconnect.
612
+ - Files: `workbench/server/src/index.ts`, `workbench/server/src/tool-status-events.ts`, `workbench/web/src/components/ChatPanel.tsx`, `workbench/web/src/lib/tool-status-model.ts`.
613
+ - Verify: server abort test plus browser stop/cancel QA.
614
+ - [ ] **T4 (P2, human: ~1h / CC: ~10min)** — frontend performance — Coalesce rapid tool updates and cap long history summaries
615
+ - Surfaced by: Performance review D5 — raw tool update bursts can cause flicker, DOM bloat, and sluggish long-task rendering.
616
+ - Files: `workbench/web/src/lib/tool-status-model.ts`, `workbench/web/src/components/ToolStatusRunway.tsx`, `workbench/web/src/components/ToolHistorySummary.tsx`, `workbench/web/test/tool-status-model.test.ts`.
617
+ - Verify: reducer tests simulate rapid update bursts and long histories.
618
+ - [ ] **T5 (P1, human: ~2h / CC: ~20min)** — stream boundary — Add run/message IDs, ordered writer, and prompt concurrency guard
619
+ - Surfaced by: Outside voice D6 — without request ownership and ordered writing, late events or parallel prompts can land in the wrong assistant reply.
620
+ - Files: `workbench/server/src/index.ts`, `workbench/server/src/tool-status-events.ts`, `workbench/web/src/lib/api.ts`, `workbench/web/src/lib/tool-status-model.ts`.
621
+ - Verify: server tests cover monotonic `seq`, done-after-flush, and same-session concurrent prompt rejection or queueing.
622
+ - [ ] **T6 (P1, human: ~2h / CC: ~20min)** — QA harness — Add deterministic fake event stream for visual and cancellation QA
623
+ - Surfaced by: Outside voice D6 — real model/browser QA is necessary but not stable enough as the only acceptance signal.
624
+ - Files: `workbench/server/src/index.ts`, `workbench/web/src/components/ChatPanel.tsx`, `workbench/web/test/tool-status-model.test.ts`, progress evidence.
625
+ - Verify: fake script covers start/update/end/fail/cancel/parallel-tools/long-history at 1440px, 768px, and 390px.
626
+
627
+ ### Review Completion Summary
628
+
629
+ - Step 0: Scope Challenge — scope accepted as-is; no MVP reduction.
630
+ - Architecture Review: 4 issue groups found and folded into the plan.
631
+ - Code Quality Review: 0 new issues; keep ChatPanel from absorbing the new state machine.
632
+ - Test Review: diagram produced, 6 core gaps converted into acceptance checks and tasks.
633
+ - Performance Review: 1 issue found and folded into the plan.
634
+ - Outside voice: ran (Codex), accepted D6 hardening set.
635
+ - NOT in scope: already written in this plan; no new out-of-scope item added.
636
+ - TODOS.md updates: 0 items proposed; no standalone follow-up is needed before implementation.
637
+ - Failure modes: 0 silent critical gaps after the added requirements.
638
+ - Parallelization: 5 workstreams, mostly sequential until the shared contract fixture exists.
639
+ - Lake Score: 6/6 recommendations chose the complete option.
640
+
641
+ ## GSTACK REVIEW REPORT
642
+
643
+ | Review | Trigger | Why | Runs | Status | Findings |
644
+ |--------|---------|-----|------|--------|----------|
645
+ | CEO Review | `/plan-ceo-review` | Scope & strategy | 0 | — | Not run |
646
+ | Codex Review | `/codex review` | Independent 2nd opinion | 1 | REVIEWED | Found request-boundary, ordering, concurrency, fake-QA, legacy-history, and privacy hardening; accepted into plan |
647
+ | Eng Review | `/plan-eng-review` | Architecture & tests (required) | 1 | CLEAR | 6 issues, 0 critical gaps; all folded into plan |
648
+ | Design Review | `/plan-design-review` | UI/UX gaps | 0 | — | Not run |
649
+ | DX Review | `/plan-devex-review` | Developer experience gaps | 0 | — | Not run |
650
+
651
+ - **CODEX:** Outside voice ran and D6 hardening was accepted into the plan.
652
+ - **CROSS-MODEL:** Both reviews agree the complete path needs dependency probing, a stable event contract, cancellation handling, and browser proof; Codex added stricter request ownership, ordering, concurrency, and deterministic fake-event QA.
653
+ - **VERDICT:** ENG CLEARED — ready to implement.
654
+
655
+ NO UNRESOLVED DECISIONS