@runfusion/fusion 0.73.0-beta.2 → 0.73.0-beta.4

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 (291) hide show
  1. package/agent-browser.mjs +8 -0
  2. package/dist/bin.js +7664 -11386
  3. package/dist/child-process-worker.js +4292 -8374
  4. package/dist/client/.vite/manifest.json +266 -256
  5. package/dist/client/assets/{AgentDetailView-CUoHZPZr.js → AgentDetailView-BBOL6AgZ.js} +3 -3
  6. package/dist/client/assets/{AgentPermissionPolicyEditor-DKoHJIlF.js → AgentPermissionPolicyEditor-DV7OPUhR.js} +1 -1
  7. package/dist/client/assets/{AgentsView-CaBo-FHV.js → AgentsView-B6xoAHyV.js} +4 -4
  8. package/dist/client/assets/ChatView-DwVjnxM8.js +8 -0
  9. package/dist/client/assets/{CommandCenter-wgiEIVuC.js → CommandCenter-DYWaoYFD.js} +9 -9
  10. package/dist/client/assets/DevServerView-BY5up-NA.js +1 -0
  11. package/dist/client/assets/{DirectoryPicker-B7YwgF53.js → DirectoryPicker-fM8MJa2r.js} +1 -1
  12. package/dist/client/assets/DocumentsView-D2KxsPG_.js +1 -0
  13. package/dist/client/assets/{EvalsView-BjyqxMS_.js → EvalsView-U8dOvTRM.js} +1 -1
  14. package/dist/client/assets/{ExperimentalAgentOnboardingModal-_PMSa_gN.js → ExperimentalAgentOnboardingModal-C27y8Y-1.js} +1 -1
  15. package/dist/client/assets/{GoalsView-BzLA8GX9.js → GoalsView-D-2wmy-O.js} +1 -1
  16. package/dist/client/assets/{InsightsView-Cb_tUr1V.js → InsightsView-zLyuQL_l.js} +2 -2
  17. package/dist/client/assets/{MemoryView-CRxOPCQq.js → MemoryView-D-tSn48u.js} +2 -2
  18. package/dist/client/assets/{PiExtensionsManager-XQ5rWJT3.js → PiExtensionsManager-DvwmvGEY.js} +2 -2
  19. package/dist/client/assets/PluginManager-BACOwQAN.js +1 -0
  20. package/dist/client/assets/{PullRequestView-CX6fScVe.js → PullRequestView-DULyv21u.js} +2 -2
  21. package/dist/client/assets/{ReportModal-BSCk5ER1.css → ReportModal-BuhhqtXJ.css} +1 -1
  22. package/dist/client/assets/ReportModal-CUlKMFWa.js +21 -0
  23. package/dist/client/assets/{ResearchView-DgKzxRUL.js → ResearchView-DM_O3IFc.js} +2 -2
  24. package/dist/client/assets/{SecretsView-C83SIrjR.js → SecretsView-Bq3u_nAf.js} +1 -1
  25. package/dist/client/assets/SessionTerminal-D00ByR6U.js +2 -0
  26. package/dist/client/assets/SettingsModal-Bb3pIxiX.js +21 -0
  27. package/dist/client/assets/SettingsModal-CMLHZBhX.css +1 -0
  28. package/dist/client/assets/SettingsModal-QRaBE1ds.js +1 -0
  29. package/dist/client/assets/{SettingsTextareaRow-BKGsmZ7C.js → SettingsTextareaRow-CHOJ-qHz.js} +1 -1
  30. package/dist/client/assets/{SetupWizardModal-DIb4q-VT.js → SetupWizardModal-DriQyd81.js} +2 -2
  31. package/dist/client/assets/{SkillsView-D1Zxh1iX.js → SkillsView-BtDyujiZ.js} +1 -1
  32. package/dist/client/assets/{TodoView-CGIcE6Yr.js → TodoView-BNHUnz50.js} +2 -2
  33. package/dist/client/assets/{WorkflowNodeEditor-BtWrziOX.css → WorkflowNodeEditor-BNgkFJ_P.css} +1 -1
  34. package/dist/client/assets/WorkflowNodeEditor-BXikFpra.js +8 -0
  35. package/dist/client/assets/agent-import-generation-B2kYEm1O.js +1 -0
  36. package/dist/client/assets/app-B_HrdDXZ.js +13 -0
  37. package/dist/client/assets/{app-BsIXfnu-.js → app-C6yo-M_n.js} +1 -1
  38. package/dist/client/assets/{app-B-IdUeIu.js → app-CH8ZgPm4.js} +1 -1
  39. package/dist/client/assets/{app-D9ktpVhR.js → app-D4DpgDss.js} +1 -1
  40. package/dist/client/assets/{app-nBTNvNKK.js → app-Qv0blCyY.js} +1 -1
  41. package/dist/client/assets/{app-C8muVNUU.js → app-kFdtajPy.js} +1 -1
  42. package/dist/client/assets/{architectureDiagram-3BPJPVTR-Dv83GkUE.js → architectureDiagram-3BPJPVTR-B-Efjj4Z.js} +1 -1
  43. package/dist/client/assets/{blockDiagram-GPEHLZMM-B_j-RJOz.js → blockDiagram-GPEHLZMM-CaOVxrlM.js} +1 -1
  44. package/dist/client/assets/{c4Diagram-AAUBKEIU-Cy3f-SD1.js → c4Diagram-AAUBKEIU-D8aYt5F1.js} +1 -1
  45. package/dist/client/assets/channel-5bPK6pTS.js +1 -0
  46. package/dist/client/assets/{chunk-2J33WTMH-CPolddUJ.js → chunk-2J33WTMH-VSDT0J0r.js} +1 -1
  47. package/dist/client/assets/{chunk-4BX2VUAB-BAGPgwkc.js → chunk-4BX2VUAB-Chx1wQgD.js} +1 -1
  48. package/dist/client/assets/{chunk-55IACEB6-dzYFOH0q.js → chunk-55IACEB6-MlqjhIJg.js} +1 -1
  49. package/dist/client/assets/{chunk-727SXJPM-ul9hGhiR.js → chunk-727SXJPM-BheQNUi8.js} +1 -1
  50. package/dist/client/assets/{chunk-AQP2D5EJ-C75yqe4-.js → chunk-AQP2D5EJ-C5EoJhfJ.js} +1 -1
  51. package/dist/client/assets/{chunk-FMBD7UC4-BwiLAyup.js → chunk-FMBD7UC4-B8_8qP3j.js} +1 -1
  52. package/dist/client/assets/{chunk-ND2GUHAM-CVv1sLhy.js → chunk-ND2GUHAM-BuglCGRx.js} +1 -1
  53. package/dist/client/assets/{chunk-QZHKN3VN-D1c-k3xL.js → chunk-QZHKN3VN-B7_06dxp.js} +1 -1
  54. package/dist/client/assets/classDiagram-4FO5ZUOK-Dv9RQDqG.js +1 -0
  55. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Dv9RQDqG.js +1 -0
  56. package/dist/client/assets/{cose-bilkent-S5V4N54A-DosMsFd6.js → cose-bilkent-S5V4N54A-Cm-ZOycx.js} +1 -1
  57. package/dist/client/assets/{dagre-BM42HDAG-9os-QBXe.js → dagre-BM42HDAG-Dj_Gwjpv.js} +1 -1
  58. package/dist/client/assets/{dashboard-view-CNVTxyWE.js → dashboard-view-B4CRL5Fy.js} +1 -1
  59. package/dist/client/assets/{dashboard-view-Bn7iL770.js → dashboard-view-noD9p0Zs.js} +1 -1
  60. package/dist/client/assets/{dashboard-view-iwAS1HTp.js → dashboard-view-pXXSUxG9.js} +1 -1
  61. package/dist/client/assets/{diagram-2AECGRRQ-ChjuJgA6.js → diagram-2AECGRRQ-C_9BfShy.js} +1 -1
  62. package/dist/client/assets/{diagram-5GNKFQAL-Cq10aB4z.js → diagram-5GNKFQAL-Cmg2qpCj.js} +1 -1
  63. package/dist/client/assets/{diagram-KO2AKTUF-CKjyrzjg.js → diagram-KO2AKTUF-2FNo2HXb.js} +1 -1
  64. package/dist/client/assets/{diagram-LMA3HP47-DxCc1BsH.js → diagram-LMA3HP47-DgnVeCp-.js} +1 -1
  65. package/dist/client/assets/{diagram-OG6HWLK6-DJWEkDsR.js → diagram-OG6HWLK6-iAIR50HH.js} +1 -1
  66. package/dist/client/assets/{erDiagram-TEJ5UH35-gVkDYC92.js → erDiagram-TEJ5UH35-Da4I04eN.js} +1 -1
  67. package/dist/client/assets/{flowDiagram-I6XJVG4X-1lw1mQRQ.js → flowDiagram-I6XJVG4X-Bv9r2T0m.js} +1 -1
  68. package/dist/client/assets/{folder-open-Nmr7nRmN.js → folder-open-CwWtrDh6.js} +1 -1
  69. package/dist/client/assets/{ganttDiagram-6RSMTGT7-Yzq4WZRo.js → ganttDiagram-6RSMTGT7-BMeO84U_.js} +1 -1
  70. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-cFR9Gv8n.js → gitGraphDiagram-PVQCEYII-CWDh_RIb.js} +1 -1
  71. package/dist/client/assets/index-CB3mYxAB.css +1 -0
  72. package/dist/client/assets/index-CE7C_XsS.js +2661 -0
  73. package/dist/client/assets/{infoDiagram-5YYISTIA-BbRiTnD3.js → infoDiagram-5YYISTIA-BAE4KtCL.js} +1 -1
  74. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-DD4i2Znk.js → ishikawaDiagram-YF4QCWOH-C_iXAuOy.js} +1 -1
  75. package/dist/client/assets/{journeyDiagram-JHISSGLW-qHPO2M-C.js → journeyDiagram-JHISSGLW-BnxSHwDo.js} +1 -1
  76. package/dist/client/assets/{kanban-definition-UN3LZRKU-EuFfgxUv.js → kanban-definition-UN3LZRKU-DYNRm3Nu.js} +1 -1
  77. package/dist/client/assets/{mermaid.core-Cru9Vzsy.js → mermaid.core-B3hvDDep.js} +4 -4
  78. package/dist/client/assets/{mindmap-definition-RKZ34NQL-mCvtfapj.js → mindmap-definition-RKZ34NQL-s7KBEuPD.js} +1 -1
  79. package/dist/client/assets/{pieDiagram-4H26LBE5-BSc_a5Dz.js → pieDiagram-4H26LBE5-Cy1_IPUD.js} +1 -1
  80. package/dist/client/assets/{puzzle-Cz66CEWW.js → puzzle-DWc6gFQ7.js} +1 -1
  81. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-Um2SLb_d.js → quadrantDiagram-W4KKPZXB-DqgVGp41.js} +1 -1
  82. package/dist/client/assets/{requirementDiagram-4Y6WPE33-B94evN7g.js → requirementDiagram-4Y6WPE33-CA5-TDeF.js} +1 -1
  83. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BH7NLX-K.js → sankeyDiagram-5OEKKPKP-Cuvi3RgE.js} +1 -1
  84. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DusrBGQp.js → sequenceDiagram-3UESZ5HK-Da3GfmGP.js} +1 -1
  85. package/dist/client/assets/{shield-alert-CcQuaRHN.js → shield-alert-_iY63ED4.js} +1 -1
  86. package/dist/client/assets/{standing-instructions-template-CVnY93Xy.js → standing-instructions-template-CCd2YY9c.js} +1 -1
  87. package/dist/client/assets/{stateDiagram-AJRCARHV-GRjL9YlX.js → stateDiagram-AJRCARHV-CZ_I9ENR.js} +1 -1
  88. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-BBsv6ppQ.js → stateDiagram-v2-BHNVJYJU-BomoRVhY.js} +1 -1
  89. package/dist/client/assets/{timeline-definition-PNZ67QCA-DC6UeqjY.js → timeline-definition-PNZ67QCA-C3CYvIuR.js} +1 -1
  90. package/dist/client/assets/{upload-CjJp7lEX.js → upload-D0RrO65v.js} +1 -1
  91. package/dist/client/assets/{users-DgimRYHz.js → users-CGszBY2v.js} +1 -1
  92. package/dist/client/assets/{vennDiagram-CIIHVFJN-C272zK9h.js → vennDiagram-CIIHVFJN-By9fi8NW.js} +1 -1
  93. package/dist/client/assets/{wardley-L42UT6IY-KkRF-2j9.js → wardley-L42UT6IY-DErnXPkI.js} +1 -1
  94. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-B4brtKRt.js → wardleyDiagram-YWT4CUSO-DFfXZVPk.js} +1 -1
  95. package/dist/client/assets/{xychartDiagram-2RQKCTM6--PFSKt1s.js → xychartDiagram-2RQKCTM6-9Y5oZ5mi.js} +1 -1
  96. package/dist/client/index.html +4 -2
  97. package/dist/client/version.json +1 -1
  98. package/dist/extension.js +4516 -8539
  99. package/dist/migrations/0000_initial.sql +2 -0
  100. package/dist/migrations/0026_bigint_counters.sql +85 -14
  101. package/dist/migrations/0033_fn-8505_wedge_notification.sql +5 -0
  102. package/dist/plugin-sdk/index.js +1 -0
  103. package/dist/plugins/.fusion-ce-agents/.fusion-ce-upstream-provenance.json +7 -0
  104. package/dist/plugins/.fusion-ce-agents/ce-adversarial-document-reviewer.md +115 -0
  105. package/dist/plugins/.fusion-ce-agents/ce-adversarial-reviewer.md +111 -0
  106. package/dist/plugins/.fusion-ce-agents/ce-agent-native-planning-strategist.md +71 -0
  107. package/dist/plugins/.fusion-ce-agents/ce-agent-native-reviewer.md +181 -0
  108. package/dist/plugins/.fusion-ce-agents/ce-ankane-readme-writer.md +50 -0
  109. package/dist/plugins/.fusion-ce-agents/ce-api-contract-reviewer.md +52 -0
  110. package/dist/plugins/.fusion-ce-agents/ce-architecture-strategist.md +53 -0
  111. package/dist/plugins/.fusion-ce-agents/ce-best-practices-researcher.md +122 -0
  112. package/dist/plugins/.fusion-ce-agents/ce-code-simplicity-reviewer.md +87 -0
  113. package/dist/plugins/.fusion-ce-agents/ce-coherence-reviewer.md +73 -0
  114. package/dist/plugins/.fusion-ce-agents/ce-correctness-reviewer.md +52 -0
  115. package/dist/plugins/.fusion-ce-agents/ce-data-integrity-guardian.md +75 -0
  116. package/dist/plugins/.fusion-ce-agents/ce-data-migration-reviewer.md +119 -0
  117. package/dist/plugins/.fusion-ce-agents/ce-deployment-verification-agent.md +164 -0
  118. package/dist/plugins/.fusion-ce-agents/ce-design-implementation-reviewer.md +94 -0
  119. package/dist/plugins/.fusion-ce-agents/ce-design-iterator.md +197 -0
  120. package/dist/plugins/.fusion-ce-agents/ce-design-lens-reviewer.md +56 -0
  121. package/dist/plugins/.fusion-ce-agents/ce-feasibility-reviewer.md +65 -0
  122. package/dist/plugins/.fusion-ce-agents/ce-figma-design-sync.md +172 -0
  123. package/dist/plugins/.fusion-ce-agents/ce-framework-docs-researcher.md +100 -0
  124. package/dist/plugins/.fusion-ce-agents/ce-git-history-analyzer.md +47 -0
  125. package/dist/plugins/.fusion-ce-agents/ce-issue-intelligence-analyst.md +207 -0
  126. package/dist/plugins/.fusion-ce-agents/ce-julik-frontend-races-reviewer.md +52 -0
  127. package/dist/plugins/.fusion-ce-agents/ce-learnings-researcher.md +254 -0
  128. package/dist/plugins/.fusion-ce-agents/ce-maintainability-reviewer.md +77 -0
  129. package/dist/plugins/.fusion-ce-agents/ce-pattern-recognition-specialist.md +62 -0
  130. package/dist/plugins/.fusion-ce-agents/ce-performance-oracle.md +115 -0
  131. package/dist/plugins/.fusion-ce-agents/ce-performance-reviewer.md +54 -0
  132. package/dist/plugins/.fusion-ce-agents/ce-pr-comment-resolver.md +63 -0
  133. package/dist/plugins/.fusion-ce-agents/ce-previous-comments-reviewer.md +68 -0
  134. package/dist/plugins/.fusion-ce-agents/ce-product-lens-reviewer.md +92 -0
  135. package/dist/plugins/.fusion-ce-agents/ce-project-standards-reviewer.md +84 -0
  136. package/dist/plugins/.fusion-ce-agents/ce-reliability-reviewer.md +52 -0
  137. package/dist/plugins/.fusion-ce-agents/ce-repo-research-analyst.md +263 -0
  138. package/dist/plugins/.fusion-ce-agents/ce-scope-guardian-reviewer.md +79 -0
  139. package/dist/plugins/.fusion-ce-agents/ce-security-lens-reviewer.md +48 -0
  140. package/dist/plugins/.fusion-ce-agents/ce-security-reviewer.md +54 -0
  141. package/dist/plugins/.fusion-ce-agents/ce-security-sentinel.md +98 -0
  142. package/dist/plugins/.fusion-ce-agents/ce-session-historian.md +89 -0
  143. package/dist/plugins/.fusion-ce-agents/ce-slack-researcher.md +133 -0
  144. package/dist/plugins/.fusion-ce-agents/ce-spec-flow-analyzer.md +87 -0
  145. package/dist/plugins/.fusion-ce-agents/ce-swift-ios-reviewer.md +107 -0
  146. package/dist/plugins/.fusion-ce-agents/ce-testing-reviewer.md +52 -0
  147. package/dist/plugins/.fusion-ce-agents/ce-web-researcher.md +127 -0
  148. package/dist/plugins/.fusion-ce-skills/.fusion-ce-upstream-provenance.json +7 -0
  149. package/dist/plugins/.fusion-ce-skills/ce-brainstorm/SKILL.md +318 -0
  150. package/dist/plugins/.fusion-ce-skills/ce-brainstorm/references/agents/slack-researcher.md +127 -0
  151. package/dist/plugins/.fusion-ce-skills/ce-brainstorm/references/brainstorm-sections.md +354 -0
  152. package/dist/plugins/.fusion-ce-skills/ce-brainstorm/references/handoff.md +172 -0
  153. package/dist/plugins/.fusion-ce-skills/ce-brainstorm/references/html-rendering.md +662 -0
  154. package/dist/plugins/.fusion-ce-skills/ce-brainstorm/references/markdown-rendering.md +236 -0
  155. package/dist/plugins/.fusion-ce-skills/ce-brainstorm/references/synthesis-summary.md +271 -0
  156. package/dist/plugins/.fusion-ce-skills/ce-brainstorm/references/universal-brainstorming.md +71 -0
  157. package/dist/plugins/.fusion-ce-skills/ce-brainstorm/references/visual-probes.md +128 -0
  158. package/dist/plugins/.fusion-ce-skills/ce-brainstorm/scripts/visual-probe-server.js +419 -0
  159. package/dist/plugins/.fusion-ce-skills/ce-code-review/SKILL.md +821 -0
  160. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/action-class-rubric.md +26 -0
  161. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/bulk-preview.md +112 -0
  162. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/cross-model-review.md +63 -0
  163. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/diff-scope.md +41 -0
  164. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/findings-schema.json +137 -0
  165. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/persona-catalog.md +63 -0
  166. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/adversarial-reviewer.md +102 -0
  167. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/agent-native-reviewer.md +173 -0
  168. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/api-contract-reviewer.md +43 -0
  169. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/correctness-reviewer.md +43 -0
  170. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/data-migration-reviewer.md +111 -0
  171. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/deployment-verification-agent.md +157 -0
  172. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/julik-frontend-races-reviewer.md +44 -0
  173. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/learnings-researcher.md +247 -0
  174. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/maintainability-reviewer.md +68 -0
  175. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/performance-reviewer.md +45 -0
  176. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/previous-comments-reviewer.md +59 -0
  177. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/project-standards-reviewer.md +75 -0
  178. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/reliability-reviewer.md +43 -0
  179. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/security-reviewer.md +45 -0
  180. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/swift-ios-reviewer.md +99 -0
  181. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/personas/testing-reviewer.md +43 -0
  182. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/review-output-template.md +170 -0
  183. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/subagent-template.md +199 -0
  184. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/tracker-defer.md +149 -0
  185. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/validator-template.md +89 -0
  186. package/dist/plugins/.fusion-ce-skills/ce-code-review/references/walkthrough.md +249 -0
  187. package/dist/plugins/.fusion-ce-skills/ce-code-review/scripts/cross-model-adversarial-review.sh +218 -0
  188. package/dist/plugins/.fusion-ce-skills/ce-commit/SKILL.md +105 -0
  189. package/dist/plugins/.fusion-ce-skills/ce-commit-push-pr/SKILL.md +134 -0
  190. package/dist/plugins/.fusion-ce-skills/ce-commit-push-pr/references/branch-creation.md +55 -0
  191. package/dist/plugins/.fusion-ce-skills/ce-commit-push-pr/references/pr-description-writing.md +115 -0
  192. package/dist/plugins/.fusion-ce-skills/ce-compound/SKILL.md +712 -0
  193. package/dist/plugins/.fusion-ce-skills/ce-compound/assets/resolution-template.md +94 -0
  194. package/dist/plugins/.fusion-ce-skills/ce-compound/references/agents/best-practices-researcher.md +115 -0
  195. package/dist/plugins/.fusion-ce-skills/ce-compound/references/agents/data-integrity-guardian.md +68 -0
  196. package/dist/plugins/.fusion-ce-skills/ce-compound/references/agents/framework-docs-researcher.md +93 -0
  197. package/dist/plugins/.fusion-ce-skills/ce-compound/references/agents/pattern-recognition-specialist.md +55 -0
  198. package/dist/plugins/.fusion-ce-skills/ce-compound/references/agents/performance-oracle.md +108 -0
  199. package/dist/plugins/.fusion-ce-skills/ce-compound/references/agents/security-sentinel.md +91 -0
  200. package/dist/plugins/.fusion-ce-skills/ce-compound/references/agents/session-historian.md +83 -0
  201. package/dist/plugins/.fusion-ce-skills/ce-compound/references/concepts-vocabulary.md +78 -0
  202. package/dist/plugins/.fusion-ce-skills/ce-compound/references/schema.yaml +231 -0
  203. package/dist/plugins/.fusion-ce-skills/ce-compound/references/yaml-schema.md +118 -0
  204. package/dist/plugins/.fusion-ce-skills/ce-compound/scripts/session-history/discover-sessions.sh +130 -0
  205. package/dist/plugins/.fusion-ce-skills/ce-compound/scripts/session-history/extract-errors.py +254 -0
  206. package/dist/plugins/.fusion-ce-skills/ce-compound/scripts/session-history/extract-metadata.py +456 -0
  207. package/dist/plugins/.fusion-ce-skills/ce-compound/scripts/session-history/extract-skeleton.py +570 -0
  208. package/dist/plugins/.fusion-ce-skills/ce-compound/scripts/validate-frontmatter.py +137 -0
  209. package/dist/plugins/.fusion-ce-skills/ce-debug/SKILL.md +257 -0
  210. package/dist/plugins/.fusion-ce-skills/ce-debug/references/anti-patterns.md +91 -0
  211. package/dist/plugins/.fusion-ce-skills/ce-debug/references/defense-in-depth.md +35 -0
  212. package/dist/plugins/.fusion-ce-skills/ce-debug/references/investigation-techniques.md +374 -0
  213. package/dist/plugins/.fusion-ce-skills/ce-doc-review/SKILL.md +70 -0
  214. package/dist/plugins/.fusion-ce-skills/ce-ideate/SKILL.md +401 -0
  215. package/dist/plugins/.fusion-ce-skills/ce-ideate/references/agents/issue-intelligence-analyst.md +200 -0
  216. package/dist/plugins/.fusion-ce-skills/ce-ideate/references/agents/learnings-researcher.md +247 -0
  217. package/dist/plugins/.fusion-ce-skills/ce-ideate/references/agents/slack-researcher.md +127 -0
  218. package/dist/plugins/.fusion-ce-skills/ce-ideate/references/agents/web-researcher.md +121 -0
  219. package/dist/plugins/.fusion-ce-skills/ce-ideate/references/divergent-ideation.md +89 -0
  220. package/dist/plugins/.fusion-ce-skills/ce-ideate/references/html-rendering.md +662 -0
  221. package/dist/plugins/.fusion-ce-skills/ce-ideate/references/ideation-sections.md +191 -0
  222. package/dist/plugins/.fusion-ce-skills/ce-ideate/references/markdown-rendering.md +236 -0
  223. package/dist/plugins/.fusion-ce-skills/ce-ideate/references/post-ideation-workflow.md +166 -0
  224. package/dist/plugins/.fusion-ce-skills/ce-ideate/references/universal-ideation.md +107 -0
  225. package/dist/plugins/.fusion-ce-skills/ce-ideate/references/web-research-cache.md +55 -0
  226. package/dist/plugins/.fusion-ce-skills/ce-plan/SKILL.md +858 -0
  227. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/agent-native-planning-strategist.md +62 -0
  228. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/architecture-strategist.md +46 -0
  229. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/best-practices-researcher.md +114 -0
  230. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/data-integrity-guardian.md +68 -0
  231. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/data-migration-reviewer.md +103 -0
  232. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/deployment-verification-agent.md +157 -0
  233. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/framework-docs-researcher.md +93 -0
  234. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/git-history-analyzer.md +40 -0
  235. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/learnings-researcher.md +247 -0
  236. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/pattern-recognition-specialist.md +55 -0
  237. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/performance-oracle.md +108 -0
  238. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/repo-research-analyst.md +256 -0
  239. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/security-sentinel.md +91 -0
  240. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/slack-researcher.md +127 -0
  241. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/spec-flow-analyzer.md +80 -0
  242. package/dist/plugins/.fusion-ce-skills/ce-plan/references/agents/web-researcher.md +121 -0
  243. package/dist/plugins/.fusion-ce-skills/ce-plan/references/approach-altitude.md +55 -0
  244. package/dist/plugins/.fusion-ce-skills/ce-plan/references/deepening-workflow.md +259 -0
  245. package/dist/plugins/.fusion-ce-skills/ce-plan/references/html-rendering.md +668 -0
  246. package/dist/plugins/.fusion-ce-skills/ce-plan/references/markdown-rendering.md +236 -0
  247. package/dist/plugins/.fusion-ce-skills/ce-plan/references/plan-handoff.md +126 -0
  248. package/dist/plugins/.fusion-ce-skills/ce-plan/references/plan-sections.md +405 -0
  249. package/dist/plugins/.fusion-ce-skills/ce-plan/references/synthesis-summary.md +396 -0
  250. package/dist/plugins/.fusion-ce-skills/ce-plan/references/universal-planning.md +168 -0
  251. package/dist/plugins/.fusion-ce-skills/ce-resolve-pr-feedback/SKILL.md +53 -0
  252. package/dist/plugins/.fusion-ce-skills/ce-resolve-pr-feedback/references/agents/pr-comment-resolver.md +56 -0
  253. package/dist/plugins/.fusion-ce-skills/ce-resolve-pr-feedback/references/evaluation-rubric.md +106 -0
  254. package/dist/plugins/.fusion-ce-skills/ce-resolve-pr-feedback/references/full-mode.md +283 -0
  255. package/dist/plugins/.fusion-ce-skills/ce-resolve-pr-feedback/references/targeted-mode.md +45 -0
  256. package/dist/plugins/.fusion-ce-skills/ce-resolve-pr-feedback/scripts/get-pr-comments +159 -0
  257. package/dist/plugins/.fusion-ce-skills/ce-resolve-pr-feedback/scripts/get-thread-for-comment +76 -0
  258. package/dist/plugins/.fusion-ce-skills/ce-resolve-pr-feedback/scripts/reply-to-pr-thread +33 -0
  259. package/dist/plugins/.fusion-ce-skills/ce-resolve-pr-feedback/scripts/resolve-pr-thread +23 -0
  260. package/dist/plugins/.fusion-ce-skills/ce-strategy/SKILL.md +97 -0
  261. package/dist/plugins/.fusion-ce-skills/ce-strategy/references/interview.md +143 -0
  262. package/dist/plugins/.fusion-ce-skills/ce-strategy/references/strategy-template.md +89 -0
  263. package/dist/plugins/.fusion-ce-skills/ce-work/SKILL.md +429 -0
  264. package/dist/plugins/.fusion-ce-skills/ce-work/references/agents/figma-design-sync.md +165 -0
  265. package/dist/plugins/.fusion-ce-skills/ce-work/references/execution-engines.md +85 -0
  266. package/dist/plugins/.fusion-ce-skills/ce-work/references/non-code-execution.md +23 -0
  267. package/dist/plugins/.fusion-ce-skills/ce-work/references/review-findings-followup.md +104 -0
  268. package/dist/plugins/.fusion-ce-skills/ce-work/references/shipping-workflow.md +133 -0
  269. package/dist/plugins/.fusion-ce-skills/ce-work/references/tracker-defer.md +149 -0
  270. package/dist/plugins/fusion-plugin-compound-engineering/.bundled.reload-3.js +11266 -0
  271. package/dist/plugins/fusion-plugin-compound-engineering/.bundled.reload-4.js +11266 -0
  272. package/dist/plugins/fusion-plugin-dependency-graph/.bundled.reload-1.js +8206 -0
  273. package/dist/plugins/fusion-plugin-grok-runtime/.bundled.reload-2.js +26623 -0
  274. package/package.json +6 -3
  275. package/skill/fusion/references/engine-tools.md +6 -2
  276. package/dist/client/assets/ChatView-Bv0J5p5U.js +0 -8
  277. package/dist/client/assets/DevServerView-Ue9XG_4H.js +0 -1
  278. package/dist/client/assets/DocumentsView-C1Ptwcv5.js +0 -1
  279. package/dist/client/assets/PluginManager-CXPSlWxs.js +0 -1
  280. package/dist/client/assets/ReportModal-JhZZXZlj.js +0 -21
  281. package/dist/client/assets/SessionTerminal-BrK3psiC.js +0 -2
  282. package/dist/client/assets/SettingsModal-Bby9vLGx.js +0 -21
  283. package/dist/client/assets/SettingsModal-DVLqY1-7.js +0 -1
  284. package/dist/client/assets/SettingsModal-DXArgTTx.css +0 -1
  285. package/dist/client/assets/WorkflowNodeEditor-BXUC0lim.js +0 -8
  286. package/dist/client/assets/app-DUszvars.js +0 -13
  287. package/dist/client/assets/channel-BuhC8kaT.js +0 -1
  288. package/dist/client/assets/classDiagram-4FO5ZUOK-vpRR5WOg.js +0 -1
  289. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-vpRR5WOg.js +0 -1
  290. package/dist/client/assets/index-Cg9ahVtV.js +0 -2661
  291. package/dist/client/assets/index-uhXHk1ek.css +0 -1
@@ -0,0 +1,107 @@
1
+ # Universal Ideation Facilitator
2
+
3
+ This file is loaded when ce-ideate detects an elsewhere-mode topic with no software surface at all — naming (independent of product), narrative writing, personal decisions, non-digital business strategy, physical-product design. Topics that concern a software artifact (page, app, feature, flow, product) are routed to elsewhere-software and do not load this file, even when the ideas are about copy, UX, or visual design for that artifact.
4
+
5
+ Phase 1 elsewhere-mode grounding runs before this reference takes over — user-context synthesis and web-research feed the facilitation below. Learnings-researcher is skipped by default for elsewhere-non-software since the CWD's `docs/solutions/` almost always contains engineering patterns that do not transfer to non-digital topics. What this file replaces is Phase 2's software-flavored frame dispatch and the post-ideation wrap-up; the repo-specific codebase scan never runs in elsewhere mode. Absorb these principles and facilitate ideation in the topic's native domain, using the Phase 1 grounding summary as input.
6
+
7
+ The mechanism that makes ideation good — generate many, critique adversarially, present survivors with reasons — is preserved. Only the framing of the work changes.
8
+
9
+ ---
10
+
11
+ ## Your role
12
+
13
+ Be a divergent thinking partner, not a delivery service. The user came here for a stronger candidate set than they could generate alone, not a single recommendation. Resist the urge to converge early. A premature favorite anchors the conversation and crowds out better candidates that have not surfaced yet.
14
+
15
+ Match the tone to the stakes. For business or product decisions (pricing, positioning, roadmap), lead with constraints and tradeoffs. For creative work (naming, narrative, visual concepts), lead with energy and range. For personal decisions, lead with values before mechanics.
16
+
17
+ ## How to start
18
+
19
+ Match depth to scope:
20
+
21
+ - **Quick** — the user wants a starter set right now. Generate one round, critique briefly, present 3-5 survivors, done.
22
+ - **Standard** — light intake (one or two questions), one round of generation, adversarial critique, present 5-7 survivors.
23
+ - **Full** — rich intake, multiple frames in parallel, deep critique, present 5-7 survivors with strong rationale.
24
+
25
+ Apply the discrimination test before asking anything. Would swapping one piece of the user's stated context for a contrasting alternative materially change which ideas survive? If yes, the context is load-bearing — proceed. If no, ask 1-3 narrowly chosen questions. Follow the questioning principles from SKILL.md Phase 0.2: ask only about the **subject** (what to ideate on) or **substance** (what Phase 1 agents need to say something specific) — never about solution direction, constraints, audience, tone, or success criteria. Those belong to `ce-brainstorm`. Build on what the user already provided rather than starting from a template. After each answer, re-apply the test before asking another. Stop on dismissive responses ("idk just go") and treat genuine "no constraint" answers as real answers.
26
+
27
+ **Grounding freshness.** Phase 1 elsewhere-mode grounding (user-context synthesis + web-research by default; learnings skipped for non-software, see SKILL.md Phase 1) has already run before this reference takes over, and its outputs feed the generation below. If intake answers here materially refine the topic or constraints — new scope, different audience, a domain shift that the original grounding did not cover — re-dispatch the affected Phase 1 agents on the refined topic before generating ideas. The guardrail mirrors SKILL.md Phase 0.4's rule that mode and grounding re-evaluate when intake changes the scope to be acted on; ranking against stale grounding risks surfacing ideas fit to the wrong topic.
28
+
29
+ When the user provides rich context up front (a paste, a brief, an existing draft), confirm understanding in one line and skip intake.
30
+
31
+ ## How to decompose
32
+
33
+ Before generating, decompose the topic into 3-5 orthogonal **axes** that name *what aspects of the subject to think about*. Frames in "How to generate" determine *how to think* (the lens); axes determine *what to think on* (the surface). Without explicit axes, the same topic interpreted six ways through six lenses still leaves most of the surface unexamined — lens diversity does not produce surface coverage on its own.
34
+
35
+ This step is the facilitator's own analysis — no sub-agent, no additional research. The Phase 1 grounding supplies the substance.
36
+
37
+ Axes should be:
38
+
39
+ - **3-5 in number.** Fewer means atomic — skip decomposition. More fragments coverage.
40
+ - **Orthogonal.** A single idea should fall on one axis, not span multiple.
41
+ - **Derived from grounding**, not from a generic template.
42
+ - **At the same level** of granularity.
43
+ - **Named in the topic's language**, not meta-language about ideation.
44
+
45
+ **Worked examples (illustrative, not a template):**
46
+
47
+ - "Name my new coffee shop" → atomic; skip decomposition (the candidate *is* a name)
48
+ - "Plot ideas for a short story" → atomic; skip decomposition (the candidate *is* a plot)
49
+ - "Brand strategy for a launch" → axes might be: positioning; visual identity; voice; launch channels; pricing/packaging
50
+ - "Career options for the next 5 years" → axes might be: domain (industry/role); structure (employee/founder/freelance); geography; growth ambition; financial floor
51
+
52
+ **Skip condition.** Many elsewhere-non-software topics are atomic by nature — a single name, tagline, or one-shot creative output. When 3+ orthogonal axes do not emerge, skip decomposition and note `Decomposition skipped — atomic subject` in the grounding summary.
53
+
54
+ **Surprise-me skip.** No settled subject in surprise-me mode; skip decomposition and note `Decomposition skipped — surprise-me mode`.
55
+
56
+ Record the axes (or skip-reason) at the head of generation. Generation will distribute ideas across axes; convergence will weight axis spread alongside other rubric criteria.
57
+
58
+ ## How to generate
59
+
60
+ Generate the full candidate list before critiquing any idea. Use the same six frames as software ideation, described in domain-agnostic language. Each frame is a **starting bias, not a constraint** — follow promising threads across frames. When dispatching frames as parallel sub-agents (Full depth), follow SKILL.md Model Tiers: evidence-driven frames (pain, inversion, leverage) on the generation tier; ceiling frames (assumption-breaking, analogy, constraint-flipping) on the ceiling tier.
61
+
62
+ - **Pain and friction** — what is consistently annoying, slow, or broken in the current state of the topic? Generate ideas that remove or reduce that friction.
63
+ - **Inversion, removal, automation** — what would happen if a step were inverted, removed entirely, or automated away? The result is often a candidate even if the inversion itself is unrealistic.
64
+ - **Assumption-breaking and reframing** — what is being treated as fixed that is actually a choice? Reframe the problem one level up or sideways.
65
+ - **Leverage and compounding** — what choices, once made, make many future moves cheaper or stronger? Look for second-order effects.
66
+ - **Cross-domain analogy** — how do completely different fields solve a structurally similar problem? The grounding domain is the user's topic; the analogy domain is anywhere else (other industries, biology, games, infrastructure, history). Push past the obvious analogy to non-obvious ones.
67
+ - **Constraint-flipping** — invert the obvious constraint to its opposite or extreme. What if the budget were 10x or 0? What if there were one constraint instead of ten, or ten instead of one? Use the resulting design as a candidate even if the flip itself is not realistic.
68
+
69
+ Aim for 5-8 ideas per frame. **When axes are present, distribute ideas across axes** — each frame's lens applies to every axis, but ideas should not all cluster on one. Tag each idea with the axis it targets. After generating, merge and dedupe; scan for cross-cutting combinations (3-5 additions at most; more in surprise-me mode, where different frames often discover different subjects and combinations are the magic layer).
70
+
71
+ **Axis-coverage check (when axes are present).** After merging, count ideas per axis. If any axis has zero ideas, generate one additional small batch (3-5 ideas) targeting the empty axis with the frame whose lens best fits — Pain & friction for usability gaps, Cross-domain analogy for distribution or compounding gaps, etc. Cap recovery at 2 axes; beyond that, accept thin coverage rather than fan out. Note any axis that was not recovered in the rejection summary so the gap is visible.
72
+
73
+ **Per-idea output contract (mirrors the software-mode contract in `references/divergent-ideation.md`):** each idea carries title, summary, **axis** (when decomposition produced an axis list — pick the one this idea most centrally targets; omit when skipped), **basis** (required, tagged `direct:` quoted evidence / `external:` named prior art or domain research / `reasoned:` written-out first-principles argument), why-it-matters connecting the basis to the move's significance, and a one-line meeting-test self-check (waived when tactical focus signals were detected in Phase 0.5). Basis is required, not optional — unjustified speculation does not surface.
74
+
75
+ **Generation rules:**
76
+
77
+ - Every idea carries an articulated basis. The failure mode to prevent is plausible-sounding speculation that lacks any basis the user can verify.
78
+ - Aim past the obvious. The first few ideas per frame are warm-up — keep only those that earn their place once the non-obvious ideas exist. If an idea would appear in a generic listicle about this topic, sharpen it with grounding or drop it.
79
+ - Bias toward the basis type your frame naturally produces — pain/inversion/leverage tend toward `direct:`; analogy and constraint-flipping tend toward `reasoned:` — but don't exclude other types. When a frame produces a reasoned basis, write the argument out, don't gesture at it.
80
+ - Apply the meeting-test as a default floor: would this idea warrant the equivalent of team discussion (or whatever maps to "worth talking through" in this topic's native domain)? If not, it's below the floor and does not surface. The floor is relaxed only when Phase 0.5 detected tactical focus signals.
81
+ - Stay within the subject's identity. Expansions, new surfaces, new directions, retirements are fair game when the basis supports them. Subject-replacement moves (abandoning the subject, pivoting to an unrelated domain) are out regardless of basis.
82
+
83
+ **Surprise-me mode in this reference.** When Phase 0.2 routed to surprise-me, there is no user-specified subject. Through each frame's lens, explore the Phase 1 grounding (user-context synthesis + web research) and identify the subject(s) you find most interesting for that lens. Different frames finding different subjects is the feature. The basis may include identification of the subject itself — why this subject is worth ideating on through this lens, citing what in the Phase 1 material signals it.
84
+
85
+ ## How to converge
86
+
87
+ Before the final cut, dispatch one fresh-context basis verifier (generation tier — see SKILL.md Model Tiers) whose payload is only the grounding summary and the candidate list, prompted to refute: bases that don't support the claimed move, prior art that isn't real or relevantly analogous, reasoned arguments that don't hold. In this mode verification runs against the user-supplied context and web research — no repo reads. Weigh its verdicts in the cut, overruling with stated reasons; if dispatch is unavailable, fall back to facilitator-only critique and note the degradation.
88
+
89
+ Apply adversarial critique. For each candidate, write a one-line reason if rejected. **Basis-integrity check:** reject any idea lacking an articulated basis, any idea whose stated basis does not actually support the claimed move (speculation dressed as ambition), and any idea that replaces the subject rather than operating on it. Score survivors using a consistent rubric weighing: groundedness in stated context, **basis strength** (`direct:` > `external:` > `reasoned:`; none excluded, but direct-evidence ideas score higher all else equal), expected value, novelty, pragmatism, leverage, implementation burden, overlap with stronger candidates, and **axis spread** (when axes were defined) — survivor sets that cover the topic's surface outscore sets that cluster on one axis, all else equal. Axis spread is a list-level concern, not a per-idea reject reason; apply it after per-idea filtering when choosing among comparable candidates.
90
+
91
+ Target 5-7 survivors by default. If too many survive, run a second stricter pass. If fewer than five survive, report that honestly rather than lowering the bar.
92
+
93
+ ## When to wrap up
94
+
95
+ Wrap up with the same flow as `references/post-ideation-workflow.md` Phases 4–5 — the mechanics are identical in this mode:
96
+
97
+ - **Auto-write the deliverable** (Phase 4.1). The full per-idea detail (title, description, axis, basis, rationale, downsides, confidence, complexity) and the rejection summary go in the **file** — persistence is automatic, not opt-in. Location: `docs/ideation/` when it already exists, otherwise the run's CE temp area (`/tmp/compound-engineering/ce-ideate/<run-id>/`) — never the user's CWD. `OUTPUT_FORMAT` (SKILL.md Phase 0.0; default `html`) sets the extension.
98
+ - **Present a concise summary** (Phase 4.2) — the ranked list (title · axis · confidence · complexity), counts, the path, and any zero-survivor axis. Do not reprint the full detail in the session; the rich file is what the user engages with. For HTML, best-effort open it in the browser (Phase 4.3).
99
+
100
+ Then offer the Phase 5 next-steps menu via the platform's blocking question tool (`AskUserQuestion` in Claude Code — call `ToolSearch` with `select:AskUserQuestion` first if its schema isn't loaded; `request_user_input` in Codex; `ask_question` in Antigravity CLI (`agy`) / Pi). Fall back to a numbered list only when no blocking tool exists or the call errors. Never silently skip. Four options, option 1 format-keyed:
101
+
102
+ 1. **Open in browser** *(html)* / **Publish to Proof** *(md)* — open the HTML deliverable, or publish the markdown to Proof for a shareable link (per §5.1). On Proof failure the auto-written local file stays intact.
103
+ 2. **Brainstorm one idea with `ce-brainstorm`** — go deeper on one chosen idea (asks which). In universal mode this is **not** the first step of an implementation chain — there is no `ce-plan` → `ce-work` after; `ce-brainstorm` develops the idea further (a name into a brand brief, a plot into an outline, a decision into a weighed framework) and ends there. Seed it with the idea's substance + a provenance pointer (per §5.2) — not the whole file.
104
+ 3. **Iterate on one idea (adjust / ask, stay here)** — sharpen or interrogate a chosen idea before committing; adjustments rewrite the file, Q&A does not (per §5.3).
105
+ 4. **Done — keep the file and stop.**
106
+
107
+ Discard is a free-text escape ("say 'discard' to delete it"), create-only — never deletes a resumed or pre-existing doc.
@@ -0,0 +1,55 @@
1
+ # Web Research Cache (V15)
2
+
3
+ Read this when checking the V15 cache before dispatching `web-researcher`, or when appending fresh research to the cache after dispatch. The behavior here is conditional — most invocations either hit the cache or write to it once and move on.
4
+
5
+ ## Cache file shape
6
+
7
+ ```json
8
+ [
9
+ {
10
+ "key": {
11
+ "mode": "repo|elsewhere-software|elsewhere-non-software",
12
+ "focus_hint_normalized": "<lowercase, whitespace-collapsed focus hint or empty string>",
13
+ "topic_surface_hash": "<short hash of the user-supplied topic surface>"
14
+ },
15
+ "result": "<web-researcher output as plain text>",
16
+ "ts": "<iso8601>"
17
+ }
18
+ ]
19
+ ```
20
+
21
+ Files live under `<scratch-dir>/web-research-cache.json`, where `<scratch-dir>` is `/tmp/compound-engineering/ce-ideate/<run-id>`, resolved once in SKILL.md Phase 1.
22
+
23
+ ## Reuse check
24
+
25
+ Before dispatching `web-researcher`, resolve the scratch root (the parent of `<scratch-dir>`) in bash and list sibling run-id directories — refinement loops within a session may legitimately reuse another run's cache by topic, not run-id:
26
+
27
+ ```bash
28
+ SCRATCH_ROOT="/tmp/compound-engineering/ce-ideate"
29
+ find "$SCRATCH_ROOT" -maxdepth 2 -name 'web-research-cache.json' -type f 2>/dev/null
30
+ ```
31
+
32
+ `find` exits 0 with empty output when no cache files exist, so the first-run case does not abort the reuse-check step.
33
+
34
+ Read each matching file. If any entry's `key` matches the current dispatch (same full mode variant — `repo`, `elsewhere-software`, or `elsewhere-non-software` — plus same case-insensitive normalized focus hint plus same topic surface hash), skip the dispatch and pass the cached `result` to the consolidated grounding summary. Mode variants must match exactly: `elsewhere-software` and `elsewhere-non-software` are distinct domains and must not cross-reuse. Note in the summary: "Reusing prior web research from this session — say 're-research' to refresh."
35
+
36
+ On `re-research` override, delete the matching entry and dispatch fresh.
37
+
38
+ ## Append after fresh dispatch
39
+
40
+ After a fresh dispatch, append the new result to the current run's cache file at `<scratch-dir>/web-research-cache.json` using the absolute path from Phase 1 (create directory and file if needed). The next invocation in the session can reuse it via the `find` listing above.
41
+
42
+ ## Topic surface hash
43
+
44
+ The topic surface is the user-supplied content the web research is grounded on:
45
+ - **Elsewhere modes (`elsewhere-software`, `elsewhere-non-software`):** the user's topic prompt plus any Phase 0.4 intake answers (the actual subject the agent is researching). The two sub-modes are keyed separately — a reclassification between software and non-software for the same topic hash must force a fresh dispatch, since the research domain differs.
46
+ - **Repo mode:** the focus hint plus a stable repo discriminator. This keeps the cache key meaningful when focus is empty — two bare-prompt invocations in the same repo legitimately share research, but the key still differentiates repos. Since cache files from every repo's runs now live under the shared OS-temp root, a bare basename like `app` or `frontend` would collide across unrelated repos. Resolve the discriminator with this fallback chain and hash the result (first 8 hex chars of sha256 is sufficient):
47
+ 1. `git remote get-url origin` — stable across machines, correct for collaborators on the same remote.
48
+ 2. `git rev-parse --show-toplevel` — absolute repo path; machine-local but always available in a git checkout.
49
+ 3. The current working directory's absolute path — last resort when not in a git repo.
50
+
51
+ Normalize before hashing: lowercase, collapse whitespace. (The repo discriminator hash is computed from the raw command output; only the focus hint and topic text are normalized.)
52
+
53
+ ## Degradation
54
+
55
+ If the cache file is unreachable across invocations on the current platform (filesystem isolation, sandboxing, ephemeral working directory), degrade to "no reuse, dispatch every time." Surface the limitation in the consolidated grounding summary and proceed without reuse rather than inventing a capability the platform may not have.