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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scip-query",
3
- "version": "0.10.12",
3
+ "version": "0.12.0",
4
4
  "description": "Evidence and verification for AI coding agents: map code, reuse concepts, finish migrations, and gate diffs.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -9,15 +9,15 @@
9
9
  "scip-query": "dist/cli.js"
10
10
  },
11
11
  "files": [
12
+ "CHANGELOG.md",
12
13
  "dist/**/*.js",
13
14
  "dist/**/*.d.ts",
14
15
  "docs/assets/**/*",
15
16
  "docs/*.md",
16
17
  "scripts/build-scip-windows.mjs",
17
18
  "scripts/evidence-product-contract.mjs",
18
- "skills/**/SKILL.md",
19
- "skills/**/agents/*.yaml",
20
- "vendor/scip/**/*"
19
+ "skills/**/*.md",
20
+ "skills/**/agents/*.yaml"
21
21
  ],
22
22
  "sideEffects": false,
23
23
  "exports": {
@@ -109,6 +109,10 @@
109
109
  "import": "./dist/queries/doc-drift.js",
110
110
  "types": "./dist/queries/doc-drift.d.ts"
111
111
  },
112
+ "./queries/duplicate-bodies": {
113
+ "import": "./dist/queries/duplicate-bodies.js",
114
+ "types": "./dist/queries/duplicate-bodies.d.ts"
115
+ },
112
116
  "./queries/drift": {
113
117
  "import": "./dist/queries/drift.js",
114
118
  "types": "./dist/queries/drift.d.ts"
@@ -261,6 +265,14 @@
261
265
  "import": "./dist/queries/trace.js",
262
266
  "types": "./dist/queries/trace.d.ts"
263
267
  },
268
+ "./queries/twin-ab": {
269
+ "import": "./dist/queries/twin-ab.js",
270
+ "types": "./dist/queries/twin-ab.d.ts"
271
+ },
272
+ "./queries/twin-drift": {
273
+ "import": "./dist/queries/twin-drift.js",
274
+ "types": "./dist/queries/twin-drift.d.ts"
275
+ },
264
276
  "./queries/unused-params": {
265
277
  "import": "./dist/queries/unused-params.js",
266
278
  "types": "./dist/queries/unused-params.d.ts"
@@ -290,13 +302,14 @@
290
302
  "test": "vitest run",
291
303
  "test:watch": "vitest",
292
304
  "typecheck": "tsc --noEmit",
293
- "lint": "npm run format:check && eslint src tests tsup.config.ts",
305
+ "lint": "npm run format:check && eslint src tests tsup.config.ts && node scripts/check-skill-links.mjs",
294
306
  "build:scip-windows": "node scripts/build-scip-windows.mjs",
295
307
  "bench:evidence-products": "node scripts/evidence-product-contract.mjs",
296
308
  "calibrate": "node scripts/accuracy-calibration.mjs",
297
309
  "docs:commands": "vite-node scripts/render-command-reference.ts --write",
298
- "prepublishOnly": "npm run build && npm run build:scip-windows",
299
- "postinstall": "node dist/postinstall.js || true"
310
+ "prepublishOnly": "npm run publish:scip-windows && npm run build",
311
+ "postinstall": "node dist/postinstall.js || true",
312
+ "publish:scip-windows": "vite-node scripts/publish-scip-windows.ts"
300
313
  },
301
314
  "keywords": [
302
315
  "scip",
@@ -333,6 +346,7 @@
333
346
  "optionalDependencies": {
334
347
  "@sourcegraph/scip-typescript": "^0.4.0",
335
348
  "scip-python-plus": "^0.7.4",
349
+ "scip-query-scip-windows": "0.12.0",
336
350
  "tree-sitter": "0.21.1",
337
351
  "tree-sitter-c": "0.23.2",
338
352
  "tree-sitter-c-sharp": "0.23.1",
@@ -358,5 +372,23 @@
358
372
  "typescript": "^5.7.0",
359
373
  "typescript-eslint": "^8.58.1",
360
374
  "vitest": "^3.0.0"
375
+ },
376
+ "allowScripts": {
377
+ "better-sqlite3@12.9.0": true,
378
+ "esbuild@0.27.7": true,
379
+ "fsevents@2.3.3": true,
380
+ "tree-sitter@0.21.1": true,
381
+ "tree-sitter-c@0.23.2": true,
382
+ "tree-sitter-c-sharp@0.23.1": true,
383
+ "tree-sitter-cpp@0.23.4": true,
384
+ "tree-sitter-java@0.23.5": true,
385
+ "tree-sitter-javascript@0.23.1": true,
386
+ "tree-sitter-kotlin@0.3.8": true,
387
+ "tree-sitter-php@0.23.12": true,
388
+ "tree-sitter-python@0.23.4": true,
389
+ "tree-sitter-ruby@0.23.1": true,
390
+ "tree-sitter-rust@0.23.1": true,
391
+ "tree-sitter-scala@0.24.0": true,
392
+ "tree-sitter-typescript@0.23.2": true
361
393
  }
362
394
  }
@@ -8,7 +8,7 @@ import { fileURLToPath } from 'node:url';
8
8
  const SCIP_VERSION = process.env.SCIP_VERSION ?? 'v0.8.1';
9
9
  const SCIP_REPO_URL = process.env.SCIP_REPO_URL ?? 'https://github.com/scip-code/scip.git';
10
10
  const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..');
11
- const VENDOR_DIR = join(ROOT, 'vendor', 'scip');
11
+ const VENDOR_DIR = join(ROOT, 'packages', 'scip-windows');
12
12
 
13
13
  const TARGETS = [
14
14
  { goarch: 'amd64', packageArch: 'x64' },
@@ -45,20 +45,23 @@ try {
45
45
  writeFileSync(
46
46
  join(VENDOR_DIR, 'README.md'),
47
47
  [
48
- '# Managed scip binaries',
48
+ '# scip.exe release assets',
49
49
  '',
50
50
  `These binaries are built from ${SCIP_REPO_URL} at ${SCIP_VERSION}.`,
51
- 'They are included so Windows installs can run `scip-query reindex` without requiring Go or WSL.',
51
+ 'They are NOT bundled into the npm package. Upload each as a GitHub release',
52
+ 'asset (scip-win32-<arch>.exe) and pin url + sha256 in',
53
+ 'src/runtime/scip-windows-assets.ts before publishing — scip-query downloads',
54
+ 'and checksum-verifies them on demand so Windows `reindex` works without',
55
+ 'requiring Go or WSL.',
52
56
  '',
53
- 'Run `npm run build:scip-windows` before publishing to refresh them.',
57
+ 'Run `npm run build:scip-windows` to (re)build these before publishing.',
54
58
  '',
55
59
  ].join('\n'),
56
60
  );
57
61
 
58
62
  for (const target of TARGETS) {
59
- const outputDir = join(VENDOR_DIR, `win32-${target.packageArch}`);
60
- const outputPath = join(outputDir, 'scip.exe');
61
- mkdirSync(outputDir, { recursive: true });
63
+ const outputPath = join(VENDOR_DIR, `scip-win32-${target.packageArch}.exe`);
64
+ mkdirSync(VENDOR_DIR, { recursive: true });
62
65
 
63
66
  run('go', ['build', '-trimpath', '-ldflags=-s -w', '-o', outputPath, './cmd/scip'], {
64
67
  cwd: checkoutDir,
@@ -0,0 +1,243 @@
1
+ ---
2
+ name: _shared
3
+ description: Shared scip-query reference for bundled skills.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # scip-query Shared Reference
8
+
9
+ This is shared reference for scip-query skills. Load it when another skill says to use the shared evidence, lookup, postcheck, or subagent rules.
10
+
11
+ ## Evidence Contract
12
+
13
+ A SCIP index is the compiler-derived map of a repository's source files, symbols, references, imports, calls, and dependencies. What makes it different from text search is that it records what the language toolchain can identify, so code claims can point to definitions and consumers rather than matching strings.
14
+
15
+ A graph fact is a claim produced from that index, such as a definition line, reference site, caller, callee, dependency, reverse dependency, or affected consumer. Use graph facts for code behavior, ownership, and blast-radius claims.
16
+
17
+ Before trusting graph facts, run:
18
+
19
+ ```bash
20
+ scip-query status --capabilities
21
+ ```
22
+
23
+ If freshness is `fresh`, continue. If it is `stale`, `missing`, or `unknown`, run:
24
+
25
+ ```bash
26
+ scip-query reindex
27
+ ```
28
+
29
+ Every file path, line number, symbol relationship, and behavior claim in a plan, report, or review must cite the command that produced it. If `scip-query` cannot answer a question because the target is not indexed, say so and use the narrowest other evidence available.
30
+
31
+ ## Lookup
32
+
33
+ Use partial symbol names without parentheses:
34
+
35
+ ```bash
36
+ scip-query code parseConfig
37
+ scip-query call-graph runCommand
38
+ scip-query trace loadSettings
39
+ ```
40
+
41
+ If lookup is ambiguous or missing:
42
+
43
+ 1. Try a shorter symbol name.
44
+ 2. Run `scip-query outline <file>`.
45
+ 3. Run `scip-query trace <name>`.
46
+ 4. Use `scip-query code 'path/to/file.ts:START-END'` when you know the file range.
47
+
48
+ ## Command Families
49
+
50
+ <!-- BEGIN GENERATED COMMAND FAMILIES -->
51
+
52
+ This syntax catalog is generated from the CLI command descriptors.
53
+
54
+ ### Indexing
55
+
56
+ ```bash
57
+ scip-query reindex # Index the codebase and convert to SQLite
58
+ scip-query augment-sources # Add source files skipped by upstream SCIP indexers to the SQLite documents table
59
+ scip-query augment-vue # Add compiler-resolved Vue SFC references to the SQLite index using Volar
60
+ ```
61
+
62
+ ### Core
63
+
64
+ ```bash
65
+ scip-query stats # Show index statistics
66
+ ```
67
+
68
+ ### Navigation
69
+
70
+ ```bash
71
+ scip-query files <pattern> # Find files matching a pattern
72
+ scip-query methods <className> # List methods of a class (with line ranges)
73
+ scip-query refs <symbol> # Find all files referencing a symbol
74
+ scip-query trace <symbol> # Trace a symbol: definition + all references
75
+ scip-query deps <file> # Files this file depends on (internal)
76
+ scip-query rdeps <file> # Files that depend on this file/module
77
+ scip-query system <module> # Full module map: files, symbols, deps in/out
78
+ scip-query surface <module> # What symbols consumers actually use from this module
79
+ scip-query imports <file> # What symbols does this file import?
80
+ scip-query imported-by <symbol> # Which files import this symbol?
81
+ scip-query outline <file> # Tree view of symbols in a file, with line ranges
82
+ scip-query members <symbol> # All children of a symbol (methods, fields, nested types)
83
+ scip-query by-kind <kind> # Find symbols by SCIP kind (class, interface, enum, function, etc.)
84
+ scip-query kind-counts # Histogram of symbol kinds in the codebase
85
+ scip-query hierarchy <symbol> # Show a symbol's ancestry chain (method → class → module)
86
+ scip-query code <symbol> # Read the source code for a symbol (bounded to its definition range)
87
+ scip-query dataflow <symbol> # Reference-level dataflow: definition sites, usage sites, producers, consumers
88
+ scip-query slice <symbol> # Reference-level program slice: what affects this (backward) or what this affects (forward)
89
+ ```
90
+
91
+ ### Cleanup
92
+
93
+ ```bash
94
+ scip-query dead [scope] # Find dead code and file-internal symbols (no cross-file consumers)
95
+ scip-query unused-imports <file> # Find imports not referenced in the same file
96
+ scip-query isolated # Find completely orphaned symbols (no references at all)
97
+ scip-query similar [symbol] [other] # Find heuristic function similarity candidates from callee fingerprints
98
+ scip-query similar-files [file] # Find heuristic similar-file candidates from dependency profiles
99
+ scip-query react-component-duplicates [file] # Find heuristic duplicated React component structure candidates from JSX tags, props, events, and bindings
100
+ scip-query react-hook-candidates [file] # Find heuristic React hook extraction candidates from shared state, effects, requests, and handlers
101
+ scip-query react-large-component-pressure [file] # Find heuristic large React component pressure candidates from component lines, JSX structure, and hook behavior
102
+ scip-query vue-component-duplicates [file] # Find heuristic duplicated Vue component structure candidates from template tags, bindings, slots, and directives
103
+ scip-query vue-composable-candidates [file] # Find heuristic Vue composable extraction candidates from shared state, effects, requests, and template bindings
104
+ scip-query vue-large-view-pressure [file] # Find heuristic large Vue view pressure candidates from template, script, style, and external script line counts
105
+ scip-query similar-chains # Find heuristic similar-chain candidates from dependency flows
106
+ scip-query extract-candidates # Find heuristic extraction candidates from isolated callee clusters
107
+ scip-query locality-candidates [symbol-or-file] # Find directory-locality and ancestry candidates from consumer ownership
108
+ scip-query cleanup-plan # Ordered, batched deletion plan: graph-fact dead code plus the cascade candidates it unlocks
109
+ scip-query cleanup-apply # Apply a compiler-verified cleanup-plan batch to the working tree
110
+ scip-query recent-duplicates # Directional duplicate candidates: recent code that re-implements established callable, React, or Vue code
111
+ scip-query doc-drift [doc] # Stale-doc candidates: code the doc references or co-changed with kept changing after the doc stopped
112
+ scip-query unused-params # Speculative-generality candidates: trailing parameters no body ever uses (TS/JS)
113
+ scip-query drift [module] # Detect heuristic drift candidates: unused imports and layer violations by default; pass --patterns for pattern deviations too
114
+ scip-query wrapper-candidates # Find heuristic wrapper candidates only called by one consumer (high false-positive rate on codebases with intentional layering/ambient types — treat as exploration, not findings)
115
+ scip-query passthrough-candidates # Find heuristic passthrough candidates that forward to one callee
116
+ scip-query stale-abstractions # Find heuristic stale abstraction candidates with 0-1 consumers (high false-positive rate on codebases with intentional layering/ambient types — treat as exploration, not findings)
117
+ scip-query complexity-hotspots # Find heuristic complexity hotspot candidates from LOC x fan-in x fan-out
118
+ scip-query convergence <symbol1> <symbol2> # Deprecated alias for similar <symbol1> <symbol2> --plan
119
+ scip-query redundant-reexports # Find barrel re-exports that nobody imports through
120
+ scip-query duplicate-bodies # Find exact duplicate small-body candidates across files
121
+ scip-query twin-drift # Twin drift candidates: same-name (or near-name) functions across files with diverged bodies
122
+ scip-query twin-ab <symbolA> <symbolB> # Generate a behavioral A/B scaffold comparing two same-concept twins (scip-integrity-audit drill 5) — a ready-to-fill vitest file, not an auto-executor
123
+ scip-query similar-signatures # Find functions with near-identical type signatures (same shape)
124
+ ```
125
+
126
+ ### Graph
127
+
128
+ ```bash
129
+ scip-query hotspots # Most-referenced symbols in the codebase (choke points)
130
+ scip-query fan-in [symbol] # How many files reference a symbol (or top fan-in across codebase)
131
+ scip-query fan-out [file] # How many external symbols a file uses (or top fan-out across codebase)
132
+ scip-query coupling [file1] [file2] # Coupling between two files, or top coupled pairs in codebase
133
+ scip-query cycles # Detect circular dependency chains between files
134
+ scip-query bottlenecks # Find coupling hubs: high fan-in AND high fan-out
135
+ scip-query deep-chains # Find the longest transitive dependency chains
136
+ scip-query call-graph <symbol> # Show incoming callers and outgoing callees for a symbol
137
+ ```
138
+
139
+ ### Impact
140
+
141
+ ```bash
142
+ scip-query affected <symbol> # Transitive closure of symbols that could break if this symbol changes
143
+ scip-query change-surface <file> # Pre-change briefing: exports, consumers, and blast-radius risk
144
+ scip-query co-change [file] # Files that change together in git history without a dependency edge — hidden coupling candidates
145
+ scip-query diff-gate # 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
146
+ scip-query incomplete-migration # Partially-completed extraction candidates: new helpers in the diff wired into some sites while similar un-migrated sites remain
147
+ scip-query diff-impact # Compute changed symbols and downstream consumers from current git diff
148
+ ```
149
+
150
+ ### Formal Models
151
+
152
+ ```bash
153
+ scip-query tla <operation> [spec] # TLA+ model workflow: verify a model and mapping contract, scaffold a draft model from indexed code, generate a trace recorder, or check a recorded trace against the next-state relation
154
+ ```
155
+
156
+ ### Planning
157
+
158
+ ```bash
159
+ scip-query plan-context <target> # Pre-edit planning context for a symbol, file, or module
160
+ ```
161
+
162
+ ### Health
163
+
164
+ ```bash
165
+ scip-query self-audit # Score cheap evidence paths against the best available semantic/source oracle on sampled symbols
166
+ scip-query health # Composite codebase health report with prioritized action list
167
+ scip-query complexity <symbol> # Per-symbol complexity: branches, cyclomatic estimate, fan-in/out, callees
168
+ ```
169
+
170
+ ### Maintenance
171
+
172
+ ```bash
173
+ scip-query bench # Benchmark indexing and command runtimes for this repository
174
+ scip-query install-skills # Install skills (_shared, scip-query, scip-setup, scip-cleanup-audit, scip-cleanup-improve, scip-integrity-audit, scip-twin-drift, scip-claim-audit, scip-probe-reachability, scip-hyper-optimization, scip-api-impact, scip-concrete-plan, scip-conductor, scip-debug, scip-explore, scip-triage-issue, scip-diagram, scip-doc-reconcile, scip-directory-architecture, scip-maintainability, scip-react-maintainability, scip-vue-maintainability, scip-verify, scip-language-playbook, scip-tla-model-system) into Claude Code, Codex, and shared agent roots
175
+ scip-query setup-hooks # Install or refresh project-local Codex and Claude Code lifecycle hooks
176
+ scip-query check-deps # Check whether scip-query and the detected language indexers are actually runnable
177
+ scip-query capabilities # Report which evidence and verification capabilities are available in this project
178
+ scip-query capability-matrix # Deprecated alias for capabilities --matrix
179
+ scip-query init # Create a .scipquery.json config file for this project
180
+ scip-query config-validate # Validate .scipquery.json, including structured suppressions and declared coupling groups
181
+ scip-query suppress <id> # Record an accepted finding in .scipquery.json with a required reason
182
+ scip-query doctor # Diagnose config, index freshness, dependency readiness, and project capabilities
183
+ scip-query setup # Bootstrap this project: install agent skills, refresh the index, verify capabilities, and report health
184
+ scip-query setup-agent # Seed agent guidance for this project: AGENTS.md/CLAUDE.md block pointing agents at the scip-query skills and diff gate, plus an optional git pre-commit backstop
185
+ scip-query setup-ci # Write a GitHub Actions workflow that runs scip-query reindex and diff-gate on pull requests
186
+ scip-query uninstall # Remove scip-query-owned skill links, project hooks, and managed agent setup blocks
187
+ scip-query watch # Watch for file changes in the foreground and reindex automatically
188
+ scip-query status # Show index status for this project
189
+ ```
190
+
191
+ <!-- END GENERATED COMMAND FAMILIES -->
192
+
193
+ ## Detector Reliability
194
+
195
+ Calibrated against two external production repos on 2026-07-01
196
+ (docs/validation/2026-07-01-external-calibration-*.md). Weight findings by
197
+ measured precision, not by volume:
198
+
199
+ - **Strong signal** — `complexity-hotspots` (~90%), `recent-duplicates` (~75%), graph facts (`refs`, `trace`, `deps`), compiler-verified `cleanup-plan --verify`.
200
+ - **Good with review** — `duplicate-bodies`, `similar`, `co-change`, `doc-drift`, `twin-drift` (post-retune defaults).
201
+ - **Exploration only** — `wrapper-candidates`, `stale-abstractions`, `drift --patterns`: near-zero precision on codebases with intentional layering or ambient types. Never file their findings without reading the cited code.
202
+ - **Advisory gate findings** (marked `(advisory)`) never block; they are context, not obligations.
203
+ - **False-dead archetypes (2026-07-02 remediation, docs/plans/2026-07-02-followups.md items 1-3)**: `import type`-only consumers (incl. tsconfig `paths`-aliased specifiers) and pnpm/npm/yarn workspace cross-package consumers (incl. unbuilt `dist/` exports maps) are now resolved by the shared reference-counting layer that `dead`/`isolated`/`new-dead`/`stale-abstractions`/`production-callables` all consume; Vue `<script setup>` composable consumers were already correctly resolved (verified live, no code change needed). One narrow residual gap remains: a symbol with an **ambiguous leaf name** (a same-named definition exists elsewhere in the project) reached only through a **re-exporting barrel file** in a workspace package can still misattribute — `new-dead` labels that specific shape `unconfirmed (cross-package ambiguous-name resolution gap)` with `evidence: "heuristic"` and lowered confidence instead of asserting `dead`; treat those as "verify manually," not as a fact. Everything else in this class is a normal graph-fact `dead` claim again — confirm with `refs` when in doubt, same as any other finding.
204
+ - **Ledger nudges**: when `diff-gate --hook` reports "this check is rarely acted on in this repo", either tune that check's config, suppress the standing findings with reasons, or consciously accept the noise — do not let unresolved findings accumulate as wallpaper.
205
+
206
+ ## Diff Gate Checks
207
+
208
+ `diff-gate` runs nine checks (`--skip <check>` accepts any of these): `echo` (recent-duplicate-style echoes in the diff), `incomplete-migration`, `co-change-partner` (missing historically-paired file), `twin-partner` (advisory — unedited same-name twin), `coverage-contract` (a configured `coverageContracts` enumeration drifted from its ground truth — see `scip-setup`), `doc-reference` (uncited or stale doc claim), `unused-params`, `new-dead` (dead code introduced by this diff), and `baseline` (only with `--baseline`: compares against the committed `.scipquery-baseline.json`, distinct from `health --baseline`). Findings print grouped under a `Root-cause groups (N):` header before the flat list — a group's remediation usually clears every finding under it, and the same remediation may then repeat in the flat list below; that repetition is expected, not a separate issue. `--baseline` findings additionally carry an `actionTier`: `direct` (act on this finding alone), `signal` (corroborating evidence — read before acting), `support` (context only).
209
+
210
+ ## Postchecks
211
+
212
+ Run the rows that match the actual edit:
213
+
214
+ | Change made | Check |
215
+ | --- | --- |
216
+ | Extracted a helper or abstraction | `scip-query incomplete-migration --json --full` |
217
+ | Added a helper, module, component, hook, composable, or adapter | `scip-query similar <symbol> --json --full` and `scip-query recent-duplicates --json --full` |
218
+ | Added parameters, options, props, config flags, or broad option objects | `scip-query unused-params --json --full` |
219
+ | Added a wrapper, facade, forwarding layer, alias, or re-export | `scip-query wrapper-candidates --json --full`, `scip-query passthrough-candidates --json --full`, and `scip-query redundant-reexports` when exports changed |
220
+ | Added an interface, base class, adapter contract, or type alias | `scip-query stale-abstractions --json --full` |
221
+ | Changed schema, config, generated files, public contracts, command descriptors, or docs-backed behavior | `scip-query co-change <file> --json --full` and `scip-query doc-drift --json --full` |
222
+ | Deleted code | `scip-query cleanup-plan --verify --json` |
223
+ | Changed React components or hooks | the React frontend commands above |
224
+ | Changed Vue SFCs or composables | the Vue frontend commands above |
225
+
226
+ Every implemented change ends with:
227
+
228
+ ```bash
229
+ scip-query status --capabilities
230
+ scip-query diff-gate --json
231
+ ```
232
+
233
+ Fix findings or record a specific acceptance reason. Do not report success while a diff-gate finding is unexplained.
234
+
235
+ ## Subagents
236
+
237
+ When a subagent is used for scip-query evidence, include these rules in its prompt:
238
+
239
+ ```text
240
+ Use scip-query for all code references. Do not use grep, rg, cat, or file reads as evidence for code behavior. Every file path, line number, and behavioral claim must cite the exact scip-query command that produced it. If scip-query cannot verify a claim, say so.
241
+ ```
242
+
243
+ Reject subagent findings that cite text search or raw file reads as code evidence when graph facts were required.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "SCIP Shared Reference"
3
+ short_description: "Reference only - not a workflow"
4
+ default_prompt: "Use $_shared only as reference material loaded by another scip-query workflow skill; do not invoke it as the owning workflow."
@@ -1,18 +1,48 @@
1
1
  ---
2
2
  name: scip-api-impact
3
- description: Assess and plan public API, module boundary, schema, route, CLI, config, or exported-surface changes with scip-query evidence. Use when the user asks what will break, who consumes an API, how to migrate a boundary, whether a signature change is safe, or how to coordinate docs/tests/generated artifacts.
3
+ description: Assess API impact with scip-query evidence. Use before changing public exports, module boundaries, schemas, routes, CLI commands, config fields, generated artifacts, signatures, docs-backed behavior, or consumer migrations.
4
+ commands:
5
+ - template: "scip-query surface <module-or-package>"
6
+ when: "Identify the surface: what consumers actually use from the module."
7
+ - template: "scip-query refs <symbol>"
8
+ when: "Find consumers: every direct reference to the surface symbol."
9
+ - template: "scip-query affected <symbol> --json"
10
+ when: "Find consumers: transitive blast radius of the change."
11
+ - template: "scip-query co-change <file> --json --full"
12
+ when: "Find hidden partners: historically coupled files without a dependency edge."
13
+ - template: "scip-query doc-drift --json --full"
14
+ when: "Find hidden partners: docs that describe the surface and may need an update."
15
+ - template: "scip-query unused-params --json --full"
16
+ when: "Choose migration shape: reject speculative new parameters."
4
17
  ---
5
18
 
6
- # SCIP API Impact
19
+ # scip-api-impact
7
20
 
8
- Use this skill before changing a public surface. A public surface is a callable, export, route, schema, config field, CLI command, generated artifact, or documented behavior that other code or users can depend on. Its defining trait is that a local edit can require coordinated consumer, docs, test, or migration changes outside the implementation file.
21
+ Use this skill before changing a public surface. A public surface is a callable, export, route, schema, config field, CLI command, generated artifact, or documented behavior that other code or users can depend on. Its defining trait is that a local edit can require coordinated consumer, docs, tests, or migration changes outside the implementation file.
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 surface <module-or-package>` | What symbols consumers actually use from this module | Identify the surface: what consumers actually use from the module. |
31
+ | `scip-query refs <symbol>` | Find all files referencing a symbol | Find consumers: every direct reference to the surface symbol. |
32
+ | `scip-query affected <symbol> --json` | Transitive closure of symbols that could break if this symbol changes | Find consumers: transitive blast radius of the change. |
33
+ | `scip-query co-change <file> --json --full` | Files that change together in git history without a dependency edge — hidden coupling candidates | Find hidden partners: historically coupled files without a dependency edge. |
34
+ | `scip-query doc-drift --json --full` | Stale-doc candidates: code the doc references or co-changed with kept changing after the doc stopped | Find hidden partners: docs that describe the surface and may need an update. |
35
+ | `scip-query unused-params --json --full` | Speculative-generality candidates: trailing parameters no body ever uses (TS/JS) | Choose migration shape: reject speculative new parameters. |
36
+
37
+ Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
38
+ <!-- END GENERATED SKILL COMMANDS -->
9
39
 
10
40
  ## Rules
11
41
 
12
- 1. Identify the actual surface before planning the change.
13
- 2. Use scip-query to find direct consumers, reverse dependencies, transitive blast radius, and historical co-change partners.
42
+ 1. Identify the actual surface before planning.
43
+ 2. Find direct consumers, reverse dependencies, transitive blast radius, and historical co-change partners.
14
44
  3. Treat docs, generated files, tests, and config as part of the API when they describe or enforce the surface.
15
- 4. Prefer backward-compatible migration plans when consumers are broad or external.
45
+ 4. Prefer backward-compatible migrations when consumers are broad or external.
16
46
  5. Run `scip-verify` after implementation.
17
47
 
18
48
  ## Workflow
@@ -20,19 +50,16 @@ Use this skill before changing a public surface. A public surface is a callable,
20
50
  ### 1. Identify the surface
21
51
 
22
52
  ```bash
23
- scip-query status --capabilities
24
- scip-query status --capabilities
25
- # If freshness is stale, missing, or unknown:
26
- # scip-query reindex
27
53
  scip-query surface <module-or-package>
28
54
  scip-query outline <file>
29
55
  scip-query trace <symbol-or-command>
30
56
  scip-query code <symbol-or-command>
57
+ scip-query hierarchy <symbol> --json
31
58
  ```
32
59
 
33
- Use `scip-query hierarchy <symbol> --json` for class members or nested methods so you know whether the real surface is the member, class, module, or package.
60
+ This step is complete only when the real surface is named: member, class, module, package, route, schema, command, or config field.
34
61
 
35
- ### 2. Find consumers and ownership
62
+ ### 2. Find consumers
36
63
 
37
64
  ```bash
38
65
  scip-query refs <symbol>
@@ -42,7 +69,9 @@ scip-query affected <symbol> --json
42
69
  scip-query change-surface <file> --json --full
43
70
  ```
44
71
 
45
- Record direct consumers separately from transitive consumers. Direct consumers must compile or adapt immediately; transitive consumers define blast radius and regression risk.
72
+ Record direct consumers separately from transitive consumers.
73
+
74
+ This step is complete only when direct breakage and regression blast radius are known.
46
75
 
47
76
  ### 3. Find hidden partners
48
77
 
@@ -53,18 +82,18 @@ scip-query similar <symbol> --json --full
53
82
  scip-query similar-files <file> --json --full
54
83
  ```
55
84
 
56
- Use co-change for schema/docs/generator/test partners that do not import each other. Use doc drift when docs mention the surface. Use similarity to find sibling APIs that should remain consistent.
85
+ This step is complete only when docs, generated files, fixtures, sibling APIs, and hand-synchronized partners are accounted for or ruled out.
57
86
 
58
- ### 4. Choose the migration shape
87
+ ### 4. Choose migration shape
59
88
 
60
89
  Pick one:
61
90
 
62
- - Compatible extension: add optional behavior without breaking existing callers.
63
- - Two-step migration: add the new surface, migrate callers, then remove the old surface.
64
- - Breaking change: update all consumers and docs in one coordinated change.
65
- - Adapter shim: keep a wrapper only when external consumers or compatibility windows require it.
91
+ - Compatible extension.
92
+ - Two-step migration.
93
+ - Breaking coordinated change.
94
+ - Adapter shim for external consumers or compatibility windows.
66
95
 
67
- Reject speculative parameters or wrappers by running:
96
+ Reject speculative inputs and empty wrappers with:
68
97
 
69
98
  ```bash
70
99
  scip-query unused-params --json --full
@@ -72,80 +101,35 @@ scip-query wrapper-candidates --json --full
72
101
  scip-query passthrough-candidates --json --full
73
102
  ```
74
103
 
75
- ### 5. Build the impact plan
104
+ This step is complete only when the migration shape explains deploy order, rollback, and compatibility risk.
76
105
 
77
- Before editing, write:
106
+ ### 5. Build and verify the plan
78
107
 
79
108
  ```markdown
80
109
  Surface:
81
- - <symbol/file/command/schema>
82
-
83
110
  Consumers:
84
- - direct: <count and important files>
85
- - transitive: <count or affected clusters>
86
-
87
111
  Required co-changes:
88
- - code
89
- - tests
90
- - docs
91
- - generated files
92
- - config or schema partners
93
-
94
112
  Migration:
95
- - compatible extension / two-step / breaking / shim
96
-
97
113
  Verification:
98
114
  - targeted tests
99
115
  - `scip-query diff-impact --json`
100
- - `scip-query diff-gate --json`
116
+ - invoke `scip-verify`
101
117
  - `scip-query doc-drift --json --full` when docs changed
102
118
  - `scip-query config-validate` when config changed
103
119
  ```
104
120
 
105
- ### 6. Verify after editing
121
+ After editing, run routed checks from the shared reference and invoke `scip-verify`.
106
122
 
107
- ```bash
108
- scip-query status --capabilities
109
- # If freshness is stale, missing, or unknown:
110
- # scip-query reindex
111
- scip-query diff-impact --json
112
- scip-query diff-gate --json
113
- ```
123
+ The work is complete only when direct consumers, docs/config partners, and `scip-verify` have been checked.
114
124
 
115
- Then run routed checks:
116
-
117
- ```bash
118
- scip-query unused-params --json --full
119
- scip-query incomplete-migration --json --full
120
- scip-query co-change <changed-file> --json --full
121
- scip-query doc-drift --json --full
122
- ```
123
-
124
- Invoke `scip-verify` before declaring the API change ready.
125
-
126
- ## Report Format
125
+ ## Report
127
126
 
128
127
  ```markdown
129
128
  API impact: low/medium/high
130
-
131
129
  Surface changed:
132
- - <surface>
133
-
134
130
  Consumers:
135
- - <direct consumers>
136
- - <transitive blast radius>
137
-
138
131
  Migration plan:
139
- - <chosen shape and why>
140
-
141
132
  Co-changes:
142
- - <docs/tests/generated/config partners>
143
-
144
133
  Verification:
145
- - <commands run and results>
146
-
147
134
  Remaining risk:
148
- - <external consumers, unavailable capabilities, or accepted compatibility shims>
149
135
  ```
150
-
151
- Do not call a public-surface change safe until direct consumers, docs/config partners, and `scip-query diff-gate --json` have been checked.