scip-query 0.20.0 → 0.21.1

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 (594) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/README.md +255 -884
  3. package/dist/augment-vue-worker.js +1 -1
  4. package/dist/by-kind-XXGZGNZ6.js +2 -0
  5. package/dist/call-graph-VGY3R4L3.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-27OUNZW5.js +3 -0
  10. package/dist/chunk-2LJLEM5B.js +2 -0
  11. package/dist/chunk-3KXFB2FM.js +2 -0
  12. package/dist/chunk-3T5U2EQ2.js +2 -0
  13. package/dist/chunk-3TNRNKAT.js +2 -0
  14. package/dist/{chunk-PXY7F6Y4.js → chunk-3XQLJG7V.js} +5 -5
  15. package/dist/chunk-3XZELASU.js +2 -0
  16. package/dist/chunk-3YETOKNO.js +4 -0
  17. package/dist/chunk-47WX6UC4.js +2 -0
  18. package/dist/{chunk-7SQQWSY3.js → chunk-4HQYNZ3P.js} +2 -2
  19. package/dist/chunk-4IASLUOP.js +3 -0
  20. package/dist/{chunk-KMKTIO2G.js → chunk-4KIPF45P.js} +2 -2
  21. package/dist/chunk-4SZJF4GK.js +2 -0
  22. package/dist/chunk-4TOU7HHQ.js +2 -0
  23. package/dist/chunk-4ZCLDH6T.js +11 -0
  24. package/dist/{chunk-DQGFVPUV.js → chunk-527HV7JY.js} +3 -3
  25. package/dist/{chunk-ZTETIQ35.js → chunk-5BJPJUXF.js} +2 -2
  26. package/dist/chunk-5J3A6RBZ.js +16 -0
  27. package/dist/chunk-5KIJMEPC.js +2 -0
  28. package/dist/{chunk-JDOEX4E6.js → chunk-5QM7QT5B.js} +2 -2
  29. package/dist/chunk-5Z2H76VD.js +11 -0
  30. package/dist/chunk-63TFRBMB.js +2 -0
  31. package/dist/chunk-67FK5KGV.js +3 -0
  32. package/dist/chunk-6DO3VBLV.js +2 -0
  33. package/dist/chunk-6LS3IG2I.js +13 -0
  34. package/dist/chunk-6QN4FYQW.js +2 -0
  35. package/dist/chunk-6X4KO5A7.js +11 -0
  36. package/dist/chunk-743MEVFJ.js +8 -0
  37. package/dist/chunk-7G2WIVIX.js +2 -0
  38. package/dist/chunk-7KCZELVM.js +2 -0
  39. package/dist/chunk-7MUHSZGN.js +3 -0
  40. package/dist/chunk-7YZGSLW6.js +3 -0
  41. package/dist/chunk-7Z4GMCHM.js +117 -0
  42. package/dist/{chunk-32LVLCLN.js → chunk-AAOEROT3.js} +3 -3
  43. package/dist/chunk-AFRS7WJU.js +26 -0
  44. package/dist/chunk-ANCHW2R4.js +57 -0
  45. package/dist/{chunk-SXP2MBJH.js → chunk-AQF35NGT.js} +2 -2
  46. package/dist/chunk-ARGPDW2Y.js +6 -0
  47. package/dist/chunk-B3AREUQK.js +16 -0
  48. package/dist/chunk-BCTCADNB.js +2 -0
  49. package/dist/chunk-BM4OTGSY.js +3 -0
  50. package/dist/chunk-BMKTDJI6.js +16 -0
  51. package/dist/chunk-BOJ5SVE2.js +2 -0
  52. package/dist/{chunk-WXZLAAWK.js → chunk-BVR44XXB.js} +2 -2
  53. package/dist/{chunk-RUJURYSV.js → chunk-BYXWXLKM.js} +2 -2
  54. package/dist/chunk-BZCRHP46.js +3 -0
  55. package/dist/chunk-BZYSGZRK.js +2 -0
  56. package/dist/chunk-C52Q3JEQ.js +2 -0
  57. package/dist/chunk-C7WSQA6A.js +21 -0
  58. package/dist/{chunk-BDCC2NPY.js → chunk-CNT4ND5O.js} +2 -2
  59. package/dist/chunk-CQVDALWQ.js +2 -0
  60. package/dist/chunk-CTO3TRX7.js +2 -0
  61. package/dist/chunk-CXT3GZSQ.js +2 -0
  62. package/dist/{chunk-JVYA47YU.js → chunk-DGM2RJ3I.js} +2 -2
  63. package/dist/{chunk-7PIO7NKH.js → chunk-DK6MB565.js} +2 -2
  64. package/dist/chunk-DNPETNXT.js +2 -0
  65. package/dist/chunk-DRENNWRG.js +2 -0
  66. package/dist/chunk-DUDUIT5P.js +2 -0
  67. package/dist/chunk-DXEJ4FLZ.js +21 -0
  68. package/dist/chunk-DXYMTQZ4.js +2 -0
  69. package/dist/chunk-DZA7MQMU.js +6 -0
  70. package/dist/{chunk-ZHXX42OH.js → chunk-DZNWXJN2.js} +4 -4
  71. package/dist/{chunk-CJST5ETY.js → chunk-E6N6YTVM.js} +2 -2
  72. package/dist/chunk-E7CJ6O72.js +2 -0
  73. package/dist/chunk-EJHNTAEE.js +2 -0
  74. package/dist/chunk-EPLE5O5O.js +2 -0
  75. package/dist/chunk-F4FNK44D.js +2 -0
  76. package/dist/chunk-FCGMQETU.js +2 -0
  77. package/dist/chunk-FIO44MVK.js +3 -0
  78. package/dist/chunk-FLSVYEPL.js +2 -0
  79. package/dist/chunk-FOP7HD6H.js +3 -0
  80. package/dist/chunk-FSPENGSU.js +4 -0
  81. package/dist/chunk-FUUDUAKM.js +2 -0
  82. package/dist/chunk-FYCH2EYQ.js +2 -0
  83. package/dist/{chunk-5E4WNAVD.js → chunk-G47MFF47.js} +2 -2
  84. package/dist/chunk-G6VV7ROY.js +2 -0
  85. package/dist/chunk-GBZCVYWA.js +2 -0
  86. package/dist/chunk-GSHTVE56.js +3 -0
  87. package/dist/chunk-GTZFKDP3.js +2 -0
  88. package/dist/{chunk-2HPVVXM5.js → chunk-H2RBDP5S.js} +2 -2
  89. package/dist/chunk-H5EXS3HM.js +2 -0
  90. package/dist/chunk-HR5JYLVV.js +4 -0
  91. package/dist/chunk-HW7FASEL.js +2 -0
  92. package/dist/chunk-HYU4W353.js +10 -0
  93. package/dist/{chunk-FKSELJQF.js → chunk-I2LY3KN7.js} +2 -2
  94. package/dist/chunk-IGBQVEHE.js +2 -0
  95. package/dist/{chunk-3G66UZBH.js → chunk-IH3K5J6K.js} +2 -2
  96. package/dist/chunk-IHGK3SZ7.js +29 -0
  97. package/dist/chunk-IM23CSG5.js +2 -0
  98. package/dist/chunk-IQMGNIGY.js +2 -0
  99. package/dist/chunk-ITF3CWS5.js +2 -0
  100. package/dist/chunk-IZKJQQCQ.js +3 -0
  101. package/dist/chunk-J4HUBIVF.js +5 -0
  102. package/dist/{chunk-AZJQQKDD.js → chunk-JGMD6JGB.js} +2 -2
  103. package/dist/chunk-JLZWYDCZ.js +4 -0
  104. package/dist/chunk-JO6FK3Q5.js +2 -0
  105. package/dist/chunk-JSHDCVUM.js +81 -0
  106. package/dist/chunk-K2DZCH2K.js +2 -0
  107. package/dist/chunk-K63CAPS2.js +23 -0
  108. package/dist/chunk-KBIC6JHJ.js +2 -0
  109. package/dist/chunk-KFFQURUZ.js +2 -0
  110. package/dist/chunk-KFOYCQAJ.js +9 -0
  111. package/dist/chunk-KGKCJFWZ.js +6 -0
  112. package/dist/chunk-KK7GPALL.js +28 -0
  113. package/dist/chunk-L7WRUNKJ.js +2 -0
  114. package/dist/{chunk-W4ETQAXM.js → chunk-LFWB7TOJ.js} +2 -2
  115. package/dist/chunk-LGVTIZPV.js +61 -0
  116. package/dist/chunk-LIWIV26I.js +29 -0
  117. package/dist/chunk-LJMWILX6.js +3 -0
  118. package/dist/{chunk-BPAPWKP6.js → chunk-LXMW6ZAX.js} +8 -8
  119. package/dist/chunk-MFBVUQJZ.js +2 -0
  120. package/dist/{chunk-O64IZ6UX.js → chunk-MLTKGHD2.js} +2 -2
  121. package/dist/chunk-MLTSTKXD.js +5 -0
  122. package/dist/chunk-MR4ZKWO6.js +57 -0
  123. package/dist/{chunk-EN3O7VJA.js → chunk-MRXBLYRE.js} +2 -2
  124. package/dist/chunk-MXNGIEPU.js +3 -0
  125. package/dist/chunk-N4EFQIRX.js +20 -0
  126. package/dist/chunk-ND3BWIVN.js +7 -0
  127. package/dist/chunk-NODZYYGC.js +2 -0
  128. package/dist/chunk-NP4JFCLE.js +133 -0
  129. package/dist/chunk-NQXWWE6S.js +8 -0
  130. package/dist/chunk-NSDPPUDY.js +7 -0
  131. package/dist/chunk-NT4NVEHU.js +18 -0
  132. package/dist/chunk-O2VY47Y5.js +325 -0
  133. package/dist/chunk-O3EX5STE.js +5 -0
  134. package/dist/chunk-O4PZFAXA.js +3 -0
  135. package/dist/chunk-OA2BO4DR.js +2 -0
  136. package/dist/chunk-OFZVFIDF.js +3 -0
  137. package/dist/{chunk-PQCI4SQX.js → chunk-OG5UK2K7.js} +2 -2
  138. package/dist/chunk-OMVNRPST.js +2 -0
  139. package/dist/{chunk-7BAVHKMJ.js → chunk-OU6SDWAM.js} +9 -9
  140. package/dist/{chunk-LY4WC4AD.js → chunk-OY7PCALC.js} +2 -2
  141. package/dist/{chunk-A73XVBCR.js → chunk-P3UFF22M.js} +2 -2
  142. package/dist/chunk-PAZSBPJR.js +3 -0
  143. package/dist/chunk-PJBYDCBQ.js +38 -0
  144. package/dist/chunk-PRLU3I7G.js +79 -0
  145. package/dist/chunk-PU6XDQ2X.js +16 -0
  146. package/dist/{chunk-3CLX5EOX.js → chunk-PWEQ6CZZ.js} +2 -2
  147. package/dist/{chunk-XSRF6Q77.js → chunk-PX6QNUYF.js} +2 -2
  148. package/dist/chunk-Q4MRRB3C.js +3 -0
  149. package/dist/chunk-QGVUPYBC.js +35 -0
  150. package/dist/chunk-QH5Q6M5C.js +2 -0
  151. package/dist/chunk-QLWZUFDT.js +2 -0
  152. package/dist/chunk-QN2AI3D2.js +3 -0
  153. package/dist/{chunk-JAYYFEQY.js → chunk-QZCACNV5.js} +2 -2
  154. package/dist/chunk-RNKRYK6B.js +4 -0
  155. package/dist/chunk-RSUH7G5T.js +29 -0
  156. package/dist/chunk-RZWBTKXO.js +5 -0
  157. package/dist/chunk-SBFDPHKH.js +4 -0
  158. package/dist/{chunk-HX4GQPZP.js → chunk-SGSPCEFC.js} +3 -3
  159. package/dist/chunk-SIGVQT43.js +2 -0
  160. package/dist/chunk-SRIZDEWX.js +4 -0
  161. package/dist/chunk-SV2LEFVM.js +2 -0
  162. package/dist/chunk-T2PBOVDI.js +3 -0
  163. package/dist/chunk-TP2X2C2Y.js +3 -0
  164. package/dist/chunk-U2MNECDU.js +2 -0
  165. package/dist/chunk-U7DOYZDH.js +2 -0
  166. package/dist/chunk-UAQQR55F.js +2 -0
  167. package/dist/chunk-UBETC3Q2.js +2 -0
  168. package/dist/chunk-UEQORB2A.js +2 -0
  169. package/dist/chunk-UM56ZET4.js +38 -0
  170. package/dist/chunk-UXNXOMXJ.js +2 -0
  171. package/dist/{chunk-6SHPK5ZE.js → chunk-V6XENWOF.js} +2 -2
  172. package/dist/chunk-VJAD5WX5.js +2 -0
  173. package/dist/chunk-VRJG7N3I.js +453 -0
  174. package/dist/chunk-W7HN6V4E.js +7 -0
  175. package/dist/chunk-WCIKJ2E3.js +3 -0
  176. package/dist/chunk-WEXQYJY3.js +5 -0
  177. package/dist/chunk-WOPZX5GM.js +2 -0
  178. package/dist/chunk-WRQXLNYE.js +9 -0
  179. package/dist/{chunk-XKWKXZKW.js → chunk-WV6R37XV.js} +2 -2
  180. package/dist/{chunk-N5W4YZMK.js → chunk-WZ7V4BQV.js} +2 -2
  181. package/dist/chunk-WZRNEVYC.js +2 -0
  182. package/dist/chunk-X5MWO4DM.js +7 -0
  183. package/dist/chunk-XDAUYDFT.js +2 -0
  184. package/dist/{chunk-L7AW2QB5.js → chunk-XDOEHEET.js} +2 -2
  185. package/dist/chunk-XDQX6LDT.js +4 -0
  186. package/dist/chunk-XFRHBAIT.js +2 -0
  187. package/dist/chunk-XIPGCT3D.js +5 -0
  188. package/dist/chunk-XKM5D2XS.js +16 -0
  189. package/dist/chunk-XNF5T4T2.js +4 -0
  190. package/dist/chunk-Y2S4YNLH.js +3 -0
  191. package/dist/chunk-YA72ZUKO.js +2 -0
  192. package/dist/chunk-YBWE6J32.js +43 -0
  193. package/dist/chunk-YCXQQ3YB.js +2 -0
  194. package/dist/chunk-YDTK77JP.js +43 -0
  195. package/dist/chunk-YF25RQER.js +4 -0
  196. package/dist/chunk-YKHL4J3G.js +2 -0
  197. package/dist/chunk-YLNCTPOI.js +4 -0
  198. package/dist/chunk-YR7VRWNX.js +2 -0
  199. package/dist/chunk-YT4IQBET.js +3 -0
  200. package/dist/chunk-YUKYB54I.js +1 -0
  201. package/dist/chunk-Z2KGMIL4.js +2 -0
  202. package/dist/chunk-Z2QB75BS.js +3 -0
  203. package/dist/chunk-Z67JOKRE.js +554 -0
  204. package/dist/chunk-ZGDHC5AT.js +2 -0
  205. package/dist/chunk-ZMS4YCY7.js +2 -0
  206. package/dist/chunk-ZNW5A5VX.js +3 -0
  207. package/dist/{chunk-TFRAYKN6.js → chunk-ZP2WUVZ5.js} +2 -2
  208. package/dist/chunk-ZQUNCTEZ.js +2 -0
  209. package/dist/cli-main.js +8 -0
  210. package/dist/cli.js +1 -3
  211. package/dist/code-AXLJBZ6T.js +2 -0
  212. package/dist/code-B17qEMbt.d.ts +121 -0
  213. package/dist/code-result-json-CTZHAQXJ.js +2 -0
  214. package/dist/command-descriptors-6INSCKLW.js +342 -0
  215. package/dist/{config-types-jVM3D7MA.d.ts → config-types-B9B60MiR.d.ts} +199 -23
  216. package/dist/dataflow-AFXY423Q.js +2 -0
  217. package/dist/{db-B5PM5yNk.d.ts → db-BwIVAYNB.d.ts} +1 -1
  218. package/dist/dependence-slice-2G4X6VSJ.js +2 -0
  219. package/dist/deps-LMCAV5DO.js +2 -0
  220. package/dist/direct-navigation-2ONV22Y2.js +3 -0
  221. package/dist/entry-map-ZOC3VXO5.js +2 -0
  222. package/dist/exploration-topology-BG4v30HZ.d.ts +256 -0
  223. package/dist/file-dep-graph-Bqg3t3Px.d.ts +4 -0
  224. package/dist/file-kind-BKCVMNUf.d.ts +10 -0
  225. package/dist/files-WJQJLHMH.js +2 -0
  226. package/dist/graph-evidence-Bjyky2V4.d.ts +126 -0
  227. package/dist/graph-exploration-contract-CqDsnPQL.d.ts +7 -0
  228. package/dist/{health-Do5TKSJI.d.ts → health-CPp2Jf1Z.d.ts} +33 -34
  229. package/dist/hierarchy-ASNIHAX4.js +2 -0
  230. package/dist/imports-JICEKDKK.js +2 -0
  231. package/dist/index.d.ts +4 -31
  232. package/dist/index.js +1 -1
  233. package/dist/members-C5H2K3MS.js +2 -0
  234. package/dist/methods-KZOZHSD4.js +2 -0
  235. package/dist/next-anchor-candidates-BwMczMvX.d.ts +90 -0
  236. package/dist/output-continuation-command-NX3RH3TP.js +3 -0
  237. package/dist/output-pagination-3OFL2MJV.js +19 -0
  238. package/dist/postinstall.js +1 -1
  239. package/dist/project-reindex-A2SXUH2H.js +3 -0
  240. package/dist/queries/affected.d.ts +22 -4
  241. package/dist/queries/affected.js +1 -1
  242. package/dist/queries/anchors.d.ts +123 -0
  243. package/dist/queries/anchors.js +2 -0
  244. package/dist/queries/architecture.d.ts +3 -2
  245. package/dist/queries/architecture.js +1 -1
  246. package/dist/queries/bottlenecks.d.ts +26 -7
  247. package/dist/queries/bottlenecks.js +1 -1
  248. package/dist/queries/by-kind.d.ts +2 -2
  249. package/dist/queries/by-kind.js +1 -1
  250. package/dist/queries/call-graph.d.ts +17 -3
  251. package/dist/queries/call-graph.js +1 -1
  252. package/dist/queries/change-surface.d.ts +2 -2
  253. package/dist/queries/change-surface.js +1 -1
  254. package/dist/queries/cleanup-plan.d.ts +2 -2
  255. package/dist/queries/cleanup-plan.js +1 -1
  256. package/dist/queries/co-change.d.ts +2 -2
  257. package/dist/queries/co-change.js +1 -1
  258. package/dist/queries/code.d.ts +5 -26
  259. package/dist/queries/code.js +1 -1
  260. package/dist/queries/complexity-hotspots.d.ts +2 -2
  261. package/dist/queries/complexity-hotspots.js +1 -1
  262. package/dist/queries/complexity.d.ts +2 -2
  263. package/dist/queries/complexity.js +1 -1
  264. package/dist/queries/context.d.ts +145 -0
  265. package/dist/queries/context.js +2 -0
  266. package/dist/queries/convergence.d.ts +2 -2
  267. package/dist/queries/convergence.js +1 -1
  268. package/dist/queries/coupling.d.ts +8 -3
  269. package/dist/queries/coupling.js +1 -1
  270. package/dist/queries/cycles.d.ts +34 -7
  271. package/dist/queries/cycles.js +1 -1
  272. package/dist/queries/dataflow.d.ts +40 -14
  273. package/dist/queries/dataflow.js +1 -1
  274. package/dist/queries/dead.d.ts +2 -2
  275. package/dist/queries/dead.js +1 -1
  276. package/dist/queries/decorative-checkers.d.ts +3 -3
  277. package/dist/queries/decorative-checkers.js +1 -1
  278. package/dist/queries/deep-chains.d.ts +4 -38
  279. package/dist/queries/deep-chains.js +1 -1
  280. package/dist/queries/dependence-slice.d.ts +47 -0
  281. package/dist/queries/dependence-slice.js +2 -0
  282. package/dist/queries/dependency-depth.d.ts +49 -0
  283. package/dist/queries/dependency-depth.js +2 -0
  284. package/dist/queries/deps.d.ts +4 -2
  285. package/dist/queries/deps.js +1 -1
  286. package/dist/queries/diff-impact.d.ts +3 -3
  287. package/dist/queries/diff-impact.js +1 -1
  288. package/dist/queries/doc-drift.d.ts +4 -4
  289. package/dist/queries/doc-drift.js +1 -1
  290. package/dist/queries/drift.d.ts +2 -2
  291. package/dist/queries/drift.js +1 -1
  292. package/dist/queries/duplicate-bodies.d.ts +2 -2
  293. package/dist/queries/duplicate-bodies.js +1 -1
  294. package/dist/queries/entry-map.d.ts +121 -0
  295. package/dist/queries/entry-map.js +2 -0
  296. package/dist/queries/evidence.d.ts +70 -0
  297. package/dist/queries/evidence.js +2 -0
  298. package/dist/queries/extract-candidates.d.ts +2 -2
  299. package/dist/queries/extract-candidates.js +1 -1
  300. package/dist/queries/fan.d.ts +18 -5
  301. package/dist/queries/fan.js +1 -1
  302. package/dist/queries/files.d.ts +2 -2
  303. package/dist/queries/files.js +1 -1
  304. package/dist/queries/health.d.ts +4 -3
  305. package/dist/queries/health.js +1 -1
  306. package/dist/queries/hierarchy.d.ts +5 -3
  307. package/dist/queries/hierarchy.js +1 -1
  308. package/dist/queries/hotspots.d.ts +11 -5
  309. package/dist/queries/hotspots.js +1 -1
  310. package/dist/queries/imports.d.ts +2 -2
  311. package/dist/queries/imports.js +1 -1
  312. package/dist/queries/incomplete-migration.d.ts +4 -4
  313. package/dist/queries/incomplete-migration.js +1 -1
  314. package/dist/queries/index.d.ts +56 -136
  315. package/dist/queries/index.js +1 -1
  316. package/dist/queries/isolated.d.ts +2 -2
  317. package/dist/queries/isolated.js +1 -1
  318. package/dist/queries/locality-candidates.d.ts +2 -2
  319. package/dist/queries/locality-candidates.js +1 -1
  320. package/dist/queries/members.d.ts +2 -2
  321. package/dist/queries/members.js +1 -1
  322. package/dist/queries/methods.d.ts +2 -2
  323. package/dist/queries/methods.js +1 -1
  324. package/dist/queries/not-implemented.d.ts +3 -3
  325. package/dist/queries/not-implemented.js +1 -1
  326. package/dist/queries/outline.d.ts +2 -2
  327. package/dist/queries/outline.js +1 -1
  328. package/dist/queries/passthrough-candidates.d.ts +5 -9
  329. package/dist/queries/passthrough-candidates.js +1 -1
  330. package/dist/queries/plan-context.d.ts +27 -64
  331. package/dist/queries/plan-context.js +1 -1
  332. package/dist/queries/react-component-duplicates.d.ts +2 -2
  333. package/dist/queries/react-component-duplicates.js +1 -1
  334. package/dist/queries/react-hook-candidates.d.ts +2 -2
  335. package/dist/queries/react-hook-candidates.js +1 -1
  336. package/dist/queries/react-large-component-pressure.d.ts +2 -2
  337. package/dist/queries/react-large-component-pressure.js +1 -1
  338. package/dist/queries/recent-duplicates.d.ts +2 -2
  339. package/dist/queries/recent-duplicates.js +1 -1
  340. package/dist/queries/redundant-reexports.d.ts +2 -2
  341. package/dist/queries/redundant-reexports.js +1 -1
  342. package/dist/queries/reference-neighborhood.d.ts +4 -0
  343. package/dist/queries/reference-neighborhood.js +2 -0
  344. package/dist/queries/reference-reachability.d.ts +48 -0
  345. package/dist/queries/reference-reachability.js +2 -0
  346. package/dist/queries/refs.d.ts +2 -2
  347. package/dist/queries/refs.js +1 -1
  348. package/dist/queries/self-audit.d.ts +2 -2
  349. package/dist/queries/self-audit.js +1 -1
  350. package/dist/queries/similar-chains.d.ts +2 -2
  351. package/dist/queries/similar-chains.js +1 -1
  352. package/dist/queries/similar-files.d.ts +2 -2
  353. package/dist/queries/similar-files.js +1 -1
  354. package/dist/queries/similar-signatures.d.ts +2 -2
  355. package/dist/queries/similar-signatures.js +1 -1
  356. package/dist/queries/similar.d.ts +2 -2
  357. package/dist/queries/similar.js +1 -1
  358. package/dist/queries/slice.d.ts +3 -36
  359. package/dist/queries/slice.js +1 -1
  360. package/dist/queries/source-inspection.d.ts +209 -0
  361. package/dist/queries/source-inspection.js +2 -0
  362. package/dist/queries/source-search.d.ts +13 -0
  363. package/dist/queries/source-search.js +2 -0
  364. package/dist/queries/stale-abstractions.d.ts +2 -2
  365. package/dist/queries/stale-abstractions.js +1 -1
  366. package/dist/queries/stats.d.ts +2 -2
  367. package/dist/queries/surface.d.ts +13 -4
  368. package/dist/queries/surface.js +1 -1
  369. package/dist/queries/symbols.d.ts +2 -2
  370. package/dist/queries/symbols.js +1 -1
  371. package/dist/queries/system-map.d.ts +449 -0
  372. package/dist/queries/system-map.js +2 -0
  373. package/dist/queries/system.d.ts +5 -3
  374. package/dist/queries/system.js +1 -1
  375. package/dist/queries/test-quality.d.ts +2 -2
  376. package/dist/queries/test-quality.js +1 -1
  377. package/dist/queries/trace.d.ts +47 -3
  378. package/dist/queries/trace.js +1 -1
  379. package/dist/queries/twin-ab.d.ts +3 -3
  380. package/dist/queries/twin-ab.js +1 -1
  381. package/dist/queries/twin-drift.d.ts +3 -3
  382. package/dist/queries/twin-drift.js +1 -1
  383. package/dist/queries/unused-imports.d.ts +2 -2
  384. package/dist/queries/unused-imports.js +1 -1
  385. package/dist/queries/unused-params.d.ts +2 -2
  386. package/dist/queries/unused-params.js +1 -1
  387. package/dist/queries/value-flow.d.ts +43 -0
  388. package/dist/queries/value-flow.js +2 -0
  389. package/dist/queries/vue-component-duplicates.d.ts +2 -2
  390. package/dist/queries/vue-component-duplicates.js +1 -1
  391. package/dist/queries/vue-composable-candidates.d.ts +2 -2
  392. package/dist/queries/vue-composable-candidates.js +1 -1
  393. package/dist/queries/vue-large-view-pressure.d.ts +2 -2
  394. package/dist/queries/vue-large-view-pressure.js +1 -1
  395. package/dist/queries/wrapper-candidates.d.ts +2 -2
  396. package/dist/queries/wrapper-candidates.js +1 -1
  397. package/dist/query-service-fastpath.js +6 -0
  398. package/dist/query-service-server.js +5 -0
  399. package/dist/refs-ZOORVRQC.js +2 -0
  400. package/dist/refs-pagination-SRCUOYRD.js +2 -0
  401. package/dist/reindex-worker.js +85 -86
  402. package/dist/reindex.d.ts +64 -42
  403. package/dist/reindex.js +93 -77
  404. package/dist/repository-text-C0Q8VYdN.d.ts +19 -0
  405. package/dist/runtime.d.ts +287 -8
  406. package/dist/runtime.js +4 -3
  407. package/dist/rust-semantic-session-server.js +1 -1
  408. package/dist/rust-semantic-session-worker.js +1 -1
  409. package/dist/rust-semantic-worker.js +1 -1
  410. package/dist/{scip-cli-BnEwZRLJ.d.ts → scip-cli-H-n59izO.d.ts} +33 -2
  411. package/dist/slice-NOTBWA7S.js +2 -0
  412. package/dist/source-search-types-Dwz8KeuW.d.ts +79 -0
  413. package/dist/source-snippet-_wrcgmZc.d.ts +15 -0
  414. package/dist/stats-OOJ74B32.js +2 -0
  415. package/dist/surface-BTBCLKNA.js +2 -0
  416. package/dist/symbol-resolution-SVSMX4RN.js +2 -0
  417. package/dist/system-2EIUFP6B.js +2 -0
  418. package/dist/trace-BB2GHQPG.js +2 -0
  419. package/dist/typescript-mailbox-worker.js +1 -1
  420. package/dist/value-flow-OA7AHSUG.js +2 -0
  421. package/dist/watch-server.js +3 -2
  422. package/docs/AGENT_GUIDE.md +133 -476
  423. package/docs/AI_FAILURE_MODES.md +30 -301
  424. package/docs/API.md +1 -1
  425. package/docs/API_EVOLUTION.md +6 -0
  426. package/docs/CLI_JSON_OUTPUT.md +207 -29
  427. package/docs/COMMAND_REFERENCE.md +255 -154
  428. package/docs/CONFIGURATION_WRITE_SAFETY.md +14 -13
  429. package/docs/DETECTOR_EVIDENCE_CONTRACTS.md +84 -0
  430. package/docs/DETECTOR_GUIDE.md +46 -138
  431. package/docs/DURABILITY.md +7 -1
  432. package/docs/INDEX_GENERATIONS.md +6 -0
  433. package/docs/LOCK_PROTOCOL.md +8 -0
  434. package/docs/REINDEX_METADATA_COMPATIBILITY.md +13 -3
  435. package/docs/SECURITY_MODEL.md +39 -42
  436. package/docs/accuracy-audit-checklist.md +4 -0
  437. package/docs/accuracy-hardening-goal.md +9 -2
  438. package/docs/analyzer-inventory.md +59 -264
  439. package/docs/analyzer-validation-protocol.md +62 -170
  440. package/docs/architecture-coherence-vision.md +18 -12
  441. package/docs/locality-analyzer-design.md +1 -1
  442. package/docs/schemas/cli-json-envelope.schema.json +212 -27
  443. package/docs/schemas/cli-json-export-receipt.schema.json +25 -0
  444. package/docs/schemas/cli-output-page.schema.json +1 -1
  445. package/docs/schemas/observation-receipt.schema.json +164 -0
  446. package/docs/schemas/project-config.schema.json +37 -45
  447. package/docs/schemas/suppression-record.schema.json +1 -34
  448. package/package.json +69 -11
  449. package/skills/concrete-plan/SKILL.md +8 -0
  450. package/skills/concrete-plan/agents/openai.yaml +4 -0
  451. package/skills/scip-explore/SKILL.md +49 -61
  452. package/skills/scip-explore/agents/openai.yaml +3 -3
  453. package/skills/scip-explore/references/delegated-exploration.md +51 -0
  454. package/skills/scip-explore/references/external-evidence.md +72 -0
  455. package/skills/scip-explore/references/information-model.md +51 -0
  456. package/skills/scip-explore/scripts/capture-evidence.mjs +666 -0
  457. package/skills/scip-integrity-audit/SKILL.md +185 -0
  458. package/skills/scip-integrity-audit/agents/openai.yaml +4 -0
  459. package/skills/scip-plan/SKILL.md +67 -49
  460. package/skills/scip-plan/agents/openai.yaml +3 -3
  461. package/skills/scip-query/SKILL.md +98 -77
  462. package/skills/scip-query/agents/openai.yaml +3 -3
  463. package/skills/scip-setup/SKILL.md +10 -102
  464. package/skills/scip-setup/agents/openai.yaml +3 -3
  465. package/dist/chunk-26QA6FAI.js +0 -8
  466. package/dist/chunk-2KAZEZ6M.js +0 -2
  467. package/dist/chunk-3ORVDL3H.js +0 -2
  468. package/dist/chunk-46XGSFNI.js +0 -2
  469. package/dist/chunk-4MAK2HOY.js +0 -6
  470. package/dist/chunk-4TURLRL5.js +0 -16
  471. package/dist/chunk-4UQVNCQE.js +0 -2
  472. package/dist/chunk-55Q3WLZX.js +0 -2
  473. package/dist/chunk-5I5G2QOX.js +0 -3
  474. package/dist/chunk-6LDJQXAH.js +0 -2
  475. package/dist/chunk-6O5TICIZ.js +0 -3
  476. package/dist/chunk-7O5IKBTZ.js +0 -16
  477. package/dist/chunk-7S5E7KWT.js +0 -2
  478. package/dist/chunk-7WPLAODU.js +0 -5
  479. package/dist/chunk-AFHORGLH.js +0 -42
  480. package/dist/chunk-AIE7TFJW.js +0 -9
  481. package/dist/chunk-AQOFWNQJ.js +0 -1
  482. package/dist/chunk-B2PX5I6M.js +0 -2
  483. package/dist/chunk-B75HZHUP.js +0 -2
  484. package/dist/chunk-B7PBSLZN.js +0 -2
  485. package/dist/chunk-BBW6JFHN.js +0 -2
  486. package/dist/chunk-BNXCIFVY.js +0 -2
  487. package/dist/chunk-BS2NMXQZ.js +0 -4
  488. package/dist/chunk-C3KV2II6.js +0 -2
  489. package/dist/chunk-C43RDDP4.js +0 -20
  490. package/dist/chunk-DAFAHMNB.js +0 -42
  491. package/dist/chunk-DQLPXMH6.js +0 -8
  492. package/dist/chunk-EKZTZXHZ.js +0 -117
  493. package/dist/chunk-EW2NTSFA.js +0 -18
  494. package/dist/chunk-F3Z4OUDS.js +0 -8
  495. package/dist/chunk-FJH2NW7J.js +0 -66
  496. package/dist/chunk-FTFP6O3L.js +0 -11
  497. package/dist/chunk-FYLK2DEJ.js +0 -2
  498. package/dist/chunk-GH74ASD6.js +0 -11
  499. package/dist/chunk-GMXWZP2B.js +0 -2
  500. package/dist/chunk-GOUBFH5O.js +0 -3
  501. package/dist/chunk-HLF2TX6R.js +0 -2
  502. package/dist/chunk-HX7M4BDI.js +0 -30
  503. package/dist/chunk-HZ72SESS.js +0 -128
  504. package/dist/chunk-IB2N4FIY.js +0 -10
  505. package/dist/chunk-IZYYAFN5.js +0 -2
  506. package/dist/chunk-JFGGXWQF.js +0 -947
  507. package/dist/chunk-JN4NMBEX.js +0 -8
  508. package/dist/chunk-JW56N3KI.js +0 -4
  509. package/dist/chunk-JZ2OXNWB.js +0 -2
  510. package/dist/chunk-KFZNKUNT.js +0 -2
  511. package/dist/chunk-L5GJNV2T.js +0 -8
  512. package/dist/chunk-L7JDSCDF.js +0 -4
  513. package/dist/chunk-LU47HG23.js +0 -14
  514. package/dist/chunk-LVY7NPF7.js +0 -2
  515. package/dist/chunk-MKCDWWGV.js +0 -4
  516. package/dist/chunk-MNE7YG56.js +0 -2
  517. package/dist/chunk-MRXBEXSY.js +0 -26
  518. package/dist/chunk-MV7OWDUX.js +0 -2
  519. package/dist/chunk-NGEXCJJW.js +0 -11
  520. package/dist/chunk-NIW6JDC5.js +0 -29
  521. package/dist/chunk-PBUQFCNB.js +0 -16
  522. package/dist/chunk-POAVPHH7.js +0 -2
  523. package/dist/chunk-QZ4JVECJ.js +0 -2
  524. package/dist/chunk-RDO52JGY.js +0 -2
  525. package/dist/chunk-RJT3TUUZ.js +0 -2
  526. package/dist/chunk-RVLDN63O.js +0 -4
  527. package/dist/chunk-RXOXSKY3.js +0 -2
  528. package/dist/chunk-S7OYBOCK.js +0 -2
  529. package/dist/chunk-SMNXQT5Z.js +0 -3
  530. package/dist/chunk-SRAFT254.js +0 -2
  531. package/dist/chunk-T7YQSHPQ.js +0 -3
  532. package/dist/chunk-UJCOIXDY.js +0 -2
  533. package/dist/chunk-UJPRPGCO.js +0 -13
  534. package/dist/chunk-WCCFZ7V7.js +0 -113
  535. package/dist/chunk-WUPW3UN3.js +0 -3
  536. package/dist/chunk-X54AGLVX.js +0 -2
  537. package/dist/chunk-Y2MVPNKY.js +0 -5
  538. package/dist/chunk-YKUU5AIC.js +0 -3
  539. package/dist/chunk-YLCJLTPL.js +0 -2
  540. package/dist/chunk-YTQVETEO.js +0 -2
  541. package/dist/chunk-Z4N3MZYA.js +0 -38
  542. package/dist/chunk-ZJOOT3BG.js +0 -2
  543. package/dist/chunk-ZK26BAQL.js +0 -2
  544. package/dist/command-descriptors-DSS46KXI.js +0 -642
  545. package/dist/diff-gate-types-B0QYpDv1.d.ts +0 -11
  546. package/dist/direct-navigation-6YHV6IB5.js +0 -3
  547. package/dist/queries/diff-gate.d.ts +0 -253
  548. package/dist/queries/diff-gate.js +0 -2
  549. package/docs/COMMITTED_RECORD_COMPATIBILITY.md +0 -154
  550. package/docs/analyzer-validation-ledger.md +0 -516
  551. package/docs/schemas/outcome-event-record.schema.json +0 -95
  552. package/skills/_shared/SKILL.md +0 -101
  553. package/skills/_shared/agents/openai.yaml +0 -4
  554. package/skills/_shared/references/agent-contract-catalog.md +0 -105
  555. package/skills/_shared/references/command-catalog.md +0 -118
  556. package/skills/_shared/references/detector-precision-and-diffgate.md +0 -59
  557. package/skills/_shared/references/evidence-and-dead-code.md +0 -25
  558. package/skills/scip-audit/SKILL.md +0 -77
  559. package/skills/scip-audit/agents/openai.yaml +0 -4
  560. package/skills/scip-audit/references/claims.md +0 -98
  561. package/skills/scip-audit/references/cleanup.md +0 -100
  562. package/skills/scip-audit/references/directory.md +0 -222
  563. package/skills/scip-audit/references/frontend.md +0 -130
  564. package/skills/scip-audit/references/integrity.md +0 -154
  565. package/skills/scip-audit/references/maintainability.md +0 -162
  566. package/skills/scip-audit/references/twin-drift.md +0 -104
  567. package/skills/scip-diagnose/SKILL.md +0 -52
  568. package/skills/scip-diagnose/agents/openai.yaml +0 -4
  569. package/skills/scip-diagnose/references/debug.md +0 -117
  570. package/skills/scip-diagnose/references/probe-reachability.md +0 -77
  571. package/skills/scip-diagnose/references/root-cause.md +0 -145
  572. package/skills/scip-diagnose/references/triage.md +0 -119
  573. package/skills/scip-explore/references/diagrams.md +0 -40
  574. package/skills/scip-explore/references/language-playbook.md +0 -49
  575. package/skills/scip-improve/SKILL.md +0 -56
  576. package/skills/scip-improve/agents/openai.yaml +0 -4
  577. package/skills/scip-improve/references/cleanup-batches.md +0 -53
  578. package/skills/scip-improve/references/directory-moves.md +0 -53
  579. package/skills/scip-improve/references/doc-reconcile.md +0 -30
  580. package/skills/scip-improve/references/frontend-extraction.md +0 -39
  581. package/skills/scip-improve/references/maintainability-mechanism.md +0 -43
  582. package/skills/scip-improve/references/twin-drift.md +0 -35
  583. package/skills/scip-plan/references/api-impact.md +0 -19
  584. package/skills/scip-plan/references/conductor.md +0 -41
  585. package/skills/scip-plan/references/high-assurance.md +0 -43
  586. package/skills/scip-plan/references/hyper-optimization.md +0 -50
  587. package/skills/scip-plan/references/tla-model.md +0 -88
  588. package/skills/scip-setup/references/bootstrap-workflow.md +0 -119
  589. package/skills/scip-setup/references/language-verification.md +0 -61
  590. package/skills/scip-setup/references/lifecycle-commands.md +0 -119
  591. package/skills/scip-setup/references/per-repo-triage.md +0 -24
  592. package/skills/scip-verify/SKILL.md +0 -229
  593. package/skills/scip-verify/agents/openai.yaml +0 -4
  594. package/skills/scip-verify/references/calibrate-detectors.md +0 -170
@@ -1,100 +0,0 @@
1
- # Cleanup: raw signal to confirmed queue
2
-
3
- Turn raw scip-query cleanup signals into a confirmed cleanup queue. Use for
4
- health reports, de-bloat reports, recent AI-residue audits, score-framed
5
- cleanup queues, confirming raw findings, or preparing a cleanup plan.
6
-
7
- This audit never edits application code — it only audits and classifies
8
- signals; applying fixes is `scip-improve`'s job.
9
-
10
- Three common modes, same underlying workflow:
11
-
12
- - **Whole-repo audit** — rank all cleanup signals across the codebase.
13
- - **Recent-AI-residue** — focus specifically on echoes, twins, incomplete
14
- migrations, speculative params, stale agent-facing docs, and hidden
15
- couplings.
16
- - **Score-framed** — explain the health score's deductions and identify the
17
- safest first cleanup batch.
18
-
19
- ## Step 1 — Establish evidence
20
-
21
- Before any sweeping begins, run `scip-query doctor`, `scip-query status
22
- --capabilities`, `scip-query health`, `scip-query capabilities`, and
23
- `scip-query config-validate`.
24
-
25
- **Complete when:** unavailable capabilities are explicitly recorded as
26
- unavailable, not silently skipped.
27
-
28
- ## Step 2 — Sweep signals
29
-
30
- Run every relevant detector class or explicitly record why it is
31
- unavailable — never silently omit a class.
32
-
33
- Core sweep set:
34
-
35
- ```
36
- scip-query cleanup-plan --verify # compiler-verified batched deletion plan
37
- scip-query duplicate-bodies --full # exact duplicate small-body candidates
38
- scip-query recent-duplicates --full # recent code re-implementing established code
39
- scip-query incomplete-migration --full # partially-completed extractions
40
- scip-query unused-params --full
41
- scip-query passthrough-candidates --full
42
- scip-query dead --full
43
- scip-query isolated --full
44
- scip-query cycles
45
- scip-query co-change --full # hidden file-level coupling from git history
46
- scip-query doc-drift --full # docs whose referenced/co-changed code kept moving
47
- ```
48
-
49
- `scip-query health` establishes the composite score and prioritized
50
- action list; `scip-query cleanup-plan --verify` combines graph-fact
51
- dead code with the cascade candidates it unlocks. `scip-query doc-drift
52
- --full` finds stale-doc candidates: code a doc references, or
53
- co-changed with, that kept changing after the doc stopped — run it whenever
54
- the audit is about living-doc drift, not just code cleanup.
55
-
56
- For frontend repos, add the React/Vue duplicate, hook/composable, and
57
- large-component/view detector commands (see `references/frontend.md`) to the
58
- sweep.
59
-
60
- **Optional deep dives**, run only after the main sweep is exhausted:
61
- `scip-query stale-abstractions --full` and `scip-query
62
- wrapper-candidates --full` have near-zero precision on codebases with
63
- intentional layering or ambient types — treat every hit as a lead to
64
- confirm, never a finding on its own.
65
-
66
- ## Step 3 — Confirm each candidate
67
-
68
- Classify every cleanup candidate as exactly one of: **confirmed fix
69
- target**, **intentional design**, **false positive**, or **blocked**.
70
-
71
- To confirm a high-priority candidate, inspect source and graph evidence with
72
- `scip-query code`, `scip-query refs`, `scip-query fan-in`, `scip-query
73
- fan-out`, `scip-query affected`, `scip-query change-surface --full`,
74
- `scip-query similar --plan`, and `scip-query co-change --full`.
75
-
76
- Because a deletion is this audit's scrutiny-ending verdict, a candidate
77
- classified "confirmed fix target" that deletes code must survive refutation
78
- checks before being finalized:
79
-
80
- 1. Run `rg` for the symbol name as a plain string to catch dynamic dispatch,
81
- config keys, serialized references, and CLI/doc text that graph-based
82
- detectors cannot see.
83
- 2. Check for the cross-package barrel re-export gap — the one blind spot
84
- `dead` self-labels as "unconfirmed."
85
-
86
- Record `refutation: survived — <checks run>` on a confirmed-deletion entry
87
- once the blind-spot checks pass, or reclassify the entry if they don't;
88
- either way the note must be recorded.
89
-
90
- ## Report
91
-
92
- Final report must include: health score, classification counts
93
- (confirmed/intentional/false positive/blocked — must cover every collected
94
- signal, none left uncounted), confirmed items with evidence and first safe
95
- action, unconfirmed signals with evidence still needed, unavailable/blocked
96
- checks with reasons, and a recommended first cleanup batch with why it's
97
- safe now.
98
-
99
- A run is complete only when each collected signal is classified and the
100
- next action is visible.
@@ -1,222 +0,0 @@
1
- # Directory architecture: boundaries, locality, and safe moves
2
-
3
- Evaluate, design, reorganize, or migrate folder structure, ownership
4
- boundaries, locality config, messy repos, AI-generated layout, or safe
5
- file-move slices.
6
-
7
- Command shortlist: `system <scope>`, `locality-candidates --json --full`,
8
- `similar-files --full --json`, `cycles`, `architecture --json`, `drift
9
- --architecture`, `co-change --json --full`, `health --write-baseline`,
10
- `diff-gate`, `config-validate --json`.
11
-
12
- ## Definitions
13
-
14
- - **Ownership boundary** — a folder, package, module, or convention that
15
- groups code around one stable responsibility.
16
- - **Dependency edge** — points from code that relies on something to the
17
- code it relies on; for imports, A → B means A imports B.
18
- - **Forbidden edge** — an actual cross-boundary dependency rejected by an
19
- explicit project rule. Directory distance or an unusual import alone does
20
- not make an edge forbidden.
21
- - **Layer** — a responsibility ordered by dependency direction, such as
22
- presentation depending on application.
23
- - **Subsystem** — a responsibility that owns an end-to-end capability, such
24
- as authentication or rendering.
25
- - **Package** — a publication or build unit. **Service** — an independently
26
- running unit. Do not force the layer, subsystem, package, and service
27
- concepts all into one single layer hierarchy.
28
- - **Reciprocal dependency** — dependency traffic in both directions between
29
- two boundaries; it is a review signal because the boundaries exert mutual
30
- change pressure, not proof that either import is wrong.
31
- - **Architecture ratchet** — an enforcement rule that records existing
32
- violations while preventing new ones, allowing a large codebase to improve
33
- without a speculative rewrite.
34
- - **Target structure** — a proposed future layout that expresses an
35
- ownership model, not merely a prettier tree.
36
- - **Migration slice** — the smallest set of file moves and import updates
37
- that can be verified independently.
38
- - **Slop codebase** — one whose files are arranged by accident, convenience,
39
- or recent edits rather than stable ownership rules.
40
-
41
- ## Operating principles
42
-
43
- Start with evidence, not taste. Separate review from migration — do not move
44
- files unless asked. Preserve broad boundaries when evidence shows they are
45
- intentional; do not reward a generic "shared" boundary/directory unless the
46
- shared concept has a name, owner, and cross-boundary consumers. For messy
47
- repos, produce a discovery map and decisions instead of pretending the
48
- target structure is obvious. Prefer small verified moves over large
49
- speculative reorganizations. Configure descriptive boundaries before closing
50
- (declaring) dependency rules. Treat graph shape (dependency structure) as
51
- evidence about responsibilities, never as a substitute for identifying them.
52
-
53
- ## Step 1 — Bound the question
54
-
55
- Classify the request as review, target structure, locality config,
56
- migration plan, or implementation.
57
-
58
- **Complete when:** scope and deliverable are explicit.
59
-
60
- ## Step 2 — Inventory evidence
61
-
62
- Run `stats`, `system <scope>`, `files <pattern>`, `surface <scope>`, `deps
63
- <file>`, `rdeps <file>`, `change-surface <file>`, `plan-context
64
- <file-or-symbol>`, `locality-candidates --json --full`, `cycles`,
65
- `architecture --json`, `drift --architecture`, `co-change`, `similar-files
66
- --min-similarity 0.6 --min-deps 3`, `similar-chains --min-similarity 0.5`,
67
- `recent-duplicates`, and `drift`.
68
-
69
- - `system <scope>` returns module file paths, exported symbols with line
70
- ranges, internal dependencies, and reverse dependencies.
71
- - `locality-candidates --json --full` returns directory-locality and
72
- ancestry candidates from consumer ownership — symbols, current homes,
73
- consumer locality, and suggested homes.
74
- - `similar-files --full --json` returns file pairs with similarity scores
75
- and shared symbols (overlapping dependency profiles).
76
- - `cycles` detects circular dependency chains between files.
77
- - `architecture --json` measures configured boundaries, actual dependency
78
- traffic, forbidden edges, reciprocal pairs, and boundary cycles.
79
- - `drift --architecture` reviews direct drift findings together with
80
- boundary coverage and architecture signals.
81
- - `co-change --json --full` inventories hidden file-level coupling from git
82
- history — files that change together without a dependency edge.
83
-
84
- Also read durable project guidance that names architecture, modules,
85
- ownership, routes, workflows, contracts, or domains.
86
-
87
- **Complete when:** each folder under review has evidence for exports, entry
88
- points, consumers, tests, co-change partners, and claimed ownership rules.
89
-
90
- ## Step 3 — Classify boundary maturity
91
-
92
- Classify each boundary candidate as:
93
-
94
- - **Mature** — repeated, documented, and enforced by imports, tests,
95
- routes, packages, standards, or review history.
96
- - **Emerging** — meaningful and partly repeated but not consistent enough
97
- to configure.
98
- - **Accidental** — a convenience bucket, legacy pile, generated artifact,
99
- recent edit cluster, or mixed reasons to change.
100
-
101
- **Complete when:** mature, emerging, and accidental boundaries are
102
- separated.
103
-
104
- ## Step 4 — Build a descriptive architecture model
105
-
106
- For a large existing codebase, before calling anything a "layer," inventory:
107
- workspace packages/public exports; applications/services/deployable entry
108
- points; domain capabilities/end-to-end subsystems;
109
- persistence/network/rendering/compiler/other technical responsibilities;
110
- tests/routes/contracts/ownership or architecture documentation; and
111
- dependency/co-change evidence showing which files already move as a unit.
112
-
113
- Add mature boundary path patterns to `.scipquery.json` under
114
- `architecture.boundaries` WITHOUT `allowedDependencies` rows first:
115
-
116
- ```json
117
- {
118
- "architecture": {
119
- "boundaries": [
120
- { "name": "domain", "paths": ["src/domain/**"] },
121
- { "name": "runtime", "paths": ["src/runtime/**"] }
122
- ]
123
- }
124
- }
125
- ```
126
-
127
- After adding boundaries, run `scip-query config-validate` then
128
- `scip-query architecture` to check the new boundary configuration.
129
- Use unmapped and ambiguous files to repair boundary membership, and use
130
- actual boundary edges, reciprocal pairs, and strongly connected groups to
131
- test whether boundary names describe real separation.
132
-
133
- **Complete when:** every configured boundary has a stated responsibility and
134
- the mapping gaps are understood.
135
-
136
- ## Step 5 — Declare only supported dependency rules
137
-
138
- An `allowedDependencies` row is closed: an outgoing target omitted from a
139
- present row is forbidden, but a missing row makes no dependency claim at
140
- all. Example closed config:
141
-
142
- ```json
143
- {
144
- "architecture": {
145
- "boundaries": [ ... ],
146
- "allowedDependencies": {
147
- "domain": [],
148
- "runtime": ["domain"]
149
- },
150
- "requireAcyclic": true
151
- }
152
- }
153
- ```
154
-
155
- For each closed `allowedDependencies` row, record the evidence for its
156
- intended direction. Do not copy the current dependency graph into the
157
- allow-list merely to obtain zero findings. Leave emerging or disputed
158
- dependency rules undeclared rather than closing the row prematurely.
159
-
160
- **Complete when:** every forbidden edge is understood as either
161
- implementation debt, a false boundary, or a policy mistake.
162
-
163
- ## Step 6 — Propose structure or decisions
164
-
165
- Structure a directory architecture review/proposal using this exact section
166
- order:
167
-
168
- 1. Scope
169
- 2. Current Structure Map
170
- 3. Boundary Maturity
171
- 4. Descriptive Architecture Model
172
- 5. Dependency Rules
173
- 6. Forbidden-Edge Ledger
174
- 7. Reciprocal and Cycle Review
175
- 8. Target Structure
176
- 9. Move Ledger
177
- 10. Locality Config
178
- 11. No-Move Decisions
179
- 12. Deferred Decisions
180
- 13. Migration Order
181
-
182
- List a decision as No-Move when broad consumers, route/package/contract
183
- surfaces, infrastructure roles, generic shared risk, or weak evidence make a
184
- move harmful.
185
-
186
- **Complete when:** every proposed move has a reason and a verification path.
187
-
188
- ## Step 7 — Ratchet, then implement one slice (when asked)
189
-
190
- For a large repository with existing violations, review the direct findings
191
- with `scip-query drift --architecture` and write the shared health baseline
192
- with `scip-query health --write-baseline`. The baseline records stable
193
- architecture identities by boundary pair, not by whichever example file
194
- happens to sort first.
195
-
196
- The default `scip-query diff-gate` architecture check compares only
197
- architecture identities and does not run every health detector; `diff-gate
198
- --baseline` is the opt-in full health ratchet and does not duplicate
199
- architecture findings. Commit `.scipquery-baseline.json` together with
200
- `.scipquery.json`. A missing baseline causes the architecture gate to report
201
- that enforcement is not enabled — it does NOT silently treat the current
202
- dependency graph as accepted.
203
-
204
- Prefer inspecting the least-broad edge inside a boundary cycle first, then
205
- determine whether the repair is a move, dependency inversion, named shared
206
- contract, boundary merge, or policy correction.
207
-
208
- Before editing to implement a migration slice, state the files to move, the
209
- imports/exports/tests/docs to update, the expected verification, and the
210
- rollback risk.
211
-
212
- After moving the smallest high-confidence slice, run `scip-query
213
- incomplete-migration`, `scip-query recent-duplicates`, and `scip-query
214
- co-change <moved-file-or-config>`. Also run the project's tests or typecheck
215
- for the affected workspace.
216
-
217
- If `.scipquery.json` locality changed, run `scip-query config-validate`,
218
- `scip-query locality-candidates --full`, `scip-query architecture`,
219
- `scip-query drift --architecture`, and `scip-query diff-gate`.
220
-
221
- Then invoke `scip-verify`; the implementation is complete only when imports,
222
- tests, locality signals, and verification are checked.
@@ -1,130 +0,0 @@
1
- # React and Vue maintainability
2
-
3
- Reviews React and Vue frontends as maintainable systems: React as
4
- components, hooks, JSX structure, and behavior lifecycles; Vue as single-file
5
- components, templates, scripts, styles, external scripts, components, and
6
- composables. Both follow the same four-step workflow below; framework-
7
- specific commands and definitions are called out per step.
8
-
9
- ## Definitions
10
-
11
- - **Component duplicate candidate** (React or Vue) — a pair or group of
12
- rendered structures that repeat the same user-facing arrangement,
13
- controls, states, props, or data-presentation shape enough that a shared
14
- component may reduce drift.
15
- - **React hook candidate** — a pair or group of component behaviors that
16
- repeat the same state lifecycle, effects, requests, validation,
17
- persistence, callback policy, or derived-data rule enough that a shared
18
- hook may preserve behavior better.
19
- - **Vue composable candidate** — a pair or group of script behaviors that
20
- repeat the same state lifecycle, effects, requests, validation,
21
- persistence, or derived-data policy enough that a shared composable may
22
- preserve behavior better.
23
- - **Large component/view pressure** — one component, SFC, or linked view
24
- file contains several kinds of knowledge that change for different
25
- reasons. A large file is review pressure, not proof of duplication, by
26
- itself.
27
-
28
- ## Step 1 — Bound and scan
29
-
30
- Pick the narrowest source root, feature area, or changed-file scope that
31
- still includes likely reuse partners.
32
-
33
- **Vue only:** if component references, imported composables, script blocks,
34
- or linked external scripts matter, run `scip-query augment-vue --project
35
- <path-to-tsconfig>` first — it adds compiler-resolved Vue SFC references to
36
- the SQLite index using Volar (complete coverage) and must run before
37
- scanning.
38
-
39
- Then run, all uncapped with `--full --json`:
40
-
41
- **React:**
42
- ```
43
- scip-query react-component-duplicates --scope <scope> --full
44
- scip-query react-hook-candidates --scope <scope> --full
45
- scip-query react-large-component-pressure --scope <scope> --full
46
- scip-query recent-duplicates --scope <scope> --full
47
- scip-query health --scope <scope>
48
- ```
49
-
50
- **Vue:**
51
- ```
52
- scip-query vue-component-duplicates --scope <scope> --full
53
- scip-query vue-composable-candidates --scope <scope> --full
54
- scip-query vue-large-view-pressure --scope <scope> --full
55
- scip-query recent-duplicates --scope <scope> --full
56
- scip-query health
57
- ```
58
-
59
- Every `*-duplicates`/`*-candidates`/`*-pressure` command has bounded
60
- coverage — `--full` is required for the uncapped scan.
61
- `react-component-duplicates`/`vue-component-duplicates` derive structural
62
- similarity from tags, props, events, and bindings (React) or tags, bindings,
63
- slots, and directives (Vue). `recent-duplicates` finds directional pairs:
64
- recent code that re-implements established callable, React, or Vue code.
65
- `health` gives a composite codebase health report (score, findings,
66
- priorities, baselines, coverage notes) scoped to the frontend area.
67
-
68
- **Complete when:** command scope, counts, and uncapped/full status are
69
- recorded.
70
-
71
- ## Step 2 — Cross-check candidates
72
-
73
- - **Component-duplicate-only finding** — inspect for a shared presentational
74
- component or existing component reuse.
75
- - **Hook/composable-candidate-only finding** — inspect for shared behavior,
76
- lifecycle, request, validation, persistence, event, or derived-state
77
- policy.
78
- - **Both overlap** — inspect for a feature-level concept that needs both a
79
- component and a hook/composable boundary.
80
- - **Large-component/view-only finding** — split by reason to change, not by
81
- line count.
82
-
83
- Use `scip-query outline <file>`, `deps <file>`, `rdeps <file>`,
84
- `similar-files --scope <scope>`, and (React) `similar
85
- <closest-existing-component-or-hook>` / (Vue) `recent-duplicates --scope
86
- <scope> --full --json` to validate candidates.
87
-
88
- **Complete when:** each top candidate is classified as reuse, extract,
89
- split, skip, or blocked.
90
-
91
- ## Step 3 — Act on findings
92
-
93
- Prefer reuse over extraction.
94
-
95
- - **React:** extract a component for repeated UI structure, states, props,
96
- slots/children, or design-system composition; extract a hook for repeated
97
- state, effects, requests, subscriptions, memoized derivations, callbacks,
98
- or persistence.
99
- - **Vue:** extract a component for repeated template structure, props,
100
- slots, states, or design-system composition; extract a composable for
101
- repeated state, lifecycle, requests, validation, persistence, derived
102
- data, or event policy.
103
-
104
- Keep domain-specific/essential variation at the call site rather than
105
- abstracting it away.
106
-
107
- Anti-patterns to avoid as a side effect of acting on a finding: do not
108
- create boolean-soup APIs or wrapper components with no policy. Shared
109
- design-system primitives, icons, labels, route names, test IDs, or CSS
110
- utilities alone are not sufficient evidence to justify a duplicate/hook/
111
- composable claim. Similar JSX/templates with different domain lifecycles may
112
- justify a presentational component but does not justify a shared hook or
113
- composable.
114
-
115
- **Complete when:** the chosen action reduces future drift without creating
116
- boolean-soup APIs or wrapper components with no policy.
117
-
118
- ## Step 4 — Verify
119
-
120
- Invoke `scip-verify` and use its authoritative postcheck table, including
121
- the applicable React/Vue, extraction, duplicate, parameter, wrapper,
122
- passthrough, and stale-abstraction checks.
123
-
124
- **Complete when:** acted-on candidate pairs disappear, weaken materially, or
125
- are explicitly accepted as essential variation.
126
-
127
- ## Report
128
-
129
- Executive read, command evidence, candidate groups, recommended action,
130
- post-change proof, and remaining accepted variation.
@@ -1,154 +0,0 @@
1
- # Integrity: is this real?
2
-
3
- Structural review (`references/maintainability.md`) asks "is this well
4
- organized?" This drill set asks **"is this real?"** — it hunts decorative
5
- checkers, adapters written against imagined data, features that have
6
- silently never run, and numbers nobody ever recomputed.
7
-
8
- Command shortlist: `refs <symbol>`, `code <symbol>`, `trace <symbol>`,
9
- `call-graph <symbol>`, `twin-drift -s <scope> --json`,
10
- `twin-ab <symbolA> <symbolB>`, `outline <file> --signatures`,
11
- `decorative-checkers -s <scope> --json`, `not-implemented -s <scope> --json`,
12
- `test-quality -s <scope> --json`.
13
-
14
- ## The stance
15
-
16
- A green result you have never seen fail is unverified: every status word,
17
- banner, and metric is testimony from the code, not evidence about the code,
18
- so cross-examine the producer before believing it. The most dangerous code
19
- is not broken code; it is code that reports success without doing the work.
20
-
21
- ## Run all five drills over the chosen scope
22
-
23
- ### Drill 1 — Falsify every checker
24
-
25
- Inventory everything in scope that accepts/rejects, passes/fails, or
26
- validates (checkers, gates, verifiers, validators) by finding producers with
27
- `refs`/`call-graph` on the status words in their output.
28
-
29
- For each one found, construct an input that MUST fail — a wrong binding, a
30
- corrupt file, an impossible value — and run it. A checker that passes its
31
- should-fail input is decorative and must be filed as a defect, not a note.
32
-
33
- Before filing, attempt the defense: an accusation triggers a rewrite, so
34
- search for the failure exit the drill may have missed — a config-gated
35
- branch, an async rejection, or one-hop delegation (the calibration's known
36
- noise archetypes). File the defect with the executed should-fail input
37
- attached and the defense attempt noted; a defense that succeeds clears the
38
- checker and stays in the record as its witness.
39
-
40
- **Complete when:** every checker in scope has been witnessed rejecting a
41
- constructed should-fail input, or is listed with a reason it cannot be.
42
-
43
- Mechanized by `scip-query decorative-checkers`, which finds
44
- `validate*`/`verify*`/`check*`/`assert*`/`is*`/`has*` callables with no
45
- reachable failure exit anywhere in their body. Run it first to shortlist
46
- candidates before hand-constructing should-fail inputs. It was calibrated
47
- 2026-07-03 against two external repos, is standalone-only, and its noise
48
- archetypes past one-hop delegation are documented in
49
- `docs/validation/2026-07-03-integrity-detector-calibration.md`.
50
-
51
- ### Drill 2 — Diff every adapter against captured reality
52
-
53
- For each parser/adapter of an external format (tool output, XML/JSON
54
- schemas, protocol messages), obtain ONE real sample from the actual source
55
- and diff it against the code's assumptions and the tests' fixtures. Ask of
56
- every fixture whether it was generated from reality or imagined. A parser
57
- and a hand-written fixture can validate each other's shared hallucination
58
- indefinitely, so fixture-vs-code agreement alone is not proof of
59
- correctness.
60
-
61
- **Complete when:** every adapter has been checked against at least one
62
- captured-real sample.
63
-
64
- ### Drill 3 — Autopsy every fallback
65
-
66
- For every catch block, `??` fallback, and degraded mode in scope, produce an
67
- execution witness (a test, a probe, a log) that the PRIMARY path runs —
68
- because a primary path that has never worked looks identical to a healthy
69
- fallback. Use the probe-reachability mode in `scip-diagnose` for parser/AST
70
- branch reachability
71
- when autopsying fallbacks. A fallback that always fires means the feature
72
- above it is dead — "date of death: birth."
73
-
74
- **Complete when:** every fallback's primary path has a witness or a filed
75
- defect.
76
-
77
- Mechanized by `scip-query not-implemented`, which finds reachable placeholder
78
- stubs (`throw new Error('not implemented')`, TODO-comment + return-default,
79
- empty bodies) that a real caller, entry surface, or package-surface export
80
- can actually reach — distinguishing "primary path never built" from `dead`'s
81
- "primary path built but unreferenced." Standalone-only (calibrated
82
- 2026-07-03; 0 live findings on two external repos post-fix). A clean run
83
- means "nothing this shape found," not proof that every fallback's primary
84
- path is live.
85
-
86
- ### Drill 4 — Hand-compute every metric twice
87
-
88
- For each number the system reports (scores, counts, estimates), pick two
89
- concrete instances, compute the expected value by hand from first
90
- principles, and compare — off-by-a-factor errors (double counting, inflated
91
- estimates) survive for years when nobody recomputes a single sample.
92
-
93
- **Complete when:** every reported metric has two hand-verified samples.
94
-
95
- ### Drill 5 — Cross-examine same-concept twins
96
-
97
- Where one concept is computed in more than one place, feed both
98
- implementations the same input and require the same answer. `twin-drift`
99
- finds same-name cases mechanically; same-concept-different-name pairs must be
100
- traced via `refs` and compared via `code` (see `references/twin-drift.md`
101
- for the full drift-classification workflow once a pair is found).
102
-
103
- Once a twin pair is identified, `scip-query twin-ab <symbolA> <symbolB>`
104
- scaffolds a table-driven vitest file that imports both implementations and
105
- asserts equal output — fill in the input table and run it. Disagreement
106
- between twins means at least one is wrong — determine which before
107
- consolidating them.
108
-
109
- **Complete when:** every discovered twin pair has been compared on a shared
110
- input.
111
-
112
- ## Severity
113
-
114
- Rank findings by what the failure does to a user who trusted the output: a
115
- decorative checker or false "verified" banner outranks everything; a
116
- dead-but-fallbacked feature outranks a wrong metric; a wrong metric outranks
117
- structural mess. Route structural findings to `references/maintainability.md`
118
- instead of reporting them here — they are real but they are not lies.
119
-
120
- ## Reporting
121
-
122
- File each finding with: the claim as displayed, the producer (file:line),
123
- the drill that exposed it, the should-fail input or real sample used, and the
124
- fix. The audit is complete only when every drill's exit criterion is met for
125
- the scope, and every defect found has a regression artifact (a test,
126
- fixture, or model) that fails on the pre-fix behavior.
127
-
128
- End with a derived verdict, not an impression:
129
-
130
- ```
131
- Integrity: <scope> — <c> checkers witnessed failing, <a> adapters diffed
132
- against reality, <f> fallback primaries witnessed live, <m> metrics
133
- recomputed, <t> twins compared; <d> defects filed, <u> unverifiable (reasons)
134
- ```
135
-
136
- A suspect scope that produces zero defects is itself a claim: state what
137
- made the suspicion wrong, or rerun the drill that should have caught it.
138
-
139
- ## Your own regression artifacts are in scope too
140
-
141
- A regression artifact that doesn't actually assert anything, or asserts the
142
- same literal it stubbed into its own mock, is a fake witness — the same
143
- "reports success without doing the work" failure mode this drill set hunts
144
- in production code, just relocated to the test suite.
145
-
146
- Run `scip-query test-quality -s <scope>` over the audit's own regression
147
- artifacts (and periodically over the suite at large) to catch fake
148
- witnesses. It catches assertion-free test bodies, a skipped-test ledger with
149
- git-blame age (a skip with no fix date attached is a claim nobody is
150
- checking), and mock-echo (a test that only proves its own stub).
151
- Standalone-only with mixed precision by sub-check (calibrated 2026-07-03):
152
- assertion-free and skipped are high-precision; mock-echo is intentionally
153
- low-precision (syntactic same-literal matching, not dataflow) — treat its
154
- output as a reviewed candidate list, not a verdict.