scip-query 0.10.12 → 0.12.0

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 (354) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/{vendor/scip/LICENSE.scip → LICENSE} +1 -0
  3. package/README.md +164 -49
  4. package/dist/augment-vue-worker.js +1 -1
  5. package/dist/{chunk-RUV5IY25.js → chunk-2LQWMYG4.js} +2 -2
  6. package/dist/{chunk-KZ4MG5NY.js → chunk-2QGE5AEP.js} +2 -2
  7. package/dist/chunk-4D54JIU3.js +2 -0
  8. package/dist/{chunk-2GLNBCHB.js → chunk-52Q4JFDW.js} +2 -2
  9. package/dist/chunk-5AAAEZ2Z.js +2 -0
  10. package/dist/chunk-64PRNLKP.js +2 -0
  11. package/dist/chunk-6XA4LDHY.js +2 -0
  12. package/dist/chunk-72MFTCU5.js +38 -0
  13. package/dist/chunk-75X52JTA.js +2 -0
  14. package/dist/{chunk-LEHVP4DY.js → chunk-7ITCOJGD.js} +2 -2
  15. package/dist/chunk-7JZRFDCU.js +2 -0
  16. package/dist/{chunk-XRUGSM76.js → chunk-AZLKLZ5S.js} +2 -2
  17. package/dist/chunk-B4VYXRCQ.js +26 -0
  18. package/dist/chunk-BCNT6ODA.js +5 -0
  19. package/dist/chunk-BP2NAIAZ.js +2 -0
  20. package/dist/chunk-BVNO67DB.js +2 -0
  21. package/dist/{chunk-XHMVZFA6.js → chunk-CW3KZ7UF.js} +2 -2
  22. package/dist/{chunk-6BN3EHQE.js → chunk-D64L53WX.js} +2 -2
  23. package/dist/{chunk-T3AEVJBG.js → chunk-D7J6GZAG.js} +2 -2
  24. package/dist/chunk-ECVXWZ4Q.js +3 -0
  25. package/dist/chunk-EDB7Y442.js +2 -0
  26. package/dist/{chunk-4ISHQ7UW.js → chunk-ETU2I5JM.js} +4 -4
  27. package/dist/chunk-EXKLAEB4.js +18 -0
  28. package/dist/chunk-EZ5WDZ2Q.js +3 -0
  29. package/dist/{chunk-S2MRVIJ5.js → chunk-F5BJSNU5.js} +6 -6
  30. package/dist/chunk-FBCOFKEC.js +2 -0
  31. package/dist/chunk-FERAXG6Y.js +72 -0
  32. package/dist/chunk-FXG3PHVW.js +9 -0
  33. package/dist/{chunk-XUCZ3RQ5.js → chunk-G2UBOONK.js} +4 -4
  34. package/dist/chunk-GNG622H3.js +3 -0
  35. package/dist/{chunk-JS6B76AQ.js → chunk-H2NMIZFD.js} +2 -2
  36. package/dist/chunk-H7NSJ7L2.js +5 -0
  37. package/dist/chunk-HSU3M25J.js +21 -0
  38. package/dist/chunk-HXXMPYEF.js +2 -0
  39. package/dist/chunk-IRJDYTNZ.js +3 -0
  40. package/dist/chunk-ISLWJ4PY.js +10 -0
  41. package/dist/chunk-J5WVNZ6O.js +2 -0
  42. package/dist/{chunk-UVPY3RUZ.js → chunk-K6UI6EBZ.js} +2 -2
  43. package/dist/{chunk-MNCQPMCH.js → chunk-KJCDEDQW.js} +2 -2
  44. package/dist/{chunk-ELC77ZDE.js → chunk-KMVGRIO2.js} +2 -2
  45. package/dist/chunk-KSUZS77X.js +16 -0
  46. package/dist/{chunk-A4UTLKHU.js → chunk-L2CX5GHZ.js} +2 -2
  47. package/dist/chunk-LFM3O5KX.js +2 -0
  48. package/dist/{chunk-ZUUNREKS.js → chunk-M72ZFN6E.js} +5 -5
  49. package/dist/chunk-MBKJ7GHT.js +102 -0
  50. package/dist/chunk-MJKJMWIM.js +2 -0
  51. package/dist/chunk-MKM7NBZK.js +43 -0
  52. package/dist/chunk-MTDBHTSF.js +2 -0
  53. package/dist/chunk-NAH5EAZS.js +6 -0
  54. package/dist/chunk-NJJ7AS4F.js +2 -0
  55. package/dist/{chunk-EOLGSSDR.js → chunk-NKT5EMEX.js} +2 -2
  56. package/dist/{chunk-ANUEY5WV.js → chunk-NLMRJ7SI.js} +2 -2
  57. package/dist/chunk-NQ75OVUU.js +40 -0
  58. package/dist/{chunk-TBCHRDAC.js → chunk-O3WDE26W.js} +2 -2
  59. package/dist/{chunk-VB2EZZPA.js → chunk-OPE5YXFE.js} +2 -2
  60. package/dist/chunk-ORBRX2QJ.js +2 -0
  61. package/dist/{chunk-OFXN2BCT.js → chunk-OSWF3HSF.js} +2 -2
  62. package/dist/{chunk-JJ5SAWBT.js → chunk-OVMUVXKQ.js} +2 -2
  63. package/dist/{chunk-NTSR6SRP.js → chunk-PH7ZFK6L.js} +2 -2
  64. package/dist/chunk-PXHPCWX5.js +2 -0
  65. package/dist/chunk-Q3B3FNCU.js +3 -0
  66. package/dist/{chunk-SQNHOOJ5.js → chunk-Q7S2DADC.js} +2 -2
  67. package/dist/{chunk-3XSNW5XB.js → chunk-QARYU7R3.js} +2 -2
  68. package/dist/chunk-QZ4JVECJ.js +2 -0
  69. package/dist/{chunk-FX6ULETZ.js → chunk-R5336VHZ.js} +2 -2
  70. package/dist/chunk-RA5MTIOO.js +2 -0
  71. package/dist/{chunk-RXINFVBN.js → chunk-RIQED5OU.js} +2 -2
  72. package/dist/chunk-T2FQ4GHD.js +9 -0
  73. package/dist/chunk-T6NGEV5I.js +2 -0
  74. package/dist/chunk-T7VQG55Q.js +2 -0
  75. package/dist/chunk-TFWDJDGO.js +2 -0
  76. package/dist/chunk-TG7QSYCJ.js +2 -0
  77. package/dist/{chunk-DQ6433ZG.js → chunk-TTMKELT7.js} +17 -8
  78. package/dist/{chunk-DDQONX6B.js → chunk-U7I373V4.js} +2 -2
  79. package/dist/chunk-UAHZ57BR.js +2 -0
  80. package/dist/chunk-URSSPS5H.js +2 -0
  81. package/dist/chunk-V3Z3IOWO.js +2 -0
  82. package/dist/{chunk-7C6JBBE4.js → chunk-V7CVBPWX.js} +2 -2
  83. package/dist/{chunk-PWAK75BU.js → chunk-VYF5HA76.js} +2 -2
  84. package/dist/chunk-WIBFXSYB.js +6 -0
  85. package/dist/chunk-WS3Z6W3M.js +65 -0
  86. package/dist/chunk-WXVGNFAO.js +2 -0
  87. package/dist/chunk-XEMQUN3Z.js +20 -0
  88. package/dist/chunk-YCPASUCX.js +2 -0
  89. package/dist/chunk-YDDGCJJG.js +3 -0
  90. package/dist/{chunk-2UVCH7CQ.js → chunk-YPKBZ77R.js} +2 -2
  91. package/dist/chunk-YZXV3CU3.js +60 -0
  92. package/dist/chunk-Z3IPJKJP.js +4 -0
  93. package/dist/chunk-ZMGBWSFZ.js +2 -0
  94. package/dist/{chunk-GKB4JJDU.js → chunk-ZOIPAYRP.js} +2 -2
  95. package/dist/chunk-ZRIOGL7F.js +8 -0
  96. package/dist/cli.js +446 -280
  97. package/dist/{config-types-dvHOz0zU.d.ts → config-types-BrHl3Bge.d.ts} +57 -0
  98. package/dist/{db-rMZO5JFK.d.ts → db-_Bdx0E1W.d.ts} +1 -1
  99. package/dist/diff-gate-types-CG2YQ_ei.d.ts +4 -0
  100. package/dist/{frontend-behavior-evidence-BxKpKWUu.d.ts → frontend-behavior-evidence-EfM4_9bc.d.ts} +1 -1
  101. package/dist/{health-CtTIGh6H.d.ts → health-BEZ1Rt0S.d.ts} +54 -2
  102. package/dist/index.d.ts +4 -68
  103. package/dist/index.js +1 -1
  104. package/dist/postinstall.js +1 -4
  105. package/dist/queries/affected.d.ts +2 -2
  106. package/dist/queries/affected.js +1 -1
  107. package/dist/queries/bottlenecks.d.ts +2 -2
  108. package/dist/queries/bottlenecks.js +1 -1
  109. package/dist/queries/by-kind.d.ts +2 -2
  110. package/dist/queries/by-kind.js +1 -1
  111. package/dist/queries/call-graph.d.ts +2 -2
  112. package/dist/queries/call-graph.js +1 -1
  113. package/dist/queries/change-surface.d.ts +2 -2
  114. package/dist/queries/change-surface.js +1 -1
  115. package/dist/queries/cleanup-plan.d.ts +2 -2
  116. package/dist/queries/cleanup-plan.js +1 -1
  117. package/dist/queries/co-change.d.ts +12 -2
  118. package/dist/queries/co-change.js +1 -1
  119. package/dist/queries/code.d.ts +2 -2
  120. package/dist/queries/code.js +1 -1
  121. package/dist/queries/complexity-hotspots.d.ts +7 -3
  122. package/dist/queries/complexity-hotspots.js +1 -1
  123. package/dist/queries/complexity.d.ts +42 -4
  124. package/dist/queries/complexity.js +1 -1
  125. package/dist/queries/convergence.d.ts +2 -2
  126. package/dist/queries/convergence.js +1 -1
  127. package/dist/queries/coupling.d.ts +2 -2
  128. package/dist/queries/coupling.js +1 -1
  129. package/dist/queries/cycles.d.ts +12 -3
  130. package/dist/queries/cycles.js +1 -1
  131. package/dist/queries/dataflow.d.ts +2 -2
  132. package/dist/queries/dataflow.js +1 -1
  133. package/dist/queries/dead.d.ts +3 -3
  134. package/dist/queries/dead.js +1 -1
  135. package/dist/queries/deep-chains.d.ts +2 -2
  136. package/dist/queries/deep-chains.js +1 -1
  137. package/dist/queries/deps.d.ts +2 -2
  138. package/dist/queries/deps.js +1 -1
  139. package/dist/queries/diff-gate.d.ts +65 -8
  140. package/dist/queries/diff-gate.js +1 -1
  141. package/dist/queries/diff-impact.d.ts +21 -3
  142. package/dist/queries/diff-impact.js +1 -1
  143. package/dist/queries/doc-drift.d.ts +29 -2
  144. package/dist/queries/doc-drift.js +1 -1
  145. package/dist/queries/drift.d.ts +15 -3
  146. package/dist/queries/drift.js +1 -1
  147. package/dist/queries/duplicate-bodies.d.ts +55 -0
  148. package/dist/queries/duplicate-bodies.js +2 -0
  149. package/dist/queries/extract-candidates.d.ts +2 -2
  150. package/dist/queries/extract-candidates.js +1 -1
  151. package/dist/queries/fan.d.ts +2 -2
  152. package/dist/queries/fan.js +1 -1
  153. package/dist/queries/files.d.ts +4 -3
  154. package/dist/queries/files.js +1 -1
  155. package/dist/queries/health.d.ts +3 -3
  156. package/dist/queries/health.js +1 -1
  157. package/dist/queries/hierarchy.d.ts +2 -2
  158. package/dist/queries/hierarchy.js +1 -1
  159. package/dist/queries/hotspots.d.ts +2 -2
  160. package/dist/queries/hotspots.js +1 -1
  161. package/dist/queries/imports.d.ts +2 -2
  162. package/dist/queries/imports.js +1 -1
  163. package/dist/queries/incomplete-migration.d.ts +3 -2
  164. package/dist/queries/incomplete-migration.js +1 -1
  165. package/dist/queries/index.d.ts +12 -7
  166. package/dist/queries/index.js +1 -1
  167. package/dist/queries/isolated.d.ts +2 -2
  168. package/dist/queries/isolated.js +1 -1
  169. package/dist/queries/locality-candidates.d.ts +2 -2
  170. package/dist/queries/locality-candidates.js +1 -1
  171. package/dist/queries/members.d.ts +2 -2
  172. package/dist/queries/members.js +1 -1
  173. package/dist/queries/methods.d.ts +2 -2
  174. package/dist/queries/methods.js +1 -1
  175. package/dist/queries/outline.d.ts +2 -2
  176. package/dist/queries/outline.js +1 -1
  177. package/dist/queries/passthrough-candidates.d.ts +11 -3
  178. package/dist/queries/passthrough-candidates.js +1 -1
  179. package/dist/queries/plan-context.d.ts +3 -2
  180. package/dist/queries/plan-context.js +1 -1
  181. package/dist/queries/react-component-duplicates.d.ts +7 -2
  182. package/dist/queries/react-component-duplicates.js +1 -1
  183. package/dist/queries/react-hook-candidates.d.ts +3 -3
  184. package/dist/queries/react-hook-candidates.js +1 -1
  185. package/dist/queries/react-large-component-pressure.d.ts +2 -2
  186. package/dist/queries/react-large-component-pressure.js +1 -1
  187. package/dist/queries/recent-duplicates.d.ts +2 -2
  188. package/dist/queries/recent-duplicates.js +1 -1
  189. package/dist/queries/redundant-reexports.d.ts +2 -2
  190. package/dist/queries/redundant-reexports.js +1 -1
  191. package/dist/queries/refs.d.ts +2 -2
  192. package/dist/queries/refs.js +1 -1
  193. package/dist/queries/self-audit.d.ts +4 -2
  194. package/dist/queries/self-audit.js +1 -1
  195. package/dist/queries/similar-chains.d.ts +2 -2
  196. package/dist/queries/similar-chains.js +1 -1
  197. package/dist/queries/similar-files.d.ts +2 -2
  198. package/dist/queries/similar-files.js +1 -1
  199. package/dist/queries/similar-signatures.d.ts +17 -10
  200. package/dist/queries/similar-signatures.js +1 -1
  201. package/dist/queries/similar.d.ts +42 -3
  202. package/dist/queries/similar.js +1 -1
  203. package/dist/queries/slice.d.ts +2 -2
  204. package/dist/queries/slice.js +1 -1
  205. package/dist/queries/stale-abstractions.d.ts +2 -2
  206. package/dist/queries/stale-abstractions.js +1 -1
  207. package/dist/queries/stats.d.ts +2 -2
  208. package/dist/queries/surface.d.ts +2 -2
  209. package/dist/queries/surface.js +1 -1
  210. package/dist/queries/symbols.d.ts +2 -2
  211. package/dist/queries/symbols.js +1 -1
  212. package/dist/queries/system.d.ts +2 -2
  213. package/dist/queries/system.js +1 -1
  214. package/dist/queries/trace.d.ts +2 -2
  215. package/dist/queries/trace.js +1 -1
  216. package/dist/queries/twin-ab.d.ts +55 -0
  217. package/dist/queries/twin-ab.js +2 -0
  218. package/dist/queries/twin-drift.d.ts +97 -0
  219. package/dist/queries/twin-drift.js +2 -0
  220. package/dist/queries/unused-imports.d.ts +2 -2
  221. package/dist/queries/unused-imports.js +1 -1
  222. package/dist/queries/unused-params.d.ts +2 -2
  223. package/dist/queries/unused-params.js +1 -1
  224. package/dist/queries/vue-component-duplicates.d.ts +7 -2
  225. package/dist/queries/vue-component-duplicates.js +1 -1
  226. package/dist/queries/vue-composable-candidates.d.ts +3 -3
  227. package/dist/queries/vue-composable-candidates.js +1 -1
  228. package/dist/queries/vue-large-view-pressure.d.ts +6 -2
  229. package/dist/queries/vue-large-view-pressure.js +1 -1
  230. package/dist/queries/wrapper-candidates.d.ts +2 -2
  231. package/dist/queries/wrapper-candidates.js +1 -1
  232. package/dist/reindex-worker.js +9 -9
  233. package/dist/reindex.d.ts +23 -4
  234. package/dist/reindex.js +19 -19
  235. package/dist/runtime.d.ts +11 -6
  236. package/dist/runtime.js +2 -2
  237. package/dist/{scip-cli-trnNvymv.d.ts → scip-cli-C7cg4ZHR.d.ts} +1 -1
  238. package/dist/symbol-types-DaoeXKUt.d.ts +66 -0
  239. package/docs/AGENT_GUIDE.md +20 -18
  240. package/docs/AI_FAILURE_MODES.md +36 -13
  241. package/docs/API.md +1 -1
  242. package/docs/COMMAND_REFERENCE.md +57 -14
  243. package/docs/DETECTOR_GUIDE.md +20 -3
  244. package/docs/REGEX_POLICY.md +34 -0
  245. package/docs/analyzer-inventory.md +40 -3
  246. package/docs/analyzer-validation-ledger.md +34 -6
  247. package/package.json +39 -7
  248. package/scripts/build-scip-windows.mjs +10 -7
  249. package/skills/_shared/SKILL.md +243 -0
  250. package/skills/_shared/agents/openai.yaml +4 -0
  251. package/skills/scip-api-impact/SKILL.md +55 -71
  252. package/skills/scip-claim-audit/SKILL.md +105 -0
  253. package/skills/scip-claim-audit/agents/openai.yaml +4 -0
  254. package/skills/scip-cleanup-audit/SKILL.md +122 -0
  255. package/skills/scip-cleanup-audit/agents/openai.yaml +4 -0
  256. package/skills/scip-cleanup-improve/SKILL.md +84 -0
  257. package/skills/scip-cleanup-improve/agents/openai.yaml +4 -0
  258. package/skills/scip-concrete-plan/SKILL.md +181 -0
  259. package/skills/scip-concrete-plan/agents/openai.yaml +4 -0
  260. package/skills/scip-conductor/SKILL.md +133 -0
  261. package/skills/scip-conductor/agents/openai.yaml +4 -0
  262. package/skills/scip-debug/SKILL.md +60 -58
  263. package/skills/scip-diagram/SKILL.md +64 -94
  264. package/skills/scip-directory-architecture/SKILL.md +65 -107
  265. package/skills/scip-doc-reconcile/SKILL.md +56 -67
  266. package/skills/scip-explore/SKILL.md +78 -210
  267. package/skills/scip-hyper-optimization/SKILL.md +124 -198
  268. package/skills/scip-integrity-audit/SKILL.md +103 -0
  269. package/skills/scip-integrity-audit/agents/openai.yaml +4 -0
  270. package/skills/scip-language-playbook/SKILL.md +56 -326
  271. package/skills/scip-maintainability/SKILL.md +80 -219
  272. package/skills/scip-probe-reachability/SKILL.md +92 -0
  273. package/skills/scip-probe-reachability/agents/openai.yaml +4 -0
  274. package/skills/scip-query/SKILL.md +108 -124
  275. package/skills/scip-react-maintainability/SKILL.md +64 -82
  276. package/skills/scip-setup/SKILL.md +121 -0
  277. package/skills/scip-setup/agents/openai.yaml +4 -0
  278. package/skills/scip-tla-model-system/SKILL.md +150 -0
  279. package/skills/scip-tla-model-system/agents/openai.yaml +4 -0
  280. package/skills/scip-triage-issue/SKILL.md +53 -41
  281. package/skills/scip-twin-drift/SKILL.md +107 -0
  282. package/skills/scip-twin-drift/agents/openai.yaml +4 -0
  283. package/skills/scip-verify/SKILL.md +70 -88
  284. package/skills/scip-vue-maintainability/SKILL.md +67 -94
  285. package/dist/chunk-2DOW7QCA.js +0 -71
  286. package/dist/chunk-2FMFF4RI.js +0 -2
  287. package/dist/chunk-5GXTUANY.js +0 -2
  288. package/dist/chunk-5JHEN5VN.js +0 -25
  289. package/dist/chunk-62ULXMQ7.js +0 -18
  290. package/dist/chunk-63CI3IXR.js +0 -102
  291. package/dist/chunk-7EK7OSWS.js +0 -2
  292. package/dist/chunk-7IWIMNHI.js +0 -2
  293. package/dist/chunk-7XTO4YXB.js +0 -8
  294. package/dist/chunk-AOWFUGDL.js +0 -2
  295. package/dist/chunk-AREANYIA.js +0 -3
  296. package/dist/chunk-AZBELWZQ.js +0 -7
  297. package/dist/chunk-B32FX5KB.js +0 -2
  298. package/dist/chunk-B6MJ5VQV.js +0 -2
  299. package/dist/chunk-CXWCLVYL.js +0 -2
  300. package/dist/chunk-CYHIKTJN.js +0 -3
  301. package/dist/chunk-DFSEARAU.js +0 -2
  302. package/dist/chunk-DVFP6PZI.js +0 -2
  303. package/dist/chunk-E3ADDB43.js +0 -2
  304. package/dist/chunk-F6IXELII.js +0 -20
  305. package/dist/chunk-FMGVZBS2.js +0 -2
  306. package/dist/chunk-GG5LHT27.js +0 -2
  307. package/dist/chunk-H7JF2CKK.js +0 -2
  308. package/dist/chunk-HHOMJCP5.js +0 -4
  309. package/dist/chunk-HRDSU5FN.js +0 -9
  310. package/dist/chunk-HWVYTJOV.js +0 -2
  311. package/dist/chunk-JNMLBL36.js +0 -2
  312. package/dist/chunk-L446VQYQ.js +0 -2
  313. package/dist/chunk-LDJUB7XW.js +0 -2
  314. package/dist/chunk-MYTUWXHK.js +0 -4
  315. package/dist/chunk-N25HPUOK.js +0 -2
  316. package/dist/chunk-NABVR6B7.js +0 -2
  317. package/dist/chunk-NBNEVLRC.js +0 -3
  318. package/dist/chunk-ONPCQ2PM.js +0 -6
  319. package/dist/chunk-Q5P7NOVM.js +0 -2
  320. package/dist/chunk-RGKRYO22.js +0 -4
  321. package/dist/chunk-RM2WQ75T.js +0 -2
  322. package/dist/chunk-ROGZXWN2.js +0 -2
  323. package/dist/chunk-RSSXKJ6J.js +0 -38
  324. package/dist/chunk-RVGEZYMQ.js +0 -2
  325. package/dist/chunk-SA3DPTHT.js +0 -7
  326. package/dist/chunk-SGTKURU6.js +0 -52
  327. package/dist/chunk-T4N2ZRVY.js +0 -21
  328. package/dist/chunk-THB6AM3V.js +0 -11
  329. package/dist/chunk-ULHLDOD6.js +0 -4
  330. package/dist/chunk-UQ73QF5D.js +0 -43
  331. package/dist/chunk-UUBMFL3F.js +0 -59
  332. package/dist/chunk-V5FGK3DZ.js +0 -2
  333. package/dist/chunk-WTY5FERW.js +0 -2
  334. package/dist/chunk-WUOB4DHH.js +0 -6
  335. package/dist/chunk-YFQIKYOP.js +0 -2
  336. package/dist/chunk-Z2LDWIJV.js +0 -5
  337. package/dist/chunk-ZNWWVYQL.js +0 -3
  338. package/skills/concrete-plan/SKILL.md +0 -372
  339. package/skills/concrete-plan/agents/openai.yaml +0 -4
  340. package/skills/scip-adoption/SKILL.md +0 -122
  341. package/skills/scip-adoption/agents/openai.yaml +0 -4
  342. package/skills/scip-ai-cleanup/SKILL.md +0 -153
  343. package/skills/scip-ai-cleanup/agents/openai.yaml +0 -4
  344. package/skills/scip-debloat/SKILL.md +0 -439
  345. package/skills/scip-debloat/agents/openai.yaml +0 -4
  346. package/skills/scip-health-audit/SKILL.md +0 -162
  347. package/skills/scip-health-audit/agents/openai.yaml +0 -4
  348. package/skills/scip-health-improve/SKILL.md +0 -155
  349. package/skills/scip-health-improve/agents/openai.yaml +0 -4
  350. package/skills/scip-query-setup/SKILL.md +0 -170
  351. package/skills/scip-query-setup/agents/openai.yaml +0 -3
  352. package/vendor/scip/README.md +0 -6
  353. package/vendor/scip/win32-arm64/scip.exe +0 -0
  354. package/vendor/scip/win32-x64/scip.exe +0 -0
@@ -1,130 +1,114 @@
1
1
  ---
2
2
  name: scip-query
3
- description: Router for codebase work in scip-query-indexed projects. Use whenever exploring, planning, implementing, refactoring, extracting helpers, verifying changes, hunting duplication or bloat, fixing stale docs, or cleaning up after an AI coding session — or when unsure which scip-* skill applies. Picks the right specialist skill and the commands that must run for each phase of work.
3
+ description: Route codebase work in scip-query-indexed projects. Use when exploring, planning, implementing, refactoring, debugging, verifying, cleaning up, reconciling docs, improving health, or when unsure which scip-* skill should own the workflow.
4
+ commands:
5
+ - template: "scip-query status --capabilities"
6
+ when: "Before routing: confirm the index is fresh."
7
+ - template: "scip-query plan-context <target>"
8
+ when: "Default loop: anchor a plan for the routed skill."
9
+ - template: "scip-query diff-gate --json"
10
+ when: "Default loop: the loop is complete only when this passes or is explained."
4
11
  ---
5
12
 
6
13
  # scip-query Router
7
14
 
8
- This project is indexed by `scip-query` compiler-resolved code intelligence.
9
- Your job here is only to route: identify the phase of work, invoke the right
10
- specialist skill, and enforce the non-negotiable checks. Do not improvise a
11
- workflow when a specialist skill exists for it.
12
-
13
- Before trusting graph facts, check freshness with `scip-query status --capabilities`
14
- or `scip-query status --json`. If the index is `fresh`, continue without
15
- reindexing. If it is `stale`, `missing`, or `unknown`, run `scip-query reindex`
16
- before using code-intelligence results. Project hooks auto-refresh stale indexes
17
- by default unless `.scipquery.json` sets `watch.autoRefresh: false`.
18
-
19
- ## The default loop for any implementation request
20
-
21
- When the user asks you to build, change, or fix something non-trivial:
22
-
23
- 1. **Plan first** — invoke `concrete-plan` (every claim in the plan must come
24
- from a scip-query command, anchored by `scip-query plan-context <target>`).
25
- 2. **Implement** the plan.
26
- 3. **Verify** — invoke `scip-verify`, then run the post-checks that match what
27
- you changed (table below).
28
- 4. **Gate before done** check freshness; reindex only when the index is not
29
- `fresh`, then run `scip-query diff-gate --json`; fix findings or state
30
- explicitly why each is accepted.
31
-
32
- ## Route by phase of work
33
-
34
- | You are about to... | Invoke | Anchor commands |
35
- | ------------------------------------------------------------------------------------------------------------------ | ----------------------------- | ----------------------------------------------------------------------------------------------------------- |
36
- | Understand how something works, trace a system end-to-end | `scip-explore` | `scip-query system <module>`, `scip-query trace <symbol>` |
37
- | Debug a bug, regression, failing behavior, or wrong data flow | `scip-debug` | `scip-query trace <symbol>`, `scip-query dataflow <symbol>`, `scip-query change-surface <file>` |
38
- | Triage a bug report or issue into evidence and a fix plan | `scip-triage-issue` | `scip-query files <term>`, `scip-query trace <symbol>`, `scip-query affected <symbol>` |
39
- | Create a visual explanation, flow map, dependency map, or HTML diagram | `scip-diagram` | `scip-query call-graph <symbol>`, `scip-query dataflow <symbol>`, `scip-query affected <symbol>` |
40
- | Plan a feature, fix, or refactor | `concrete-plan` | `scip-query plan-context <target>` |
41
- | Assess a public API, route, CLI, config, schema, or boundary change | `scip-api-impact` | `scip-query surface <module>`, `scip-query affected <symbol>`, `scip-query co-change <file>` |
42
- | Pick high-signal commands for an unfamiliar language | `scip-language-playbook` | |
43
- | Benchmark indexing, command runtime, or detector performance | `scip-query` | `scip-query bench --json`, `scip-query bench --cold-index --include-heavy` |
44
- | Hyper-optimize a command, workflow, indexer, detector, or app path with benchmark ledgers and alternative designs | `scip-hyper-optimization` | `scip-query bench --json`, `scip-query plan-context <target>`, command-specific correctness checks |
45
- | Adopt or bootstrap scip-query in a repository | `scip-adoption` | `scip-query setup --json`, `scip-query check-deps`, `scip-query capability-matrix --json` |
46
- | Verify work you just finished (any implementation, refactor, or extraction) | `scip-verify` | `scip-query status --capabilities`, `scip-query diff-gate --json` |
47
- | Confirm post-setup health signals before cleanup | `scip-health-audit` | `scip-query health --json --full`, `scip-query diff-gate --json` |
48
- | Raise the health score as high as reasonably possible with autonomous verified cleanup | `scip-health-improve` | `scip-query health --json --full`, `scip-query cleanup-plan --verify --json`, `scip-query diff-gate --json` |
49
- | Audit dead code, duplication, unnecessary abstractions, or structural bloat and produce a prioritized cleanup plan | `scip-debloat` | `scip-query health` |
50
- | Clean up recent AI-assisted coding rot, copied echoes, incomplete migrations, speculative params, or doc drift | `scip-ai-cleanup` | `scip-query recent-duplicates`, `scip-query incomplete-migration` |
51
- | Reconcile docs/standards that drifted from the code | `scip-doc-reconcile` | `scip-query doc-drift <doc>` |
52
- | Review or redesign source folder structure and ownership boundaries | `scip-directory-architecture` | `scip-query locality-candidates --json --full`, `scip-query similar-files --full` |
53
- | Review architecture, hidden policies, weak boundaries beyond folder structure | `scip-maintainability` | `scip-query bottlenecks`, `scip-query coupling` |
54
- | Review React frontend reuse, components, hooks, or TSX/JSX maintainability | `scip-react-maintainability` | `scip-query react-component-duplicates --full`, `scip-query react-hook-candidates --full` |
55
- | Review Vue frontend reuse, SFCs, templates, or composables | `scip-vue-maintainability` | `scip-query vue-component-duplicates --full`, `scip-query vue-composable-candidates --full` |
56
-
57
- ## Tie-break close calls
58
-
59
- Use these boundaries before loading a specialist skill:
60
-
61
- - `scip-health-audit` confirms, ranks, and reports health signals before code
62
- changes. It is the right first step when the user asks "what needs fixing?"
63
- or when setup produced a health dossier.
64
- - `scip-health-improve` is the autonomous campaign. Use it when the user asks
65
- to raise/maximize the health score, keep working with minimal interaction, or
66
- get the repo as clean as reasonably possible.
67
- - `scip-hyper-optimization` is the benchmark-led performance campaign. Use it
68
- when the user asks to make a command, detector, indexer, workflow, or app path
69
- as fast as possible while preserving output.
70
- - `scip-debloat` is a bloat audit and cleanup plan. Use it when the user wants
71
- dead code, duplication, unnecessary abstractions, wrappers, or structural
72
- waste found and prioritized, but has not asked for a score-maxing campaign.
73
- - `scip-ai-cleanup` is for AI-session residue: recent re-implementations of
74
- established code, incomplete helper migrations, speculative parameters,
75
- stale docs caused by generated changes, and echo code introduced in the
76
- current or recent work.
77
- - `scip-maintainability` is for deeper design pressure: hidden policies,
78
- scattered concepts, weak boundaries, accidental variation, and system
79
- compression. Use it when the problem is not just "delete waste" but "make the
80
- codebase easier to reason about."
81
- - `scip-directory-architecture` is only for folder ownership and migration
82
- questions. Use it when the user asks where code should live, whether
83
- boundaries are mature, or how to reorganize source directories.
84
-
85
- Invoke skills by name (Skill tool or slash command). If skill invocation is
86
- unavailable in this harness, read `~/.agents/skills/<name>/SKILL.md` and
87
- follow it directly.
88
-
89
- ## Match the post-check to the change
90
-
91
- After implementing, run the checks for what the change actually did every
92
- row, every time it applies:
93
-
94
- | You just... | Run |
95
- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
96
- | Extracted a helper / created an abstraction | `scip-query incomplete-migration` lists call sites that still hold the logic inline; migrate them or state why they differ |
97
- | Wrote a brand-new helper or module | `scip-query similar <it>` and `scip-query recent-duplicates` — reuse beats re-implementation; delete the echo |
98
- | Added parameters, options, or config flags | `scip-query unused-params` speculative "for later" params must go |
99
- | Added a forwarding or wrapper layer | `scip-query wrapper-candidates` and `scip-query passthrough-candidates` indirection must earn its keep |
100
- | Added an interface, base class, or type alias | `scip-query stale-abstractions` one real consumer is not an abstraction |
101
- | Changed a schema, contract, config, or generated file | `scip-query co-change <file>` update the historical partners or confirm the coupling broke |
102
- | Changed code that docs describe | `scip-query doc-drift` update the docs that now lie |
103
- | Deleted code | `scip-query cleanup-plan --verify` take the whole cascade with compiler proof |
104
-
105
- Confusable detectors (full guide: docs/DETECTOR_GUIDE.md): `unused-params` is
106
- parameter-level; `passthrough-candidates` = one **callee** (only forwards);
107
- `wrapper-candidates` = one **caller** (no reuse); `stale-abstractions` is
108
- type-level. `recent-duplicates` = similarity + git age (which copy is the
109
- echo); `incomplete-migration` = the inverse (the new helper is canonical, the
110
- old inline copies must go).
111
-
112
- **Before declaring any change done** — run `scip-query diff-gate --json`. Exit 1
113
- means findings, each with a remediation. Fix them or knowingly accept them
114
- with a stated reason; never ignore them silently.
115
-
116
- ## One-time project setup
117
-
118
- If this project has not been bootstrapped yet, run `scip-query setup`. It
119
- installs bundled skills, checks indexer readiness, refreshes the index, runs
120
- capability and health checks, writes the health dossier, and seeds agent
121
- guidance. Use `scip-query setup-agent` only when you specifically need to
122
- refresh AGENTS.md/CLAUDE.md guidance without the full setup pass.
123
- Use `scip-query setup-hooks --json` to repair the current repository's
124
- project-local Codex/Claude Code lifecycle hooks.
125
- After setup, use `scip-health-audit` to confirm and rank raw health signals, or
126
- `scip-health-improve` when the user wants the agent to raise the score as high
127
- as reasonably possible with minimal interaction.
128
-
129
- Do not use `scip-query setup-ci` as part of first-run setup. The CI workflow is
130
- intentionally separate until its validation story is mature.
15
+ Use this skill only to route. A scip-query workflow is a codebase task whose claims should be grounded in the SCIP index: the compiler-derived map of files, symbols, references, calls, dependencies, and consumers.
16
+
17
+ Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md) when you need freshness, lookup, postcheck, or subagent rules.
18
+
19
+ <!-- BEGIN GENERATED SKILL COMMANDS -->
20
+ ## Commands for this skill
21
+
22
+ | Command | Purpose | When |
23
+ | --- | --- | --- |
24
+ | `scip-query status --capabilities` | Show index status for this project | Before routing: confirm the index is fresh. |
25
+ | `scip-query plan-context <target>` | Pre-edit planning context for a symbol, file, or module | Default loop: anchor a plan for the routed skill. |
26
+ | `scip-query diff-gate --json` | Gate the current diff: echo candidates, incomplete migrations, missing co-change partners, unedited twin partners (advisory), uncited doc updates, unused params, new dead symbols; exit 1 on blocking findings | Default loop: the loop is complete only when this passes or is explained. |
27
+
28
+ Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
29
+ <!-- END GENERATED SKILL COMMANDS -->
30
+
31
+ ## Default Loop
32
+
33
+ For non-trivial code changes:
34
+
35
+ 1. Invoke `scip-concrete-plan`; the plan starts from `scip-query plan-context <target>` and designs for testability.
36
+ 2. Implement the plan in the smallest coherent slice.
37
+ 3. Invoke `scip-verify`.
38
+
39
+ The loop is complete only when `scip-verify` passes or each remaining finding has a specific reason.
40
+
41
+ ## Routes
42
+
43
+ | Work | Skill | Anchor |
44
+ | --- | --- | --- |
45
+ | Understand a system before answering or editing | `scip-explore` | `system`, `trace`, `call-graph`, `dataflow` |
46
+ | Root-cause a bug or regression | `scip-debug` | `trace`, `dataflow`, `change-surface` |
47
+ | Turn a report into a fix packet | `scip-triage-issue` | `files`, `trace`, `affected` |
48
+ | Create a code flow, dependency, or blast-radius diagram | `scip-diagram` | `call-graph`, `dataflow`, `affected` |
49
+ | Plan a feature, fix, or refactor | `scip-concrete-plan` | `plan-context` |
50
+ | Run a multi-phase program: plan, delegate, verify handoffs, close | `scip-conductor` | `plan-context`, `diff-gate`, `health` |
51
+ | Assess public API, route, config, schema, CLI, or export changes | `scip-api-impact` | `surface`, `affected`, `co-change` |
52
+ | Pick language-specific high-signal commands | `scip-language-playbook` | language row |
53
+ | Benchmark and optimize a command, workflow, or hot path | `scip-hyper-optimization` | `bench`, `plan-context`, profiles |
54
+ | Adopt or repair scip-query setup in a repo | `scip-setup` | `setup`, `doctor`, `capabilities` |
55
+ | Verify any finished change | `scip-verify` | `status`, `diff-impact`, final gate |
56
+ | Audit, rank, or confirm cleanup findings | `scip-cleanup-audit` | `health`, `cleanup-plan`, cleanup detectors |
57
+ | Autonomously fix confirmed cleanup findings | `scip-cleanup-improve` | `health`, `cleanup-plan`, verified batches |
58
+ | Find or resolve same-name twins that have diverged | `scip-twin-drift` | `twin-drift`, `duplicate-bodies`, `refs` |
59
+ | Faked or half-implemented features, checkers that never fail, dead paths behind fallbacks, lying metrics | `scip-integrity-audit` |
60
+ | Audit whether a status claim is derived, hedged, or merely asserted | `scip-claim-audit` | `refs`, `code`, `trace` |
61
+ | Prove whether a parser/AST branch is actually reachable | `scip-probe-reachability` | `outline --signatures`, `code`, scratch probes |
62
+ | Reconcile living docs with code | `scip-doc-reconcile` | `doc-drift` |
63
+ | Review or migrate folder ownership | `scip-directory-architecture` | `locality-candidates`, `similar-files` |
64
+ | Review deeper maintainability and system compression | `scip-maintainability` | `bottlenecks`, `similar-chains`, `change-surface` |
65
+ | Review React reuse and component/hook pressure | `scip-react-maintainability` | React duplicate and pressure commands |
66
+ | Review Vue reuse and SFC/composable pressure | `scip-vue-maintainability` | Vue duplicate and pressure commands |
67
+ | Model a TypeScript system with TLA+ | `scip-tla-model-system` | `plan-context`, `tla verify` |
68
+
69
+ Routing is complete only when one owning skill is selected or the task is small enough for the default loop alone.
70
+
71
+ ## Tie-Breaks
72
+
73
+ - "Is this implementation real / does it actually work" → `scip-integrity-audit`; "is this well-organized" → `scip-maintainability`; same-name drifted twins specifically → `scip-twin-drift`.
74
+ - One change → `scip-concrete-plan`; a program of changes with delegation → `scip-conductor`.
75
+
76
+ - Use `scip-cleanup-audit` for reports, ranking, confirmation, or recent AI-residue triage without edits.
77
+ - Use `scip-cleanup-improve` when the user asks to fix, improve, continue cleaning, or raise health autonomously.
78
+ - Use `scip-maintainability`, `scip-directory-architecture`, or `scip-hyper-optimization` only when the target is architecture, file ownership, or measured speed/cost rather than cleanup.
79
+ - Use `scip-twin-drift` for same-name/near-name consolidation questions (a specific concept copied and drifted); use `scip-cleanup-audit`/`scip-cleanup-improve` for general bloat, echoes, and duplication sweeps that are not centered on one drifted twin family.
80
+
81
+ ## Setup
82
+
83
+ If a repository has not been bootstrapped, invoke `scip-setup`. Use `scip-query setup-agent` only to refresh agent guidance, `scip-query setup-hooks --json` only to repair project-local hooks, and `scip-query setup-ci` only when the user explicitly asks for CI setup.
84
+
85
+ <!-- BEGIN GENERATED ROUTER COMMAND PREVIEW -->
86
+ ## Command Preview
87
+
88
+ Top commands per routed skill, generated from each skill's own `commands:` frontmatter.
89
+
90
+ | Skill | Top commands |
91
+ | --- | --- |
92
+ | `scip-api-impact` | `scip-query surface <module-or-package>`, `scip-query refs <symbol>`, `scip-query affected <symbol> --json` |
93
+ | `scip-claim-audit` | `scip-query files <pattern>`, `scip-query refs <symbol>`, `scip-query code <symbol>` |
94
+ | `scip-cleanup-audit` | `scip-query health --json`, `scip-query cleanup-plan --verify --json`, `scip-query duplicate-bodies --json --full` |
95
+ | `scip-cleanup-improve` | `scip-query health --json`, `scip-query cleanup-plan --verify --json`, `scip-query cleanup-apply --verified --batch <n>` |
96
+ | `scip-concrete-plan` | `scip-query status --capabilities`, `scip-query plan-context <target>`, `scip-query refs <symbol>` |
97
+ | `scip-conductor` | `scip-query plan-context <target>`, `scip-query diff-gate --json`, `scip-query health --json` |
98
+ | `scip-debug` | `scip-query files <feature-or-error-term>`, `scip-query trace <candidate-symbol>`, `scip-query call-graph <entry-symbol>` |
99
+ | `scip-diagram` | `scip-query system <module>`, `scip-query trace <symbol>`, `scip-query call-graph <symbol>` |
100
+ | `scip-directory-architecture` | `scip-query system <scope>`, `scip-query locality-candidates --json --full`, `scip-query similar-files --full --json` |
101
+ | `scip-doc-reconcile` | `scip-query doc-drift --json --full`, `scip-query doc-drift <doc>`, `scip-query outline <subject-file>` |
102
+ | `scip-explore` | `scip-query stats`, `scip-query system <module-or-scope>`, `scip-query trace <entry-symbol>` |
103
+ | `scip-hyper-optimization` | `scip-query bench --json`, `scip-query bench --json --cold-index --include-heavy --timeout-ms 600000`, `scip-query plan-context <entry-symbol-or-file>` |
104
+ | `scip-language-playbook` | `scip-query stats`, `scip-query files <feature-or-module-name>`, `scip-query outline <file>` |
105
+ | `scip-maintainability` | `scip-query stats`, `scip-query system <scope>`, `scip-query surface <scope>` |
106
+ | `scip-probe-reachability` | `scip-query outline <file> --signatures`, `scip-query code <symbol>`, `scip-query trace <symbol>` |
107
+ | `scip-react-maintainability` | `scip-query react-component-duplicates --scope <scope> --full --json`, `scip-query react-hook-candidates --scope <scope> --full --json`, `scip-query react-large-component-pressure --scope <scope> --full --json` |
108
+ | `scip-setup` | `scip-query setup --json`, `scip-query doctor`, `scip-query status --json` |
109
+ | `scip-tla-model-system` | `scip-query tla scaffold <file>`, `scip-query tla verify <spec>`, `scip-query tla instrument <spec>` |
110
+ | `scip-triage-issue` | `scip-query files <issue-term>`, `scip-query trace <entry-or-error-symbol>`, `scip-query code <entry-or-error-symbol>` |
111
+ | `scip-twin-drift` | `scip-query twin-drift --json --full`, `scip-query duplicate-bodies --json --full`, `scip-query code <symbol>` |
112
+ | `scip-verify` | `scip-query doctor`, `scip-query status --capabilities`, `scip-query diff-impact --json` |
113
+ | `scip-vue-maintainability` | `scip-query augment-vue --project <path-to-tsconfig>`, `scip-query vue-component-duplicates --scope <scope> --full --json`, `scip-query vue-composable-candidates --scope <scope> --full --json` |
114
+ <!-- END GENERATED ROUTER COMMAND PREVIEW -->
@@ -1,119 +1,101 @@
1
1
  ---
2
2
  name: scip-react-maintainability
3
- description: React frontend maintainability review using scip-query's React component duplicate, hook candidate, large component pressure, recent-duplicate, incomplete-migration, and diff-gate commands. Use when reviewing React, TSX, JSX, or Next.js codebases; investigating duplicated components or hooks; checking frontend health pressure; or verifying agents reused React code correctly after a refactor.
3
+ description: Review React maintainability with scip-query. Use for React, TSX, JSX, Next.js, duplicated components, hook candidates, large components, frontend health pressure, or verifying reuse after refactors.
4
+ commands:
5
+ - template: "scip-query react-component-duplicates --scope <scope> --full --json"
6
+ when: "Bound and scan: duplicated JSX structure candidates."
7
+ - template: "scip-query react-hook-candidates --scope <scope> --full --json"
8
+ when: "Bound and scan: shared state/effect/request extraction candidates."
9
+ - template: "scip-query react-large-component-pressure --scope <scope> --full --json"
10
+ when: "Bound and scan: components carrying several reasons to change."
11
+ - template: "scip-query recent-duplicates --scope <scope> --full --json"
12
+ when: "Bound and scan: recent code re-implementing established components."
13
+ - template: "scip-query similar <closest-existing-component-or-hook>"
14
+ when: "Cross-check candidates: existing component or hook to reuse instead."
15
+ - template: "scip-query health --scope <scope> --json"
16
+ when: "Bound and scan: frontend health pressure for the scope."
4
17
  ---
5
18
 
6
- # SCIP React Maintainability Review
19
+ # scip-react-maintainability
7
20
 
8
- This skill reviews React frontends by treating components, hooks, JSX structure, and behavior lifecycles as first-class maintainability units. It uses `scip-query` evidence to decide where UI structure, state/effect/request behavior, and large components are carrying duplicated concepts or too many reasons to change.
21
+ Use this skill to review React frontends as maintainable systems of components, hooks, JSX structure, and behavior lifecycles.
9
22
 
10
- A React component duplicate candidate is a pair or group of rendered interface structures that repeat the same user-facing arrangement, controls, states, props, or data-presentation shape enough that a shared component may reduce future divergence.
23
+ Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
11
24
 
12
- A React hook candidate is a pair or group of component behaviors that repeat the same state lifecycle, effects, requests, validation, persistence, callback policy, or derived-data rule enough that a shared hook may make the behavior easier to preserve.
25
+ <!-- BEGIN GENERATED SKILL COMMANDS -->
26
+ ## Commands for this skill
13
27
 
14
- Large component pressure is a maintainability signal that one React component or file contains several kinds of knowledge that change for different reasons, such as layout structure, state management, data loading, permission policy, and styling.
28
+ | Command | Purpose | When |
29
+ | --- | --- | --- |
30
+ | `scip-query react-component-duplicates --scope <scope> --full --json` | Find heuristic duplicated React component structure candidates from JSX tags, props, events, and bindings | Bound and scan: duplicated JSX structure candidates. |
31
+ | `scip-query react-hook-candidates --scope <scope> --full --json` | Find heuristic React hook extraction candidates from shared state, effects, requests, and handlers | Bound and scan: shared state/effect/request extraction candidates. |
32
+ | `scip-query react-large-component-pressure --scope <scope> --full --json` | Find heuristic large React component pressure candidates from component lines, JSX structure, and hook behavior | Bound and scan: components carrying several reasons to change. |
33
+ | `scip-query recent-duplicates --scope <scope> --full --json` | Directional duplicate candidates: recent code that re-implements established callable, React, or Vue code | Bound and scan: recent code re-implementing established components. |
34
+ | `scip-query similar <closest-existing-component-or-hook>` | Find heuristic function similarity candidates from callee fingerprints | Cross-check candidates: existing component or hook to reuse instead. |
35
+ | `scip-query health --scope <scope> --json` | Composite codebase health report with prioritized action list | Bound and scan: frontend health pressure for the scope. |
15
36
 
16
- React health is a repo-grounded frontend pressure map. It is useful for ranking review attention, but it is not proof that code is bad and not the goal of a refactor.
37
+ Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
38
+ <!-- END GENERATED SKILL COMMANDS -->
17
39
 
18
- ## Quick Start
40
+ ## Terms
19
41
 
20
- Refresh the code intelligence before trusting graph facts:
42
+ A React component duplicate candidate is a pair or group of rendered structures that repeat the same user-facing arrangement, controls, states, props, or data-presentation shape enough that a shared component may reduce drift.
21
43
 
22
- ```bash
23
- scip-query status
24
- scip-query status --capabilities
25
- # If freshness is stale, missing, or unknown:
26
- # scip-query reindex
27
- ```
44
+ A React hook candidate is a pair or group of component behaviors that repeat the same state lifecycle, effects, requests, validation, persistence, callback policy, or derived-data rule enough that a shared hook may preserve behavior better.
45
+
46
+ Large component pressure means one component or file contains several kinds of knowledge that change for different reasons.
47
+
48
+ ## Workflow
49
+
50
+ ### 1. Bound and scan
28
51
 
29
- Run the React review commands uncapped when doing a serious frontend pass. Do not combine `--full` with `--limit`.
52
+ Pick the narrowest React source root, feature area, or changed-file scope that still includes likely reuse partners. Run uncapped commands:
30
53
 
31
54
  ```bash
32
- scip-query react-component-duplicates --scope <react-source-scope> --full --json
33
- scip-query react-hook-candidates --scope <react-source-scope> --full --json
34
- scip-query react-large-component-pressure --scope <react-source-scope> --full --json
35
- scip-query recent-duplicates --scope <react-source-scope> --full --json
36
- scip-query health --scope <react-source-scope> --json
55
+ scip-query react-component-duplicates --scope <scope> --full --json
56
+ scip-query react-hook-candidates --scope <scope> --full --json
57
+ scip-query react-large-component-pressure --scope <scope> --full --json
58
+ scip-query recent-duplicates --scope <scope> --full --json
59
+ scip-query health --scope <scope> --json
37
60
  ```
38
61
 
39
- ## Workflow
62
+ This step is complete only when command scope, counts, and uncapped/full status are recorded.
63
+
64
+ ### 2. Cross-check candidates
40
65
 
41
- 1. Bound the review to a React source root, feature area, or changed files. Prefer the narrowest scope that still includes likely reuse partners.
42
- 2. Run the three React commands: component duplicates, hook candidates, and large component pressure.
43
- 3. Use `recent-duplicates` to catch newly added frontend echoes of established code.
44
- 4. Cross-check the result sets before recommending an extraction:
45
- - Component duplicate only: inspect for a shared presentational component or an existing component callers should reuse.
46
- - Hook candidate only: inspect for a shared behavior, lifecycle, request pattern, validation rule, persistence rule, or derived-state policy.
47
- - Both component and hook candidate: inspect for a feature-level concept that may need both a component boundary and a hook boundary.
48
- - Large component only: split by reason to change, not by line count alone.
49
- 5. Open the source files for the top candidates. Similarity is evidence to inspect, not a verdict.
50
- 6. Check existing exports, imports, and call sites before proposing anything new:
66
+ - Component duplicate only: inspect for shared presentational component or existing component reuse.
67
+ - Hook candidate only: inspect for shared behavior, lifecycle, request, validation, persistence, or derived-state policy.
68
+ - Both: inspect for a feature-level concept needing both component and hook boundaries.
69
+ - Large component only: split by reason to change, not by line count.
70
+
71
+ Use:
51
72
 
52
73
  ```bash
53
74
  scip-query outline <file>
54
75
  scip-query deps <file>
55
76
  scip-query rdeps <file>
56
- scip-query similar-files --scope <react-source-scope>
77
+ scip-query similar-files --scope <scope>
57
78
  scip-query similar <closest-existing-component-or-hook>
58
79
  ```
59
80
 
60
- ## Acting on Findings
61
-
62
- Prefer reuse before extraction. If an existing component or hook already names the concept, migrate callers to it instead of creating another one.
81
+ This step is complete only when each top candidate is reuse, extract, split, skip, or blocked.
63
82
 
64
- When extracting:
83
+ ### 3. Act on findings
65
84
 
66
- - Extract a component when the repeated knowledge is rendered UI structure, props, slots/children, empty/loading/error states, or design-system composition.
67
- - Extract a hook when the repeated knowledge is state, effects, requests, subscriptions, memoized derivations, callbacks, or persistence policy.
68
- - Split a large component by reason to change: data loading, permission/policy, layout shell, table/list rendering, form state, and action handling are different reasons.
69
- - Keep domain-specific variation at the call site when the variation is essential. Do not hide different product rules behind a boolean soup API.
85
+ Prefer reuse before extraction. Extract components for repeated UI structure, states, props, slots/children, or design-system composition. Extract hooks for repeated state, effects, requests, subscriptions, memoized derivations, callbacks, or persistence. Keep domain-specific variation at call sites when essential.
70
86
 
71
- ## Post-Change Verification
87
+ This step is complete only when the chosen action reduces future drift without creating boolean-soup APIs or wrapper components with no policy.
72
88
 
73
- After implementing a component reuse, hook extraction, or large-component split, prove both sides of the work: the new abstraction exists and the old inline copies were migrated.
89
+ ### 4. Verify
74
90
 
75
- Run the checks that match what changed:
91
+ Run routed postchecks from the shared reference, including React commands, `incomplete-migration`, `recent-duplicates`, `unused-params`, and wrapper/passthrough/stale checks, then invoke `scip-verify`.
76
92
 
77
- ```bash
78
- scip-query diff-impact --json
79
- scip-query react-component-duplicates --scope <react-source-scope> --full --json
80
- scip-query react-hook-candidates --scope <react-source-scope> --full --json
81
- scip-query react-large-component-pressure --scope <react-source-scope> --full --json
82
- scip-query recent-duplicates --scope <react-source-scope> --full --json
83
- scip-query incomplete-migration
84
- scip-query unused-params
85
- scip-query wrapper-candidates --scope <react-source-scope> --full --json
86
- scip-query passthrough-candidates --scope <react-source-scope> --full --json
87
- scip-query stale-abstractions --scope <react-source-scope> --include-low-confidence --full --json
88
- scip-query status --capabilities
89
- # If freshness is stale, missing, or unknown:
90
- # scip-query reindex
91
- scip-query diff-gate --json
92
- ```
93
-
94
- Use the results this way:
95
-
96
- - `incomplete-migration`: if a new hook/helper was created and wired somewhere, migrate every unchanged site that still contains the same logic or document why it is not the same behavior.
97
- - `recent-duplicates`: if the new component/hook is still an echo of established code, delete the echo or reuse the established concept.
98
- - React duplicate commands: the specific candidate pair you acted on should disappear, weaken materially, or be explicitly accepted as essential variation.
99
- - `unused-params`: remove speculative props/options introduced "for later."
100
- - wrapper/pass-through/stale checks: remove local wrapper components, hook aliases, or type abstractions that do not enforce a real policy.
101
- - `diff-gate`: treat every finding as unfinished work unless there is a written reason to accept it.
93
+ The work is complete only when acted-on candidate pairs disappear, weaken materially, or are explicitly accepted as essential variation.
102
94
 
103
95
  ## False Positive Checks
104
96
 
105
- - Shared design-system primitives, icons, labels, route names, or test IDs are not enough to justify an extraction.
106
- - Similar JSX with different domain lifecycles may justify a presentational component but not a hook.
107
- - Shared hook usage may mean the right concept is already extracted; look for drift around the shared call, not another extraction.
108
- - A large file creates review pressure, but it is not proof that behavior is duplicated.
109
- - A local wrapper is justified only when it names a real product concept, enforces a policy, or prevents drift across callers.
110
-
111
- ## Reporting Shape
97
+ Shared design-system primitives, icons, labels, route names, or test IDs are not enough. Similar JSX with different domain lifecycles may justify a presentational component but not a hook. A large file is review pressure, not proof of duplication.
112
98
 
113
- Report findings as a frontend maintainability register:
99
+ ## Report
114
100
 
115
- - Executive read: whether the React code is consolidating or drifting.
116
- - Command evidence: exact commands, scope, counts, and whether results were uncapped.
117
- - Candidate groups: files/components, repeated UI structure, repeated behavior, and large-component pressure.
118
- - Recommended action: reuse existing API, extract component, extract hook, split view, delete wrapper, or no action.
119
- - Post-change proof: commands rerun, candidate pairs resolved or accepted, migration completeness checked, and `diff-gate` result.
101
+ Report executive read, command evidence, candidate groups, recommended action, post-change proof, and remaining accepted variation.
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: scip-setup
3
+ description: Set up or repair scip-query in a repository. Use for bootstrapping, onboarding, refreshing indexes, project-local hooks, agent guidance, capability diagnostics, health dossiers, .scipquery.json, or setup cleanup handoff.
4
+ commands:
5
+ - template: "scip-query setup --json"
6
+ when: "Run setup: install skills, refresh the index, report health."
7
+ - template: "scip-query doctor"
8
+ when: "Resolve blockers: human diagnostic for config, index, and dependencies."
9
+ - template: "scip-query status --json"
10
+ when: "Resolve blockers: machine surface for freshness and config."
11
+ - template: "scip-query capabilities --matrix"
12
+ when: "Resolve blockers: which evidence/verification capabilities are available."
13
+ - template: "scip-query config-validate --json"
14
+ when: "Resolve blockers: validate .scipquery.json."
15
+ - template: "scip-query init"
16
+ when: "Calibrate config: create .scipquery.json only when absent and needed."
17
+ ---
18
+
19
+ # scip-setup
20
+
21
+ Use this skill to make a repository a reliable scip-query workspace: indexed, diagnosed, documented for agents, and honest about unavailable capabilities.
22
+
23
+ Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
24
+
25
+ <!-- BEGIN GENERATED SKILL COMMANDS -->
26
+ ## Commands for this skill
27
+
28
+ | Command | Purpose | When |
29
+ | --- | --- | --- |
30
+ | `scip-query setup --json` | Bootstrap this project: install agent skills, refresh the index, verify capabilities, and report health | Run setup: install skills, refresh the index, report health. |
31
+ | `scip-query doctor` | Diagnose config, index freshness, dependency readiness, and project capabilities | Resolve blockers: human diagnostic for config, index, and dependencies. |
32
+ | `scip-query status --json` | Show index status for this project | Resolve blockers: machine surface for freshness and config. |
33
+ | `scip-query capabilities --matrix` | Report which evidence and verification capabilities are available in this project | Resolve blockers: which evidence/verification capabilities are available. |
34
+ | `scip-query config-validate --json` | Validate .scipquery.json, including structured suppressions and declared coupling groups | Resolve blockers: validate .scipquery.json. |
35
+ | `scip-query init` | Create a .scipquery.json config file for this project | Calibrate config: create .scipquery.json only when absent and needed. |
36
+
37
+ Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
38
+ <!-- END GENERATED SKILL COMMANDS -->
39
+
40
+ ## Per-Repo Triage (once, after setup)
41
+
42
+ New repos surface standing findings that are intentional. Encode them once so
43
+ every later gate run is precise:
44
+
45
+ 1. Sweep initial findings (`health --json`, `diff-gate --json`) and, for each accepted one, `suppress <id> --reason <why>` — reasons are required and audited.
46
+ 2. Declare files that legitimately change together in `.scipquery.json` `declaredCouplings`.
47
+ 3. List dated snapshot docs (benchmarks, validation ledgers, historical plans/reviews) in `docs.snapshotPaths` so doc checks skip them with a labeled exclusion instead of recurring findings.
48
+ 4. Seed `coverageContracts` for every hand-maintained enumeration (policy maps, capability tables, registry lists) so enumeration rot fails the gate the day it happens.
49
+ 5. Set a hygiene cadence: run `scip-twin-drift` and `scip-claim-audit` after large refactor campaigns or quarterly — the gate only sees diffs; these lenses see accumulated state.
50
+
51
+ This step is complete only when a clean working tree produces a finding-free `diff-gate` and every suppression carries a reason a reviewer would accept.
52
+
53
+ ## Rules
54
+
55
+ 1. Prefer the single setup command over hand-running its internals.
56
+ 2. Do not run `scip-query setup-ci` unless the user explicitly asks for CI setup.
57
+ 3. Treat unavailable capabilities as unproven, not clean.
58
+ 4. Keep `.scipquery.json` minimal and evidence-backed.
59
+
60
+ ## Workflow
61
+
62
+ ### 1. Confirm the root
63
+
64
+ ```bash
65
+ pwd
66
+ git rev-parse --show-toplevel
67
+ scip-query --version
68
+ ```
69
+
70
+ This step is complete only when the repository root and runnable `scip-query` command are known, or the install/link blocker is reported.
71
+
72
+ ### 2. Run setup
73
+
74
+ ```bash
75
+ scip-query setup --json
76
+ ```
77
+
78
+ Use `scip-query setup --no-hooks --json` when project-local Codex or Claude Code lifecycle hooks should not be written. Use `scip-query setup --git-hook --json` only when the user wants the local pre-commit diff gate.
79
+
80
+ This step is complete only when setup reports ready, partial, or blocked and names every written, skipped, or blocked artifact.
81
+
82
+ ### 3. Resolve blockers
83
+
84
+ ```bash
85
+ scip-query doctor
86
+ scip-query status --json
87
+ scip-query capabilities --matrix
88
+ scip-query config-validate --json
89
+ ```
90
+
91
+ `doctor` is the human diagnostic surface. `status --json` is the machine surface for freshness and config. Fix missing indexers, stale indexes, invalid config, or unavailable verification only when the fix is safe; otherwise record the exact external action.
92
+
93
+ This step is complete only when each blocker is fixed, unavailable with reason, or waiting on a named external action.
94
+
95
+ ### 4. Calibrate config only when needed
96
+
97
+ Run `scip-query init` only when `.scipquery.json` is absent and the project needs config. Add settings only for observed repo facts: explicit languages, indexer projects, entry roots, declared couplings, locality boundaries, or accepted suppressions.
98
+
99
+ For TypeScript monorepos, prefer `indexer.typescript.projectMode: "workspace"` when multiple project shards are real. Add `indexerConcurrency` only when measured cold-index timing or memory pressure justifies it.
100
+
101
+ This step is complete only when config validates and every setting has a reason.
102
+
103
+ ### 5. Hand off cleanup
104
+
105
+ After setup, invoke `scip-cleanup-audit` when the user wants a report or `scip-cleanup-improve` when the user wants autonomous cleanup.
106
+
107
+ Report:
108
+
109
+ ```markdown
110
+ Setup: ready/partial/blocked
111
+ Capabilities:
112
+ - available:
113
+ - unavailable:
114
+ Health:
115
+ - score:
116
+ - dossier:
117
+ Written or changed:
118
+ - files:
119
+ Next:
120
+ - cleanup audit/improve, CI setup, or external blocker
121
+ ```
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "scip-query setup"
3
+ short_description: "Bootstrap or repair scip-query indexing, diagnostics, hooks, guidance, and health dossiers"
4
+ default_prompt: "Set up or repair scip-query in this repository, report readiness and blockers, and hand off the next cleanup step."