@runweave/server-linux-x64 0.1.7 → 0.1.9

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 (352) hide show
  1. package/manifest.json +1487 -156
  2. package/native.tar.gz +0 -0
  3. package/package.json +1 -1
  4. package/payload/.agents/plugins/marketplace.json +20 -0
  5. package/payload/app-server/build-info.json +3 -3
  6. package/payload/app-server/index.cjs +1 -1
  7. package/payload/backend/build-info.json +4 -4
  8. package/payload/backend/index.cjs +2416 -1684
  9. package/payload/backend/ios-simulators/pool.py +3 -3
  10. package/payload/backend/scheduled-tasks-sqlite-worker.cjs +224 -171
  11. package/payload/frontend/dist/assets/{_baseUniq-i1Ki3twP.js → _baseUniq-qHFga5V8.js} +1 -1
  12. package/payload/frontend/dist/assets/{access-DK9V0f3W.js → access-DgHvmn15.js} +1 -1
  13. package/payload/frontend/dist/assets/{advanced-B13lWv1d.js → advanced-C1Fh14vw.js} +1 -1
  14. package/payload/frontend/dist/assets/{appearance-DumRYmkD.js → appearance-Bs7cSXqO.js} +1 -1
  15. package/payload/frontend/dist/assets/{arc-HKn3_xyV.js → arc-E3iYHQG_.js} +1 -1
  16. package/payload/frontend/dist/assets/{architectureDiagram-Q4EWVU46-C09x7b94.js → architectureDiagram-Q4EWVU46-DgpYpTb9.js} +1 -1
  17. package/payload/frontend/dist/assets/{blockDiagram-DXYQGD6D-CFLFTR6d.js → blockDiagram-DXYQGD6D-CfFOEKZ7.js} +1 -1
  18. package/payload/frontend/dist/assets/{c4Diagram-AHTNJAMY-8P8Q-xqC.js → c4Diagram-AHTNJAMY-BxlHBUj3.js} +1 -1
  19. package/payload/frontend/dist/assets/channel-amxyNKnk.js +1 -0
  20. package/payload/frontend/dist/assets/{chunk-4BX2VUAB-B1KEkTal.js → chunk-4BX2VUAB-xWocgDo8.js} +1 -1
  21. package/payload/frontend/dist/assets/{chunk-4TB4RGXK-Bu_Z47kJ.js → chunk-4TB4RGXK-Bl1cNICf.js} +1 -1
  22. package/payload/frontend/dist/assets/{chunk-55IACEB6-xzHVCHyi.js → chunk-55IACEB6-DVtE836u.js} +1 -1
  23. package/payload/frontend/dist/assets/{chunk-EDXVE4YY-h3HAW06h.js → chunk-EDXVE4YY-Dbd3tDCr.js} +1 -1
  24. package/payload/frontend/dist/assets/{chunk-FMBD7UC4-CQ4faPSh.js → chunk-FMBD7UC4-MPJaTsyN.js} +1 -1
  25. package/payload/frontend/dist/assets/{chunk-OYMX7WX6-CubmLoGT.js → chunk-OYMX7WX6-D3LuudlW.js} +1 -1
  26. package/payload/frontend/dist/assets/{chunk-QZHKN3VN-xk0zKNja.js → chunk-QZHKN3VN-Dn1aF6iQ.js} +1 -1
  27. package/payload/frontend/dist/assets/{chunk-YZCP3GAM-CHpTv8sd.js → chunk-YZCP3GAM-jZYbHnCw.js} +1 -1
  28. package/payload/frontend/dist/assets/classDiagram-6PBFFD2Q-B8cTijjT.js +1 -0
  29. package/payload/frontend/dist/assets/classDiagram-v2-HSJHXN6E-B8cTijjT.js +1 -0
  30. package/payload/frontend/dist/assets/clone-xzI2eGRI.js +1 -0
  31. package/payload/frontend/dist/assets/connection-V2iI-6rM.js +12 -0
  32. package/payload/frontend/dist/assets/{connections-A7InZw2T.js → connections-G_Q7342g.js} +1 -1
  33. package/payload/frontend/dist/assets/{cose-bilkent-S5V4N54A-CQn27vi_.js → cose-bilkent-S5V4N54A-75FLD3RS.js} +1 -1
  34. package/payload/frontend/dist/assets/{dagre-KV5264BT-CClOwB9v.js → dagre-KV5264BT-DEm-DpJL.js} +1 -1
  35. package/payload/frontend/dist/assets/{desktop-BgryfXXM.js → desktop-g5JC-CQd.js} +1 -1
  36. package/payload/frontend/dist/assets/{diagram-5BDNPKRD-DcUJOAmV.js → diagram-5BDNPKRD-BV6P2UTy.js} +1 -1
  37. package/payload/frontend/dist/assets/{diagram-G4DWMVQ6-DdabmTwk.js → diagram-G4DWMVQ6-DuCK-MM2.js} +1 -1
  38. package/payload/frontend/dist/assets/{diagram-MMDJMWI5-DmcxjBIk.js → diagram-MMDJMWI5-D5_GlPgO.js} +1 -1
  39. package/payload/frontend/dist/assets/{diagram-TYMM5635-BUSpXaiN.js → diagram-TYMM5635-QRbOYR1P.js} +1 -1
  40. package/payload/frontend/dist/assets/{erDiagram-SMLLAGMA-vkAXcv5_.js → erDiagram-SMLLAGMA-DefCheAw.js} +1 -1
  41. package/payload/frontend/dist/assets/{flowDiagram-DWJPFMVM-BHDU7BUJ.js → flowDiagram-DWJPFMVM-DVzyWIso.js} +1 -1
  42. package/payload/frontend/dist/assets/{ganttDiagram-T4ZO3ILL-C3lAG7_6.js → ganttDiagram-T4ZO3ILL-BJaClUEF.js} +1 -1
  43. package/payload/frontend/dist/assets/{gitGraphDiagram-UUTBAWPF-DHLyYJf7.js → gitGraphDiagram-UUTBAWPF-BLfbApNz.js} +1 -1
  44. package/payload/frontend/dist/assets/{graph-Bp5bIzXM.js → graph-C-YqFh68.js} +1 -1
  45. package/payload/frontend/dist/assets/{image-DkcKNLTV.js → image-CZo_2Awc.js} +1 -1
  46. package/payload/frontend/dist/assets/{index-BUS7FSlk.js → index-6q2aeqkt.js} +95 -105
  47. package/payload/frontend/dist/assets/{infoDiagram-42DDH7IO-CVp9zvmA.js → infoDiagram-42DDH7IO-BakVOutT.js} +1 -1
  48. package/payload/frontend/dist/assets/{ishikawaDiagram-UXIWVN3A-D07QPX3O.js → ishikawaDiagram-UXIWVN3A-D_1Oa5Dc.js} +1 -1
  49. package/payload/frontend/dist/assets/{journeyDiagram-VCZTEJTY-D-iZPDHM.js → journeyDiagram-VCZTEJTY-Y8TVFv6B.js} +1 -1
  50. package/payload/frontend/dist/assets/{kanban-definition-6JOO6SKY-BR4eWb08.js → kanban-definition-6JOO6SKY-DxeNhTIB.js} +1 -1
  51. package/payload/frontend/dist/assets/{layout-Cyv0DyJm.js → layout-5cMeOTAp.js} +1 -1
  52. package/payload/frontend/dist/assets/{linear-D5M7Pvj1.js → linear-Bnc3ev5g.js} +1 -1
  53. package/payload/frontend/dist/assets/main-3TPtEl66.js +706 -0
  54. package/payload/frontend/dist/assets/main-D4_uoZQa.css +33 -0
  55. package/payload/frontend/dist/assets/{min-BFlloFGg.js → min-BRXKkrS8.js} +1 -1
  56. package/payload/frontend/dist/assets/{mindmap-definition-QFDTVHPH-AKUF178o.js → mindmap-definition-QFDTVHPH-RYZO_BEr.js} +1 -1
  57. package/payload/frontend/dist/assets/{monitoring-B2okceCB.js → monitoring-Fv7kZ4s6.js} +1 -1
  58. package/payload/frontend/dist/assets/{notifications-0lql4_qJ.js → notifications-BzrYqyMH.js} +1 -1
  59. package/payload/frontend/dist/assets/{pieDiagram-DEJITSTG-CRiHmwn7.js → pieDiagram-DEJITSTG-Bzw0dhjz.js} +1 -1
  60. package/payload/frontend/dist/assets/{quadrantDiagram-34T5L4WZ-CzXrq7IJ.js → quadrantDiagram-34T5L4WZ-CQJY_msa.js} +1 -1
  61. package/payload/frontend/dist/assets/{record-content-DTCQKbEj.js → record-content-B7-6olQt.js} +1 -1
  62. package/payload/frontend/dist/assets/{requirementDiagram-MS252O5E-Bbn5ulLV.js → requirementDiagram-MS252O5E-DuP8hAV8.js} +1 -1
  63. package/payload/frontend/dist/assets/{sankeyDiagram-XADWPNL6-D9ZZ46pQ.js → sankeyDiagram-XADWPNL6-D-fQnCZZ.js} +1 -1
  64. package/payload/frontend/dist/assets/{sequenceDiagram-FGHM5R23-DxOP2gDa.js → sequenceDiagram-FGHM5R23-DaZNEccV.js} +1 -1
  65. package/payload/frontend/dist/assets/{stateDiagram-FHFEXIEX-NF_Qq5Cq.js → stateDiagram-FHFEXIEX-CkOLt5R1.js} +1 -1
  66. package/payload/frontend/dist/assets/stateDiagram-v2-QKLJ7IA2-atg1K4nB.js +1 -0
  67. package/payload/frontend/dist/assets/{status-2U71YpVe.js → status-CIIPajZp.js} +1 -1
  68. package/payload/frontend/dist/assets/suiji-C453W-Sg.js +1 -0
  69. package/payload/frontend/dist/assets/{svg-DpI3GSCw.js → svg-BUqAWGtg.js} +1 -1
  70. package/payload/frontend/dist/assets/{tabs-CYKuiiHg.js → tabs-Cwlp1Meu.js} +1 -1
  71. package/payload/frontend/dist/assets/{timeline-definition-GMOUNBTQ-ChEZSNF_.js → timeline-definition-GMOUNBTQ-BOKDMwHS.js} +1 -1
  72. package/payload/frontend/dist/assets/{vennDiagram-DHZGUBPP-Ch26SNbB.js → vennDiagram-DHZGUBPP-fSZjDS41.js} +1 -1
  73. package/payload/frontend/dist/assets/{wardley-RL74JXVD-D0ap5vv0.js → wardley-RL74JXVD-D1KIsvoD.js} +1 -1
  74. package/payload/frontend/dist/assets/{wardleyDiagram-NUSXRM2D-btdjsmHO.js → wardleyDiagram-NUSXRM2D-FMe67dwE.js} +1 -1
  75. package/payload/frontend/dist/assets/{xychartDiagram-5P7HB3ND-CklPtFGT.js → xychartDiagram-5P7HB3ND-B9AM9_9w.js} +1 -1
  76. package/payload/frontend/dist/build-info.json +4 -4
  77. package/payload/frontend/dist/companion.html +1 -1
  78. package/payload/frontend/dist/index.html +3 -3
  79. package/payload/packages/agent-bridge/src/install-pi.mjs +81 -0
  80. package/payload/plugins/pi/dist/SKILL.md +22 -0
  81. package/payload/plugins/pi/dist/bridge/app-server-client.cjs +82 -0
  82. package/payload/plugins/pi/dist/bridge/feishu_stop_notify.sh +169 -0
  83. package/payload/plugins/pi/dist/bridge/runweave-hook-bridge.cjs +583 -0
  84. package/payload/plugins/pi/dist/bridge/runweave-hook-completion.cjs +42 -0
  85. package/payload/plugins/pi/dist/bridge/runweave-hook-payload.cjs +578 -0
  86. package/payload/plugins/pi/dist/bridge/runweave-task-supervision.cjs +167 -0
  87. package/payload/plugins/pi/dist/runweave.js +316 -0
  88. package/payload/plugins/toolkit/.codex-plugin/plugin.json +31 -0
  89. package/payload/plugins/toolkit/README.md +185 -0
  90. package/payload/plugins/toolkit/hooks/AGENTS.md +6 -0
  91. package/payload/plugins/toolkit/hooks/app-server-client.cjs +82 -0
  92. package/payload/plugins/toolkit/hooks/feishu_stop_notify.sh +169 -0
  93. package/payload/plugins/toolkit/hooks/runweave-hook-bridge.cjs +583 -0
  94. package/payload/plugins/toolkit/hooks/runweave-hook-completion.cjs +42 -0
  95. package/payload/plugins/toolkit/hooks/runweave-hook-dispatch.cjs +123 -0
  96. package/payload/plugins/toolkit/hooks/runweave-hook-payload.cjs +578 -0
  97. package/payload/plugins/toolkit/hooks/runweave-task-supervision.cjs +167 -0
  98. package/payload/plugins/toolkit/hooks.json +108 -0
  99. package/payload/plugins/toolkit/skills/acceptance/SKILL.md +70 -0
  100. package/payload/plugins/toolkit/skills/acceptance/agents/openai.yaml +4 -0
  101. package/payload/plugins/toolkit/skills/acceptance/references/capture.md +38 -0
  102. package/payload/plugins/toolkit/skills/acceptance/references/delivery.md +54 -0
  103. package/payload/plugins/toolkit/skills/acceptance/references/gallery-contract.md +84 -0
  104. package/payload/plugins/toolkit/skills/acceptance/references/gallery-copy.md +34 -0
  105. package/payload/plugins/toolkit/skills/acceptance/references/video.md +52 -0
  106. package/payload/plugins/toolkit/skills/acceptance/scripts/capture.py +137 -0
  107. package/payload/plugins/toolkit/skills/acceptance/scripts/common.py +63 -0
  108. package/payload/plugins/toolkit/skills/acceptance/scripts/gallery.py +353 -0
  109. package/payload/plugins/toolkit/skills/acceptance/scripts/preview.py +109 -0
  110. package/payload/plugins/toolkit/skills/acceptance/scripts/video.py +283 -0
  111. package/payload/plugins/toolkit/skills/acceptance/templates/reader.css +576 -0
  112. package/payload/plugins/toolkit/skills/acceptance/templates/reader.html +63 -0
  113. package/payload/plugins/toolkit/skills/acceptance/templates/reader.js +326 -0
  114. package/payload/plugins/toolkit/skills/acceptance/templates/viewer.css +55 -0
  115. package/payload/plugins/toolkit/skills/acceptance-gallery/SKILL.md +8 -0
  116. package/payload/plugins/toolkit/skills/acceptance-gallery/agents/openai.yaml +6 -0
  117. package/payload/plugins/toolkit/skills/acceptance-gallery/references/capture-and-copy.md +3 -0
  118. package/payload/plugins/toolkit/skills/acceptance-gallery/references/content-contract.md +3 -0
  119. package/payload/plugins/toolkit/skills/acceptance-gallery/scripts/gallery.py +9 -0
  120. package/payload/plugins/toolkit/skills/acceptance-video/SKILL.md +8 -0
  121. package/payload/plugins/toolkit/skills/acceptance-video/agents/openai.yaml +6 -0
  122. package/payload/plugins/toolkit/skills/acceptance-video/references/input-and-capture.md +3 -0
  123. package/payload/plugins/toolkit/skills/acceptance-video/references/mobile-review.md +3 -0
  124. package/payload/plugins/toolkit/skills/acceptance-video/scripts/capture.py +9 -0
  125. package/payload/plugins/toolkit/skills/acceptance-video/scripts/video.py +9 -0
  126. package/payload/plugins/toolkit/skills/agent-device/SKILL.md +86 -0
  127. package/payload/plugins/toolkit/skills/agent-device/agents/openai.yaml +4 -0
  128. package/payload/plugins/toolkit/skills/agent-device/references/ios-setup.md +36 -0
  129. package/payload/plugins/toolkit/skills/agent-device/scripts/device.py +398 -0
  130. package/payload/plugins/toolkit/skills/agent-device/scripts/resources.py +248 -0
  131. package/payload/plugins/toolkit/skills/architecture-flow-prototyping/SKILL.md +128 -0
  132. package/payload/plugins/toolkit/skills/architecture-flow-prototyping/agents/openai.yaml +4 -0
  133. package/payload/plugins/toolkit/skills/architecture-flow-prototyping/references/architecture-flow-checklist.md +59 -0
  134. package/payload/plugins/toolkit/skills/architecture-flow-prototyping/references/architecture-flow-guide.md +135 -0
  135. package/payload/plugins/toolkit/skills/architecture-flow-prototyping/references/architecture-flow-handoff-template.md +57 -0
  136. package/payload/plugins/toolkit/skills/ask-first/SKILL.md +81 -0
  137. package/payload/plugins/toolkit/skills/brainstorming/SKILL.md +41 -0
  138. package/payload/plugins/toolkit/skills/browse-record/SKILL.md +35 -0
  139. package/payload/plugins/toolkit/skills/browse-record/references/app-usage.md +19 -0
  140. package/payload/plugins/toolkit/skills/browse-record/references/daily-reporting.md +115 -0
  141. package/payload/plugins/toolkit/skills/browse-record/references/zhihu.md +33 -0
  142. package/payload/plugins/toolkit/skills/browse-record/scripts/app_usage.py +110 -0
  143. package/payload/plugins/toolkit/skills/browse-record/scripts/browse_job.py +385 -0
  144. package/payload/plugins/toolkit/skills/browse-record/scripts/zhihu-read.js +126 -0
  145. package/payload/plugins/toolkit/skills/browse-record/scripts/zhihu_http.py +273 -0
  146. package/payload/plugins/toolkit/skills/clear-technical-explanations/LICENSE +21 -0
  147. package/payload/plugins/toolkit/skills/clear-technical-explanations/SKILL.md +103 -0
  148. package/payload/plugins/toolkit/skills/code-grounded-requirements/SKILL.md +54 -0
  149. package/payload/plugins/toolkit/skills/daily-doc-maintenance/SKILL.md +151 -0
  150. package/payload/plugins/toolkit/skills/daily-record/SKILL.md +63 -0
  151. package/payload/plugins/toolkit/skills/daily-record/agents/openai.yaml +4 -0
  152. package/payload/plugins/toolkit/skills/daily-record/references/browser-history.md +6 -0
  153. package/payload/plugins/toolkit/skills/daily-record/references/feishu.md +90 -0
  154. package/payload/plugins/toolkit/skills/daily-record/references/scheduled-reporting.md +144 -0
  155. package/payload/plugins/toolkit/skills/daily-record/references/scheduled-task.template.json +15 -0
  156. package/payload/plugins/toolkit/skills/daily-record/references/suiji-work-records.md +57 -0
  157. package/payload/plugins/toolkit/skills/daily-record/scripts/feishu.py +280 -0
  158. package/payload/plugins/toolkit/skills/daily-record/scripts/job.py +416 -0
  159. package/payload/plugins/toolkit/skills/daily-record/scripts/job_browser.py +77 -0
  160. package/payload/plugins/toolkit/skills/daily-record/scripts/job_facts.py +132 -0
  161. package/payload/plugins/toolkit/skills/daily-record/scripts/job_isolation.py +69 -0
  162. package/payload/plugins/toolkit/skills/daily-record/scripts/job_materials.py +154 -0
  163. package/payload/plugins/toolkit/skills/daily-record/scripts/job_screen.py +77 -0
  164. package/payload/plugins/toolkit/skills/daily-record/scripts/job_state.py +309 -0
  165. package/payload/plugins/toolkit/skills/daily-refactor/SKILL.md +101 -0
  166. package/payload/plugins/toolkit/skills/daily-refactor/scripts/compare-architecture-reports.mjs +168 -0
  167. package/payload/plugins/toolkit/skills/debugging-strategies/SKILL.md +38 -0
  168. package/payload/plugins/toolkit/skills/debugging-strategies/resources/implementation-playbook.md +520 -0
  169. package/payload/plugins/toolkit/skills/diagnostic-log-debugging/SKILL.md +79 -0
  170. package/payload/plugins/toolkit/skills/doc-coauthoring/SKILL.md +64 -0
  171. package/payload/plugins/toolkit/skills/eli5/LICENSE +21 -0
  172. package/payload/plugins/toolkit/skills/eli5/SKILL.md +18 -0
  173. package/payload/plugins/toolkit/skills/experience/SKILL.md +71 -0
  174. package/payload/plugins/toolkit/skills/experience/package.json +13 -0
  175. package/payload/plugins/toolkit/skills/git-advanced-workflows/SKILL.md +457 -0
  176. package/payload/plugins/toolkit/skills/github-pr/SKILL.md +109 -0
  177. package/payload/plugins/toolkit/skills/github-pr/scripts/github-access.mjs +292 -0
  178. package/payload/plugins/toolkit/skills/github-pr/scripts/preflight.mjs +191 -0
  179. package/payload/plugins/toolkit/skills/github-pr/scripts/source-worktree.mjs +354 -0
  180. package/payload/plugins/toolkit/skills/grill-with-docs/SKILL.md +66 -0
  181. package/payload/plugins/toolkit/skills/grill-with-docs/agents/openai.yaml +6 -0
  182. package/payload/plugins/toolkit/skills/grilling/SKILL.md +14 -0
  183. package/payload/plugins/toolkit/skills/handoff/SKILL.md +98 -0
  184. package/payload/plugins/toolkit/skills/karpathy-guidelines/SKILL.md +73 -0
  185. package/payload/plugins/toolkit/skills/playwright-cli/SKILL.md +562 -0
  186. package/payload/plugins/toolkit/skills/playwright-cli/references/element-attributes.md +23 -0
  187. package/payload/plugins/toolkit/skills/playwright-cli/references/playwright-tests.md +39 -0
  188. package/payload/plugins/toolkit/skills/playwright-cli/references/request-mocking.md +87 -0
  189. package/payload/plugins/toolkit/skills/playwright-cli/references/running-code.md +240 -0
  190. package/payload/plugins/toolkit/skills/playwright-cli/references/session-management.md +226 -0
  191. package/payload/plugins/toolkit/skills/playwright-cli/references/spec-driven-testing.md +312 -0
  192. package/payload/plugins/toolkit/skills/playwright-cli/references/storage-state.md +275 -0
  193. package/payload/plugins/toolkit/skills/playwright-cli/references/test-generation.md +138 -0
  194. package/payload/plugins/toolkit/skills/playwright-cli/references/tracing.md +142 -0
  195. package/payload/plugins/toolkit/skills/playwright-cli/references/video-recording.md +157 -0
  196. package/payload/plugins/toolkit/skills/playwright-cli/templates/standalone.config.json +7 -0
  197. package/payload/plugins/toolkit/skills/product-exploration/SKILL.md +64 -0
  198. package/payload/plugins/toolkit/skills/product-exploration/agents/openai.yaml +5 -0
  199. package/payload/plugins/toolkit/skills/prototype-first-development/SKILL.md +134 -0
  200. package/payload/plugins/toolkit/skills/prototype-first-development/references/html-prototype-template/README.md +88 -0
  201. package/payload/plugins/toolkit/skills/prototype-first-development/references/html-prototype-template/app.js +145 -0
  202. package/payload/plugins/toolkit/skills/prototype-first-development/references/html-prototype-template/index.html +229 -0
  203. package/payload/plugins/toolkit/skills/prototype-first-development/references/html-prototype-template/mock-state.json +60 -0
  204. package/payload/plugins/toolkit/skills/prototype-first-development/references/implementation-plan-handoff-template.md +61 -0
  205. package/payload/plugins/toolkit/skills/prototype-first-development/references/prototype-workflow-checklist.md +64 -0
  206. package/payload/plugins/toolkit/skills/publish-runweave-server/SKILL.md +64 -0
  207. package/payload/plugins/toolkit/skills/publish-runweave-server/agents/openai.yaml +4 -0
  208. package/payload/plugins/toolkit/skills/react-best-practices/AGENTS.md +3227 -0
  209. package/payload/plugins/toolkit/skills/react-best-practices/README.md +127 -0
  210. package/payload/plugins/toolkit/skills/react-best-practices/SKILL.md +143 -0
  211. package/payload/plugins/toolkit/skills/react-best-practices/metadata.json +15 -0
  212. package/payload/plugins/toolkit/skills/react-best-practices/rules/advanced/event-handler-refs.md +55 -0
  213. package/payload/plugins/toolkit/skills/react-best-practices/rules/advanced/init-once.md +42 -0
  214. package/payload/plugins/toolkit/skills/react-best-practices/rules/advanced/use-latest.md +39 -0
  215. package/payload/plugins/toolkit/skills/react-best-practices/rules/async/api-routes.md +38 -0
  216. package/payload/plugins/toolkit/skills/react-best-practices/rules/async/defer-await.md +80 -0
  217. package/payload/plugins/toolkit/skills/react-best-practices/rules/async/dependencies.md +52 -0
  218. package/payload/plugins/toolkit/skills/react-best-practices/rules/async/parallel.md +28 -0
  219. package/payload/plugins/toolkit/skills/react-best-practices/rules/async/suspense-boundaries.md +99 -0
  220. package/payload/plugins/toolkit/skills/react-best-practices/rules/bundle/barrel-imports.md +59 -0
  221. package/payload/plugins/toolkit/skills/react-best-practices/rules/bundle/conditional.md +37 -0
  222. package/payload/plugins/toolkit/skills/react-best-practices/rules/bundle/defer-third-party.md +49 -0
  223. package/payload/plugins/toolkit/skills/react-best-practices/rules/bundle/dynamic-imports.md +35 -0
  224. package/payload/plugins/toolkit/skills/react-best-practices/rules/bundle/preload.md +46 -0
  225. package/payload/plugins/toolkit/skills/react-best-practices/rules/client/event-listeners.md +78 -0
  226. package/payload/plugins/toolkit/skills/react-best-practices/rules/client/localstorage-schema.md +77 -0
  227. package/payload/plugins/toolkit/skills/react-best-practices/rules/client/passive-event-listeners.md +48 -0
  228. package/payload/plugins/toolkit/skills/react-best-practices/rules/client/swr-dedup.md +56 -0
  229. package/payload/plugins/toolkit/skills/react-best-practices/rules/js/batch-dom-css.md +110 -0
  230. package/payload/plugins/toolkit/skills/react-best-practices/rules/js/cache-function-results.md +80 -0
  231. package/payload/plugins/toolkit/skills/react-best-practices/rules/js/cache-property-access.md +28 -0
  232. package/payload/plugins/toolkit/skills/react-best-practices/rules/js/cache-storage.md +70 -0
  233. package/payload/plugins/toolkit/skills/react-best-practices/rules/js/combine-iterations.md +32 -0
  234. package/payload/plugins/toolkit/skills/react-best-practices/rules/js/early-exit.md +50 -0
  235. package/payload/plugins/toolkit/skills/react-best-practices/rules/js/flatmap-filter.md +55 -0
  236. package/payload/plugins/toolkit/skills/react-best-practices/rules/js/hoist-regexp.md +45 -0
  237. package/payload/plugins/toolkit/skills/react-best-practices/rules/js/index-maps.md +37 -0
  238. package/payload/plugins/toolkit/skills/react-best-practices/rules/js/length-check-first.md +50 -0
  239. package/payload/plugins/toolkit/skills/react-best-practices/rules/js/min-max-loop.md +82 -0
  240. package/payload/plugins/toolkit/skills/react-best-practices/rules/js/set-map-lookups.md +24 -0
  241. package/payload/plugins/toolkit/skills/react-best-practices/rules/js/tosorted-immutable.md +57 -0
  242. package/payload/plugins/toolkit/skills/react-best-practices/rules/meta/sections.md +46 -0
  243. package/payload/plugins/toolkit/skills/react-best-practices/rules/meta/template.md +28 -0
  244. package/payload/plugins/toolkit/skills/react-best-practices/rules/rendering/activity.md +26 -0
  245. package/payload/plugins/toolkit/skills/react-best-practices/rules/rendering/animate-svg-wrapper.md +38 -0
  246. package/payload/plugins/toolkit/skills/react-best-practices/rules/rendering/conditional-render.md +32 -0
  247. package/payload/plugins/toolkit/skills/react-best-practices/rules/rendering/content-visibility.md +38 -0
  248. package/payload/plugins/toolkit/skills/react-best-practices/rules/rendering/hoist-jsx.md +36 -0
  249. package/payload/plugins/toolkit/skills/react-best-practices/rules/rendering/hydration-no-flicker.md +72 -0
  250. package/payload/plugins/toolkit/skills/react-best-practices/rules/rendering/hydration-suppress-warning.md +26 -0
  251. package/payload/plugins/toolkit/skills/react-best-practices/rules/rendering/resource-hints.md +89 -0
  252. package/payload/plugins/toolkit/skills/react-best-practices/rules/rendering/script-defer-async.md +71 -0
  253. package/payload/plugins/toolkit/skills/react-best-practices/rules/rendering/svg-precision.md +28 -0
  254. package/payload/plugins/toolkit/skills/react-best-practices/rules/rendering/usetransition-loading.md +75 -0
  255. package/payload/plugins/toolkit/skills/react-best-practices/rules/rerender/defer-reads.md +39 -0
  256. package/payload/plugins/toolkit/skills/react-best-practices/rules/rerender/dependencies.md +45 -0
  257. package/payload/plugins/toolkit/skills/react-best-practices/rules/rerender/derived-state-no-effect.md +40 -0
  258. package/payload/plugins/toolkit/skills/react-best-practices/rules/rerender/derived-state.md +29 -0
  259. package/payload/plugins/toolkit/skills/react-best-practices/rules/rerender/functional-setstate.md +77 -0
  260. package/payload/plugins/toolkit/skills/react-best-practices/rules/rerender/lazy-state-init.md +58 -0
  261. package/payload/plugins/toolkit/skills/react-best-practices/rules/rerender/memo-with-default-value.md +36 -0
  262. package/payload/plugins/toolkit/skills/react-best-practices/rules/rerender/memo.md +44 -0
  263. package/payload/plugins/toolkit/skills/react-best-practices/rules/rerender/move-effect-to-event.md +45 -0
  264. package/payload/plugins/toolkit/skills/react-best-practices/rules/rerender/no-inline-components.md +83 -0
  265. package/payload/plugins/toolkit/skills/react-best-practices/rules/rerender/simple-expression-in-memo.md +35 -0
  266. package/payload/plugins/toolkit/skills/react-best-practices/rules/rerender/transitions.md +40 -0
  267. package/payload/plugins/toolkit/skills/react-best-practices/rules/rerender/use-ref-transient-values.md +73 -0
  268. package/payload/plugins/toolkit/skills/react-best-practices/rules/server/after-nonblocking.md +74 -0
  269. package/payload/plugins/toolkit/skills/react-best-practices/rules/server/auth-actions.md +96 -0
  270. package/payload/plugins/toolkit/skills/react-best-practices/rules/server/cache-lru.md +41 -0
  271. package/payload/plugins/toolkit/skills/react-best-practices/rules/server/cache-react.md +76 -0
  272. package/payload/plugins/toolkit/skills/react-best-practices/rules/server/dedup-props.md +65 -0
  273. package/payload/plugins/toolkit/skills/react-best-practices/rules/server/hoist-static-io.md +139 -0
  274. package/payload/plugins/toolkit/skills/react-best-practices/rules/server/parallel-fetching.md +83 -0
  275. package/payload/plugins/toolkit/skills/react-best-practices/rules/server/serialization.md +38 -0
  276. package/payload/plugins/toolkit/skills/recorded-browser-mcp-verification/SKILL.md +8 -0
  277. package/payload/plugins/toolkit/skills/recorded-browser-mcp-verification/agents/openai.yaml +6 -0
  278. package/payload/plugins/toolkit/skills/reproduce-before-fix/SKILL.md +93 -0
  279. package/payload/plugins/toolkit/skills/reproduce-before-fix/agents/openai.yaml +7 -0
  280. package/payload/plugins/toolkit/skills/review-only/SKILL.md +72 -0
  281. package/payload/plugins/toolkit/skills/review-with-runtime-evidence/SKILL.md +134 -0
  282. package/payload/plugins/toolkit/skills/review-with-runtime-evidence/agents/openai.yaml +7 -0
  283. package/payload/plugins/toolkit/skills/review-with-runtime-evidence/references/contracts.md +114 -0
  284. package/payload/plugins/toolkit/skills/review-with-runtime-evidence/scripts/classify-runtime-verdict.mjs +140 -0
  285. package/payload/plugins/toolkit/skills/review-with-runtime-evidence/scripts/run-static-review.mjs +389 -0
  286. package/payload/plugins/toolkit/skills/review-with-runtime-evidence/scripts/static-review-contract.mjs +243 -0
  287. package/payload/plugins/toolkit/skills/run-test-cases/SKILL.md +63 -0
  288. package/payload/plugins/toolkit/skills/runweave-change-validation/SKILL.md +196 -0
  289. package/payload/plugins/toolkit/skills/runweave-change-validation/agents/openai.yaml +7 -0
  290. package/payload/plugins/toolkit/skills/runweave-change-validation/scripts/assert-dev-session-status.mjs +181 -0
  291. package/payload/plugins/toolkit/skills/runweave-dev-session/SKILL.md +126 -0
  292. package/payload/plugins/toolkit/skills/runweave-dev-session/agents/openai.yaml +7 -0
  293. package/payload/plugins/toolkit/skills/runweave-management/SKILL.md +47 -0
  294. package/payload/plugins/toolkit/skills/scheduled-task/SKILL.md +35 -0
  295. package/payload/plugins/toolkit/skills/shadcn/SKILL.md +245 -0
  296. package/payload/plugins/toolkit/skills/shadcn/agents/openai.yml +5 -0
  297. package/payload/plugins/toolkit/skills/shadcn/assets/shadcn-small.png +0 -0
  298. package/payload/plugins/toolkit/skills/shadcn/assets/shadcn.png +0 -0
  299. package/payload/plugins/toolkit/skills/shadcn/cli.md +276 -0
  300. package/payload/plugins/toolkit/skills/shadcn/customization.md +209 -0
  301. package/payload/plugins/toolkit/skills/shadcn/evals/evals.json +47 -0
  302. package/payload/plugins/toolkit/skills/shadcn/mcp.md +94 -0
  303. package/payload/plugins/toolkit/skills/shadcn/rules/base-vs-radix.md +310 -0
  304. package/payload/plugins/toolkit/skills/shadcn/rules/composition.md +197 -0
  305. package/payload/plugins/toolkit/skills/shadcn/rules/forms.md +198 -0
  306. package/payload/plugins/toolkit/skills/shadcn/rules/icons.md +101 -0
  307. package/payload/plugins/toolkit/skills/shadcn/rules/styling.md +163 -0
  308. package/payload/plugins/toolkit/skills/suiji/SKILL.md +54 -0
  309. package/payload/plugins/toolkit/skills/suiji/references/api.md +72 -0
  310. package/payload/plugins/toolkit/skills/suiji/references/source-adapter.md +40 -0
  311. package/payload/plugins/toolkit/skills/suiji/references/work-records.md +36 -0
  312. package/payload/plugins/toolkit/skills/suiji/scripts/source_adapter.py +46 -0
  313. package/payload/plugins/toolkit/skills/suiji/scripts/suiji.py +358 -0
  314. package/payload/plugins/toolkit/skills/suiji/scripts/work_records.py +328 -0
  315. package/payload/plugins/toolkit/skills/suiji/scripts/work_reports.py +75 -0
  316. package/payload/plugins/toolkit/skills/sync-branch-hard-reset/SKILL.md +59 -0
  317. package/payload/plugins/toolkit/skills/update-runweave-backend/SKILL.md +90 -0
  318. package/payload/plugins/toolkit/skills/update-runweave-backend/agents/openai.yaml +4 -0
  319. package/payload/plugins/toolkit/skills/update-runweave-backend/references/npm-update.md +68 -0
  320. package/payload/plugins/toolkit/skills/update-runweave-backend/references/systemd.md +34 -0
  321. package/payload/plugins/toolkit/skills/update-runweave-desktop/SKILL.md +102 -0
  322. package/payload/plugins/toolkit/skills/update-runweave-ios/SKILL.md +16 -0
  323. package/payload/plugins/toolkit/skills/update-runweave-ios/references/ios-wireless-recovery.md +54 -0
  324. package/payload/plugins/toolkit/skills/using-rw/SKILL.md +265 -0
  325. package/payload/plugins/toolkit/skills/write-plan/SKILL.md +72 -0
  326. package/payload/plugins/toolkit/skills/write-test-cases/SKILL.md +100 -0
  327. package/payload/plugins/toolkit/skills/write-test-cases/assets/test-plan-template.yaml +15 -0
  328. package/payload/plugins/toolkit/skills/write-test-cases/references/coverage-checklist.md +75 -0
  329. package/payload/plugins/toolkit/skills/write-test-cases/references/design-techniques.md +91 -0
  330. package/payload/plugins/toolkit/skills/youtube-reading/SKILL.md +35 -0
  331. package/payload/plugins/toolkit/skills/youtube-reading/agents/openai.yaml +4 -0
  332. package/payload/plugins/toolkit/skills/youtube-reading/assets/runtime-lock.json +92 -0
  333. package/payload/plugins/toolkit/skills/youtube-reading/references/content-contract.md +52 -0
  334. package/payload/plugins/toolkit/skills/youtube-reading/references/setup.md +70 -0
  335. package/payload/plugins/toolkit/skills/youtube-reading/requirements.lock +9 -0
  336. package/payload/plugins/toolkit/skills/youtube-reading/scripts/artifacts.py +206 -0
  337. package/payload/plugins/toolkit/skills/youtube-reading/scripts/runtime.py +424 -0
  338. package/payload/plugins/toolkit/skills/youtube-reading/scripts/youtube_reading.py +314 -0
  339. package/payload/plugins/toolkit-release.json +1 -0
  340. package/payload/scripts/toolkit/codex-state.mjs +75 -0
  341. package/payload/scripts/toolkit/release.mjs +210 -0
  342. package/payload/scripts/toolkit/sync-runtime.mjs +108 -0
  343. package/payload/scripts/toolkit/sync.mjs +585 -0
  344. package/payload/frontend/dist/assets/channel-CuSisha8.js +0 -1
  345. package/payload/frontend/dist/assets/classDiagram-6PBFFD2Q-ClJkT7PY.js +0 -1
  346. package/payload/frontend/dist/assets/classDiagram-v2-HSJHXN6E-ClJkT7PY.js +0 -1
  347. package/payload/frontend/dist/assets/clone-CPcyXi9g.js +0 -1
  348. package/payload/frontend/dist/assets/connection-BhcgnOMb.js +0 -12
  349. package/payload/frontend/dist/assets/main-BDBhLSX2.js +0 -696
  350. package/payload/frontend/dist/assets/main-Cg6Oo1xK.css +0 -33
  351. package/payload/frontend/dist/assets/stateDiagram-v2-QKLJ7IA2-DhdOfEAv.js +0 -1
  352. package/payload/frontend/dist/assets/suiji-DXtfgwxj.js +0 -1
@@ -0,0 +1,101 @@
1
+ ---
2
+ name: daily-refactor
3
+ description: 仅当用户明确要求使用 daily-refactor skill 时使用;用于每天先确保 main 已更新到最新 origin/main,再审计 main 分支上一天 00:00 到当前的业务代码提交,执行架构防劣化检查、必要的行为保持重构和独立复核,最后调用 toolkit:github-pr 提交并合并 PR;没有安全且高价值的重构点时允许无代码结束。
4
+ ---
5
+
6
+ # 每日重构
7
+
8
+ 只有用户明确调用 `daily-refactor` skill 时才执行;未明确调用时不要使用这个 skill。
9
+
10
+ 每天唤起后完成一次端到端防劣化审计:先确保本地 `main` 已更新到最新 `origin/main`,再基于 `main` 分支上一天 00:00 到当前的 commit 范围,量化架构变化、验证行为基线,只在存在安全且高价值的重构点时修改业务代码,最后调用 `toolkit:github-pr` 完成提交、push、PR、门禁跟进和合并。
11
+
12
+ 目标是持续降低最近变更带来的架构熵,不是每天强制制造 diff。只有机械搬文件、包装巨型参数对象或迁移状态却形成双写时,视为劣化而不是重构。
13
+
14
+ ## 范围
15
+
16
+ - 默认重构范围:`main` 分支从上一天 00:00 到当前的所有 commit。
17
+ - 计算时间窗口前,必须先 `fetch` 并让本地 `main` fast-forward 到最新 `origin/main`;如果无法 fast-forward,先停止并说明分叉状态。
18
+ - 只重构业务代码。
19
+ - 不重构框架代码、文档、配置文件、单测、集成测试、E2E 或其他测试文件。
20
+ - 默认时间窗口内如果存在超过 600 行的业务代码文件,必须优先选择该文件做重构拆分;拆分后单个业务代码文件不应继续超过 600 行,除非存在明确的框架或生成代码约束并在回复中说明。
21
+ - 架构硬门禁按全仓执行,选点和代码修改仍限定在时间窗口内受影响的业务代码;不要为修复窗口外或非业务代码债务扩大本轮范围。
22
+ - 没有高置信度目标,或无法证明行为保持时,不创建空洞重构 PR;直接在当前对话中回复“无改动”总结。
23
+
24
+ ## 防劣化完成定义
25
+
26
+ 以下条件必须同时满足:
27
+
28
+ - `filesOver600`、runtime/type-only cycle、forbidden import、shared root import 和 architecture errors 在重构后全部为 0。禁止新增白名单、修改 baseline、降低阈值或加 lint disable 来绕过。
29
+ - `filesFrom500To600`、`propsAtLeast10`、`componentCallsAtLeast10`、`functionsAtLeast200` 不得比重构前增加;不得出现新的或更严重的对应热点。
30
+ - HTTP 服务端状态以 connection-scoped TanStack Query 为权威源;Zustand 只保存客户端拥有且同生命周期的 UI/选择状态;组件局部瞬时状态继续使用本地 hook;xterm、BrowserView、tmux、WebContents 等高频或外部资源由 controller/manager + refs 管理。
31
+ - 不把 Query 数据复制进 Zustand/组件 state,不用一个巨型 Context、viewModel、controller 或 options 对象隐藏 props 和回调数量。
32
+ - 拆出的模块必须有独立 truth owner、变化原因或依赖方向;只移动代码、继续由原父组件创建全部状态和动作,不算完成。
33
+ - 重构前后运行同一组行为验证;静态检查不能代替 Playwright 或真实运行时证据。
34
+
35
+ ## 只读副 C 分工
36
+
37
+ 如果运行环境和上层指令允许使用 sub-agent,启动两个只读副 C;主 C 是唯一代码写入者:
38
+
39
+ 1. **侦察副 C**:只读取时间窗口 diff、before 架构报告和相关调用链,按“硬违规 → 临界文件 → props/长函数 → 状态双源 → 依赖方向”给出最多 3 个候选及证据,不改文件。
40
+ 2. **审查副 C**:只读取最终 diff、before/after 报告和验证结果,检查行为漂移、假拆分、过度抽象、Query/Zustand 双写、资源生命周期和范围外改动,不改文件。
41
+
42
+ 副 C 结论必须由主 C 回到真实代码核实,不能直接作为修改依据。环境不支持 sub-agent 时,主 C 串行执行同一套侦察与审查清单,并在总结中写明降级方式。
43
+
44
+ ## 架构双快照
45
+
46
+ 更新 `main` 后、改代码前执行:
47
+
48
+ ```bash
49
+ run_dir="/tmp/runweave-daily-refactor/$(date +%F)"
50
+ mkdir -p "$run_dir"
51
+ pnpm architecture:report
52
+ cp artifacts/architecture-report.json "$run_dir/before-architecture.json"
53
+ pnpm architecture:check
54
+ ```
55
+
56
+ 重构后执行:
57
+
58
+ ```bash
59
+ pnpm architecture:check
60
+ cp artifacts/architecture-report.json "$run_dir/after-architecture.json"
61
+ node plugins/toolkit/skills/daily-refactor/scripts/compare-architecture-reports.mjs \
62
+ "$run_dir/before-architecture.json" \
63
+ "$run_dir/after-architecture.json"
64
+ ```
65
+
66
+ before 硬门禁失败时,先判断是否由默认时间窗口内的业务代码引入:能在本轮范围内安全修复才继续,否则停止并报告;不要在失败基线上叠加机会型重构。
67
+
68
+ ## 默认流程
69
+
70
+ 1. 看当前分支、远程和工作区状态,更新本地 `main` 到最新 `origin/main`,再查看 `main` 分支默认时间窗口内的 commit。
71
+ 2. 对默认时间窗口内的 diff 做变更分析:列出受影响文件,过滤非业务代码,判断业务影响面。
72
+ 3. 保存 before 架构报告并跑硬门禁;让侦察副 C 或主 C 的独立侦察阶段给出候选。
73
+ 4. 只选择一个可验证重构点:优先修复硬违规,其次处理临界文件、新增复杂度热点、状态双源或反向依赖;没有目标则走“无改动”总结。
74
+ 5. 重构前从 `docs/testing/command-matrix.md` 选择行为基线并实际执行。实现时应用 `toolkit:karpathy-guidelines`;涉及 React 时再应用 `toolkit:vercel-react-best-practices`,但不要为调用技能扩大范围。
75
+ 6. 完成最小、行为保持的 vertical slice 重构,清理仅由本轮产生的孤儿。
76
+ 7. 重跑同一组行为验证,保存 after 架构报告,执行架构报告比较器和下述按范围选择的静态门禁。
77
+ 8. 让审查副 C 或主 C 的独立审查阶段检查最终 diff;存在未解决的高风险结论时不发布。
78
+ 9. 调用 `toolkit:github-pr`,由该 skill 负责提交、push、创建 PR、等待门禁和合并。
79
+ 10. 回复重构内容、架构指标前后值、验证结果、副 C 结论、CI、commit、分支、PR 和合并状态。
80
+
81
+ ## 验证回归
82
+
83
+ 以 `docs/testing/layers.md`、`docs/testing/command-matrix.md` 和目标目录 `AGENTS.md` 的当前验证入口为准。`frontend/tests` 没有自动化用例是当前正常状态,不是待修复缺陷,也不构成本轮阻塞;不要为执行本技能新增或恢复 spec。
84
+
85
+ 重构前:
86
+
87
+ - 完成 before 架构快照;记录本轮候选对应的文件行数、props/组件调用/函数长度和状态 owner。
88
+ - 基于 diff 分析结果,从 `docs/testing/command-matrix.md` 选择受影响路径的 YAML 测试计划、现有验证命令与真实运行时验收方式,记录选定 case、fixture 和预期后置状态。
89
+ - 前端业务代码变更使用 `toolkit:run-test-cases` 执行相关 YAML case,并通过 `toolkit:playwright-cli` 在真实页面取证;终端、Vim、Preview 等路径选择对应专项场景。Backend、Electron、CLI、shared 使用现有验证脚本及真实 API/协议/运行时冒烟;原生 iOS 使用 `toolkit:agent-device`。
90
+ - 涉及 UI、交互、布局或 Preview 展示时,保存 before 截图到 `/tmp/runweave-daily-refactor/<date>/before/`,不要提交截图。
91
+
92
+ 重构后:
93
+
94
+ - 先重跑重构前选定的同一组 case 和验证命令,保持 fixture 条件及后置状态一致;逐项记录行为结果与证据路径。
95
+ - 按目标目录 `AGENTS.md` 和命令矩阵执行受影响 package 的 `typecheck`、`lint`、必要的 `build` 及现有专项验证,不调用不存在的 default 测试。
96
+ - 涉及 UI、交互、布局或 Preview 展示时,保存 after 截图到 `/tmp/runweave-daily-refactor/<date>/after/`,并对比 before/after。
97
+ - 运行 after 架构快照比较和 `pnpm architecture:verify`;涉及文档引用时补 `pnpm docs:check`。
98
+ - 运行 `git diff --check`。
99
+ - 如果同组验证失败、架构比较器失败、审查副 C 有未解决高风险结论,先修复并重新验证;无法修复则停止,禁止提交、push 和创建 PR。
100
+
101
+ `pnpm test:e2e` 和仍强制调用该入口的 `pnpm quality:gate` 不作为本技能的必跑命令;通过以上静态门禁与真实行为验收判断本轮是否完成。只有当前仓库存在适用的 tracked spec 时,才按命令矩阵补跑对应自动化 E2E。若已运行聚合门禁,须如实报告各子步骤结果,不能把 `No tests found` 或外层退出 0 算作通过,也不能仅因无 spec 停止本轮。实际行为失败、环境/权限不可用或缺少必要 fixture 导致无法取证时仍须报告阻塞;不得修改门禁配置、降低架构阈值或绕过 GitHub 必需检查。
@@ -0,0 +1,168 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { readFile } from "node:fs/promises";
4
+ import path from "node:path";
5
+
6
+ const [beforePath, afterPath] = process.argv.slice(2);
7
+ if (!beforePath || !afterPath) {
8
+ console.error(
9
+ "Usage: compare-architecture-reports.mjs <before-report.json> <after-report.json>",
10
+ );
11
+ process.exit(2);
12
+ }
13
+
14
+ const before = await readReport(beforePath);
15
+ const after = await readReport(afterPath);
16
+ const failures = [];
17
+ const improvements = [];
18
+
19
+ const hardZeroMetrics = [
20
+ "filesOver600",
21
+ "runtimeCycles",
22
+ "typeOnlyCycles",
23
+ "forbiddenImports",
24
+ "sharedRootImports",
25
+ "errors",
26
+ ];
27
+ const softRatchetMetrics = [
28
+ "filesFrom500To600",
29
+ "propsAtLeast10",
30
+ "componentCallsAtLeast10",
31
+ "functionsAtLeast200",
32
+ ];
33
+
34
+ for (const metric of hardZeroMetrics) {
35
+ const value = readMetric(after, metric);
36
+ if (value !== 0) {
37
+ failures.push(`Hard metric ${metric} must be 0; received ${value}.`);
38
+ }
39
+ }
40
+
41
+ for (const metric of softRatchetMetrics) {
42
+ const beforeValue = readMetric(before, metric);
43
+ const afterValue = readMetric(after, metric);
44
+ if (afterValue > beforeValue) {
45
+ failures.push(
46
+ `Soft metric ${metric} regressed: ${beforeValue} -> ${afterValue}.`,
47
+ );
48
+ } else if (afterValue < beforeValue) {
49
+ improvements.push(`${metric}: ${beforeValue} -> ${afterValue}`);
50
+ }
51
+ }
52
+
53
+ compareHotspots({
54
+ label: "near-limit file",
55
+ beforeItems: before.fileSize?.nearLimit,
56
+ afterItems: after.fileSize?.nearLimit,
57
+ keyOf: (item) => item.file,
58
+ severityOf: (item) => item.lines,
59
+ });
60
+ compareHotspots({
61
+ label: "large props type",
62
+ beforeItems: before.react?.propsAtLeast10,
63
+ afterItems: after.react?.propsAtLeast10,
64
+ keyOf: namedHotspotKey,
65
+ severityOf: (item) => item.count,
66
+ });
67
+ compareHotspots({
68
+ label: "large component call",
69
+ beforeItems: before.react?.componentCallsAtLeast10,
70
+ afterItems: after.react?.componentCallsAtLeast10,
71
+ keyOf: namedHotspotKey,
72
+ severityOf: (item) => item.count,
73
+ });
74
+ compareHotspots({
75
+ label: "long function",
76
+ beforeItems: before.react?.functionsAtLeast200,
77
+ afterItems: after.react?.functionsAtLeast200,
78
+ keyOf: namedHotspotKey,
79
+ severityOf: (item) => item.lines,
80
+ });
81
+
82
+ console.log(
83
+ `architecture ratchet: before=${formatSummary(before)} after=${formatSummary(after)}`,
84
+ );
85
+ if (improvements.length > 0) {
86
+ console.log(`architecture ratchet: improvements: ${improvements.join("; ")}`);
87
+ }
88
+ if (failures.length > 0) {
89
+ for (const failure of failures) {
90
+ console.error(`architecture ratchet: error: ${failure}`);
91
+ }
92
+ process.exitCode = 1;
93
+ } else {
94
+ console.log("architecture ratchet: pass");
95
+ }
96
+
97
+ async function readReport(filePath) {
98
+ const resolved = path.resolve(filePath);
99
+ const report = JSON.parse(await readFile(resolved, "utf8"));
100
+ if (report?.schemaVersion !== 1 || !report.summary) {
101
+ throw new Error(`Unsupported architecture report: ${resolved}`);
102
+ }
103
+ return report;
104
+ }
105
+
106
+ function readMetric(report, metric) {
107
+ const value = report.summary[metric];
108
+ if (!Number.isFinite(value)) {
109
+ throw new Error(`Architecture report is missing numeric metric: ${metric}`);
110
+ }
111
+ return value;
112
+ }
113
+
114
+ function namedHotspotKey(item) {
115
+ return `${item.file}:${item.name || `line-${item.line}`}`;
116
+ }
117
+
118
+ function compareHotspots({
119
+ label,
120
+ beforeItems = [],
121
+ afterItems = [],
122
+ keyOf,
123
+ severityOf,
124
+ }) {
125
+ const beforeByKey = indexHotspots(beforeItems, keyOf, severityOf);
126
+ const afterByKey = indexHotspots(afterItems, keyOf, severityOf);
127
+
128
+ for (const [key, item] of afterByKey) {
129
+ const previous = beforeByKey.get(key);
130
+ const severity = severityOf(item);
131
+ if (!previous) {
132
+ failures.push(`New ${label}: ${key} (${severity}).`);
133
+ continue;
134
+ }
135
+ const previousSeverity = severityOf(previous);
136
+ if (severity > previousSeverity) {
137
+ failures.push(
138
+ `${label} worsened: ${key} ${previousSeverity} -> ${severity}.`,
139
+ );
140
+ } else if (severity < previousSeverity) {
141
+ improvements.push(`${label} ${key}: ${previousSeverity} -> ${severity}`);
142
+ }
143
+ }
144
+
145
+ for (const [key, item] of beforeByKey) {
146
+ if (!afterByKey.has(key)) {
147
+ improvements.push(`${label} removed: ${key} (${severityOf(item)})`);
148
+ }
149
+ }
150
+ }
151
+
152
+ function indexHotspots(items, keyOf, severityOf) {
153
+ const indexed = new Map();
154
+ for (const item of items ?? []) {
155
+ const key = keyOf(item);
156
+ const current = indexed.get(key);
157
+ if (!current || severityOf(item) > severityOf(current)) {
158
+ indexed.set(key, item);
159
+ }
160
+ }
161
+ return indexed;
162
+ }
163
+
164
+ function formatSummary(report) {
165
+ return [...hardZeroMetrics, ...softRatchetMetrics]
166
+ .map((metric) => `${metric}=${readMetric(report, metric)}`)
167
+ .join(",");
168
+ }
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: debugging-strategies
3
+ description: "Master systematic debugging techniques, profiling tools, and root cause analysis to efficiently track down bugs across any codebase or technology stack. Use when investigating bugs, performance iss..."
4
+ metadata:
5
+ risk: unknown
6
+ source: community
7
+ date_added: "2026-02-27"
8
+ ---
9
+
10
+ # Debugging Strategies
11
+
12
+ Transform debugging from frustrating guesswork into systematic problem-solving with proven strategies, powerful tools, and methodical approaches.
13
+
14
+ ## Use this skill when
15
+
16
+ - Tracking down elusive bugs
17
+ - Investigating performance issues
18
+ - Debugging production incidents
19
+ - Analyzing crash dumps or stack traces
20
+ - Debugging distributed systems
21
+
22
+ ## Do not use this skill when
23
+
24
+ - There is no reproducible issue or observable symptom
25
+ - The task is purely feature development
26
+ - You cannot access logs, traces, or runtime signals
27
+
28
+ ## Instructions
29
+
30
+ - Reproduce the issue and capture logs, traces, and environment details.
31
+ - Form hypotheses and design controlled experiments.
32
+ - Narrow scope with binary search and targeted instrumentation.
33
+ - Document findings and verify the fix.
34
+ - If detailed playbooks are required, open `resources/implementation-playbook.md`.
35
+
36
+ ## Resources
37
+
38
+ - `resources/implementation-playbook.md` for detailed debugging patterns and checklists.