scip-query 0.20.0 → 0.21.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 (586) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +255 -884
  3. package/dist/augment-vue-worker.js +1 -1
  4. package/dist/by-kind-CI3O6PQG.js +2 -0
  5. package/dist/call-graph-6QTUTXH7.js +2 -0
  6. package/dist/call-graph-evidence-lZa2dwQA.d.ts +11 -0
  7. package/dist/change-analysis-types-CCtoCHbC.d.ts +9 -0
  8. package/dist/chunk-26CT72HM.js +2 -0
  9. package/dist/{chunk-7PIO7NKH.js → chunk-2COFMIVK.js} +2 -2
  10. package/dist/chunk-2H4IAJHO.js +2 -0
  11. package/dist/chunk-2I3RSUWX.js +16 -0
  12. package/dist/chunk-2RP27XLR.js +2 -0
  13. package/dist/chunk-2ZBMOQGG.js +3 -0
  14. package/dist/{chunk-HX4GQPZP.js → chunk-32A42O5B.js} +3 -3
  15. package/dist/chunk-35ELD3RM.js +2 -0
  16. package/dist/chunk-35IW3P4H.js +2 -0
  17. package/dist/{chunk-DQGFVPUV.js → chunk-3653GTR7.js} +3 -3
  18. package/dist/chunk-3EX7DNBC.js +2 -0
  19. package/dist/chunk-3FQ3KMCD.js +2 -0
  20. package/dist/{chunk-5E4WNAVD.js → chunk-3PII3JI5.js} +2 -2
  21. package/dist/chunk-3TNRNKAT.js +2 -0
  22. package/dist/chunk-3VLJ2DCA.js +2 -0
  23. package/dist/{chunk-XSRF6Q77.js → chunk-46JLFIGA.js} +2 -2
  24. package/dist/chunk-4DCKBY6T.js +5 -0
  25. package/dist/chunk-4EXFZP6H.js +2 -0
  26. package/dist/chunk-4IIMPWMR.js +29 -0
  27. package/dist/chunk-4ILHWBYF.js +2 -0
  28. package/dist/chunk-4N6QSEMZ.js +10 -0
  29. package/dist/chunk-4OE2JO6I.js +2 -0
  30. package/dist/{chunk-7BAVHKMJ.js → chunk-4S4DF62J.js} +9 -9
  31. package/dist/chunk-4UUCUASK.js +554 -0
  32. package/dist/chunk-5236NQV3.js +2 -0
  33. package/dist/chunk-54EOGFBR.js +2 -0
  34. package/dist/{chunk-LY4WC4AD.js → chunk-5H7IWVXJ.js} +2 -2
  35. package/dist/chunk-5IZTXSOL.js +117 -0
  36. package/dist/{chunk-AZJQQKDD.js → chunk-5SE323LF.js} +2 -2
  37. package/dist/chunk-5ZJH6DDE.js +2 -0
  38. package/dist/chunk-63MBA7EG.js +3 -0
  39. package/dist/chunk-6BJ7SOY7.js +2 -0
  40. package/dist/chunk-6GJAP4OE.js +2 -0
  41. package/dist/chunk-6IEVHGWG.js +26 -0
  42. package/dist/chunk-6SWA6B24.js +7 -0
  43. package/dist/chunk-6T7H2AFY.js +3 -0
  44. package/dist/chunk-73Z33VFI.js +4 -0
  45. package/dist/chunk-7COHFNJK.js +38 -0
  46. package/dist/chunk-7HU2IJ2T.js +3 -0
  47. package/dist/chunk-7IOAZRVL.js +60 -0
  48. package/dist/chunk-7KCZELVM.js +2 -0
  49. package/dist/chunk-7PPYXENX.js +2 -0
  50. package/dist/chunk-7TWP3MCP.js +2 -0
  51. package/dist/chunk-AA7K3XLM.js +21 -0
  52. package/dist/chunk-AJVMVE7X.js +7 -0
  53. package/dist/chunk-ANWGXPPN.js +4 -0
  54. package/dist/chunk-APLKXICZ.js +3 -0
  55. package/dist/{chunk-JDOEX4E6.js → chunk-AQDWTCDC.js} +2 -2
  56. package/dist/chunk-AUP6YI5M.js +2 -0
  57. package/dist/chunk-B7ECWJAZ.js +2 -0
  58. package/dist/{chunk-ZHXX42OH.js → chunk-BATIVRU2.js} +4 -4
  59. package/dist/chunk-BBEDPVPB.js +4 -0
  60. package/dist/chunk-BBWPOMGU.js +2 -0
  61. package/dist/chunk-BD6CV7PN.js +2 -0
  62. package/dist/{chunk-XKWKXZKW.js → chunk-BHE44MHT.js} +2 -2
  63. package/dist/chunk-BOJ5SVE2.js +2 -0
  64. package/dist/chunk-BZYSGZRK.js +2 -0
  65. package/dist/chunk-CA5RE6H7.js +2 -0
  66. package/dist/chunk-CKDOY6JA.js +2 -0
  67. package/dist/chunk-CN2WGM7D.js +2 -0
  68. package/dist/chunk-COTMS5KM.js +3 -0
  69. package/dist/chunk-CSDDOUA4.js +3 -0
  70. package/dist/chunk-CT5SI2I4.js +2 -0
  71. package/dist/chunk-D5EKVZPI.js +2 -0
  72. package/dist/{chunk-FKSELJQF.js → chunk-D5W4UZY5.js} +2 -2
  73. package/dist/{chunk-RUJURYSV.js → chunk-DEUGHURX.js} +2 -2
  74. package/dist/chunk-DHKBIOXF.js +7 -0
  75. package/dist/chunk-DMQ7ZKJG.js +81 -0
  76. package/dist/chunk-DMUGTKMD.js +2 -0
  77. package/dist/chunk-DOPCR5BY.js +2 -0
  78. package/dist/chunk-DRENNWRG.js +2 -0
  79. package/dist/chunk-E4EJBGDZ.js +2 -0
  80. package/dist/chunk-E7BJXRNV.js +2 -0
  81. package/dist/chunk-EA4SH4U5.js +5 -0
  82. package/dist/{chunk-L7AW2QB5.js → chunk-EKZRF57O.js} +2 -2
  83. package/dist/chunk-ELNRLMC5.js +29 -0
  84. package/dist/chunk-F4FNK44D.js +2 -0
  85. package/dist/chunk-F7WQ337U.js +308 -0
  86. package/dist/chunk-FEQIQ26E.js +2 -0
  87. package/dist/chunk-FGB567HK.js +23 -0
  88. package/dist/chunk-FHV7NMFU.js +29 -0
  89. package/dist/chunk-FN6EJM6Q.js +2 -0
  90. package/dist/chunk-FTSQNONX.js +2 -0
  91. package/dist/chunk-FUG6RPYY.js +6 -0
  92. package/dist/chunk-G2F6T5BV.js +2 -0
  93. package/dist/chunk-G6OGPXJW.js +9 -0
  94. package/dist/chunk-GFLTPNWV.js +3 -0
  95. package/dist/chunk-GTDP2SKQ.js +2 -0
  96. package/dist/chunk-H46QMB7E.js +2 -0
  97. package/dist/chunk-H5EXS3HM.js +2 -0
  98. package/dist/chunk-HEOMG7IM.js +8 -0
  99. package/dist/chunk-HG5YI7PV.js +2 -0
  100. package/dist/{chunk-7SQQWSY3.js → chunk-HGKEAP7F.js} +2 -2
  101. package/dist/chunk-HUZNZ3H2.js +2 -0
  102. package/dist/chunk-HWLCBKFE.js +2 -0
  103. package/dist/chunk-I3U2FN2T.js +13 -0
  104. package/dist/{chunk-JAYYFEQY.js → chunk-I7PFL5P3.js} +2 -2
  105. package/dist/{chunk-2HPVVXM5.js → chunk-ICHBVITH.js} +2 -2
  106. package/dist/chunk-ICUQONOG.js +38 -0
  107. package/dist/chunk-IDPLC3FI.js +5 -0
  108. package/dist/{chunk-A73XVBCR.js → chunk-IGKKTHJR.js} +2 -2
  109. package/dist/chunk-IOKWFRFQ.js +4 -0
  110. package/dist/chunk-IPAL6DP2.js +3 -0
  111. package/dist/chunk-IUJ3ZFEE.js +7 -0
  112. package/dist/chunk-IXJ26KJJ.js +16 -0
  113. package/dist/chunk-IYV2YBHM.js +2 -0
  114. package/dist/chunk-JVZNWJBH.js +2 -0
  115. package/dist/chunk-K5MZYZV7.js +3 -0
  116. package/dist/{chunk-3G66UZBH.js → chunk-KFK7GF5C.js} +2 -2
  117. package/dist/chunk-KTRGJLY7.js +18 -0
  118. package/dist/chunk-KW6B5OL4.js +2 -0
  119. package/dist/chunk-KWARB5FZ.js +2 -0
  120. package/dist/chunk-LHTT5C3Z.js +2 -0
  121. package/dist/chunk-LPGDO2XA.js +3 -0
  122. package/dist/chunk-LXLD46LH.js +21 -0
  123. package/dist/chunk-MEI3PTUK.js +2 -0
  124. package/dist/chunk-MJNV7OCG.js +5 -0
  125. package/dist/chunk-MO226P4Q.js +4 -0
  126. package/dist/{chunk-3CLX5EOX.js → chunk-MOBF2GH6.js} +2 -2
  127. package/dist/chunk-MXNGIEPU.js +3 -0
  128. package/dist/chunk-MYUKI5VN.js +4 -0
  129. package/dist/{chunk-TFRAYKN6.js → chunk-N5C65OFK.js} +2 -2
  130. package/dist/{chunk-PXY7F6Y4.js → chunk-O2RM7E7L.js} +5 -5
  131. package/dist/chunk-OFUBXBYX.js +3 -0
  132. package/dist/chunk-OFY4HTMI.js +2 -0
  133. package/dist/chunk-OIRWZIYL.js +38 -0
  134. package/dist/chunk-OIVZ7PW6.js +438 -0
  135. package/dist/chunk-ORBKAUCH.js +4 -0
  136. package/dist/chunk-OUB4J26T.js +2 -0
  137. package/dist/chunk-OVPS2ILI.js +20 -0
  138. package/dist/chunk-PHSPBQM6.js +5 -0
  139. package/dist/{chunk-JVYA47YU.js → chunk-PIZY2GX6.js} +2 -2
  140. package/dist/chunk-PNISDVYC.js +3 -0
  141. package/dist/chunk-PQOL42AW.js +2 -0
  142. package/dist/chunk-PUVZNFVY.js +11 -0
  143. package/dist/chunk-PZEI2TVL.js +4 -0
  144. package/dist/{chunk-ZK26BAQL.js → chunk-Q2J2VZZT.js} +2 -2
  145. package/dist/chunk-Q7HB7BFJ.js +2 -0
  146. package/dist/{chunk-ZTETIQ35.js → chunk-QBANU5BQ.js} +2 -2
  147. package/dist/chunk-QD7IFBCR.js +10 -0
  148. package/dist/chunk-QDCCHMVZ.js +2 -0
  149. package/dist/chunk-QLQBZOJH.js +3 -0
  150. package/dist/{chunk-PQCI4SQX.js → chunk-QXR5QPSF.js} +2 -2
  151. package/dist/chunk-R2MOKIVO.js +2 -0
  152. package/dist/{chunk-EN3O7VJA.js → chunk-RFWAUHVW.js} +2 -2
  153. package/dist/chunk-RGCJ4646.js +16 -0
  154. package/dist/{chunk-BPAPWKP6.js → chunk-S3RTPPLQ.js} +8 -8
  155. package/dist/chunk-S73HBCGI.js +11 -0
  156. package/dist/chunk-SDPA5DKN.js +210 -0
  157. package/dist/chunk-SEUJVWT2.js +3 -0
  158. package/dist/chunk-SF7X6QNW.js +2 -0
  159. package/dist/chunk-SKUMCCC5.js +2 -0
  160. package/dist/chunk-SSSJO4RG.js +2 -0
  161. package/dist/chunk-SWFAFA4G.js +49 -0
  162. package/dist/chunk-SYUNTKO2.js +2 -0
  163. package/dist/chunk-T6FRID7Y.js +3 -0
  164. package/dist/chunk-TGWNNMPF.js +3 -0
  165. package/dist/chunk-TM5XEDDR.js +4 -0
  166. package/dist/chunk-TNOHGHZQ.js +2 -0
  167. package/dist/chunk-U2GPTA5U.js +3 -0
  168. package/dist/{chunk-SXP2MBJH.js → chunk-U7DR7MJD.js} +2 -2
  169. package/dist/chunk-U7LRSQG6.js +3 -0
  170. package/dist/chunk-UL4VJUMD.js +2 -0
  171. package/dist/chunk-UNORWZIJ.js +16 -0
  172. package/dist/chunk-UQ7XPRWU.js +2 -0
  173. package/dist/{chunk-6SHPK5ZE.js → chunk-URMZLV2N.js} +2 -2
  174. package/dist/chunk-URTX2BEA.js +6 -0
  175. package/dist/chunk-UZFCZ7SJ.js +2 -0
  176. package/dist/{chunk-KMKTIO2G.js → chunk-V7LQZTTZ.js} +2 -2
  177. package/dist/chunk-VETXXOYU.js +3 -0
  178. package/dist/chunk-VGRUM7JI.js +3 -0
  179. package/dist/{chunk-WXZLAAWK.js → chunk-VNKYRJKN.js} +2 -2
  180. package/dist/chunk-VWLIOEEF.js +11 -0
  181. package/dist/chunk-WB6LGCFB.js +6 -0
  182. package/dist/{chunk-W4ETQAXM.js → chunk-WK4FD4PG.js} +2 -2
  183. package/dist/{chunk-O64IZ6UX.js → chunk-WKPZCQLI.js} +2 -2
  184. package/dist/chunk-WSG3DK5H.js +2 -0
  185. package/dist/chunk-WULAPQUD.js +38 -0
  186. package/dist/chunk-WZQFY5S7.js +4 -0
  187. package/dist/chunk-X434XZAI.js +2 -0
  188. package/dist/chunk-X7PJJYKX.js +29 -0
  189. package/dist/chunk-XDAUYDFT.js +2 -0
  190. package/dist/chunk-XITQLISP.js +2 -0
  191. package/dist/chunk-XRXCANFQ.js +4 -0
  192. package/dist/chunk-XVDMJMES.js +3 -0
  193. package/dist/chunk-XXJ7WL3F.js +35 -0
  194. package/dist/chunk-Y4XQ7LES.js +9 -0
  195. package/dist/chunk-YIEFEPG6.js +16 -0
  196. package/dist/chunk-YRVERHJR.js +49 -0
  197. package/dist/{chunk-CJST5ETY.js → chunk-YUFWLWIC.js} +2 -2
  198. package/dist/chunk-YUKYB54I.js +1 -0
  199. package/dist/chunk-Z3GCK3PD.js +3 -0
  200. package/dist/chunk-ZBNL3QCY.js +4 -0
  201. package/dist/chunk-ZD3Z54IW.js +2 -0
  202. package/dist/chunk-ZDVDSDFG.js +4 -0
  203. package/dist/{chunk-32LVLCLN.js → chunk-ZHSARYVS.js} +3 -3
  204. package/dist/{chunk-BDCC2NPY.js → chunk-ZW44MCJM.js} +2 -2
  205. package/dist/{chunk-N5W4YZMK.js → chunk-ZYREOING.js} +2 -2
  206. package/dist/cli-main.js +8 -0
  207. package/dist/cli.js +1 -3
  208. package/dist/code-CczEvHui.d.ts +121 -0
  209. package/dist/code-EQL6ZBLH.js +2 -0
  210. package/dist/code-result-json-6E4J6LGZ.js +2 -0
  211. package/dist/command-descriptors-QH3G2OVD.js +346 -0
  212. package/dist/{config-types-jVM3D7MA.d.ts → config-types-Cm-VSEBb.d.ts} +189 -23
  213. package/dist/dataflow-2BLMUZBP.js +2 -0
  214. package/dist/{db-B5PM5yNk.d.ts → db-LKJXAlNS.d.ts} +1 -1
  215. package/dist/dependence-slice-MGAJDZXB.js +2 -0
  216. package/dist/deps-GQMUYVKW.js +2 -0
  217. package/dist/direct-navigation-6RUJKLAV.js +3 -0
  218. package/dist/entry-map-V2NQP5JU.js +2 -0
  219. package/dist/exploration-topology-BG4v30HZ.d.ts +256 -0
  220. package/dist/file-dep-graph-Bqg3t3Px.d.ts +4 -0
  221. package/dist/file-kind-BKCVMNUf.d.ts +10 -0
  222. package/dist/files-VM53I4IU.js +2 -0
  223. package/dist/graph-evidence-CbUPCSKV.d.ts +126 -0
  224. package/dist/graph-exploration-contract-CqDsnPQL.d.ts +7 -0
  225. package/dist/{health-Do5TKSJI.d.ts → health-Wl5G_LRt.d.ts} +33 -34
  226. package/dist/hierarchy-D553WRSZ.js +2 -0
  227. package/dist/imports-DOZAJWLW.js +2 -0
  228. package/dist/index.d.ts +4 -31
  229. package/dist/index.js +1 -1
  230. package/dist/members-HE67475K.js +2 -0
  231. package/dist/methods-K5JK4PPH.js +2 -0
  232. package/dist/next-anchor-candidates-BwMczMvX.d.ts +90 -0
  233. package/dist/output-continuation-command-LKBUTNRL.js +3 -0
  234. package/dist/output-pagination-VAWOGX4R.js +19 -0
  235. package/dist/postinstall.js +1 -1
  236. package/dist/project-reindex-4ARU6QCM.js +3 -0
  237. package/dist/queries/affected.d.ts +22 -4
  238. package/dist/queries/affected.js +1 -1
  239. package/dist/queries/anchors.d.ts +123 -0
  240. package/dist/queries/anchors.js +2 -0
  241. package/dist/queries/architecture.d.ts +3 -2
  242. package/dist/queries/architecture.js +1 -1
  243. package/dist/queries/bottlenecks.d.ts +26 -7
  244. package/dist/queries/bottlenecks.js +1 -1
  245. package/dist/queries/by-kind.d.ts +2 -2
  246. package/dist/queries/by-kind.js +1 -1
  247. package/dist/queries/call-graph.d.ts +17 -3
  248. package/dist/queries/call-graph.js +1 -1
  249. package/dist/queries/change-surface.d.ts +2 -2
  250. package/dist/queries/change-surface.js +1 -1
  251. package/dist/queries/cleanup-plan.d.ts +2 -2
  252. package/dist/queries/cleanup-plan.js +1 -1
  253. package/dist/queries/co-change.d.ts +2 -2
  254. package/dist/queries/co-change.js +1 -1
  255. package/dist/queries/code.d.ts +5 -26
  256. package/dist/queries/code.js +1 -1
  257. package/dist/queries/complexity-hotspots.d.ts +2 -2
  258. package/dist/queries/complexity-hotspots.js +1 -1
  259. package/dist/queries/complexity.d.ts +2 -2
  260. package/dist/queries/complexity.js +1 -1
  261. package/dist/queries/context.d.ts +145 -0
  262. package/dist/queries/context.js +2 -0
  263. package/dist/queries/convergence.d.ts +2 -2
  264. package/dist/queries/convergence.js +1 -1
  265. package/dist/queries/coupling.d.ts +8 -3
  266. package/dist/queries/coupling.js +1 -1
  267. package/dist/queries/cycles.d.ts +34 -7
  268. package/dist/queries/cycles.js +1 -1
  269. package/dist/queries/dataflow.d.ts +40 -14
  270. package/dist/queries/dataflow.js +1 -1
  271. package/dist/queries/dead.d.ts +2 -2
  272. package/dist/queries/dead.js +1 -1
  273. package/dist/queries/decorative-checkers.d.ts +3 -3
  274. package/dist/queries/decorative-checkers.js +1 -1
  275. package/dist/queries/deep-chains.d.ts +4 -38
  276. package/dist/queries/deep-chains.js +1 -1
  277. package/dist/queries/dependence-slice.d.ts +47 -0
  278. package/dist/queries/dependence-slice.js +2 -0
  279. package/dist/queries/dependency-depth.d.ts +49 -0
  280. package/dist/queries/dependency-depth.js +2 -0
  281. package/dist/queries/deps.d.ts +4 -2
  282. package/dist/queries/deps.js +1 -1
  283. package/dist/queries/diff-impact.d.ts +3 -3
  284. package/dist/queries/diff-impact.js +1 -1
  285. package/dist/queries/doc-drift.d.ts +4 -4
  286. package/dist/queries/doc-drift.js +1 -1
  287. package/dist/queries/drift.d.ts +2 -2
  288. package/dist/queries/drift.js +1 -1
  289. package/dist/queries/duplicate-bodies.d.ts +2 -2
  290. package/dist/queries/duplicate-bodies.js +1 -1
  291. package/dist/queries/entry-map.d.ts +121 -0
  292. package/dist/queries/entry-map.js +2 -0
  293. package/dist/queries/evidence.d.ts +70 -0
  294. package/dist/queries/evidence.js +2 -0
  295. package/dist/queries/extract-candidates.d.ts +2 -2
  296. package/dist/queries/extract-candidates.js +1 -1
  297. package/dist/queries/fan.d.ts +18 -5
  298. package/dist/queries/fan.js +1 -1
  299. package/dist/queries/files.d.ts +2 -2
  300. package/dist/queries/files.js +1 -1
  301. package/dist/queries/health.d.ts +4 -3
  302. package/dist/queries/health.js +1 -1
  303. package/dist/queries/hierarchy.d.ts +5 -3
  304. package/dist/queries/hierarchy.js +1 -1
  305. package/dist/queries/hotspots.d.ts +11 -5
  306. package/dist/queries/hotspots.js +1 -1
  307. package/dist/queries/imports.d.ts +2 -2
  308. package/dist/queries/imports.js +1 -1
  309. package/dist/queries/incomplete-migration.d.ts +4 -4
  310. package/dist/queries/incomplete-migration.js +1 -1
  311. package/dist/queries/index.d.ts +56 -136
  312. package/dist/queries/index.js +1 -1
  313. package/dist/queries/isolated.d.ts +2 -2
  314. package/dist/queries/isolated.js +1 -1
  315. package/dist/queries/locality-candidates.d.ts +2 -2
  316. package/dist/queries/locality-candidates.js +1 -1
  317. package/dist/queries/members.d.ts +2 -2
  318. package/dist/queries/members.js +1 -1
  319. package/dist/queries/methods.d.ts +2 -2
  320. package/dist/queries/methods.js +1 -1
  321. package/dist/queries/not-implemented.d.ts +3 -3
  322. package/dist/queries/not-implemented.js +1 -1
  323. package/dist/queries/outline.d.ts +2 -2
  324. package/dist/queries/outline.js +1 -1
  325. package/dist/queries/passthrough-candidates.d.ts +5 -9
  326. package/dist/queries/passthrough-candidates.js +1 -1
  327. package/dist/queries/plan-context.d.ts +27 -64
  328. package/dist/queries/plan-context.js +1 -1
  329. package/dist/queries/react-component-duplicates.d.ts +2 -2
  330. package/dist/queries/react-component-duplicates.js +1 -1
  331. package/dist/queries/react-hook-candidates.d.ts +2 -2
  332. package/dist/queries/react-hook-candidates.js +1 -1
  333. package/dist/queries/react-large-component-pressure.d.ts +2 -2
  334. package/dist/queries/react-large-component-pressure.js +1 -1
  335. package/dist/queries/recent-duplicates.d.ts +2 -2
  336. package/dist/queries/recent-duplicates.js +1 -1
  337. package/dist/queries/redundant-reexports.d.ts +2 -2
  338. package/dist/queries/redundant-reexports.js +1 -1
  339. package/dist/queries/reference-neighborhood.d.ts +4 -0
  340. package/dist/queries/reference-neighborhood.js +2 -0
  341. package/dist/queries/reference-reachability.d.ts +48 -0
  342. package/dist/queries/reference-reachability.js +2 -0
  343. package/dist/queries/refs.d.ts +2 -2
  344. package/dist/queries/refs.js +1 -1
  345. package/dist/queries/self-audit.d.ts +2 -2
  346. package/dist/queries/self-audit.js +1 -1
  347. package/dist/queries/similar-chains.d.ts +2 -2
  348. package/dist/queries/similar-chains.js +1 -1
  349. package/dist/queries/similar-files.d.ts +2 -2
  350. package/dist/queries/similar-files.js +1 -1
  351. package/dist/queries/similar-signatures.d.ts +2 -2
  352. package/dist/queries/similar-signatures.js +1 -1
  353. package/dist/queries/similar.d.ts +2 -2
  354. package/dist/queries/similar.js +1 -1
  355. package/dist/queries/slice.d.ts +3 -36
  356. package/dist/queries/slice.js +1 -1
  357. package/dist/queries/source-inspection.d.ts +209 -0
  358. package/dist/queries/source-inspection.js +2 -0
  359. package/dist/queries/source-search.d.ts +13 -0
  360. package/dist/queries/source-search.js +2 -0
  361. package/dist/queries/stale-abstractions.d.ts +2 -2
  362. package/dist/queries/stale-abstractions.js +1 -1
  363. package/dist/queries/stats.d.ts +2 -2
  364. package/dist/queries/surface.d.ts +13 -4
  365. package/dist/queries/surface.js +1 -1
  366. package/dist/queries/symbols.d.ts +2 -2
  367. package/dist/queries/symbols.js +1 -1
  368. package/dist/queries/system-map.d.ts +449 -0
  369. package/dist/queries/system-map.js +2 -0
  370. package/dist/queries/system.d.ts +5 -3
  371. package/dist/queries/system.js +1 -1
  372. package/dist/queries/test-quality.d.ts +2 -2
  373. package/dist/queries/test-quality.js +1 -1
  374. package/dist/queries/trace.d.ts +47 -3
  375. package/dist/queries/trace.js +1 -1
  376. package/dist/queries/twin-ab.d.ts +3 -3
  377. package/dist/queries/twin-ab.js +1 -1
  378. package/dist/queries/twin-drift.d.ts +3 -3
  379. package/dist/queries/twin-drift.js +1 -1
  380. package/dist/queries/unused-imports.d.ts +2 -2
  381. package/dist/queries/unused-imports.js +1 -1
  382. package/dist/queries/unused-params.d.ts +2 -2
  383. package/dist/queries/unused-params.js +1 -1
  384. package/dist/queries/value-flow.d.ts +43 -0
  385. package/dist/queries/value-flow.js +2 -0
  386. package/dist/queries/vue-component-duplicates.d.ts +2 -2
  387. package/dist/queries/vue-component-duplicates.js +1 -1
  388. package/dist/queries/vue-composable-candidates.d.ts +2 -2
  389. package/dist/queries/vue-composable-candidates.js +1 -1
  390. package/dist/queries/vue-large-view-pressure.d.ts +2 -2
  391. package/dist/queries/vue-large-view-pressure.js +1 -1
  392. package/dist/queries/wrapper-candidates.d.ts +2 -2
  393. package/dist/queries/wrapper-candidates.js +1 -1
  394. package/dist/query-service-fastpath.js +6 -0
  395. package/dist/query-service-server.js +5 -0
  396. package/dist/refs-NBHKL4UQ.js +2 -0
  397. package/dist/refs-pagination-BBVTIHMH.js +2 -0
  398. package/dist/reindex-worker.js +27 -45
  399. package/dist/reindex.d.ts +62 -42
  400. package/dist/reindex.js +32 -33
  401. package/dist/repository-text-C0Q8VYdN.d.ts +19 -0
  402. package/dist/runtime.d.ts +286 -7
  403. package/dist/runtime.js +4 -3
  404. package/dist/rust-semantic-session-server.js +1 -1
  405. package/dist/rust-semantic-session-worker.js +1 -1
  406. package/dist/rust-semantic-worker.js +1 -1
  407. package/dist/{scip-cli-BnEwZRLJ.d.ts → scip-cli-CppzF5MK.d.ts} +33 -2
  408. package/dist/slice-U6S6LBSB.js +2 -0
  409. package/dist/source-search-types-Dwz8KeuW.d.ts +79 -0
  410. package/dist/source-snippet-_wrcgmZc.d.ts +15 -0
  411. package/dist/stats-OOJ74B32.js +2 -0
  412. package/dist/surface-C7SS5CDQ.js +2 -0
  413. package/dist/symbol-resolution-3FVEKDTJ.js +2 -0
  414. package/dist/system-6K2NOO5C.js +2 -0
  415. package/dist/trace-II5K2TMH.js +2 -0
  416. package/dist/typescript-mailbox-worker.js +1 -1
  417. package/dist/value-flow-MKFUUE5B.js +2 -0
  418. package/dist/watch-server.js +3 -2
  419. package/docs/AGENT_GUIDE.md +133 -476
  420. package/docs/AI_FAILURE_MODES.md +30 -301
  421. package/docs/API.md +1 -1
  422. package/docs/API_EVOLUTION.md +6 -0
  423. package/docs/CLI_JSON_OUTPUT.md +207 -29
  424. package/docs/COMMAND_REFERENCE.md +255 -154
  425. package/docs/CONFIGURATION_WRITE_SAFETY.md +14 -13
  426. package/docs/DETECTOR_EVIDENCE_CONTRACTS.md +84 -0
  427. package/docs/DETECTOR_GUIDE.md +46 -138
  428. package/docs/DURABILITY.md +7 -1
  429. package/docs/INDEX_GENERATIONS.md +6 -0
  430. package/docs/LOCK_PROTOCOL.md +8 -0
  431. package/docs/REINDEX_METADATA_COMPATIBILITY.md +13 -3
  432. package/docs/SECURITY_MODEL.md +39 -42
  433. package/docs/accuracy-audit-checklist.md +4 -0
  434. package/docs/accuracy-hardening-goal.md +9 -2
  435. package/docs/analyzer-inventory.md +59 -264
  436. package/docs/analyzer-validation-protocol.md +62 -170
  437. package/docs/architecture-coherence-vision.md +18 -12
  438. package/docs/locality-analyzer-design.md +1 -1
  439. package/docs/schemas/cli-json-envelope.schema.json +212 -27
  440. package/docs/schemas/cli-json-export-receipt.schema.json +25 -0
  441. package/docs/schemas/cli-output-page.schema.json +1 -1
  442. package/docs/schemas/observation-receipt.schema.json +164 -0
  443. package/docs/schemas/project-config.schema.json +27 -45
  444. package/docs/schemas/suppression-record.schema.json +1 -34
  445. package/package.json +65 -8
  446. package/skills/concrete-plan/SKILL.md +8 -0
  447. package/skills/concrete-plan/agents/openai.yaml +4 -0
  448. package/skills/scip-explore/SKILL.md +3 -85
  449. package/skills/scip-explore/agents/openai.yaml +3 -3
  450. package/skills/scip-integrity-audit/SKILL.md +185 -0
  451. package/skills/scip-integrity-audit/agents/openai.yaml +4 -0
  452. package/skills/scip-plan/SKILL.md +67 -49
  453. package/skills/scip-plan/agents/openai.yaml +3 -3
  454. package/skills/scip-query/SKILL.md +77 -77
  455. package/skills/scip-query/agents/openai.yaml +3 -3
  456. package/skills/scip-setup/SKILL.md +10 -102
  457. package/skills/scip-setup/agents/openai.yaml +3 -3
  458. package/dist/chunk-26QA6FAI.js +0 -8
  459. package/dist/chunk-2KAZEZ6M.js +0 -2
  460. package/dist/chunk-3ORVDL3H.js +0 -2
  461. package/dist/chunk-46XGSFNI.js +0 -2
  462. package/dist/chunk-4MAK2HOY.js +0 -6
  463. package/dist/chunk-4TURLRL5.js +0 -16
  464. package/dist/chunk-4UQVNCQE.js +0 -2
  465. package/dist/chunk-55Q3WLZX.js +0 -2
  466. package/dist/chunk-5I5G2QOX.js +0 -3
  467. package/dist/chunk-6LDJQXAH.js +0 -2
  468. package/dist/chunk-6O5TICIZ.js +0 -3
  469. package/dist/chunk-7O5IKBTZ.js +0 -16
  470. package/dist/chunk-7S5E7KWT.js +0 -2
  471. package/dist/chunk-7WPLAODU.js +0 -5
  472. package/dist/chunk-AFHORGLH.js +0 -42
  473. package/dist/chunk-AIE7TFJW.js +0 -9
  474. package/dist/chunk-AQOFWNQJ.js +0 -1
  475. package/dist/chunk-B2PX5I6M.js +0 -2
  476. package/dist/chunk-B75HZHUP.js +0 -2
  477. package/dist/chunk-B7PBSLZN.js +0 -2
  478. package/dist/chunk-BBW6JFHN.js +0 -2
  479. package/dist/chunk-BNXCIFVY.js +0 -2
  480. package/dist/chunk-BS2NMXQZ.js +0 -4
  481. package/dist/chunk-C3KV2II6.js +0 -2
  482. package/dist/chunk-C43RDDP4.js +0 -20
  483. package/dist/chunk-DAFAHMNB.js +0 -42
  484. package/dist/chunk-DQLPXMH6.js +0 -8
  485. package/dist/chunk-EKZTZXHZ.js +0 -117
  486. package/dist/chunk-EW2NTSFA.js +0 -18
  487. package/dist/chunk-F3Z4OUDS.js +0 -8
  488. package/dist/chunk-FJH2NW7J.js +0 -66
  489. package/dist/chunk-FTFP6O3L.js +0 -11
  490. package/dist/chunk-FYLK2DEJ.js +0 -2
  491. package/dist/chunk-GH74ASD6.js +0 -11
  492. package/dist/chunk-GMXWZP2B.js +0 -2
  493. package/dist/chunk-GOUBFH5O.js +0 -3
  494. package/dist/chunk-HLF2TX6R.js +0 -2
  495. package/dist/chunk-HX7M4BDI.js +0 -30
  496. package/dist/chunk-HZ72SESS.js +0 -128
  497. package/dist/chunk-IB2N4FIY.js +0 -10
  498. package/dist/chunk-IZYYAFN5.js +0 -2
  499. package/dist/chunk-JFGGXWQF.js +0 -947
  500. package/dist/chunk-JN4NMBEX.js +0 -8
  501. package/dist/chunk-JW56N3KI.js +0 -4
  502. package/dist/chunk-JZ2OXNWB.js +0 -2
  503. package/dist/chunk-KFZNKUNT.js +0 -2
  504. package/dist/chunk-L5GJNV2T.js +0 -8
  505. package/dist/chunk-L7JDSCDF.js +0 -4
  506. package/dist/chunk-LU47HG23.js +0 -14
  507. package/dist/chunk-LVY7NPF7.js +0 -2
  508. package/dist/chunk-MKCDWWGV.js +0 -4
  509. package/dist/chunk-MNE7YG56.js +0 -2
  510. package/dist/chunk-MRXBEXSY.js +0 -26
  511. package/dist/chunk-MV7OWDUX.js +0 -2
  512. package/dist/chunk-NGEXCJJW.js +0 -11
  513. package/dist/chunk-NIW6JDC5.js +0 -29
  514. package/dist/chunk-PBUQFCNB.js +0 -16
  515. package/dist/chunk-POAVPHH7.js +0 -2
  516. package/dist/chunk-QZ4JVECJ.js +0 -2
  517. package/dist/chunk-RDO52JGY.js +0 -2
  518. package/dist/chunk-RJT3TUUZ.js +0 -2
  519. package/dist/chunk-RVLDN63O.js +0 -4
  520. package/dist/chunk-RXOXSKY3.js +0 -2
  521. package/dist/chunk-S7OYBOCK.js +0 -2
  522. package/dist/chunk-SMNXQT5Z.js +0 -3
  523. package/dist/chunk-SRAFT254.js +0 -2
  524. package/dist/chunk-T7YQSHPQ.js +0 -3
  525. package/dist/chunk-UJCOIXDY.js +0 -2
  526. package/dist/chunk-UJPRPGCO.js +0 -13
  527. package/dist/chunk-WCCFZ7V7.js +0 -113
  528. package/dist/chunk-WUPW3UN3.js +0 -3
  529. package/dist/chunk-X54AGLVX.js +0 -2
  530. package/dist/chunk-Y2MVPNKY.js +0 -5
  531. package/dist/chunk-YKUU5AIC.js +0 -3
  532. package/dist/chunk-YLCJLTPL.js +0 -2
  533. package/dist/chunk-YTQVETEO.js +0 -2
  534. package/dist/chunk-Z4N3MZYA.js +0 -38
  535. package/dist/chunk-ZJOOT3BG.js +0 -2
  536. package/dist/command-descriptors-DSS46KXI.js +0 -642
  537. package/dist/diff-gate-types-B0QYpDv1.d.ts +0 -11
  538. package/dist/direct-navigation-6YHV6IB5.js +0 -3
  539. package/dist/queries/diff-gate.d.ts +0 -253
  540. package/dist/queries/diff-gate.js +0 -2
  541. package/docs/COMMITTED_RECORD_COMPATIBILITY.md +0 -154
  542. package/docs/analyzer-validation-ledger.md +0 -516
  543. package/docs/schemas/outcome-event-record.schema.json +0 -95
  544. package/skills/_shared/SKILL.md +0 -101
  545. package/skills/_shared/agents/openai.yaml +0 -4
  546. package/skills/_shared/references/agent-contract-catalog.md +0 -105
  547. package/skills/_shared/references/command-catalog.md +0 -118
  548. package/skills/_shared/references/detector-precision-and-diffgate.md +0 -59
  549. package/skills/_shared/references/evidence-and-dead-code.md +0 -25
  550. package/skills/scip-audit/SKILL.md +0 -77
  551. package/skills/scip-audit/agents/openai.yaml +0 -4
  552. package/skills/scip-audit/references/claims.md +0 -98
  553. package/skills/scip-audit/references/cleanup.md +0 -100
  554. package/skills/scip-audit/references/directory.md +0 -222
  555. package/skills/scip-audit/references/frontend.md +0 -130
  556. package/skills/scip-audit/references/integrity.md +0 -154
  557. package/skills/scip-audit/references/maintainability.md +0 -162
  558. package/skills/scip-audit/references/twin-drift.md +0 -104
  559. package/skills/scip-diagnose/SKILL.md +0 -52
  560. package/skills/scip-diagnose/agents/openai.yaml +0 -4
  561. package/skills/scip-diagnose/references/debug.md +0 -117
  562. package/skills/scip-diagnose/references/probe-reachability.md +0 -77
  563. package/skills/scip-diagnose/references/root-cause.md +0 -145
  564. package/skills/scip-diagnose/references/triage.md +0 -119
  565. package/skills/scip-explore/references/diagrams.md +0 -40
  566. package/skills/scip-explore/references/language-playbook.md +0 -49
  567. package/skills/scip-improve/SKILL.md +0 -56
  568. package/skills/scip-improve/agents/openai.yaml +0 -4
  569. package/skills/scip-improve/references/cleanup-batches.md +0 -53
  570. package/skills/scip-improve/references/directory-moves.md +0 -53
  571. package/skills/scip-improve/references/doc-reconcile.md +0 -30
  572. package/skills/scip-improve/references/frontend-extraction.md +0 -39
  573. package/skills/scip-improve/references/maintainability-mechanism.md +0 -43
  574. package/skills/scip-improve/references/twin-drift.md +0 -35
  575. package/skills/scip-plan/references/api-impact.md +0 -19
  576. package/skills/scip-plan/references/conductor.md +0 -41
  577. package/skills/scip-plan/references/high-assurance.md +0 -43
  578. package/skills/scip-plan/references/hyper-optimization.md +0 -50
  579. package/skills/scip-plan/references/tla-model.md +0 -88
  580. package/skills/scip-setup/references/bootstrap-workflow.md +0 -119
  581. package/skills/scip-setup/references/language-verification.md +0 -61
  582. package/skills/scip-setup/references/lifecycle-commands.md +0 -119
  583. package/skills/scip-setup/references/per-repo-triage.md +0 -24
  584. package/skills/scip-verify/SKILL.md +0 -229
  585. package/skills/scip-verify/agents/openai.yaml +0 -4
  586. package/skills/scip-verify/references/calibrate-detectors.md +0 -170
@@ -1,162 +0,0 @@
1
- # Maintainability: hidden policy, scattered concepts, weak boundaries
2
-
3
- Maintainability is the degree to which real code units let a maintainer
4
- understand, verify, and change behavior without rediscovering hidden
5
- knowledge. Use for hidden policies, scattered concepts, accidental
6
- variation, weak boundaries, system compression, architecture smells, and
7
- structural refactor opportunities beyond a health score.
8
-
9
- Ground all claims in files, symbols, references, call graphs, dependencies,
10
- surfaces, and blast radius rather than opinion. Do not chase health scores —
11
- detector counts are clues, not objectives. Name concrete referents (specific
12
- files/symbols) before naming a code smell. Only add an abstraction when it
13
- removes hidden policy, names a lifecycle, enforces a rule, or reduces
14
- concept count — never for its own sake; prefer deletion, inlining, merging,
15
- generation, or enforcement of an existing mechanism before introducing a
16
- broad new framework.
17
-
18
- ## Vocabulary
19
-
20
- - **Code smell** — an observable codebase fact that predicts avoidable
21
- future mistakes because the same knowledge must be rediscovered,
22
- synchronized, or defended in more than one place.
23
- - **Concept boundary** — the line around code units that exist for one
24
- reason to change.
25
- - **Hidden policy** — a rule for choosing among several plausible behaviors
26
- that lives in local branches, comments, conventions, or caller folklore
27
- instead of a named mechanism.
28
- - **Lifecycle** — a repeatable sequence of states or steps that makes a
29
- result valid.
30
- - **Accidental variation** — difference in code shape that does not
31
- correspond to behavior, domain facts, runtime constraints, or external
32
- contracts.
33
- - **Essential variation** — difference that must remain because the real
34
- units differ: language grammars, user-visible APIs, runtime environments,
35
- or compatibility boundaries. Preserve it; do not remove it.
36
- - **System compression** — replacing several mechanisms that perform the
37
- same role, policy, lifecycle, or surface job with fewer named mechanisms
38
- that preserve behavior.
39
- - **Unifying definition** — the single essential trait that makes several
40
- code sites one concept. Any scattered-concept or consolidation claim must
41
- ship its unifying definition; if no such trait covers every cited site,
42
- the variation is essential and the sites must not be consolidated. Failing
43
- to state it proves the sites are not one concept — consolidating anyway
44
- packages essential variation into a false abstraction.
45
-
46
- ## Step 1 — Bound the review
47
-
48
- Restate the review question as: "What future-maintenance mistakes does this
49
- structure invite, and what smaller named mechanisms would prevent them
50
- without hiding real variation?" Name the scope as one of: repo, module,
51
- command family, query family, runtime surface, fixture set, or feature path.
52
-
53
- **Complete when:** the review question and scope are both concrete.
54
-
55
- ## Step 2 — Map evidence
56
-
57
- Run, in sequence: `scip-query stats`, `system <scope>`, `surface <scope>`,
58
- `files <pattern>`, `outline <file>`, `deps <file>`, `rdeps <file>`, `trace
59
- <symbol>`, `call-graph <symbol>`, `affected <symbol>`, `change-surface
60
- <file>`.
61
-
62
- - `stats` maps repo-wide index size before bounding the review (complete
63
- coverage).
64
- - `system <scope>` gives the full module map — files, exported symbols with
65
- line ranges, internal deps, reverse deps (complete coverage).
66
- - `surface <scope>` shows which symbols consumers actually use — consumer
67
- paths and consumed symbol identities (complete coverage).
68
- - `change-surface <file>` gives a pre-change briefing of defined symbols,
69
- external consumer counts, and risk levels (bounded coverage).
70
- - `affected <symbol>` computes the transitive closure of symbols that could
71
- break if a candidate symbol changes (bounded coverage).
72
- - `drift --patterns --architecture` finds drift candidates — unused imports
73
- plus declared architecture boundary violations (bounded coverage; opt-in
74
- pattern hits are leads, not confirmed findings).
75
-
76
- Use the cleanup-oriented commands `health`, `similar`, `similar-files`,
77
- `similar-chains`, `extract-candidates`, `wrapper-candidates`,
78
- `passthrough-candidates`, `stale-abstractions`, `drift`, and `cycles` as
79
- evidence-gathering probes during this step, not as final verdicts.
80
-
81
- **Complete when:** concrete units, consumers, tests, fallbacks, adapters,
82
- generated artifacts, and compatibility constraints are all visible.
83
-
84
- ## Step 3 — Build the role inventory
85
-
86
- For each cluster, ask what one concept appears in several places and what
87
- single essential trait makes them one concept — if the trait cannot be
88
- stated, they are not one concept. Also ask: what policy is hidden, what
89
- lifecycle is unnamed, which differences are essential, what must a
90
- maintainer know that the local interface does not admit, and would a
91
- smaller mechanism remove a reason to change, versus merely move code?
92
-
93
- **Complete when:** every candidate smell names its referents and its
94
- future-maintenance failure mode.
95
-
96
- ## Step 4 — Rank pressure
97
-
98
- Severity tiers, most to least severe:
99
-
100
- 1. Hidden correctness or evidence policy spread across modules.
101
- 2. A repeated lifecycle or pipeline with no owner.
102
- 3. Public surface exposing accidental internals.
103
- 4. A large module with unrelated reasons to change.
104
- 5. Tests that encode incident history without contract vocabulary.
105
- 6. Adapter families with repeated capability or fallback shapes.
106
- 7. Suppression comments that document architecture decisions instead of
107
- exceptions.
108
- 8. Thin wrappers and passthroughs that do not buy clarity.
109
-
110
- Reject and do not act on smells that are aesthetic, unverifiable, or false
111
- compression.
112
-
113
- **Complete when:** each target is ranked, skipped, or deferred with
114
- evidence.
115
-
116
- ## Step 5 — Choose a model
117
-
118
- For substantial changes, compare at least two of three models:
119
-
120
- - **Conservative** — delete or inline local bloat.
121
- - **Shape-level** — introduce one small mechanism for a repeated role or
122
- lifecycle.
123
- - **Radical** — replace a scattered surface with metadata, generation, or
124
- enforced policy.
125
-
126
- Evaluate: behavior preserved, concept count removed, blast radius, deletion
127
- potential, false-abstraction failure mode, migration path, and verification
128
- cost.
129
-
130
- **Complete when:** the chosen model removes a concept or policy duplication
131
- rather than merely extracting a helper.
132
-
133
- ## Step 6 — Produce a register or atlas
134
-
135
- For a broad review, write a register under `docs/plans/` unless the user
136
- asks not to edit files; for an implementation, write an atlas before
137
- editing.
138
-
139
- Dispositions: merge, delete, inline, extract, generate, enforce, supersede,
140
- defer, skip.
141
-
142
- Every merge, extract, or generate entry must carry its unifying definition
143
- and its strongest dissenter (the cited site most likely to differ
144
- essentially), plus evidence that the dissenter does not actually differ
145
- essentially. If a dissenter survives review (it really does differ
146
- essentially), the entry moves to disposition `skip` with reason "essential
147
- variation" — but the dissenter stays recorded in the register either way.
148
-
149
- **Complete when:** each opportunity has evidence, disposition, dependency
150
- order, touch map, and validation plan recorded.
151
-
152
- ## Step 7 — Implement and verify (when asked)
153
-
154
- Implement the smallest named mechanism that matches the real concept, and
155
- keep essential variation near the adapter or domain code that knows it.
156
- After implementing, run focused tests and the routed postchecks from
157
- `scip-verify`, then complete that verification skill.
158
-
159
- ## Report
160
-
161
- State the smell addressed, the mechanism introduced or removed, what was
162
- deliberately not compressed, and verification results.
@@ -1,104 +0,0 @@
1
- # Twin drift: same concept, silently diverged copies
2
-
3
- Use when the same concept exists in more than one place under the same or a
4
- near name and the bodies have silently diverged — same-name or near-name
5
- functions across files with diverged bodies, drifted policy thresholds,
6
- one-sided fixes, or consolidating a duplicated concept into one canonical
7
- helper.
8
-
9
- Command shortlist: `twin-drift --json --full` (detector), `duplicate-bodies
10
- --json --full` (cross-check), `code <symbol>`, `refs <symbol>`, `diff-gate
11
- --json`.
12
-
13
- ## Definitions
14
-
15
- A **twin drift group** is a same-leaf-name family of callables spanning at
16
- least two files whose normalized-token bodies are neither identical (that's
17
- `duplicate-bodies`' job) nor unrelated (a homonym like `render` or `parse`)
18
- but partially overlapping — signaling a concept copied once and then edited
19
- independently in only some of its copies.
20
-
21
- **Near-name** means case-insensitive match, or edit-distance ≤ 2 for names of
22
- 8 or more characters.
23
-
24
- ## Detect
25
-
26
- Run `scip-query twin-drift --full` to surface every DIVERGENT and
27
- near-name group in scope; scope it to a module with `-s/--scope <path>` when
28
- the review should be bounded. Record group count, member count, and
29
- `maxDivergence` per group.
30
-
31
- Cross-check results against `scip-query duplicate-bodies --full` —
32
- IDENTICAL groups belong to `duplicate-bodies`, not here; do not re-report
33
- them. Homonyms — groups with similarity below `--min-similarity` (default
34
- 0.3) — are noise and should not be chased unless `--include-homonyms` was
35
- explicitly requested.
36
-
37
- **Complete when:** every group in scope is enumerated with its relationship
38
- (divergent vs. suppressed homonym).
39
-
40
- ## Classify each DIVERGENT group
41
-
42
- Use `scip-query code <symbol>` to read every member's body; use the group's
43
- `firstDivergentTokens` field as a starting point for locating where the
44
- bodies diverge. Assign exactly one label:
45
-
46
- - **Intentional variation** — the copies differ because the domains
47
- genuinely differ (example: a React-specific vs. Vue-specific structural
48
- comparator branching on framework-specific overlap checks). Essential
49
- variation stays, and the reason must be recorded.
50
- - **Drifted policy** — the copies encode what should be one policy (a
51
- threshold, a normalization rule, an edge-case guard) that only some copies
52
- received when it last changed. This is a bug: pick the correct value and
53
- propagate it, or extract the policy into one named function/constant.
54
- - **One-sided fix** — one copy was bugfixed or hardened and its twin(s)
55
- were not. This is a bug: apply the same fix to every member, or
56
- consolidate them.
57
-
58
- **Complete when:** every DIVERGENT group in scope has one of the three
59
- labels with a one-line reason.
60
-
61
- ## Act
62
-
63
- Prefer consolidating a twin-drift group into one exported helper over
64
- leaving parallel copies; when consolidation is unsafe or premature, record
65
- the intent gap explicitly (comment or waiver) rather than silently accepting
66
- the drift.
67
-
68
- For groups being consolidated, pick the canonical member by comparing
69
- consumer counts via `scip-query refs <symbol-in-file-A>` and `scip-query
70
- refs <symbol-in-file-B>` — prefer the member with the most consumers, or the
71
- one in the more general/shared location when consumer counts tie.
72
-
73
- To consolidate: extract or move the canonical body to one exported helper
74
- and update the other members to call it, or delete them outright if they
75
- were pure duplication with different names for caller convenience. Preserve
76
- any classified-essential variation as a parameter or a thin caller-side
77
- branch, not as a second copy of the whole body.
78
-
79
- For groups marked intentional variation, do not force consolidation —
80
- instead record the reason in a comment near one of the members so the next
81
- `twin-drift` run and the next reader both see it was considered.
82
-
83
- **Complete when:** every DIVERGENT group is either consolidated (old copies
84
- gone or forwarding) or has a recorded reason it stays separate.
85
-
86
- ## Verify
87
-
88
- After acting, rerun `scip-query twin-drift` to confirm consolidated groups
89
- no longer appear as DIVERGENT, and run the routed postchecks from
90
- `scip-verify`.
91
-
92
- The twin-partner check inside `scip-query diff-gate` is advisory and never
93
- blocks the gate by itself, but a finding there on your own diff means you've
94
- reproduced the exact defect class this workflow exists to catch — fix it or
95
- explicitly accept it before finishing.
96
-
97
- **Complete when:** `twin-drift` shows no unclassified DIVERGENT groups in
98
- scope and any `diff-gate` findings are resolved or explained.
99
-
100
- ## Report
101
-
102
- List: scope; groups found (total/divergent/suppressed homonyms); each
103
- divergent group with classification and action taken; and the verification
104
- results of `twin-drift --json --full` and `diff-gate --json`.
@@ -1,52 +0,0 @@
1
- ---
2
- name: scip-diagnose
3
- description: Use in a scip-query-indexed repo when something is broken, crashing, failing a test, returning wrong data, or regressed — one bug, a recurring family pointing at one design flaw, or a raw issue/ticket needing a fix packet. Also use proactively to prove whether a parser/AST branch is reachable or dead, even with no reported failure. Distinct from the `debugging` skill: that one supplies the general method (reproduce on demand, observe rather than infer, one variable at a time); this one supplies SCIP evidence (trace, refs, dataflow) in an indexed repo. Use both together. Distinct from `incident-review`, which is postmortem methodology after an outage rather than finding a live cause.
4
- commands:
5
- - template: "scip-query files <feature-or-error-term>"
6
- when: "Locate the files that can explain an unnormalized report or error."
7
- - template: "scip-query trace <candidate-symbol>"
8
- when: "Connect a candidate cause to its definition and references."
9
- - template: "scip-query call-graph <entry-symbol>"
10
- when: "Trace callers and callees around the observed failure path."
11
- ---
12
-
13
- # scip-diagnose
14
-
15
- <!-- BEGIN GENERATED SKILL COMMANDS -->
16
- ## Commands for this skill
17
-
18
- | Command | Purpose | Returns | Coverage | When |
19
- | --- | --- | --- | --- | --- |
20
- | `scip-query files <feature-or-error-term>` | Find files matching a pattern | matching file paths | `complete` | Locate the files that can explain an unnormalized report or error. |
21
- | `scip-query trace <candidate-symbol>` | Trace a symbol: definition + all references | definition sites with source and signature; referencing files with line numbers | `bounded` | Connect a candidate cause to its definition and references. |
22
- | `scip-query call-graph <entry-symbol>` | Show incoming callers and outgoing callees for a symbol | caller and callee symbol identities with files | `bounded` | Trace callers and callees around the observed failure path. |
23
-
24
- Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
25
- <!-- END GENERATED SKILL COMMANDS -->
26
-
27
- ## Purpose
28
-
29
- Move from a reported failure to a minimal verified fix. This skill covers four related but distinct situations — one bug, a recurring family of bugs pointing at one design flaw, a raw issue report that needs to become a fix packet, and an unverified parser/AST branch that needs to be proven reachable or dead — and routes each to its own evidence-gathering mode.
30
-
31
- This skill has no commands of its own; every mode below draws on the shared `scip-query` vocabulary. Load [`../_shared/SKILL.md`](../_shared/SKILL.md) for freshness, lookup, postcheck, and subagent rules whenever a mode's shortlist is insufficient.
32
-
33
- ## Pick the mode
34
-
35
- | Situation | Mode | Reference |
36
- | --- | --- | --- |
37
- | One reported failure: broken, crashing, failing a test, wrong output, a regression — needs the smallest verified fix | **Debug** | [`references/debug.md`](references/debug.md) |
38
- | The same kind of bug keeps recurring in one subsystem, patching hasn't worked, or the user lists several fixed/observed bugs and asks what is really wrong | **Root cause** | [`references/root-cause.md`](references/root-cause.md) |
39
- | A raw bug report, GitHub issue, support ticket, TODO, or vague defect that has not yet been turned into evidence | **Triage** | [`references/triage.md`](references/triage.md) |
40
- | A conditional branches on a parser/AST node's type, tag, or shape and nobody has checked it against the real parser — dead-branch or wrong-node-type suspicion, tree-sitter grammar mismatch, even with no reported failure | **Probe reachability** | [`references/probe-reachability.md`](references/probe-reachability.md) |
41
-
42
- Pick exactly one mode before gathering evidence. Debug and triage both trace a single failing path, but debug assumes the failure is already pinned down enough to reproduce; triage exists because it isn't — normalize the report first. Root cause is not "debug but more bugs": it requires a falsifiable design-flaw hypothesis, killed rivals, retrodiction, and an executed latent-instance hunt, not just more patches. Probe reachability is the only mode that runs without a reported failure at all — it proves or disproves reachability of code nobody has verified against the real parser.
43
-
44
- ## How the modes relate to each other and to other skills
45
-
46
- - **Debug → Root cause escalation:** if a debug fix is the second or third patch to the same mechanism, stop and switch to root-cause mode instead of shipping another narrow patch.
47
- - **Triage → Debug/Root cause handoff:** triage produces a fix packet with a suspected root cause and a failing-test plan; if the user also asked for the fix, implement from the packet using debug-mode discipline (smallest change, verify, `scip-verify`).
48
- - **Root cause → scip-plan handoff:** root-cause mode diagnoses and hands off; it does not edit application code. The flaw and invariants become `scip-plan`'s current-flow and risk evidence, and the family table and hunt results constrain its slices.
49
- - **vs. `debugging` skill:** that skill supplies the general method — reproduce on demand, observe rather than infer, change one variable at a time. This skill supplies the SCIP-specific evidence (trace, refs, dataflow, blast radius) that method needs in an indexed repo. Use both together; this skill does not replace that discipline.
50
- - **vs. `incident-review`:** that skill is postmortem methodology applied after an outage has already been resolved. This skill finds a live, unresolved cause.
51
- - **vs. `scip-audit`:** structural smells with no bug evidence go to the maintainability scenario in `scip-audit`. A recurring bug family with bug evidence goes to root-cause mode here.
52
- - **Verification:** every mode that ends in a code change verifies with the narrowest repo test or smoke command, then invokes the `scip-verify` skill. Triage-only requests stop at the packet.
@@ -1,4 +0,0 @@
1
- interface:
2
- display_name: "SCIP Diagnose"
3
- short_description: "Find the cause of a failure with SCIP evidence"
4
- default_prompt: "Use $scip-diagnose to trace this failure to its cause and produce the minimal verified fix."
@@ -1,117 +0,0 @@
1
- # Debug: one failure → minimal verified fix
2
-
3
- Use this mode to move from a reported failure to a minimal verified fix. A **bug** is a mismatch between expected behavior and observed behavior in a concrete execution path. A **root cause** is the earliest code fact in that path that explains the mismatch.
4
-
5
- Load shared mechanics from [`../../_shared/SKILL.md`](../../_shared/SKILL.md) only when this shortlist is insufficient.
6
-
7
- ## Commands used in this mode
8
-
9
- | Command | When |
10
- | --- | --- |
11
- | `scip-query files <feature-or-error-term>` | Find the entry point from a feature name or error term (complete coverage: matching file paths). |
12
- | `scip-query outline <candidate-file>` | Enumerate symbols in a candidate file while narrowing the entry point. |
13
- | `scip-query trace <candidate-symbol>` | Find the entry point: definition plus every reference (bounded coverage: definition sites with source/signature, referencing files with line numbers). |
14
- | `scip-query code <candidate-symbol>` | Read the exact source at the candidate entry point or callee. |
15
- | `scip-query kind-counts` / `scip-query by-kind` | Orient in an unfamiliar codebase during entry-point discovery. |
16
- | `scip-query call-graph <entry-symbol>` | Follow execution: callers and callees along the failing path (bounded coverage). |
17
- | `scip-query refs <state-or-api-symbol>` | Follow execution: every referencing site of shared state or an API symbol. |
18
- | `scip-query fan-in <suspect-symbol>` / `scip-query fan-out <suspect-file>` | Follow execution: who depends on the suspect symbol/file, and what it depends on. |
19
- | `scip-query dataflow <symbol-or-variable>` | Follow data: producers, consumers, and usage sites (bounded coverage). |
20
- | `scip-query slice <symbol-or-variable>` / `--forward` | Follow data: backward and forward slices from the suspect value. |
21
- | `scip-query similar <suspect-symbol> --full` | Compare nearby implementations for missing guards or handling (bounded coverage: symbol pairs, similarity scores, shared evidence). |
22
- | `scip-query similar <suspect-symbol> <similar-symbol> --plan` | Compare two specific implementations directly. |
23
- | `scip-query similar-files <suspect-file> --full` | Compare nearby files for missing handling. |
24
- | `scip-query change-surface <suspect-file> --full` | Bound the fix: exports, consumers, and blast-radius risk (bounded coverage). |
25
- | `scip-query affected <suspect-symbol>` | Bound the fix: transitive closure of symbols that could break. |
26
-
27
- ## Rules
28
-
29
- 1. Reproduce or restate the failure before editing.
30
- 2. Use scip-query to find entry points, call paths, data flow, and blast radius.
31
- 3. Prefer one narrow fix over broad cleanup.
32
- 4. Verify with the narrowest repo test or smoke command, then invoke `scip-verify`.
33
- 5. A root-cause claim whose fix crosses a file boundary requires a rival: state the next-most-plausible explanation for the same symptom and run the observation that separates them. A root cause with no rival considered is a guess presented with unearned confidence.
34
-
35
- ## Workflow
36
-
37
- ### 1. Pin the failure
38
-
39
- Record observed behavior, expected behavior, the reproducing command/route/UI action/test/job/file, error text or wrong output, and the regression window if known.
40
-
41
- If no reproduction is provided, build the smallest runnable reproduction from existing tests, scripts, CLI, or app entry points.
42
-
43
- This step is complete only when the mismatch is concrete enough to test, or the missing external fact is named.
44
-
45
- ### 2. Find the entry point
46
-
47
- ```bash
48
- scip-query files <feature-or-error-term>
49
- scip-query outline <candidate-file>
50
- scip-query trace <candidate-symbol>
51
- scip-query code <candidate-symbol>
52
- ```
53
-
54
- Use `kind-counts` or `by-kind` when the codebase is unfamiliar.
55
-
56
- This step is complete only when the failing path has a plausible entry point with source evidence.
57
-
58
- ### 3. Follow execution and data
59
-
60
- ```bash
61
- scip-query call-graph <entry-symbol>
62
- scip-query code <callee-symbol>
63
- scip-query refs <state-or-api-symbol>
64
- scip-query fan-in <suspect-symbol>
65
- scip-query fan-out <suspect-file>
66
- scip-query dataflow <symbol-or-variable>
67
- scip-query slice <symbol-or-variable>
68
- scip-query slice <symbol-or-variable> --forward
69
- ```
70
-
71
- Stop expanding the trace when the first code fact that can cause the symptom is found.
72
-
73
- When a candidate cause emerges, state it as a hypothesis alongside one rival — the next-most-plausible explanation for the same symptom. Name the observation that distinguishes them (a log line, a probe, a narrower test) and execute it. Choose the discriminator that is cheapest to run, not the one most likely to confirm the preferred hypothesis.
74
-
75
- This step is complete only when the path explains the symptom or the missing evidence is made explicit.
76
-
77
- ### 4. Compare nearby implementations
78
-
79
- ```bash
80
- scip-query similar <suspect-symbol> --full
81
- scip-query similar <suspect-symbol> <similar-symbol> --plan
82
- scip-query similar-files <suspect-file> --full
83
- ```
84
-
85
- Use implementation comparisons to find missing guards, conversions, lifecycle steps, or error handling, while preserving essential differences.
86
-
87
- This step is complete only when comparisons either support the fix or are rejected with a stated reason.
88
-
89
- ### 5. Bound and fix
90
-
91
- ```bash
92
- scip-query change-surface <suspect-file> --full
93
- scip-query affected <suspect-symbol>
94
- ```
95
-
96
- Make the smallest code change that fixes the root cause.
97
-
98
- This step is complete only when the changed symbol/file is justified by blast-radius evidence.
99
-
100
- ### 6. Verify
101
-
102
- Run the reproduction, a narrow test or smoke command, and invoke `scip-verify`.
103
-
104
- ## Report
105
-
106
- ```markdown
107
- Bug:
108
- Entry point:
109
- Root cause:
110
- Rival considered:
111
- Discriminator: <the executed observation that separated them>
112
- Fix:
113
- Verification:
114
- Remaining risk:
115
- ```
116
-
117
- Do not present a guess as a root cause. A root cause with no rival considered and no executed discriminator is a guess. If no root cause is proven, state the missing evidence instead of asserting a cause.
@@ -1,77 +0,0 @@
1
- # Probe reachability: prove a parser/AST branch reachable or dead
2
-
3
- Use this mode for code that branches on a parser or AST node's type or shape (`node.type === '...'`, a grammar-specific tag, a regex over token shape) where nobody has verified the real parser ever produces that type or shape. A branch written from documentation, memory, or a similar grammar in another language can be permanently dead: it looks correct, compiles, and is never exercised by a single test, because the input that should reach it never reaches it under the actual parser. This mode runs without any reported failure — the trigger is an unverified branch, not a bug report.
4
-
5
- Load shared mechanics from [`../../_shared/SKILL.md`](../../_shared/SKILL.md) only when this shortlist is insufficient.
6
-
7
- ## Commands used in this mode
8
-
9
- | Command | When |
10
- | --- | --- |
11
- | `scip-query outline <file> --signatures` | Enumerate branches: symbol tree with signatures for the target file (complete coverage: symbol names, nesting, line ranges). |
12
- | `scip-query code <symbol>` | Enumerate branches: read each branch condition's exact node-type check (complete coverage: definition identity, source, line range). |
13
- | `scip-query trace <symbol>` | Enumerate branches: confirm the function's only caller/entry point (bounded coverage). |
14
-
15
- ## Rules
16
-
17
- 1. Never trust a branch condition by reading it; run the real parser on an input constructed to hit it.
18
- 2. Write scratch probe scripts only under the session scratchpad, never inside the repository — they are throwaway evidence, not product code.
19
- 3. Never create a git worktree and never symlink `node_modules` for this mode's probes; import the parser module directly (from `src/` via a TypeScript runner, or from the built package) in a standalone script that needs no repo-root install step.
20
- 4. A branch is a finding whether it is truly unreachable (dead code) or reachable but under a different node-type string than the code checks (a silent misclassification, which is worse than dead code because it fails without raising anything).
21
- 5. Completion requires every node-type/shape branch in the target function to have either a reached probe or a filed finding — partial coverage is not done.
22
-
23
- ## Workflow
24
-
25
- ### 1. Enumerate branch conditions
26
-
27
- ```bash
28
- scip-query outline <target-file> --signatures
29
- scip-query code <target-function>
30
- ```
31
-
32
- List every conditional that tests a node's `type`, tag name, or shape (an `if`/`else if` chain over `node.type === '...'`, a `switch` on a grammar tag, or a regex matched against node text standing in for a type check). Record the exact string or pattern each branch expects.
33
-
34
- This step is complete only when every node-type/shape branch in the target function is listed with its file:line and the exact condition text.
35
-
36
- ### 2. Construct a minimal input per branch
37
-
38
- For each branch, write the smallest source snippet in the target language that should, by the language's grammar, produce a node of that type or shape at that point in the tree. Prefer one snippet per branch; note when a single snippet is expected to exercise more than one sibling branch in a walk.
39
-
40
- This step is complete only when every branch has a candidate input snippet.
41
-
42
- ### 3. Run the real parser
43
-
44
- Write one scratch script under the session scratchpad (never in the repo) that imports the actual parser module used by the target code — not a reimplementation, not a mental model of the grammar — and, for each candidate snippet:
45
-
46
- 1. Parses it.
47
- 2. Walks the resulting tree and collects every node type actually produced.
48
- 3. Reports whether the branch's expected type/shape appears anywhere in that set.
49
-
50
- Run the script (for example `npx vite-node <scratch-script>` from the repo root, or a plain `node` script importing the built package) and record reached/unreached per branch.
51
-
52
- This step is complete only when every branch from step 1 has a recorded reached/unreached result from an actual parser run, not an inference.
53
-
54
- ### 4. File findings for unreached branches
55
-
56
- For each unreached branch, determine and record which of these it is:
57
-
58
- - **Dead branch**: the grammar never produces this node type/shape anywhere reachable from valid source in this language; the branch is unreachable code. Fix: delete it, or replace it with the branch that actually covers the intended case (found by inspecting the node types the parser did produce for the candidate input).
59
- - **Wrong node-type string**: the intended case is real and common, but the branch checks the wrong string (a rename in the grammar, a typo, or a mismatch borrowed from a different language/version). Fix: correct the string to what step 3 actually observed.
60
-
61
- This step is complete only when every unreached branch has one of these two labels and a fix direction.
62
-
63
- ### 5. Report
64
-
65
- ```markdown
66
- Target: <file:function>
67
-
68
- Branches:
69
- | Branch condition | Candidate input | Reached? | Finding |
70
- | --- | --- | --- | --- |
71
-
72
- Findings:
73
-
74
- - <branch> — dead branch / wrong node-type string — fix: <direction>
75
- ```
76
-
77
- Completion requires every branch from step 1 to appear in the table with a reached/unreached result.