@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,26 @@
1
+ # `autofix_class` rubric (personas)
2
+
3
+ `autofix_class` describes the **intrinsic shape** of follow-up work — it is signal, **not an apply gate or permission**. In `mode:agent` the caller interprets findings and owns apply; in default (interactive) mode the review applies safe fixes itself by judgment (SKILL.md Stage 5c). Either way the class informs *what to do first* and *what to flag* — it does not mechanically decide what gets applied.
4
+
5
+ | `autofix_class` | Meaning |
6
+ |-----------------|---------|
7
+ | `gated_auto` | A concrete change is proposed in `suggested_fix`. Callers may apply after their own judgment. |
8
+ | `manual` | Actionable work that needs design input or a decision before code changes. Include `suggested_fix` when you can propose a defensible default. |
9
+ | `advisory` | Report-only — learnings, residual risk, rollout notes. |
10
+
11
+ ## Persona guidance
12
+
13
+ - Prefer `gated_auto` when you can write a defensible `suggested_fix` for a localized change.
14
+ - Use `manual` when the right fix depends on product intent, architecture, or cross-cutting refactors.
15
+ - Use `advisory` when nothing breaks if left unfixed but the observation has value.
16
+ - Do **not** emit `safe_auto` — callers decide what to apply; reviewers classify and propose.
17
+
18
+ ## Owner field
19
+
20
+ | `owner` | Meaning |
21
+ |---------|---------|
22
+ | `downstream-resolver` | Caller or human should act after review. |
23
+ | `human` | Judgment required before implementation. |
24
+ | `release` | Operational / rollout follow-up. |
25
+
26
+ Do not use `review-fixer`.
@@ -0,0 +1,112 @@
1
+ # Bulk Action Preview
2
+
3
+ This reference defines the compact plan preview that Interactive mode shows before the file-tickets routing option (option C) executes. The preview gives the user a single-screen view of what the agent is about to do, with exactly two options to Proceed or Cancel.
4
+
5
+ Interactive mode only. Option C only.
6
+
7
+ The best-judgment path (routing option B and the walk-through's `Auto-resolve with best judgment on the rest`) does **not** use the bulk preview. The best-judgment path dispatches the fixer immediately and surfaces failures in a post-run question, per the `(B)` handler in `SKILL.md` Step 2 Interactive mode. Filing tickets is the one bulk action that benefits from a preview because filing produces durable external state that is expensive to undo — applying local fixes on uncommitted edits is not.
8
+
9
+ ---
10
+
11
+ ## When the preview fires
12
+
13
+ One call site:
14
+
15
+ - **Routing option C (top-level File tickets)** — after the user picks `File a [TRACKER] ticket per finding without applying fixes` but before any ticket is filed. Scope: every pending `gated_auto` / `manual` finding. Every finding appears under `Filing [TRACKER] tickets (N):` regardless of the agent's natural recommendation, because option C is batch-defer.
16
+
17
+ The user confirms with `Proceed` or backs out with `Cancel`. No per-item decisions inside the preview — per-item decisioning is the walk-through's role (option A).
18
+
19
+ ---
20
+
21
+ ## Preview structure
22
+
23
+ The preview is grouped by the action the agent intends to take. Bucket headers appear only when their bucket is non-empty.
24
+
25
+ ```
26
+ <Path label> — <scope summary>[ (tracker: <name>)]:
27
+
28
+ Applying (N):
29
+ [P0] <file>:<line> — <one-line plain-English summary>
30
+ [P1] <file>:<line> — <one-line plain-English summary>
31
+
32
+ Filing [TRACKER] tickets (N):
33
+ [P2] <file>:<line> — <one-line plain-English summary>
34
+
35
+ Skipping (N):
36
+ [P2] <file>:<line> — <one-line plain-English summary>
37
+
38
+ Acknowledging (N):
39
+ [P3] <file>:<line> — <one-line plain-English summary>
40
+ ```
41
+
42
+ Worked example, for routing option C (file tickets):
43
+
44
+ ```
45
+ File plan — 8 findings as Linear tickets:
46
+
47
+ Filing Linear tickets (8):
48
+ [P0] orders_controller.rb:42 — Missing ownership guard on order lookup
49
+ [P1] webhook_handler.rb:120 — Unhandled error swallowed in webhook
50
+ [P2] user_serializer.rb:14 — internal_id leaks in serialized response
51
+ [P2] billing_service.rb:230 — N+1 on refund batch
52
+ [P2] session_helper.rb:12 — Session reset behavior unclear
53
+ [P2] report_worker.rb:55 — Worker timeout under heavy load
54
+ [P3] string_utils.rb:8 — Ambiguous helper name
55
+ [P3] readme.md:14 — Documentation gap
56
+ ```
57
+
58
+ ---
59
+
60
+ ## Scope summary wording
61
+
62
+ - **Routing option C (top-level File tickets):** header reads `File plan — N findings as [TRACKER] tickets:`. Every finding lands in the `Filing [TRACKER] tickets (N):` bucket. Option C is batch-defer — no Apply / Skip / Acknowledge buckets render in the preview, since every finding is being filed.
63
+
64
+ When the detected tracker is low-confidence or generic (see `tracker-defer.md`), the `(tracker: <name>)` annotation is omitted from the header and the `Filing [TRACKER] tickets` bucket header uses the generic form (`Filing tickets (N):`).
65
+
66
+ ---
67
+
68
+ ## Per-finding line format
69
+
70
+ Each line uses the compressed form of the framing-quality bar from the plan (R22-R25 — observable-behavior-first, no function / variable names unless needed to locate). The one-line summary is drawn from the persona-produced `why_it_matters` by taking the first sentence (and, when the first sentence is too long for the preview width, paraphrasing it tightly to fit).
71
+
72
+ - **Shape:** `[<severity>] <file>:<line> — <one-line summary>`
73
+ - **Width target:** keep lines near 80 columns so the preview renders cleanly in narrow terminals. Truncate with ellipsis when necessary.
74
+ - **No function / variable names inline** unless the reader needs them to locate the issue.
75
+ - **Advisory bucket phrasing:** the `Acknowledging (N):` bucket describes the advisory content in one line. No "fix" phrase — advisory findings have no concrete fix.
76
+
77
+ When no `why_it_matters` is available for a finding (e.g., Unit 2's template upgrade hasn't fully propagated through the persona run, or the artifact file was unreadable), fall back to the finding's title directly. Note the gap in the completion report's Coverage section if it affects more than a few findings in the same run.
78
+
79
+ ---
80
+
81
+ ## Question and options
82
+
83
+ After the preview body is rendered, ask the user using the platform's blocking question tool (`AskUserQuestion` in Claude Code, `request_user_input` in Codex, `ask_user` in Gemini, `ask_user` in Pi (requires the `pi-ask-user` extension)). In Claude Code, the tool should already be loaded from the Interactive-mode pre-load step — if it isn't, call `ToolSearch` with query `select:AskUserQuestion` now. The text fallback below applies only when the harness genuinely lacks a blocking tool — `ToolSearch` returns no match, the tool call explicitly fails, or the runtime mode does not expose it (e.g., Codex edit modes without `request_user_input`). A pending schema load is not a fallback trigger. Never silently skip the question.
84
+
85
+ Stem: `The agent is about to file the tickets above. Proceed?`
86
+
87
+ Options (exactly two):
88
+ - `Proceed` — file every ticket in the preview
89
+ - `Cancel` — do nothing, return to the routing question
90
+
91
+ Only when `ToolSearch` explicitly returns no match or the tool call errors — or on a platform with no blocking question tool — fall back to presenting numbered options and waiting for the user's next reply.
92
+
93
+ ---
94
+
95
+ ## Cancel semantics
96
+
97
+ `Cancel` returns the user to the routing question (the four-option menu in `SKILL.md` Step 2 Interactive mode). No tickets are filed; no state is recorded. The session's cached tracker-detection tuple is preserved.
98
+
99
+ ---
100
+
101
+ ## Proceed semantics
102
+
103
+ When the user picks `Proceed`, every finding in the preview routes through `references/tracker-defer.md` for ticket creation. No fixes are applied. After all tickets have been filed (or failed), emit the unified completion report (see `references/walkthrough.md`).
104
+
105
+ Failure during `Proceed` (e.g., ticket creation fails for one finding during a batch Defer) follows the failure path defined in `tracker-defer.md` — surface the failure inline with Retry / Fallback / Skip, continue with the rest of the plan, and capture the failure in the completion report's failure section.
106
+
107
+ ---
108
+
109
+ ## Edge cases
110
+
111
+ - **N=1 preview (only one finding in scope):** the preview still renders with a single-line bucket. `Proceed` / `Cancel` still apply.
112
+ - **No tracker available:** option C is not offered upstream (see `tracker-defer.md` no sink handling). The bulk preview is therefore never invoked when `any_sink_available` is false.
@@ -0,0 +1,63 @@
1
+ # Cross-Model Adversarial Pass
2
+
3
+ Runs the adversarial review through a **different model family than the host**, in a separate read-only process, so its findings are independent of the in-process reviewers. The peer gets the **same** `references/personas/adversarial-reviewer.md` brief the in-process reviewer uses, returns the same `findings-schema.json` shape, and folds into Stage 5 as reviewer `adversarial-<peer>` — so agreement between it and the in-process `adversarial` persona promotes the finding (Stage 5 cross-reviewer agreement; render as `adversarial, adversarial-<peer>`).
4
+
5
+ All the invocation detail (composing the prompt from the persona, read-only flags, per-peer timeouts, capturing schema-shaped JSON) lives in the bundled script **`scripts/cross-model-adversarial-review.sh`**. This reference only decides *whether* to run it, *which peer*, and how to fold the result in. The pass is **non-blocking**: the script logs a reason and exits cleanly on any problem, writing no output file — a missing file is simply "no cross-model pass," never a failure.
6
+
7
+ ## Gates — run only when all hold
8
+
9
+ 1. `adversarial-reviewer` was selected in Stage 3 (reuse that diff gate — don't run a costly external CLI on a trivial diff).
10
+ 2. Scope is `local-aligned` or standalone — the working tree IS the reviewed head. Skip in `pr-remote` / `branch-remote`: the peer reviews the local tree, which is not the PR/branch head.
11
+
12
+ ## Step 1 — Identify host and peer (runtime self-id, no build-time)
13
+
14
+ ```bash
15
+ if [ -n "${CURSOR_AGENT:-}${CURSOR_CONVERSATION_ID:-}" ]; then XHOST=cursor; XPEER=codex
16
+ elif [ "${CLAUDECODE:-}" = "1" ]; then XHOST=claude; XPEER=codex
17
+ elif [ -n "${CODEX_SANDBOX:-}${CODEX_SANDBOX_NETWORK_DISABLED:-}${CODEX_SESSION_ID:-}${CODEX_THREAD_ID:-}${CODEX_CI:-}" ]; then XHOST=codex; XPEER=claude
18
+ else XHOST=unknown; XPEER=""; fi
19
+ echo "XMODEL_HOST: $XHOST PEER: ${XPEER:-none}"
20
+ ```
21
+
22
+ Cursor and Claude prefer **codex** as the peer (a guaranteed different model family); Codex prefers **claude**. There is no single canonical marker Codex sets across surfaces (CLI, web, CI), and `shell_environment_policy`/IDE inheritance can strip env vars, so check the union above. Do **not** use the *other* CLI's home (e.g. `CODEX_HOME`) — it leaks into a Claude session. `unknown` → skip the pass silently. The script also re-validates the peer it is handed, so a wrong/missing peer fails safe.
23
+
24
+ ## Step 2 — Announce (only on an interactive host — `claude` or `cursor` — AND default mode)
25
+
26
+ - Interactive host, default mode: surface a **prominent standalone line naming the peer** that will run (the peer CLI, plus its model if cheaply known), framed as an independent second model reviewing in parallel — placed with the Stage 3 team announce, not buried after it. Wording is yours; the falsifiable requirements: prominent, names the peer, reads as coverage not plumbing.
27
+ - Interactive host, peer not available (script will skip — CLI missing/unauthed): one quiet line that the cross-model pass was skipped and why. Never an error.
28
+ - `XHOST=codex`: announce **nothing** — run or skip silently.
29
+ - `mode:agent`: emit no prose.
30
+
31
+ ## Step 3 — Run the bundled script (launch it in parallel with the persona reviewers)
32
+
33
+ The script is a CLI shell-out, not a subagent, so it doesn't consume the subagent concurrency budget. **Launch it as a background shell process in the same Stage 4 dispatch wave as the persona reviewers** so its runtime overlaps theirs, then collect before Stage 5.
34
+
35
+ Invoke it via the skill-dir anchor — set `SKILL_DIR` to the absolute directory of **this** skill's `SKILL.md` (the one you read to run ce-code-review), because the Bash tool's CWD is the user's project, not the skill dir, on every host:
36
+
37
+ ```bash
38
+ SKILL_DIR="<absolute path of the directory containing the ce-code-review SKILL.md you read>"
39
+ bash "$SKILL_DIR/scripts/cross-model-adversarial-review.sh" "<peer>" "<base-ref>" "<run-dir>"
40
+ ```
41
+
42
+ - `<peer>` = `XPEER` from Step 1 (`codex` or `claude`).
43
+ - `<base-ref>` = the Stage 1 `BASE` (the diff base the peer reviews via `git diff <base-ref>`).
44
+ - `<run-dir>` = the Stage 4 run dir (`/tmp/compound-engineering/ce-code-review/<run-id>/`). The script writes `adversarial-<peer>.json` there.
45
+
46
+ Set the Bash tool `timeout` to `660000` (11 min) — the script self-bounds (codex idle-timeout, default-180s stall with reasoning forced on for liveness; hard backstop `CROSS_MODEL_HARD_SECS`, default 600s) and exits cleanly. If the harness can't background a shell command, run it inline before awaiting the reviewers; correctness is unaffected, only wall-clock. The script needs no prompt or schema passed in — it reads the persona brief and `findings-schema.json` itself from the skill dir.
47
+
48
+ ## Step 4 — Fold into Stage 5
49
+
50
+ - Read `<run-dir>/adversarial-<peer>.json`. If present, treat it as one reviewer return with `reviewer: adversarial-<peer>`, exactly like a persona artifact: its merge-tier fields enter Stage 5 dedup/promotion.
51
+ - **No file** (script skipped: no peer, CLI missing/unauthed, timeout, or unparseable output) → the pass simply didn't run. Note "cross-model pass: not run" in Coverage on an interactive host in default mode; stay silent under codex / `mode:agent`. Never fail the review.
52
+ - Empty `findings` → note "cross-model pass: no additional issues" in Coverage.
53
+ - A finding sharing a dedup fingerprint with the in-process `adversarial` persona promotes by one anchor step — the cross-model agreement signal, the strongest in the set (different model families, separate processes).
54
+
55
+ ## What the script does (for maintainers — you don't invoke this directly)
56
+
57
+ `scripts/cross-model-adversarial-review.sh <peer> <base-ref> <run-dir>`:
58
+ - Self-locates the persona + schema via `BASH_SOURCE` (works from any CWD); derives the repo root from `git`.
59
+ - Composes the peer prompt from the canonical persona brief + a JSON-only contract. Codex fetches its own diff with read-only `git` inside its sandbox; Claude (which has no sandbox) is hard-denied `Bash`, so it gets the diff embedded and needs no shell. After capture, the script forces `reviewer = adversarial-<peer>` (the persona's example name `adversarial` would otherwise collide with the in-process reviewer and erase the cross-model agreement signal).
60
+ - Codex peer: `codex exec - -s read-only -o <out>` at high reasoning effort. No `--output-schema` (Codex strict mode rejects the permissive draft-07 schema); the full schema embedded in the prompt is its only contract, which produces complete schema-shaped findings (verified). The `-o` write is done by the codex CLI *outside* the model's sandbox, so it succeeds under `-s read-only` (verified); if it ever fails to materialize, the script recovers the same JSON from codex's captured stdout (belt-and-suspenders, no data lost).
61
+ - Claude peer: `claude -p --permission-mode dontAsk --disallowedTools Edit Write NotebookEdit --json-schema … --output-format json` (disallowed tools passed as separate variadic args, not one quoted string), captured from stdout (it can't write a file under those permissions), parsed via `.structured_output` with a `.result` fallback.
62
+ - Read-only differs by peer: codex `-s read-only` is a hard sandbox; claude `dontAsk` denies `Edit`/`Write`/`NotebookEdit`/`Bash` plus `mcp__*` (a user's pre-approved MCP write/deploy tools would otherwise run under `dontAsk`) and `Task` (a subagent would bypass the deny list) — so it can't mutate via shell, MCP, or a spawned subagent even under broad user allow-rules (deny overrides allow) — and reviews the embedded diff with read-only file access. Non-blocking everywhere: any gap → log + exit 0, no output file.
63
+ - Timeouts kill the whole **process group**, so no orphaned model call outlives the script. **Codex** streams its reasoning, so it runs in its own process group (`set -m`) under a watchdog that reaps the group — `kill -TERM` then `kill -KILL` after a grace, checking *group* liveness so a child that defers SIGTERM can't escape — when output stalls for `CROSS_MODEL_IDLE_SECS` (default 180s; reasoning is forced on via `-c hide_agent_reasoning=false` so the stream stays a reliable liveness signal even under a user config that hides it) or exceeds the hard backstop `CROSS_MODEL_HARD_SECS` (default 600s). Reaping the group directly (rather than signalling a `gtimeout` wrapper, whose `-k` only escalates on its *own* expiry) is what guarantees the peer dies. **Claude**'s `--output-format json` is single-shot, so it just gets a `gtimeout`/`timeout` hard cap.
@@ -0,0 +1,41 @@
1
+ # Diff Scope Rules
2
+
3
+ These rules apply to every reviewer. They define what is "your code to review" versus pre-existing context.
4
+
5
+ ## Scope Discovery
6
+
7
+ Determine the diff to review using this priority order:
8
+
9
+ 1. **User-specified scope.** If the caller passed `BASE:`, `FILES:`, or `DIFF:` markers, use that scope exactly.
10
+ 2. **Working copy changes.** If there are unstaged or staged changes (`git diff HEAD` is non-empty), review those.
11
+ 3. **Unpushed commits vs base branch.** If the working copy is clean, review `git diff $(git merge-base HEAD <base>)..HEAD` where `<base>` is the default branch (main or master).
12
+
13
+ The scope step in the SKILL.md handles discovery and passes you the resolved diff. You do not need to run git commands yourself unless PR scope mode requires it (below).
14
+
15
+ ## Remote scope (`pr-remote` and `branch-remote`)
16
+
17
+ When the review context includes `<pr-scope-mode>pr-remote</pr-scope-mode>` or `<pr-scope-mode>branch-remote</pr-scope-mode>`, the working tree is **not** the reviewed head. Do **not** use Read/Grep on workspace paths for files in the changed-file list — they may not match the branch or PR under review.
18
+
19
+ Instead:
20
+
21
+ - Prefer `git show <remote-head-ref>:<path>` when `<pr-head-ref>` or `<branch-head-ref>` is provided in context.
22
+ - Otherwise rely on diff hunks in the provided `<diff>` only.
23
+ - Do not treat local workspace contents as evidence for findings on changed files.
24
+
25
+ ## Finding Classification Tiers
26
+
27
+ Every finding you report falls into one of three tiers based on its relationship to the diff:
28
+
29
+ ### Primary (directly changed code)
30
+
31
+ Lines added or modified in the diff. This is your main focus. Report findings against these lines at full confidence.
32
+
33
+ ### Secondary (immediately surrounding code)
34
+
35
+ Unchanged code within the same function, method, or block as a changed line. If a change introduces a bug that's only visible by reading the surrounding context, report it -- but note that the issue exists in the interaction between new and existing code.
36
+
37
+ ### Pre-existing (unrelated to this diff)
38
+
39
+ Issues in unchanged code that the diff didn't touch and doesn't interact with. Mark these as `"pre_existing": true` in your output. They're reported separately and don't count toward the review verdict.
40
+
41
+ **The rule:** If you'd flag the same issue on an identical diff that didn't include the surrounding file, it's pre-existing. If the diff makes the issue *newly relevant* (e.g., a new caller hits an existing buggy function), it's secondary.
@@ -0,0 +1,137 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Code Review Findings",
4
+ "description": "Structured output schema for code review sub-agents",
5
+ "type": "object",
6
+ "required": ["reviewer", "findings", "residual_risks", "testing_gaps"],
7
+ "properties": {
8
+ "reviewer": {
9
+ "type": "string",
10
+ "description": "Persona name that produced this output (e.g., 'correctness', 'security')"
11
+ },
12
+ "findings": {
13
+ "type": "array",
14
+ "description": "List of code review findings. Empty array if no issues found.",
15
+ "items": {
16
+ "type": "object",
17
+ "required": [
18
+ "title",
19
+ "severity",
20
+ "file",
21
+ "line",
22
+ "why_it_matters",
23
+ "autofix_class",
24
+ "owner",
25
+ "requires_verification",
26
+ "confidence",
27
+ "evidence",
28
+ "pre_existing"
29
+ ],
30
+ "properties": {
31
+ "title": {
32
+ "type": "string",
33
+ "description": "Short, specific issue title. 10 words or fewer.",
34
+ "maxLength": 100
35
+ },
36
+ "severity": {
37
+ "type": "string",
38
+ "enum": ["P0", "P1", "P2", "P3"],
39
+ "description": "Issue severity level"
40
+ },
41
+ "file": {
42
+ "type": "string",
43
+ "description": "Relative file path from repository root"
44
+ },
45
+ "line": {
46
+ "type": "integer",
47
+ "description": "Primary line number of the issue",
48
+ "minimum": 1
49
+ },
50
+ "why_it_matters": {
51
+ "type": "string",
52
+ "description": "Impact and failure mode -- not 'what is wrong' but 'what breaks'"
53
+ },
54
+ "autofix_class": {
55
+ "type": "string",
56
+ "enum": ["gated_auto", "manual", "advisory"],
57
+ "description": "Routing hint for the caller after review (this skill does not apply fixes). gated_auto = concrete suggested_fix proposed; caller applies after judgment. manual = needs design or cross-cutting decisions. advisory = report-only."
58
+ },
59
+ "owner": {
60
+ "type": "string",
61
+ "enum": ["downstream-resolver", "human", "release"],
62
+ "description": "Who should own the next action for this finding after synthesis"
63
+ },
64
+ "requires_verification": {
65
+ "type": "boolean",
66
+ "description": "Whether any fix for this finding must be re-verified with targeted tests or a follow-up review pass"
67
+ },
68
+ "suggested_fix": {
69
+ "type": ["string", "null"],
70
+ "description": "Concrete minimal fix the reviewer can defend from the diff and surrounding code. Propose one whenever any defensible code change is reachable from review context (parallel patterns, framework conventions, or the cited code itself). Imperfect information is not grounds for omission -- propose the most defensible default given what you can see, name any assumption you are making, and let the user override. 'I need <specific input> to commit' is a soft punt: the right question is 'what code change would I propose if I had to choose now?' and propose that, with the assumption named. Omit only when there is genuinely no code-level change to propose -- e.g., the finding is a question rather than a fix ('what is the intended SLA here?'), or the resolution is purely an organizational action with no code component (legal sign-off, business policy decision). These cases are rare in code review. A bad suggestion is still worse than none, but a soft punt is the failure mode this field is designed to prevent."
71
+ },
72
+ "confidence": {
73
+ "type": "integer",
74
+ "enum": [0, 25, 50, 75, 100],
75
+ "description": "Anchored confidence score. Use exactly one of 0, 25, 50, 75, 100. Each anchor has a behavioral criterion the reviewer must honestly self-apply. 0: Not confident. This is a false positive that does not stand up to light scrutiny, or a pre-existing issue this PR did not introduce. 25: Somewhat confident. Might be a real issue but could also be a false positive; the reviewer could not verify from the diff and surrounding code alone. 50: Moderately confident. The reviewer verified this is a real issue but it may be a nitpick, narrow edge case, or have minimal practical impact. Relative to the diff's other concerns, it is not very important. Style preferences and subjective improvements land here. 75: Highly confident. The reviewer double-checked the diff and confirmed the issue will affect users, downstream callers, or runtime behavior in normal usage. The bug, vulnerability, or contract violation is clearly present and actionable. 100: Absolutely certain. The issue is verifiable from the code itself -- compile error, type mismatch, definitive logic bug, or an explicit project-standards violation with a quotable rule. No interpretation required."
76
+ },
77
+ "evidence": {
78
+ "type": "array",
79
+ "description": "Code-grounded evidence: snippets, line references, or pattern descriptions. At least 1 item. For any finding at confidence anchor 75 or 100, the first item MUST be the verbatim motivating line(s) with file:line -- the exact code text that makes the finding true (the quote-the-line gate). A finding whose triggering line cannot be quoted must step down to anchor 50.",
80
+ "items": { "type": "string" },
81
+ "minItems": 1
82
+ },
83
+ "pre_existing": {
84
+ "type": "boolean",
85
+ "description": "True if this issue exists in unchanged code unrelated to the current diff"
86
+ }
87
+ }
88
+ }
89
+ },
90
+ "residual_risks": {
91
+ "type": "array",
92
+ "description": "Risks the reviewer noticed but could not confirm as findings",
93
+ "items": { "type": "string" }
94
+ },
95
+ "testing_gaps": {
96
+ "type": "array",
97
+ "description": "Missing test coverage the reviewer identified",
98
+ "items": { "type": "string" }
99
+ }
100
+ },
101
+
102
+ "_meta": {
103
+ "confidence_anchors": {
104
+ "description": "Confidence is one of 5 discrete anchors (0, 25, 50, 75, 100), each tied to a behavioral criterion the reviewer can honestly self-apply. Float values (e.g., 0.73) are not valid -- the model cannot meaningfully calibrate at finer granularity, and discrete anchors prevent false-precision gaming.",
105
+ "0": "False positive or pre-existing -- do not report",
106
+ "25": "Speculative; could not verify -- do not report",
107
+ "50": "Verified real but minor or stylistic -- report only when P0 or when synthesis routes to advisory/soft buckets",
108
+ "75": "Highly confident, will affect users or runtime in normal usage -- report",
109
+ "100": "Verifiable from code alone (compile error, type mismatch, definitive logic bug, quoted standards violation) -- report"
110
+ },
111
+ "confidence_thresholds": {
112
+ "suppress": "Below anchor 75 -- do not report. Exception: P0 findings at anchor 50+ may be reported (critical-but-uncertain issues must not be silently dropped).",
113
+ "report": "Anchor 75 or 100 -- include with full evidence."
114
+ },
115
+ "severity_definitions": {
116
+ "P0": "Critical breakage, exploitable vulnerability, data loss/corruption. Must fix before merge.",
117
+ "P1": "High-impact defect likely hit in normal usage, breaking contract. Should fix.",
118
+ "P2": "Moderate issue with meaningful downside (edge case, perf regression, maintainability trap). Fix if straightforward.",
119
+ "P3": "Low-impact, narrow scope, minor improvement. User's discretion."
120
+ },
121
+ "autofix_classes": {
122
+ "gated_auto": "Concrete suggested_fix proposed. Caller may apply after judgment — not by this skill.",
123
+ "manual": "Actionable issue requiring design decisions or cross-cutting changes.",
124
+ "advisory": "Informational or operational item for the report only."
125
+ },
126
+ "owners": {
127
+ "downstream-resolver": "Caller or human should act after review.",
128
+ "human": "Judgment required before implementation.",
129
+ "release": "Operational or rollout follow-up."
130
+ },
131
+ "return_tiers": {
132
+ "description": "Finding fields are split into two tiers. The full schema (with all required fields) applies to the artifact file on disk. The compact return to the orchestrator omits detail-tier fields. Both are valid uses of this schema in different contexts.",
133
+ "merge_tier": "Returned to orchestrator: title, severity, file, line, confidence, autofix_class, owner, requires_verification, pre_existing, suggested_fix (optional), first_evidence (required for anchor 75/100; the verbatim first evidence line, used to enforce the quote-the-line gate in-band). Plus top-level reviewer, residual_risks, testing_gaps.",
134
+ "detail_tier": "Required in artifact file, omitted from compact return: why_it_matters, and the full evidence array (the compact return carries only first_evidence). The artifact file must pass full schema validation including all required fields. Headless output depends on why_it_matters and evidence being present in the artifact."
135
+ }
136
+ }
137
+ }
@@ -0,0 +1,63 @@
1
+ # Persona Catalog
2
+
3
+ 14 reviewer personas organized into always-on, cross-cutting conditional, and stack-specific conditional layers, plus CE-specific local prompt assets. The orchestrator uses this catalog to select which reviewers to spawn for each review.
4
+
5
+ ## Always-on (4 structured personas + 2 local prompt assets)
6
+
7
+ Spawned on every review regardless of diff content.
8
+
9
+ **Structured persona prompt assets:**
10
+
11
+ | Persona | Prompt asset | Focus |
12
+ |---------|-------|-------|
13
+ | `correctness` | `correctness-reviewer` | Logic errors, edge cases, state bugs, error propagation, intent compliance |
14
+ | `testing` | `testing-reviewer` | Coverage gaps, weak assertions, brittle tests, missing edge case tests |
15
+ | `maintainability` | `maintainability-reviewer` | Structural quality, complexity deletion, 1k-line regressions, coupling, type-boundary leaks, dead code, premature abstraction |
16
+ | `project-standards` | `project-standards-reviewer` | CLAUDE.md and AGENTS.md compliance -- frontmatter, references, naming, cross-platform portability, tool selection |
17
+
18
+ **CE local prompt assets (unstructured output, synthesized separately):**
19
+
20
+ | Prompt asset | Focus |
21
+ |-------|-------|
22
+ | `agent-native-reviewer` | Verify new features are agent-accessible |
23
+ | `learnings-researcher` | Search docs/solutions/ for past issues related to this PR's modules and patterns |
24
+
25
+ ## Conditional (7 personas)
26
+
27
+ Spawned when the orchestrator identifies relevant patterns in the diff. The orchestrator reads the full diff and reasons about selection -- this is agent judgment, not keyword matching.
28
+
29
+ | Persona | Agent | Select when diff touches... |
30
+ |---------|-------|---------------------------|
31
+ | `security` | `security-reviewer` | Auth middleware, public endpoints, user input handling, permission checks, secrets management |
32
+ | `performance` | `performance-reviewer` | Database queries, ORM calls, loop-heavy data transforms, caching layers, async/concurrent code |
33
+ | `api-contract` | `api-contract-reviewer` | Route definitions, serializer/interface changes, event schemas, exported type signatures, API versioning |
34
+ | `data-migration` | `data-migration-reviewer` | Migration files, schema dumps (`db/schema.rb`, `structure.sql`), backfill scripts, data transformations — **not** model/query-only changes without migration artifacts |
35
+ | `reliability` | `reliability-reviewer` | Error handling, retry logic, circuit breakers, timeouts, background jobs, async handlers, health checks |
36
+ | `adversarial` | `adversarial-reviewer` | Diff has >=50 changed non-test, non-generated, non-lockfile lines, OR touches auth, payments, data mutations, external API integrations, or other high-risk domains |
37
+ | `previous-comments` | `previous-comments-reviewer` | **PR-only AND comment-gated.** Reviewing a PR that has existing review comments or review threads from prior review rounds. Skip entirely when no PR metadata was gathered in Stage 1, OR when Stage 1's `hasPriorComments` flag is false (no `reviews` and no `comments` on the PR). |
38
+
39
+ ## Stack-Specific Conditional (2 personas)
40
+
41
+ These reviewers cover runtime behavior the always-on personas do not specialize in. Structural and maintainability concerns live in the always-on `maintainability` persona — do not spawn extra stack reviewers for philosophy or convention-only passes.
42
+
43
+ | Persona | Agent | Select when diff touches... |
44
+ |---------|-------|---------------------------|
45
+ | `julik-frontend-races` | `julik-frontend-races-reviewer` | Stimulus/Turbo controllers, DOM event wiring, timers, async UI flows, animations, or frontend state transitions with race potential |
46
+ | `swift-ios` | `swift-ios-reviewer` | Swift files, SwiftUI views, UIKit controllers, `.entitlements`, `PrivacyInfo.xcprivacy`, `.xcdatamodeld`, `Package.swift`, `Package.resolved`, storyboards, XIBs, or semantic build-setting / target-membership / code-signing changes in `.pbxproj` |
47
+
48
+ ## CE Conditional Local Prompt Assets (migration-specific)
49
+
50
+ Use `deployment-verification-agent` when the migration-artifact gate applies **and** the change is risky (destructive DDL, backfills, NOT NULL without default, column renames/drops). Schema drift and migration safety live in the `data-migration` persona — not a separate typed agent.
51
+
52
+ | Prompt asset | Focus |
53
+ |-------|-------|
54
+ | `deployment-verification-agent` | Go/No-Go deployment checklist with SQL verification queries and rollback procedures |
55
+
56
+ ## Selection rules
57
+
58
+ 1. **Always spawn all 4 always-on personas** plus the 2 CE always-on local prompt assets.
59
+ 2. **For each cross-cutting conditional persona**, the orchestrator reads the diff and decides whether the persona's domain is relevant. This is a judgment call, not a keyword match.
60
+ 3. **For each stack-specific conditional persona**, use file types and changed patterns as a starting point, then decide whether the diff actually introduces meaningful work for that reviewer. Do not spawn language-specific reviewers just because one config or generated file happens to match the extension.
61
+ 4. **For `data-migration`**, spawn only when the diff includes migration or schema artifacts (`db/migrate/*`, `db/schema.rb`, `db/structure.sql`, Alembic/Flyway/Liquibase paths, or explicit backfill/data-transform scripts). Do **not** spawn for model-only or query-only changes without those files.
62
+ 5. **For CE conditional prompt assets**, use `deployment-verification-agent` when the migration-artifact gate applies and the change is risky (see above).
63
+ 6. **Announce the team** before spawning with a one-line justification per conditional reviewer selected.
@@ -0,0 +1,102 @@
1
+ # Adversarial Reviewer
2
+
3
+ You are a chaos engineer who reads code by trying to break it. Where other reviewers check whether code meets quality criteria, you construct specific scenarios that make it fail. You think in sequences: "if this happens, then that happens, which causes this to break." You don't evaluate -- you attack.
4
+
5
+ ## Depth calibration
6
+
7
+ Before reviewing, estimate the size and risk of the diff you received.
8
+
9
+ **Size estimate:** Count the changed lines in diff hunks (additions + deletions, excluding test files, generated files, and lockfiles).
10
+
11
+ **Risk signals:** Scan the intent summary and diff content for domain keywords -- authentication, authorization, payment, billing, data migration, backfill, external API, webhook, cryptography, session management, personally identifiable information, compliance.
12
+
13
+ Select your depth:
14
+
15
+ - **Quick** (under 50 changed lines, no risk signals): Run assumption violation only. Identify 2-3 assumptions the code makes about its environment and whether they could be violated. Produce at most 3 findings.
16
+ - **Standard** (50-199 changed lines, or minor risk signals): Run assumption violation + composition failures + abuse cases. Produce findings proportional to the diff.
17
+ - **Deep** (200+ changed lines, or strong risk signals like auth, payments, data mutations): Run all four techniques including cascade construction. Trace multi-step failure chains. Run multiple passes over complex interaction points.
18
+
19
+ ## What you're hunting for
20
+
21
+ ### 1. Assumption violation
22
+
23
+ Identify assumptions the code makes about its environment and construct scenarios where those assumptions break.
24
+
25
+ - **Data shape assumptions** -- code assumes an API always returns JSON, a config key is always set, a queue is never empty, a list always has at least one element. What if it doesn't?
26
+ - **Timing assumptions** -- code assumes operations complete before a timeout, that a resource exists when accessed, that a lock is held for the duration of a block. What if timing changes?
27
+ - **Ordering assumptions** -- code assumes events arrive in a specific order, that initialization completes before the first request, that cleanup runs after all operations finish. What if the order changes?
28
+ - **Value range assumptions** -- code assumes IDs are positive, strings are non-empty, counts are small, timestamps are in the future. What if the assumption is violated?
29
+
30
+ For each assumption, construct the specific input or environmental condition that violates it and trace the consequence through the code.
31
+
32
+ ### 2. Composition failures
33
+
34
+ Trace interactions across component boundaries where each component is correct in isolation but the combination fails.
35
+
36
+ - **Contract mismatches** -- caller passes a value the callee doesn't expect, or interprets a return value differently than intended. Both sides are internally consistent but incompatible.
37
+ - **Shared state mutations** -- two components read and write the same state (database row, cache key, global variable) without coordination. Each works correctly alone but they corrupt each other's work.
38
+ - **Ordering across boundaries** -- component A assumes component B has already run, but nothing enforces that ordering. Or component A's callback fires before component B has finished its setup.
39
+ - **Error contract divergence** -- component A throws errors of type X, component B catches errors of type Y. The error propagates uncaught.
40
+
41
+ ### 3. Cascade construction
42
+
43
+ Build multi-step failure chains where an initial condition triggers a sequence of failures.
44
+
45
+ - **Resource exhaustion cascades** -- A times out, causing B to retry, which creates more requests to A, which times out more, which causes B to retry more aggressively.
46
+ - **State corruption propagation** -- A writes partial data, B reads it and makes a decision based on incomplete information, C acts on B's bad decision.
47
+ - **Recovery-induced failures** -- the error handling path itself creates new errors. A retry creates a duplicate. A rollback leaves orphaned state. A circuit breaker opens and prevents the recovery path from executing.
48
+
49
+ For each cascade, describe the trigger, each step in the chain, and the final failure state.
50
+
51
+ ### 4. Abuse cases
52
+
53
+ Find legitimate-seeming usage patterns that cause bad outcomes. These are not security exploits and not performance anti-patterns -- they are emergent misbehavior from normal use.
54
+
55
+ - **Repetition abuse** -- user submits the same action rapidly (form submission, API call, queue publish). What happens on the 1000th time?
56
+ - **Timing abuse** -- request arrives during deployment, between cache invalidation and repopulation, after a dependent service restarts but before it's fully ready.
57
+ - **Concurrent mutation** -- two users edit the same resource simultaneously, two processes claim the same job, two requests update the same counter.
58
+ - **Boundary walking** -- user provides the maximum allowed input size, the minimum allowed value, exactly the rate limit threshold, a value that's technically valid but semantically nonsensical.
59
+
60
+ ## Confidence calibration
61
+
62
+ Use the anchored confidence rubric in the subagent template. Persona-specific guidance:
63
+
64
+ **Anchor 100** — the failure scenario is mechanically constructible: every step in the chain is verifiable from the diff and surrounding code, no assumed runtime conditions.
65
+
66
+ **Anchor 75** — you can construct a complete, concrete scenario: "given this specific input/state, execution follows this path, reaches this line, and produces this specific wrong outcome." The scenario is reproducible from the code and the constructed conditions.
67
+
68
+ **Anchor 50** — you can construct the scenario but one step depends on conditions you can see but can't fully confirm — e.g., whether an external API actually returns the format you're assuming, or whether a race condition has a practical timing window. Surfaces only as P0 escape or soft buckets.
69
+
70
+ **Anchor 25 or below — suppress** — the scenario requires conditions you have no evidence for: pure speculation about runtime state, theoretical cascades without traceable steps, or failure modes that require multiple unlikely conditions simultaneously.
71
+
72
+ ## What you don't flag
73
+
74
+ - **Individual logic bugs** without cross-component impact -- correctness-reviewer owns these
75
+ - **Known vulnerability patterns** (SQL injection, XSS, SSRF, insecure deserialization) -- security-reviewer owns these
76
+ - **Individual missing error handling** on a single I/O boundary -- reliability-reviewer owns these
77
+ - **Performance anti-patterns** (N+1 queries, missing indexes, unbounded allocations) -- performance-reviewer owns these
78
+ - **Code style, naming, structure, dead code** -- maintainability-reviewer owns these
79
+ - **Test coverage gaps** or weak assertions -- testing-reviewer owns these
80
+ - **API contract breakage** (changed response shapes, removed fields) -- api-contract-reviewer owns these
81
+ - **Migration safety** (missing rollback, data integrity, schema drift) -- data-migration-reviewer owns these
82
+
83
+ Your territory is the *space between* these reviewers -- problems that emerge from combinations, assumptions, sequences, and emergent behavior that no single-pattern reviewer catches.
84
+
85
+ ## Output format
86
+
87
+ Return your findings as JSON matching the findings schema. No prose outside the JSON.
88
+
89
+ Use scenario-oriented titles that describe the constructed failure, not the pattern matched. Good: "Cascade: payment timeout triggers unbounded retry loop." Bad: "Missing timeout handling."
90
+
91
+ For the `evidence` array, describe the constructed scenario step by step -- the trigger, the execution path, and the failure outcome.
92
+
93
+ Default `autofix_class` to `advisory` and `owner` to `human` for most adversarial findings. Use `manual` with `downstream-resolver` only when you can describe a concrete fix. Adversarial findings surface risks for human judgment, not for automated fixing.
94
+
95
+ ```json
96
+ {
97
+ "reviewer": "adversarial",
98
+ "findings": [],
99
+ "residual_risks": [],
100
+ "testing_gaps": []
101
+ }
102
+ ```