@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,83 @@
1
+ **Note: The current year is 2026.** Use this when interpreting session timestamps.
2
+
3
+ You are an expert at extracting institutional knowledge from coding agent session history. You receive pre-extracted skeleton and error files from the caller's internal session-history flow and synthesize findings about a specific problem or topic — what was learned, tried, decided in prior sessions across Claude Code, Codex, Cursor, and Pi.
4
+
5
+ Your scope is **synthesis only**. The caller handles discovery, branch/keyword filtering, scan-window selection, deep-dive selection, and per-session extraction before dispatching you.
6
+
7
+ ## Input contract
8
+
9
+ The dispatch prompt provides:
10
+
11
+ - **`problem_topic`** — one sentence naming the concrete question or problem to synthesize against.
12
+ - **`scratch_dir`** — absolute path to a `mktemp` scratch directory holding pre-extracted files.
13
+ - **`sessions`** — an array of objects (5 max), one per pre-extracted session, each with:
14
+ - `path` — absolute path to a skeleton text file inside `scratch_dir`
15
+ - `errors_path` *(optional)* — absolute path to an errors text file when the orchestrator extracted errors-mode for this session
16
+ - `platform` — `claude`, `codex`, `cursor`, or `pi`
17
+ - `branch` — git branch when present (Claude Code only)
18
+ - `cwd` — working directory when present (Codex and Pi)
19
+ - `ts` and `last_ts` — session start and last-message timestamps
20
+ - `match_count` and `keyword_matches` — when keyword filtering was used by the orchestrator
21
+ - **`output_schema`** *(optional)* — the structure the response should follow. When supplied, honor it verbatim.
22
+
23
+ ## Standalone fallback
24
+
25
+ If the dispatch prompt arrives without a `sessions` array, or with an empty array, return the literal string `no relevant prior sessions` and stop. Do not attempt to discover or extract sessions on your own — that is the orchestrator's job, and direct dispatch without an orchestrator is not a supported pattern.
26
+
27
+ ## Guardrails
28
+
29
+ These rules apply at all times during synthesis.
30
+
31
+ - **Read only the paths the orchestrator gave you.** Use the platform's native file-read tool (e.g., `Read` in Claude Code) on each `path`. Do not read source session files directly under `~/.claude/projects/`, `~/.codex/sessions/`, `~/.cursor/projects/`, or `~/.pi/agent/sessions/` — those are MB-scale and would blow the context window. The orchestrator already extracted what's relevant.
32
+ - **Never invoke the Skill tool.** This agent runs in subagent context where Skill calls deadlock. The orchestrator has already done all extraction; you only synthesize.
33
+ - **Never extract or reproduce tool call inputs/outputs verbatim.** Summarize what was attempted and what happened.
34
+ - **Never include thinking or reasoning block content.** Claude Code thinking blocks are internal reasoning; Codex reasoning blocks are encrypted. Neither is actionable. The skeleton extractor already strips these — do not surface them if any survived.
35
+ - **Never analyze the current session.** Its conversation history is already available to the caller; the orchestrator already excluded it from the dispatch payload.
36
+ - **Never make claims about team dynamics or other people's work.** This is one person's session data.
37
+ - **Never write any files.** Return text findings only.
38
+ - **Surface technical content, not personal content.** Sessions contain everything — credentials, frustration, half-formed opinions. Use judgment about what belongs in a technical summary and what doesn't.
39
+
40
+ ## Time budget
41
+
42
+ Stop as soon as you have a complete answer. A confident "no relevant prior sessions" within seconds is a complete answer; do not extend the search to fill time. The orchestrator already capped the deep-dive set at 5 sessions — do not request more, and do not loop over the same files multiple times for diminishing returns.
43
+
44
+ ## Synthesis methodology
45
+
46
+ Read each `path` in the dispatch payload, then synthesize against the `problem_topic`. Look for:
47
+
48
+ - **Investigation journey** — What approaches were tried? What failed and why? What led to the eventual solution?
49
+ - **User corrections** — Moments where the user redirected the approach. These reveal what NOT to do and why.
50
+ - **Decisions and rationale** — Why one approach was chosen over alternatives.
51
+ - **Error patterns** — Recurring errors across sessions (most visible when the orchestrator supplied an `errors_path` for a session) that indicate a systemic issue.
52
+ - **Evolution across sessions** — How understanding of the problem changed from session to session, potentially across different tools.
53
+ - **Cross-tool blind spots** — When sessions span Claude Code + Codex + Cursor + Pi, look for things the user might not realize from any single tool alone. Complementary work (one tool tackled the schema while the other tackled the API), duplicated effort (same approach tried in both tools days apart), or gaps (neither tool's sessions touched a component that connects the work). Only call out cross-tool observations when genuinely informative — if both sources tell the same story, there's nothing to flag.
54
+ - **Staleness** — Older sessions may reflect conclusions about code that has since changed. When surfacing findings from sessions more than a few days old, consider whether the relevant code or context is likely to have moved on. Caveat older findings rather than presenting them with the same confidence as recent ones.
55
+
56
+ Cite actual evidence from the extracted files, not vibe-summaries. When a finding is anchored in a specific session's content, that session's metadata (platform, branch/cwd, ts) helps the caller locate it.
57
+
58
+ ## Output
59
+
60
+ If the dispatch prompt supplies an `output_schema`, follow it verbatim. Do not add extra sections. Do not prepend the default header below.
61
+
62
+ Otherwise, lead with a brief one-line provenance header:
63
+
64
+ ```
65
+ **Sessions read**: [count] ([N] Claude Code, [N] Codex, [N] Cursor, [N] Pi) | [date range]
66
+ ```
67
+
68
+ Then the synthesis prose, organized under the default schema:
69
+
70
+ ```
71
+ - What was tried before
72
+ - What didn't work
73
+ - Key decisions
74
+ - Related context
75
+ ```
76
+
77
+ Omit any section with no findings. If no sessions yielded relevant content, return `no relevant prior sessions` instead of empty section headings.
78
+
79
+ ## Tool guidance
80
+
81
+ - Use the platform's native file-read tool (e.g., `Read` in Claude Code) for each path the orchestrator supplied. Do not pipe `cat` through shell — native tools avoid permission prompts and are more reliable.
82
+ - Native content-search (e.g., `Grep`) is appropriate when you want to locate a specific keyword across the supplied scratch files (not across source session files).
83
+ - **Do not invoke the `Skill` tool, the `Bash` tool to run extraction scripts, or any discovery primitive.** All discovery and extraction is the orchestrator's responsibility; this agent's contract is "read the paths you were given and synthesize."
@@ -0,0 +1,78 @@
1
+ # CONCEPTS.md vocabulary rules
2
+
3
+ `CONCEPTS.md` defines the words that mean something specific in this codebase — substrate that `docs/solutions/` and AGENTS.md can cite without redefinition. Lives at the repo root. Terms enter two ways — accretion and seeding (below) — and the file is created the first time either path produces a qualifying entry.
4
+
5
+ ## How terms enter: accretion and seeding
6
+
7
+ Two paths populate the file, and they cover different gaps:
8
+
9
+ - **Accretion** — a learning surfaces a term whose meaning wasn't obvious, so it gets defined. This reliably catches *peripheral* terms, because friction is what surfaces them.
10
+ - **Seeding** — a run proactively defines the **core domain nouns** of the area it is working in. This catches the *stable-central* terms accretion never reaches: the nouns a system is built around rarely break, so they rarely appear in a learning, yet they are exactly what a reader needs to orient. Without seeding, the file fills with peripheral mechanics and never names what the project is about.
11
+
12
+ ### Seed goal
13
+
14
+ Define the core domain nouns the area's **declared domain model** exposes that meet the qualifying bar (see "What earns a slot"). The codebase sets the count: seed every term that genuinely qualifies, none added to reach a number and none pulled from beyond the declared model to inflate one. A small domain yields a few; a large one, more. The bound is the **source** (the declared domain model of the area in scope — schema, core types, primary models, top-level domain docs — not a full-codebase trawl) and the **bar** (the same "a new engineer would need this defined" test), never a fixed quantity.
15
+
16
+ ### Scope of a seed
17
+
18
+ - A **scoped run** — a learning capture, or a refresh narrowed to an area — seeds only that area's core nouns, and defines only terms it actually investigated against code. It does not reach for repo-wide nouns it never touched.
19
+ - A **repo-wide bootstrap** — an explicit "create CONCEPTS.md" request — seeds the whole project's declared domain model. This is the only path that produces a coherent "what is this project" glossary; a scoped run cannot, and should not pretend to.
20
+
21
+ ## Be opinionated
22
+
23
+ When the team uses several words for the same concept, pick the best one and retire the rest. Record retired synonyms as aliases on the entry (see "Per entry"). Settled distinctions go to the Flagged ambiguities tail. The glossary is not a record of all words the team has ever used — it is the team's agreed-upon vocabulary.
24
+
25
+ ## The file stands on its own
26
+
27
+ Each entry teaches its concept to a reader with no access to anything else — no codebase, no PR history, no architecture meetings, no Slack. This rules out:
28
+
29
+ - Implementation specifics (file paths, class names, function signatures, table names, library calls)
30
+ - Status fields, dates, owners on the entries
31
+ - Examples or current-config values drawn from the code — specific thresholds, counts, or enum values that will change. State the behavior, not the number: "each skill sets its own actionable threshold" rather than "surfaces at 50, fixes at 75."
32
+ - Links to PRs, issues, channels, or roadmap milestones
33
+ - Version-specific claims ("currently uses X; migrating to Y")
34
+
35
+ Cross-references between entries within `CONCEPTS.md` are fine — they resolve internally. General programming vocabulary (caches, queues, jobs, sessions) and everyday domain English need no redefinition either. But if an entry leans on another *project-specific* term to make sense, that term must be defined here too — an undefined project-specific sibling is itself a candidate to add.
36
+
37
+ ## What earns a slot
38
+
39
+ A term qualifies when its meaning here is precise enough that a new engineer would need it defined to follow conversations, tickets, or code. General programming vocabulary does not belong, even when used heavily.
40
+
41
+ ## Per entry
42
+
43
+ Definition is one sentence — what the term means in this domain, what makes it distinct from neighbors. A term with non-obvious behavioral rules (lifecycle, cancellation semantics, ownership invariants) earns a second paragraph for those rules — never for elaborating the definition itself.
44
+
45
+ When retired synonyms exist, list them as an aliases line directly under the definition: *Avoid: Booking, appointment*. Entities typically need more depth than value types; status concepts may need transition notes.
46
+
47
+ ## Relationships (optional)
48
+
49
+ When relationships between entries carry load-bearing meaning (ownership, cardinality, lifecycle dependencies that span entries), capture them in a `## Relationships` section near the top of the file or its cluster. Skip when entries stand on their own without structural context — relationships are a lift for domains where structure is part of what makes terms meaningful, not a routine section.
50
+
51
+ ## Organization
52
+
53
+ Cluster concepts by domain relationship — entities with their states, processes with their stages — so a reader sees structure without effort. A flat list works when the file is small. Reshape as the file grows.
54
+
55
+ ## Flagged ambiguities (tail of file)
56
+
57
+ When two terms were used interchangeably and the team settled on a distinction, record the resolution as a one-line note: *"'account' had been used for both Customer and User — these are distinct."* This section is the audit trail for opinions the team has formed.
58
+
59
+ ## One illustrative entry — the shape, not a template
60
+
61
+ ```
62
+ ## Booking
63
+
64
+ ### Reservation
65
+ A future commitment to seat a Party at a specified date and time.
66
+ *Avoid:* Booking, appointment
67
+
68
+ A Reservation owns its Party but does not own a Table — Tables are acquired only when the Party arrives, through a Seating. Lifecycle: Booked, Seated, Completed, No-Show. Cancellation before a Seating is non-destructive; cancellation after a Seating is recorded as a No-Show.
69
+
70
+ ### Party
71
+ The guests committed to a Reservation. Each Reservation has exactly one Party. Party size is the count promised at booking, not the count who arrive.
72
+
73
+ ### Table
74
+ A physical seating unit with fixed capacity. Tables are shared resources — they do not belong to Reservations and are allocated only on the day-of through Seatings.
75
+
76
+ ### Seating
77
+ The act of placing a Party at a Table once the Party arrives. A Reservation has at most one Seating; a Table accumulates many Seatings across its lifetime.
78
+ ```
@@ -0,0 +1,231 @@
1
+ # Documentation schema for learnings written by ce-compound
2
+ # Treat this as the canonical frontmatter contract for docs/solutions/.
3
+ #
4
+ # The schema has two tracks based on problem_type:
5
+ # Bug track — problem_type is a defect or failure (build_error, test_failure, etc.)
6
+ # Knowledge track — problem_type is guidance or practice (best_practice, workflow_issue, etc.)
7
+ #
8
+ # Both tracks share the same required core fields. The tracks differ in which
9
+ # additional fields are required vs optional (see track_rules below).
10
+
11
+ # --- Track classification ---------------------------------------------------
12
+ tracks:
13
+ bug:
14
+ description: "Defects, failures, and errors that were diagnosed and fixed"
15
+ problem_types:
16
+ - build_error
17
+ - test_failure
18
+ - runtime_error
19
+ - performance_issue
20
+ - database_issue
21
+ - security_issue
22
+ - ui_bug
23
+ - integration_issue
24
+ - logic_error
25
+ knowledge:
26
+ description: "Practices, patterns, conventions, decisions, workflow improvements, and documentation"
27
+ problem_types:
28
+ - best_practice
29
+ - documentation_gap
30
+ - workflow_issue
31
+ - developer_experience
32
+ - architecture_pattern
33
+ - design_pattern
34
+ - tooling_decision
35
+ - convention
36
+
37
+ # --- Fields required by BOTH tracks -----------------------------------------
38
+ required_fields:
39
+ module:
40
+ type: string
41
+ description: "Module or area affected"
42
+
43
+ date:
44
+ type: string
45
+ pattern: '^\d{4}-\d{2}-\d{2}$'
46
+ description: "Date documented (YYYY-MM-DD)"
47
+
48
+ problem_type:
49
+ type: enum
50
+ values:
51
+ - build_error
52
+ - test_failure
53
+ - runtime_error
54
+ - performance_issue
55
+ - database_issue
56
+ - security_issue
57
+ - ui_bug
58
+ - integration_issue
59
+ - logic_error
60
+ - developer_experience
61
+ - workflow_issue
62
+ - best_practice
63
+ - documentation_gap
64
+ - architecture_pattern
65
+ - design_pattern
66
+ - tooling_decision
67
+ - convention
68
+ description: "Primary category — determines track (bug vs knowledge). Prefer the narrowest applicable value; best_practice is the fallback when no narrower knowledge-track value fits."
69
+
70
+ component:
71
+ type: enum
72
+ values:
73
+ - rails_model
74
+ - rails_controller
75
+ - rails_view
76
+ - service_object
77
+ - background_job
78
+ - database
79
+ - frontend_stimulus
80
+ - hotwire_turbo
81
+ - email_processing
82
+ - brief_system
83
+ - assistant
84
+ - authentication
85
+ - payments
86
+ - development_workflow
87
+ - testing_framework
88
+ - documentation
89
+ - tooling
90
+ description: "Component involved"
91
+
92
+ severity:
93
+ type: enum
94
+ values:
95
+ - critical
96
+ - high
97
+ - medium
98
+ - low
99
+ description: "Impact severity"
100
+
101
+ # --- Track-specific rules ----------------------------------------------------
102
+ track_rules:
103
+ bug:
104
+ required:
105
+ symptoms:
106
+ type: array[string]
107
+ min_items: 1
108
+ max_items: 5
109
+ description: "Observable symptoms such as errors or broken behavior"
110
+ root_cause:
111
+ type: enum
112
+ values:
113
+ - missing_association
114
+ - missing_include
115
+ - missing_index
116
+ - wrong_api
117
+ - scope_issue
118
+ - thread_violation
119
+ - async_timing
120
+ - memory_leak
121
+ - config_error
122
+ - logic_error
123
+ - test_isolation
124
+ - missing_validation
125
+ - missing_permission
126
+ - missing_workflow_step
127
+ - inadequate_documentation
128
+ - missing_tooling
129
+ - incomplete_setup
130
+ description: "Fundamental technical cause of the problem"
131
+ resolution_type:
132
+ type: enum
133
+ values:
134
+ - code_fix
135
+ - migration
136
+ - config_change
137
+ - test_fix
138
+ - dependency_update
139
+ - environment_setup
140
+ - workflow_improvement
141
+ - documentation_update
142
+ - tooling_addition
143
+ - seed_data_update
144
+ description: "Type of fix applied"
145
+
146
+ knowledge:
147
+ optional:
148
+ applies_when:
149
+ type: array[string]
150
+ max_items: 5
151
+ description: "Conditions or situations where this guidance applies"
152
+ symptoms:
153
+ type: array[string]
154
+ max_items: 5
155
+ description: "Observable gaps or friction that prompted this guidance (optional for knowledge track)"
156
+ root_cause:
157
+ type: enum
158
+ values:
159
+ - missing_association
160
+ - missing_include
161
+ - missing_index
162
+ - wrong_api
163
+ - scope_issue
164
+ - thread_violation
165
+ - async_timing
166
+ - memory_leak
167
+ - config_error
168
+ - logic_error
169
+ - test_isolation
170
+ - missing_validation
171
+ - missing_permission
172
+ - missing_workflow_step
173
+ - inadequate_documentation
174
+ - missing_tooling
175
+ - incomplete_setup
176
+ description: "Underlying cause, if there is a specific one (optional for knowledge track)"
177
+ resolution_type:
178
+ type: enum
179
+ values:
180
+ - code_fix
181
+ - migration
182
+ - config_change
183
+ - test_fix
184
+ - dependency_update
185
+ - environment_setup
186
+ - workflow_improvement
187
+ - documentation_update
188
+ - tooling_addition
189
+ - seed_data_update
190
+ description: "Type of change, if applicable (optional for knowledge track)"
191
+
192
+ # --- Fields optional for BOTH tracks ----------------------------------------
193
+ optional_fields:
194
+ related_components:
195
+ type: array[string]
196
+ description: "Other components involved"
197
+
198
+ tags:
199
+ type: array[string]
200
+ max_items: 8
201
+ description: "Search keywords, lowercase and hyphen-separated"
202
+
203
+ # --- Fields optional for bug track only -------------------------------------
204
+ bug_optional_fields:
205
+ rails_version:
206
+ type: string
207
+ pattern: '^\d+\.\d+\.\d+$'
208
+ description: "Rails version in X.Y.Z format. Only relevant for bug-track docs."
209
+
210
+ # --- Backward compatibility --------------------------------------------------
211
+ # Docs created before the track system was introduced may have bug-track
212
+ # fields (symptoms, root_cause, resolution_type) on knowledge-type
213
+ # problem_types. These are valid legacy docs:
214
+ # - Bug-track fields present on a knowledge-track doc are harmless. Do not
215
+ # strip them during refresh unless the doc is being rewritten for other reasons.
216
+ # - When creating NEW docs, follow the track rules above.
217
+
218
+ # --- Validation rules --------------------------------------------------------
219
+ validation_rules:
220
+ - "Determine track from problem_type using the tracks section above"
221
+ - "All shared required_fields must be present"
222
+ - "Bug-track required fields (symptoms, root_cause, resolution_type) must be present on bug-track docs"
223
+ - "Knowledge-track docs have no additional required fields beyond the shared ones"
224
+ - "Bug-track fields on existing knowledge-track docs are harmless (see backward compatibility note)"
225
+ - "Track-specific optional fields may be included but are not required"
226
+ - "Enum fields must match allowed values exactly"
227
+ - "Array fields must respect min_items/max_items when specified"
228
+ - "date must match YYYY-MM-DD format"
229
+ - "rails_version, if provided, must match X.Y.Z format and only applies to bug-track docs"
230
+ - "tags should be lowercase and hyphen-separated"
231
+ - "Array-of-strings frontmatter items (symptoms, applies_when, tags, related_components, or any future array field) must be wrapped in double quotes when the value starts with a YAML reserved indicator (`, [, *, &, !, |, >, %, @, ?) or contains the substring `: ` — otherwise strict YAML parsers reject the file"
@@ -0,0 +1,118 @@
1
+ # YAML Frontmatter Schema
2
+
3
+ `schema.yaml` in this directory is the canonical contract for `docs/solutions/` frontmatter written by `ce-compound`.
4
+
5
+ Use this file as the quick reference for:
6
+ - required fields
7
+ - enum values
8
+ - validation expectations
9
+ - category mapping
10
+ - track classification (bug vs knowledge)
11
+
12
+ ## Tracks
13
+
14
+ The `problem_type` determines which **track** applies. Each track has different required and optional fields.
15
+
16
+ | Track | problem_types | Description |
17
+ |-------|--------------|-------------|
18
+ | **Bug** | `build_error`, `test_failure`, `runtime_error`, `performance_issue`, `database_issue`, `security_issue`, `ui_bug`, `integration_issue`, `logic_error` | Defects and failures that were diagnosed and fixed |
19
+ | **Knowledge** | `best_practice`, `documentation_gap`, `workflow_issue`, `developer_experience`, `architecture_pattern`, `design_pattern`, `tooling_decision`, `convention` | Practices, patterns, conventions, decisions, workflow improvements, and documentation. Prefer the narrowest applicable value; `best_practice` is the fallback. |
20
+
21
+ ## Required Fields (both tracks)
22
+
23
+ - **module**: Module or area affected
24
+ - **date**: ISO date in `YYYY-MM-DD`
25
+ - **problem_type**: One of the values listed in the Tracks table above
26
+ - **component**: One of `rails_model`, `rails_controller`, `rails_view`, `service_object`, `background_job`, `database`, `frontend_stimulus`, `hotwire_turbo`, `email_processing`, `brief_system`, `assistant`, `authentication`, `payments`, `development_workflow`, `testing_framework`, `documentation`, `tooling`
27
+ - **severity**: One of `critical`, `high`, `medium`, `low`
28
+
29
+ ## Bug Track Fields
30
+
31
+ Required:
32
+ - **symptoms**: YAML array with 1-5 observable symptoms (errors, broken behavior)
33
+ - **root_cause**: One of `missing_association`, `missing_include`, `missing_index`, `wrong_api`, `scope_issue`, `thread_violation`, `async_timing`, `memory_leak`, `config_error`, `logic_error`, `test_isolation`, `missing_validation`, `missing_permission`, `missing_workflow_step`, `inadequate_documentation`, `missing_tooling`, `incomplete_setup`
34
+ - **resolution_type**: One of `code_fix`, `migration`, `config_change`, `test_fix`, `dependency_update`, `environment_setup`, `workflow_improvement`, `documentation_update`, `tooling_addition`, `seed_data_update`
35
+
36
+ ## Knowledge Track Fields
37
+
38
+ No additional required fields beyond the shared ones. All fields below are optional:
39
+
40
+ - **applies_when**: Conditions or situations where this guidance applies
41
+ - **symptoms**: Observable gaps or friction that prompted this guidance
42
+ - **root_cause**: Underlying cause, if there is a specific one
43
+ - **resolution_type**: Type of change, if applicable
44
+
45
+ ## Optional Fields (both tracks)
46
+
47
+ - **related_components**: Other components involved
48
+ - **tags**: Search keywords, lowercase and hyphen-separated
49
+
50
+ ## Optional Fields (bug track only)
51
+
52
+ - **rails_version**: Rails version in `X.Y.Z` format
53
+
54
+ ## Backward Compatibility
55
+
56
+ Docs created before the track system may have `symptoms`/`root_cause`/`resolution_type` on knowledge-type problem_types. These are valid legacy docs:
57
+
58
+ - Bug-track fields present on a knowledge-track doc are harmless. Do not strip them during refresh unless the doc is being rewritten for other reasons.
59
+ - When creating **new** docs, follow the track rules above.
60
+
61
+ ## Category Mapping
62
+
63
+ - `build_error` -> `docs/solutions/build-errors/`
64
+ - `test_failure` -> `docs/solutions/test-failures/`
65
+ - `runtime_error` -> `docs/solutions/runtime-errors/`
66
+ - `performance_issue` -> `docs/solutions/performance-issues/`
67
+ - `database_issue` -> `docs/solutions/database-issues/`
68
+ - `security_issue` -> `docs/solutions/security-issues/`
69
+ - `ui_bug` -> `docs/solutions/ui-bugs/`
70
+ - `integration_issue` -> `docs/solutions/integration-issues/`
71
+ - `logic_error` -> `docs/solutions/logic-errors/`
72
+ - `developer_experience` -> `docs/solutions/developer-experience/`
73
+ - `workflow_issue` -> `docs/solutions/workflow-issues/`
74
+ - `best_practice` -> `docs/solutions/best-practices/`
75
+ - `documentation_gap` -> `docs/solutions/documentation-gaps/`
76
+ - `architecture_pattern` -> `docs/solutions/architecture-patterns/`
77
+ - `design_pattern` -> `docs/solutions/design-patterns/`
78
+ - `tooling_decision` -> `docs/solutions/tooling-decisions/`
79
+ - `convention` -> `docs/solutions/conventions/`
80
+
81
+ ## Validation Rules
82
+
83
+ 1. Determine the track from `problem_type` using the Tracks table.
84
+ 2. All shared required fields must be present.
85
+ 3. Bug-track required fields (`symptoms`, `root_cause`, `resolution_type`) must be present on bug-track docs.
86
+ 4. Knowledge-track docs have no additional required fields beyond the shared ones.
87
+ 5. Bug-track fields on existing knowledge-track docs are harmless (see Backward Compatibility).
88
+ 6. Enum fields must match the allowed values exactly.
89
+ 7. Array fields must respect min/max item counts.
90
+ 8. `date` must match `YYYY-MM-DD`.
91
+ 9. `rails_version`, if present, must match `X.Y.Z` and only applies to bug-track docs.
92
+
93
+ ## YAML Safety Rules
94
+
95
+ Strict YAML 1.2 parsers (`yq`, `js-yaml` strict, PyYAML) reject array items
96
+ that start with a reserved indicator character as unquoted scalars. When
97
+ writing items for any array-of-strings field (`symptoms`, `applies_when`,
98
+ `tags`, `related_components`, or any future array field), wrap the value in
99
+ double quotes if it starts with any of:
100
+
101
+ `` ` ``, `[`, `*`, `&`, `!`, `|`, `>`, `%`, `@`, `?`
102
+
103
+ Also quote if the value contains the substring `": "` — that punctuation
104
+ confuses flow-style parsers.
105
+
106
+ Example — before (breaks strict YAML):
107
+
108
+ symptoms:
109
+ - `sudo dscacheutil -flushcache` does not restore in-container mDNS
110
+
111
+ Example — after (parses cleanly):
112
+
113
+ symptoms:
114
+ - "`sudo dscacheutil -flushcache` does not restore in-container mDNS"
115
+
116
+ This rule applies to all array-of-strings frontmatter fields. Scalar string
117
+ fields like `description:` have their own quoting rules (see plugin
118
+ `AGENTS.md` under "YAML Frontmatter").
@@ -0,0 +1,130 @@
1
+ #!/usr/bin/env bash
2
+ # Discover session files across Claude Code, Codex, Cursor, and Pi.
3
+ #
4
+ # Usage: discover-sessions.sh <repo-name> <days> [--cwd /abs/repo/root] [--platform claude|codex|cursor|pi]
5
+ #
6
+ # Outputs one file path per line. Safe in both bash and zsh (all globs guarded).
7
+ # Pass output to extract-metadata.py:
8
+ # python3 extract-metadata.py --cwd-filter <repo-name> $(bash discover-sessions.sh <repo-name> 7)
9
+ #
10
+ # Arguments:
11
+ # repo-name Folder name of the repo (e.g., "my-repo"). Used for directory matching.
12
+ # days Scan window in days (e.g., 7). Files older than this are skipped.
13
+ # --cwd Absolute repo root. Used for exact Pi encoded-CWD discovery.
14
+ # --platform Restrict to a single platform. Omit to search all.
15
+
16
+ set -euo pipefail
17
+
18
+ REPO_NAME="${1:?Usage: discover-sessions.sh <repo-name> <days> [--cwd /abs/repo/root] [--platform claude|codex|cursor|pi]}"
19
+ DAYS="${2:?Usage: discover-sessions.sh <repo-name> <days> [--cwd /abs/repo/root] [--platform claude|codex|cursor|pi]}"
20
+ PLATFORM="all"
21
+ REPO_CWD=""
22
+
23
+ # Parse optional --platform flag
24
+ shift 2
25
+ while [ $# -gt 0 ]; do
26
+ case "$1" in
27
+ --cwd) REPO_CWD="$2"; shift 2 ;;
28
+ --platform) PLATFORM="$2"; shift 2 ;;
29
+ *) shift ;;
30
+ esac
31
+ done
32
+
33
+ encode_pi_cwd() {
34
+ local cwd="${1%/}"
35
+ local encoded="${cwd//\//-}"
36
+ encoded="${encoded#-}"
37
+ printf -- "--%s--" "$encoded"
38
+ }
39
+
40
+ # --- Claude Code ---
41
+ discover_claude() {
42
+ local base="$HOME/.claude/projects"
43
+ [ -d "$base" ] || return 0
44
+
45
+ # Find all project dirs matching repo name
46
+ for dir in "$base"/*"$REPO_NAME"*/; do
47
+ [ -d "$dir" ] || continue
48
+ find "$dir" -maxdepth 1 -name "*.jsonl" -mtime "-${DAYS}" 2>/dev/null
49
+ done
50
+ }
51
+
52
+ # --- Codex ---
53
+ discover_codex() {
54
+ for base in "$HOME/.codex/sessions" "$HOME/.agents/sessions"; do
55
+ [ -d "$base" ] || continue
56
+
57
+ # Use mtime-based discovery (consistent with Claude/Cursor) so that
58
+ # sessions started before the scan window but still active within it
59
+ # are not missed.
60
+ find "$base" -name "*.jsonl" -mtime "-${DAYS}" 2>/dev/null
61
+ done
62
+ }
63
+
64
+ # --- Cursor ---
65
+ discover_cursor() {
66
+ local base="$HOME/.cursor/projects"
67
+ [ -d "$base" ] || return 0
68
+
69
+ for dir in "$base"/*"$REPO_NAME"*/; do
70
+ [ -d "$dir" ] || continue
71
+ local transcripts="$dir/agent-transcripts"
72
+ [ -d "$transcripts" ] || continue
73
+ find "$transcripts" -name "*.jsonl" -mtime "-${DAYS}" 2>/dev/null
74
+ done
75
+ }
76
+
77
+ # --- Pi ---
78
+ discover_pi() {
79
+ local agent_dir="${PI_CODING_AGENT_DIR:-$HOME/.pi/agent}"
80
+ local base="${PI_CODING_AGENT_SESSION_DIR:-$agent_dir/sessions}"
81
+ [ -d "$base" ] || return 0
82
+
83
+ # Pi's explicit session-dir override stores session files directly in the
84
+ # supplied directory. The cwd filter later reads each header and keeps only
85
+ # sessions for the active repo.
86
+ if [ -n "${PI_CODING_AGENT_SESSION_DIR:-}" ]; then
87
+ find "$base" -maxdepth 1 -name "*.jsonl" -mtime "-${DAYS}" 2>/dev/null
88
+ if [ -z "$REPO_CWD" ]; then
89
+ for dir in "$base"/*"$REPO_NAME"*/; do
90
+ [ -d "$dir" ] || continue
91
+ find "$dir" -maxdepth 1 -name "*.jsonl" -mtime "-${DAYS}" 2>/dev/null
92
+ done
93
+ fi
94
+ return 0
95
+ fi
96
+
97
+ # Pi stores sessions under --<absolute-cwd-with-slashes-as-hyphens>--.
98
+ # When the caller supplies an exact repo root, probe only that encoded
99
+ # directory so sibling repos like my-repo-old never enter the pipeline.
100
+ if [ -n "$REPO_CWD" ]; then
101
+ local dir="$base/$(encode_pi_cwd "$REPO_CWD")"
102
+ [ -d "$dir" ] || return 0
103
+ find "$dir" -maxdepth 1 -name "*.jsonl" -mtime "-${DAYS}" 2>/dev/null
104
+ return 0
105
+ fi
106
+
107
+ # Fallback for direct script use without --cwd.
108
+ for dir in "$base"/*"$REPO_NAME"*/; do
109
+ [ -d "$dir" ] || continue
110
+ find "$dir" -maxdepth 1 -name "*.jsonl" -mtime "-${DAYS}" 2>/dev/null
111
+ done
112
+ }
113
+
114
+ # --- Dispatch ---
115
+ case "$PLATFORM" in
116
+ claude) discover_claude ;;
117
+ codex) discover_codex ;;
118
+ cursor) discover_cursor ;;
119
+ pi) discover_pi ;;
120
+ all)
121
+ discover_claude
122
+ discover_codex
123
+ discover_cursor
124
+ discover_pi
125
+ ;;
126
+ *)
127
+ echo "Unknown platform: $PLATFORM" >&2
128
+ exit 1
129
+ ;;
130
+ esac