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,516 +0,0 @@
1
- # Analyzer Validation Ledger
2
-
3
- This ledger records the analyzer evaluation work carried out after the analyzer inventory, validation protocol, and locality design. It is the operating document for keeping analyzer accuracy work traceable end to end.
4
-
5
- The companion documents are:
6
-
7
- - `docs/analyzer-inventory.md`: names the analyzers and their action tiers.
8
- - `docs/analyzer-validation-protocol.md`: defines the review protocol and per-analyzer TP/FP/FN criteria.
9
- - `docs/locality-analyzer-design.md`: defines the locality and organization analyzer behavior.
10
-
11
- ## Source Anchors
12
-
13
- The ledger is anchored to the current tool surface, not memory.
14
-
15
- | Surface | Source | Why it anchors the ledger |
16
- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------- |
17
- | Repo-wide health analysis | `scip-query code health --json` reported `src/queries/health/health.ts:218`, where `health()` runs `runHealthAnalyses()` and `buildHealthReport()` through the health budget that carries full-vs-bounded semantic enrichment. | Every repo-wide analyzer validation must eventually reconcile with health output and scoring. |
18
- | Change-time gate analysis | `scip-query trace diffGate --json` resolves `diffGate()` in `src/queries/impact/diff-gate.ts`, where it runs the default diff-scoped checks: `echo`, `incomplete-migration`, `co-change-partner`, `twin-partner`, `coverage-contract`, `architecture`, `doc-reference`, `unused-params`, and `new-dead`. The baseline ratchet is explicit because it is repo-wide. | Every diff-only analyzer needs a separate validation path from repo-wide health. |
19
- | Public command registry | `scip-query trace queryCommandOrder --json` reported `src/runtime/commands/query-command-specs.ts:11`, where the public query command order starts. `scip-query code queryCommandDescriptor --json` reported `src/runtime/commands/query-command-specs.ts:104`, where command descriptors are resolved by id. | The ledger must not silently miss a public analyzer command. |
20
- | Diff-gate check list | `scip-query trace DIFF_GATE_CHECKS --json` resolves the canonical exported check list in `src/queries/impact/diff-gate.ts`. | The ledger must cover every change-time check that can block a diff. |
21
-
22
- ## Core Concepts
23
-
24
- A validation ledger is a maintained record of analyzer evaluation work, including the claim being tested, the repositories used, the evidence captured, the verdict, and the next precision action. Its essential role is to keep validation from dissolving into scattered notes by making every analyzer claim traceable to a reviewed outcome.
25
-
26
- A ledger item is one independently completable evaluation obligation. It may cover one analyzer, one analyzer family, one repository run, or one score-model decision; its essential characteristic is that it has a clear done signal and can move from ready to complete without needing the whole validation effort to finish.
27
-
28
- A run batch is a bounded execution of analyzer commands against one repository and revision. It is the smallest repeatable field-test unit because it records the project, commit, commands, raw output, sample selection, and reviewer verdicts together.
29
-
30
- A calibration decision is a documented change to detector confidence, action tier, score weight, threshold, wording, or evidence fields. It is not just a preference; it is a maintainer decision justified by reviewed true positives, false positives, false negatives, suppressions, or repair outcomes.
31
-
32
- A repair outcome is the result of acting on an analyzer finding. It matters because an analyzer can be locally accurate while still causing bad repairs, churn, misplaced abstractions, or broader APIs when an agent follows it.
33
-
34
- ## Status Values
35
-
36
- | Status | Meaning |
37
- | ---------- | ---------------------------------------------------------------------------------- |
38
- | `ready` | The item has a defined scope, command set, corpus, and done signal. |
39
- | `running` | Raw analyzer output or human review is currently being collected. |
40
- | `blocked` | The item cannot be completed until tooling, indexing, or corpus access improves. |
41
- | `complete` | The item has reviewed evidence, verdicts, and any next precision actions recorded. |
42
- | `deferred` | The item is valid but intentionally lower priority than other ledger work. |
43
-
44
- ## Active Ledger
45
-
46
- Closeout status: all active ledger rows are complete as of 2026-06-22. Remaining future work is provider- or corpus-gated, not an unfinished validation slice: true co-change issue/PR label ingestion needs a repository metadata provider, and locality score integration needs stronger consumer-coverage plus repair-outcome evidence.
47
-
48
- | ID | Item | Scope | Status | Next action | Done signal |
49
- | ------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
50
- | AVL-001 | Field evaluation baseline | Run the protocol on `scip-query`, `Stable_Management`, `Vega_2.0`, and `SynthRunnerRust`. | `complete` | Completed in `docs/validation/2026-06-21-second-repo-confirmation.md`. | A dated run summary exists for each repo with raw-output locations and sampling notes. |
51
- | AVL-002 | Direct repair analyzer verdicts | `cleanup-plan`, `dead`, `new-dead`, `isolated`, `unused-params`, `unused-imports`, `redundant-reexports`, `passthrough-candidates`, `cycles`, broken `doc-drift`, and `doc-reference`. | `complete` | Completed in `docs/validation/2026-06-21-direct-deletion-family-closure-result.md`. | Each direct analyzer has TP/FP/FN counts, accepted-design examples, and precision actions. |
52
- | AVL-003 | Contextual signal analyzer verdicts | Similarity, extraction, locality, wrapper, stale abstraction, frontend duplicate, hook/composable, co-change, bottleneck, coupling, drift, and deep-chain families. | `complete` | Completed in `docs/validation/2026-06-21-contextual-signal-closure-result.md`. | Each contextual family has a reviewed precision note and a score-weight recommendation. |
53
- | AVL-004 | Support analysis accuracy | `affected`, `change-surface`, `plan-context`, navigation commands, graph metrics, and `self-audit`. | `complete` | Completed in `docs/validation/2026-06-21-support-analysis-accuracy-result.md`. | Support commands have referential-accuracy notes and known unsupported cases. |
54
- | AVL-005 | Analyzer implementation parity | Confirm each public analyzer command's documented behavior matches implementation behavior. | `complete` | Completed in `docs/validation/2026-06-21-analyzer-implementation-parity-result.md`. | The inventory and protocol either match implementation or list required doc/code corrections. |
55
- | AVL-006 | Score calibration | Evaluate direct findings, contextual signals, suppressions, validation ratio, and signal backlog pressure. | `complete` | Completed in `docs/validation/2026-06-21-score-calibration-finalization-result.md`. | A calibration memo states score-weight changes, accepted current weights, or blocked evidence gaps. |
56
- | AVL-007 | Output and schema quality | Verify each analyzer emits enough structured evidence for users and agents to review the claim. | `complete` | Completed in `docs/validation/2026-06-21-output-schema-quality-finalization-result.md`. | Each analyzer family has an output-quality verdict and missing-field list. |
57
- | AVL-008 | Performance and budget behavior | Check large-index behavior, `--full`, scan limits, git-history bounds, and graceful degradation. | `complete` | Completed in `docs/validation/2026-06-21-performance-budget-behavior-result.md`. | Budget behavior is documented with any timeout, cap, or misleading-empty-output issues. |
58
- | AVL-009 | Suppression lifecycle | Evaluate whether suppressions are stale, justified, expired, or useful as detector precision feedback. | `complete` | Completed in `docs/validation/2026-06-21-suppression-lifecycle-result.md`. | Suppression categories have counts, stale examples, and trust-weight recommendations. |
59
- | AVL-010 | Cross-language capability boundaries | Establish what works for TypeScript, React, Vue, Rust, and any unsupported language surfaces. | `complete` | Completed in `docs/validation/2026-06-21-cross-language-capability-boundaries-result.md`. | Capability notes distinguish "no findings" from "not supported by current evidence." |
60
- | AVL-011 | Agent repair outcomes | Test whether acting on analyzer findings produces better code rather than churn or misplaced abstraction. | `complete` | Completed in `docs/validation/2026-06-21-agent-repair-outcomes-result.md`. | Each action tier has at least one reviewed repair outcome or an explicit reason it cannot be tested yet. |
61
- | AVL-012 | Locality analyzer validation | Validate the proposed `locality-candidates` report and `scip-locality-review` skill workflow before implementation. | `complete` | Completed in `docs/validation/2026-06-21-locality-analyzer-validation-result.md`. | The locality design has TP/FP/FN-style examples and a go/no-go recommendation for implementation. |
62
- | AVL-013 | Config and declared-coupling freshness | Check whether `.scipquery.json` declared couplings and suppressions still point at current paths. | `complete` | Completed in `docs/validation/2026-06-21-config-declared-coupling-freshness-result.md`. | Stale config paths are fixed, removed, or documented as intentionally retained. |
63
- | AVL-014 | Public command surface coverage | Ensure every public analyzer command is present in the inventory, protocol, and ledger. | `complete` | Completed in `docs/validation/2026-06-21-public-command-surface-coverage-result.md`. | A coverage checklist shows no missing analyzer or marks non-analyzer support commands separately. |
64
- | AVL-015 | TypeScript `dead` certification | Fixed-seed four-repository precision review, causal remediation, holdout replay, and known-positive recall. | `complete` | Certified in `docs/validation/2026-07-10-typescript-dead-certification.md`. | Precision, confidence, corpus, and recall gates pass under the repository-dead truth rule. |
65
- | AVL-016 | Rust `dead` hardening | Pinned Codex, SynthRunnerRust, and VegaAssistant review covering Cargo surfaces, traits, macros, reflection, examples, and positive recall. | `complete` | Hardened but insufficiently evidenced in `docs/validation/2026-07-10-rust-dead-certification.md`; expand the corpus before renewal. | Every baseline false positive is removed, applicability is visible, recall fixtures pass, and failed certification gates are explicit. |
66
-
67
- ## Public Command Coverage Checklist
68
-
69
- The canonical source is `src/runtime/commands/query-command-specs.ts:11-78`, where `queryCommandOrder` lists the public query command surface.
70
-
71
- - Core and navigation support: `stats`, `files`, `methods`, `refs`, `trace`, `deps`, `rdeps`, `system`, `surface`, `imports`, `imported-by`, `outline`, `members`, `by-kind`, `kind-counts`, `hierarchy`, `call-graph`, `code`, `dataflow`, `slice`
72
- - Direct cleanup and deletion analyzers: `dead`, `isolated`, `unused-imports`, `cleanup-plan`, `unused-params`, `passthrough-candidates`, `redundant-reexports`
73
- - Similarity, reuse, extraction, and locality analyzers: `similar`, `similar-files`, `similar-chains`, `similar-signatures`, `recent-duplicates`, `duplicate-bodies`, `twin-drift`, `twin-ab`, `extract-candidates`, `locality-candidates`, `wrapper-candidates`, `stale-abstractions`, `doc-drift`, `drift`, `convergence`
74
- - Frontend analyzers: `react-component-duplicates`, `react-hook-candidates`, `react-large-component-pressure`, `vue-component-duplicates`, `vue-composable-candidates`, `vue-large-view-pressure`
75
- - Graph, risk, and complexity analyzers: `architecture`, `hotspots`, `fan-in`, `fan-out`, `coupling`, `cycles`, `bottlenecks`, `deep-chains`, `complexity-hotspots`, `complexity`
76
- - Diff, impact, and planning analyzers: `affected`, `change-surface`, `co-change`, `diff-gate`, `incomplete-migration`, `plan-context`
77
- - Formal model verification: `tla`
78
- - Meta and action commands: `self-audit`, `cleanup-apply`
79
-
80
- ## Completed Run Batches
81
-
82
- The completed effort used this order so early runs created useful evidence for later calibration work.
83
-
84
- Current pilot:
85
-
86
- - Plan: `docs/plans/2026-06-21-analyzer-validation-pilot.md`
87
- - Summary: `docs/validation/2026-06-21-analyzer-validation-pilot.md`
88
- - Verdict review: `docs/validation/2026-06-21-analyzer-verdict-review.md`
89
- - Calibration memo: `docs/validation/2026-06-21-analyzer-calibration-memo.md`
90
- - Precision implementation plan: `docs/plans/2026-06-21-analyzer-precision-implementation.md`
91
- - Precision implementation result: `docs/validation/2026-06-21-analyzer-precision-implementation-result.md`
92
- - Stable_Management second confirmation: `docs/validation/2026-06-21-stable-management-second-confirmation.md`
93
- - Echo tier refinement result: `docs/validation/2026-06-21-echo-tier-refinement-result.md`
94
- - Wrapper boundary evidence result: `docs/validation/2026-06-21-wrapper-boundary-evidence-result.md`
95
- - Passthrough boundary evidence result: `docs/validation/2026-06-22-passthrough-boundary-evidence-result.md`
96
- - Passthrough public-facade caveats result: `docs/validation/2026-06-22-passthrough-public-facade-caveats-result.md`
97
- - Public surface caveats result: `docs/validation/2026-06-22-public-surface-caveats-result.md`
98
- - Doc cited-claim metadata result: `docs/validation/2026-06-22-doc-cited-claim-metadata-result.md`
99
- - Root-cause grouping result: `docs/validation/2026-06-22-root-cause-grouping-result.md`
100
- - Co-change partner labels result: `docs/validation/2026-06-22-co-change-partner-labels-result.md`
101
- - Incomplete migration containment result: `docs/validation/2026-06-22-incomplete-migration-containment-result.md`
102
- - Co-change recency and broad-sweep context result: `docs/validation/2026-06-22-co-change-recency-sweep-result.md`
103
- - Doc drift historical intent result: `docs/validation/2026-06-22-doc-drift-historical-intent-result.md`
104
- - Framework entry caveats result: `docs/validation/2026-06-22-framework-entry-caveats-result.md`
105
- - Incomplete migration scope hints result: `docs/validation/2026-06-22-incomplete-migration-scope-hints-result.md`
106
- - Doc reference citation parser result: `docs/validation/2026-06-22-doc-reference-citation-parser-result.md`
107
- - Co-change subject context result: `docs/validation/2026-06-22-co-change-subject-context-result.md`
108
- - Second-corpus score-weight confirmation result: `docs/validation/2026-06-22-second-corpus-score-weight-confirmation-result.md`
109
- - Passthrough exported-facade second-corpus result: `docs/validation/2026-06-22-passthrough-exported-facade-second-corpus-result.md`
110
- - Incomplete migration second-corpus scope result: `docs/validation/2026-06-22-incomplete-migration-second-corpus-scope-result.md`
111
- - Doc parser second-corpus validation result: `docs/validation/2026-06-22-doc-parser-second-corpus-validation-result.md`
112
- - Validation ledger closeout result: `docs/validation/2026-06-22-validation-ledger-closeout-result.md`
113
- - Global install cross-verification result: `docs/validation/2026-06-22-global-install-cross-verification-result.md`
114
- - Stable Management locality suggested-home review: `docs/validation/2026-06-22-stable-management-locality-suggested-home-review.md`
115
- - Locality positive suggested-home result: `docs/validation/2026-06-22-locality-positive-suggested-home-result.md`
116
- - Stable_Management wrapper confirmation: `docs/validation/2026-06-21-stable-management-wrapper-boundary-confirmation.md`
117
- - Vue pressure-kind output result: `docs/validation/2026-06-21-vue-pressure-kind-output-result.md`
118
- - Similarity evidence split result: `docs/validation/2026-06-21-similarity-evidence-split-result.md`
119
- - Doc citation-kind output result: `docs/validation/2026-06-21-doc-citation-kind-output-result.md`
120
- - Baseline metadata inheritance result: `docs/validation/2026-06-21-baseline-metadata-inheritance-result.md`
121
- - Second-repo confirmation: `docs/validation/2026-06-21-second-repo-confirmation.md`
122
- - Rust wrapper and React pressure review: `docs/validation/2026-06-21-rust-wrapper-react-pressure-review.md`
123
- - React pressure-kind output result: `docs/validation/2026-06-21-react-pressure-kind-output-result.md`
124
- - Rust wrapper boundary vocabulary result: `docs/validation/2026-06-21-rust-wrapper-boundary-vocabulary-result.md`
125
- - Frontend behavior evidence classification result: `docs/validation/2026-06-21-frontend-behavior-evidence-classification-result.md`
126
- - Extract candidate evidence classification result: `docs/validation/2026-06-21-extract-candidate-evidence-classification-result.md`
127
- - Stale abstraction action-tier result: `docs/validation/2026-06-21-stale-abstraction-action-tier-result.md`
128
- - Health score action-tier counts result: `docs/validation/2026-06-21-health-score-action-tier-counts-result.md`
129
- - Graph-risk family result: `docs/validation/2026-06-21-graph-risk-family-result.md`
130
- - Config declared-coupling freshness result: `docs/validation/2026-06-21-config-declared-coupling-freshness-result.md`
131
- - Suppression lifecycle result: `docs/validation/2026-06-21-suppression-lifecycle-result.md`
132
- - Support analysis accuracy result: `docs/validation/2026-06-21-support-analysis-accuracy-result.md`
133
- - Cross-language capability boundaries result: `docs/validation/2026-06-21-cross-language-capability-boundaries-result.md`
134
- - Public command surface coverage result: `docs/validation/2026-06-21-public-command-surface-coverage-result.md`
135
- - Analyzer implementation parity result: `docs/validation/2026-06-21-analyzer-implementation-parity-result.md`
136
- - Performance and budget behavior result: `docs/validation/2026-06-21-performance-budget-behavior-result.md`
137
- - Agent repair outcomes result: `docs/validation/2026-06-21-agent-repair-outcomes-result.md`
138
- - Locality analyzer validation result: `docs/validation/2026-06-21-locality-analyzer-validation-result.md`
139
- - Direct small analyzer verdicts result: `docs/validation/2026-06-21-direct-small-analyzer-verdicts-result.md`
140
- - Direct remaining verdicts result: `docs/validation/2026-06-21-direct-remaining-verdicts-result.md`
141
- - Direct deletion-family closure result: `docs/validation/2026-06-21-direct-deletion-family-closure-result.md`
142
- - Contextual signal closure result: `docs/validation/2026-06-21-contextual-signal-closure-result.md`
143
- - Score calibration finalization result: `docs/validation/2026-06-21-score-calibration-finalization-result.md`
144
- - Output/schema quality finalization result: `docs/validation/2026-06-21-output-schema-quality-finalization-result.md`
145
- - Raw output root: `/tmp/scip-query-validation/2026-06-21-pilot`
146
-
147
- ### Batch 1: Corpus Baseline
148
-
149
- - Repositories: `scip-query`, `Stable_Management`, `Vega_2.0`, `SynthRunnerRust`.
150
- - Commands:
151
- - `git rev-parse HEAD`
152
- - `scip-query reindex`
153
- - `scip-query health --full --json`
154
- - `scip-query diff-gate --json`
155
- - `scip-query capability-matrix`
156
- - Outputs:
157
- - Raw JSON outside the repo unless intentionally promoted.
158
- - Plain text output when a command does not expose `--json`.
159
- - Summary in `docs/validation/YYYY-MM-DD-corpus-baseline.md`.
160
-
161
- ### Batch 2: Direct Repair Families
162
-
163
- - Commands:
164
- - `scip-query cleanup-plan --json`
165
- - `scip-query dead --only-dead --json`
166
- - `scip-query isolated --json`
167
- - `scip-query unused-params --json`
168
- - `scip-query redundant-reexports`
169
- - `scip-query passthrough-candidates --json`
170
- - `scip-query cycles --json`
171
- - `scip-query doc-drift --json`
172
- - Review:
173
- - Top 10 findings, 5 threshold-edge findings, and 5 false-negative probes where possible.
174
- - Classify as `tp`, `fp`, `accepted_design`, `needs_judgment`, or `fn`.
175
-
176
- ### Batch 3: Contextual Signal Families
177
-
178
- - Commands:
179
- - `scip-query similar --json`
180
- - `scip-query similar-files --json`
181
- - `scip-query similar-chains --json`
182
- - `scip-query similar-signatures --json`
183
- - `scip-query recent-duplicates --json`
184
- - `scip-query extract-candidates --json`
185
- - `scip-query wrapper-candidates --json`
186
- - `scip-query stale-abstractions --json`
187
- - `scip-query co-change --json`
188
- - `scip-query bottlenecks --json`
189
- - `scip-query coupling --json`
190
- - `scip-query deep-chains --json`
191
- - `scip-query drift --json`
192
- - Review:
193
- - Separate "true signal" from "direct repair."
194
- - Record what product or architecture judgment was needed.
195
-
196
- ### Batch 4: Frontend-Specific Families
197
-
198
- - React corpus: `Vega_2.0`.
199
- - Vue corpus: `Stable_Management`.
200
- - Commands:
201
- - `scip-query react-component-duplicates --full --json`
202
- - `scip-query react-hook-candidates --full --json`
203
- - `scip-query react-large-component-pressure --full --json`
204
- - `scip-query vue-component-duplicates --full --json`
205
- - `scip-query vue-composable-candidates --full --json`
206
- - `scip-query vue-large-view-pressure --full --json`
207
- - Review:
208
- - Validate whether findings imply component extraction, hook/composable extraction, locality repair, or only investigation.
209
-
210
- ### Batch 5: Evidence Providers and Agent Outcomes
211
-
212
- - Commands:
213
- - `scip-query plan-context <target> --full --json`
214
- - `scip-query change-surface <file> --json`
215
- - `scip-query affected <symbol> --json`
216
- - `scip-query refs <symbol> --json`
217
- - `scip-query imports <file> --json`
218
- - `scip-query rdeps <file>`
219
- - `scip-query self-audit --samples 100 --json`
220
- - Review:
221
- - Confirm reference accuracy.
222
- - Pick a small number of analyzer findings and record whether an agent could repair them cleanly.
223
-
224
- ## Verdict Record Template
225
-
226
- ```json
227
- {
228
- "ledgerId": "AVL-002",
229
- "repo": "scip-query",
230
- "revision": "COMMIT",
231
- "command": "dead --only-dead --json",
232
- "findingId": "stable id or pasted summary",
233
- "location": "src/path/file.ts:10",
234
- "verdict": "tp | fp | accepted_design | needs_judgment | fn",
235
- "actionTier": "direct | signal | support",
236
- "evidence": ["facts that support the verdict"],
237
- "counterevidence": ["facts that weaken the analyzer claim"],
238
- "repairOutcome": "not_attempted | improved | churn | bad_abstraction | blocked",
239
- "precisionAction": "none | parser | root_detection | threshold | score_weight | output_schema | docs | tests",
240
- "notes": "short reviewer note"
241
- }
242
- ```
243
-
244
- ## Update Rules
245
-
246
- When a run batch completes:
247
-
248
- 1. Update the relevant `AVL-*` rows from `ready` or `running` to `complete`, `blocked`, or `deferred`.
249
- 2. Add a dated summary under `docs/validation/` when the result is worth retaining.
250
- 3. Keep raw JSON out of the repo unless it is small and useful as a fixture.
251
- 4. Turn precision actions into implementation issues or a concrete implementation plan.
252
- 5. If a finding changes an action tier or score-weight recommendation, update `docs/analyzer-inventory.md` and `docs/analyzer-validation-protocol.md`.
253
-
254
- ## Initial End-to-End Slice
255
-
256
- The first concrete run was intentionally narrow:
257
-
258
- 1. Run Batch 1 on `scip-query` and `Stable_Management`.
259
- 2. Run Batch 2 only for `dead`, `unused-params`, `passthrough-candidates`, and `doc-drift`.
260
- 3. Run Batch 3 only for `similar`, `wrapper-candidates`, and `co-change`.
261
- 4. Run Batch 4 only for Vue on `Stable_Management`.
262
- 5. Record at least 30 reviewed verdicts.
263
- 6. Produce one calibration memo that says whether the current direct/signal/support split still holds.
264
-
265
- That slice tested the ledger, the protocol, the review burden, and the score model before the later completion passes covered the remaining analyzer families.
266
-
267
- ## 2026-06-23 Citation Refresh
268
-
269
- The maintainability-register completion slice rechecked the ledger's command-surface and diff-gate citations. `queryCommandOrder` remains the canonical public query order, and `orderedQueryCommandDescriptors` is now derived from that list for CLI registration. `diffGate()` still runs the same check families recorded in the ledger; finding construction now goes through a local recorder that derives the suppression hint consistently.
270
-
271
- ## 2026-06-23 Current Sweep Citation Refresh
272
-
273
- The current maintainability sweep rechecked the `diff-gate.ts` citation again after doc-reference and baseline policy helpers moved into private query modules. The ledger remains accurate because `diffGate()` and `DIFF_GATE_CHECKS` still live in `src/queries/impact/diff-gate.ts`; the baseline policy body remains behind the same entry point, but the repo-wide baseline ratchet is explicit rather than part of default diff-gate execution.
274
-
275
- ## 2026-06-28 Diff-Gate Echo Follow-Up
276
-
277
- The `diffGate()` citation remains accurate: default diff-gate execution still
278
- runs echo, incomplete migration, co-change partner, doc-reference,
279
- unused-params, and new-dead checks through `src/queries/impact/diff-gate.ts`.
280
- The performance follow-up only skips non-callable changed symbols before echo
281
- similarity scoring; baseline ratchet behavior and check configuration remain
282
- unchanged.
283
-
284
- ## 2026-06-28 Health Drift Performance Follow-Up
285
-
286
- The `src/queries/health/health.ts` reference remains accurate after the health
287
- drift optimization. Health and the baseline ratchet now ask `drift()` to skip
288
- advisory `pattern-deviation` rows they already exclude from visible output and
289
- stable finding identities; the repo-wide health score contract is unchanged.
290
-
291
- ## 2026-06-28 Diff-Gate Co-Change Follow-Up
292
-
293
- The `diffGate()` citation remains accurate. Default diff-gate still runs the
294
- same check family; the co-change partner check now uses the raw git changed
295
- paths when deciding whether a historical partner is already present in the
296
- diff.
297
-
298
- ## 2026-06-28 Focused Co-Change History Follow-Up
299
-
300
- The `diffGate()` citation remains accurate after the focused co-change history
301
- optimization. Default diff-gate still runs the same check family; the
302
- co-change partner check now reads only changed-file commits from the same
303
- bounded git-history window instead of parsing the whole name-only history
304
- payload.
305
-
306
- ## 2026-06-30 Git Evidence Product Follow-Up
307
-
308
- The `diffGate()` and health citations remain accurate after the Git evidence
309
- product migration. Default diff-gate still runs the same check family, and
310
- health still reports the same Git evidence summary; both paths now read Git
311
- history through `gitEvidenceProduct()`.
312
-
313
- 2026-07-01 round-2 remediation note: the `src/queries/health/health.ts`
314
- configuration example remains current after the health command added
315
- validation-basis disclosure and parser-unavailable reporting. The validation
316
- ledger's health examples still cite the command surface that computes and
317
- renders those analyzer signals.
318
-
319
- ## 2026-07-01 Remediation Plan 3 Follow-Up
320
-
321
- The `diffGate()` and health citations remain accurate after remediation plan 3
322
- (detection primitives). Default diff-gate now also runs `twin-partner`
323
- (advisory) and `coverage-contract`; `src/runtime/commands/query-command-specs.ts`
324
- still owns the public query order. Health gained a `coverage-contracts` phase
325
- and a `detectorPrecision` field (per-check finding-outcome stats from the new
326
- finding-outcome ledger) — both paths still compute and render through the same
327
- command surfaces cited above.
328
-
329
- ## 2026-07-08 Rust Semantic Parity Follow-Up
330
-
331
- The `src/queries/health/health.ts` citation remains accurate after the Rust
332
- semantic parity slice. Health still owns the composite phase inventory and
333
- score assembly; the health budget now also carries whether a run should enrich
334
- detectors with semantic facts. Full/default health keeps semantic enrichment
335
- enabled, while bounded large-index health records the explicit semantic-off
336
- budget choice.
337
-
338
- ## 2026-07-02 Doc-Reference Hub-Cascade Follow-Up
339
-
340
- The `diffGate()` and `DIFF_GATE_CHECKS` citations were refreshed after
341
- followup #8 added hub-file cascade damping to the doc-reference check: when
342
- more than 3 docs cite the same changed hub file in one gate run, their
343
- findings collapse into one clustered finding carrying `citationCount`, up to
344
- 3 `citationExemplars`, and an explicit `suppressedCount`. Slice 23 removed the
345
- historical line numbers from these source anchors because the exported symbol
346
- identities are stable while repeated additive checks made the numbers stale.
347
- The current table names every default check; per-doc findings under the
348
- threshold are unchanged.
349
-
350
- ## 2026-07-10 TypeScript Dead-Code Certification Follow-Up
351
-
352
- The direct-repair `dead` row now has a detector-language certificate rather
353
- than relying on the earlier mixed-family calibration. The pinned four-repo
354
- baseline produced 25 valid and 53 invalid TypeScript findings. Shared fixes
355
- made test references count as repository usage, propagated declared package
356
- surfaces through re-exports, recognized framework entry files, and excluded
357
- interface, constructor, React lifecycle, and implemented-protocol contracts.
358
-
359
- The final fixed-seed review contained 43 valid findings and zero invalid
360
- findings across Vega_2.0, openwork, Stable_Management, and traceroot. Observed
361
- precision was 100%, the 95% Wilson lower bound was 91.8%, and three positive
362
- fixtures continued to detect ordinary unreferenced definitions. The retained
363
- claim is narrowly scoped: TypeScript `dead-code` rows are certified
364
- repository-dead candidates, while `file-internal`, other detector families,
365
- Rust, Python, and the aggregate health score retain independent status. The
366
- full evidence is in
367
- `docs/validation/2026-07-10-typescript-dead-certification.md`.
368
-
369
- ## 2026-07-23 Architecture Coherence Follow-Up
370
-
371
- `src/runtime/commands/query-command-specs.ts` remains the canonical public
372
- query order after adding `architecture` to the graph family. (The file moved to
373
- `src/runtime/query-commands/` in the 2026-07-24 boundary-resolution pass; the
374
- public query order itself is unchanged.) The enforcement
375
- follow-up replaced drift's repository-specific policy with project-owned
376
- configuration and added stable boundary-pair identities to the shared health
377
- baseline. The default diff gate now blocks only new configured forbidden edges
378
- or explicitly forbidden cycles; accepted existing identities remain ratcheted.
379
- Reciprocal pairs, unmapped files, undeclared edges, and undeclared cycles remain
380
- contextual signals until external calibration.
381
-
382
- ## 2026-07-24 Boundary Resolution and Coarse-Boundary Detection
383
-
384
- `architecture` gained a second enforceable rule, `requireResolvedBoundaries`,
385
- and a corresponding finding class `architecture:coarse-boundary:<boundary>`
386
- carried through the same health-baseline ratchet as forbidden edges and cycles.
387
-
388
- The rule exists because `requireAcyclic` had a structural blind spot rather than
389
- a precision problem. `analyzeArchitectureGraph` discards every dependency whose
390
- endpoints share a boundary before running SCC, so a boundary coarse enough to
391
- contain both sides of a cycle passes while asserting nothing about the code it
392
- holds. This repository was the demonstrating case: 14 declared boundaries with
393
- `requireAcyclic: true` reported zero cycles while six of them — holding 295 of
394
- 348 files — each contained an internal cycle.
395
-
396
- **Validation.** The detector was run against the pre-change tree in an isolated
397
- worktree, using the original 14-boundary configuration. `requireAcyclic`
398
- reported 0 cycles; `detectCoarseBoundaries` reported exactly the 6 boundaries
399
- identified by manual analysis (`queries`, `runtime`, `semantic`, `source`,
400
- `reindex`, `symbols`), and its `narrowestEdges` named the precise imports the
401
- repair pass then removed. On the repaired tree it reports 0. Both directions are
402
- covered, so the result is not an artifact of a permanently-firing check.
403
-
404
- **Precision decision.** Module-hierarchy suppression is content-aware, not
405
- path-based. `classifyFile` decides "barrel" from the filename, which labels
406
- every `index.ts` bookkeeping — including `src/language-parsers/index.ts`, a
407
- 130-line cache module that was the _target_ of the narrowest real back edge in
408
- the repository. A path-based rule therefore produced a false negative on the
409
- single most important finding. A barrel is now excluded only when the index
410
- records no definitions of its own inside it.
411
-
412
- Directory nesting alone is deliberately not a suppression signal. An earlier
413
- draft suppressed any component whose sub-units shared an ancestor directory,
414
- which silently hid the `queries` and `semantic` findings — a boundary's root
415
- files depending on one of its own sub-directories is the most common real
416
- intra-boundary cycle, not module bookkeeping.
417
-
418
- **Known limits, not yet calibrated.** Sub-units are one directory level, so a
419
- layer inversion _inside_ a single directory is invisible; the `src/source`
420
- primitives/facts/products tangle had to be derived by hand and was fixed by
421
- splitting the directory. Test files are not SCIP-indexed and are therefore
422
- outside boundary enforcement entirely. `requireCompletePolicy` checks that a
423
- dependency row exists, not that it is minimal, so an allowance can outlive the
424
- edge that justified it.
425
-
426
- ## 2026-07-24 Boundary Enforcement Gap Closure
427
-
428
- Five rules were added to `architecture` after auditing what boundary
429
- enforcement still could not see. Each is opt-in and defaults to off, so
430
- upgrading tightens no existing project's gate.
431
-
432
- | Rule | Closes | Finding identity |
433
- | ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
434
- | `requireMinimalPolicy` | A declared allowance outliving the edge that justified it. `requireCompletePolicy` checks a row _exists_, never that it is _minimal_, so policy widens silently. | `architecture:stale-allowance:<from>:<to>` |
435
- | `maxBoundaryFanOut` / global `maxBoundaryFiles` / per-boundary `maxFiles` | A boundary growing until it is coupled to most of the system. A local file ceiling overrides the global default only for its reviewed boundary. Coarseness was previously caught only when it _hid a cycle_, never when it merely got large. | `architecture:boundary-limit:<kind>:<boundary>` |
436
- | `testPaths` | Test files are excluded from the compiler project and therefore from the index, leaving them outside every boundary rule. | `architecture:test-boundary:<test>:<boundary>` |
437
- | `subUnits: 'file'` | A layer inversion _inside_ one directory, invisible when sub-units are directories. | (reuses `coarse-boundary`) |
438
- | `fragileEdges` (report-only) | No signal distinguishing a load-bearing dependency from one resting on a single import. 60 of 251 edges here are single-import. | none — advisory |
439
-
440
- **Test-boundary calibration.** The first rule shape — "a test may import only what
441
- its subject's boundary may import" — produced 91 findings, nearly all
442
- legitimate: a test for `analysis/git-history` drives it _through_
443
- `queries/cleanup/co-change`, which is composition, not coupling. The shipped
444
- rule allows the subject's **transitive** reach plus any boundary that reaches
445
- the subject (a consumer is the natural driver). That yields 0 findings here,
446
- and a planted violation (`source-vue` test importing `reindex-vue`, which is
447
- unrelated in both directions) is caught. Subject resolution requires the
448
- mirrored path to be a **real file**: boundary globs match paths that do not
449
- exist, so trusting them attributed cross-cutting tests to whichever directory
450
- they sat in and produced 4 false positives.
451
-
452
- **One audited gap was not real.** "Dynamic `import()` counts as a static edge"
453
- was measured with `scip-query deps`, which builds its graph with
454
- `scipEdges: 'all-references'`. `architecture` builds with
455
- `scipEdges: 'imports-only'`, which never includes dynamic import edges — zero
456
- boundary edges in this repository are backed by the file whose only
457
- `query-commands` reference is an `await import()`. The dynamic-import detector
458
- written against that premise was removed rather than shipped, since it guarded
459
- a case the code path cannot produce and cost a source scan per file. Recorded
460
- here because the two graph configurations are easy to conflate when reasoning
461
- about architecture from `deps` output.
462
-
463
- ## 2026-07-24 Review Remediation (boundary resolution)
464
-
465
- Seven review findings against the boundary work were resolved. Recorded because
466
- three changed a decision rather than a line.
467
-
468
- **The `source` / `language-parsers` split was reverted.** The target
469
- architecture forbids re-splitting them "merely to force a layer direction," and
470
- that is exactly what the split did once the underlying cycle was repaired. The
471
- merged `source` boundary is now internally acyclic and is verified as such by
472
- `requireResolvedBoundaries`, so the enforcement goal is met without
473
- contradicting the normative decision. This is the better outcome: the rule and
474
- the enforcement now agree instead of competing. `docs/architecture/scip-query-target-architecture.md`
475
- records the 14-boundary configuration as superseded, with current counts.
476
-
477
- **`subUnits` was unvalidated — the highest-risk defect.** Detection treats every
478
- value other than `'file'` as directory granularity, so `subUnits: "files"`
479
- passed validation and silently disabled the same-directory enforcement the
480
- option exists to turn on. A config option whose typo mode is "quietly do
481
- nothing" is worse than no option. Now validated as a closed set, with a
482
- regression test, alongside tests for the growth limits and `testPaths`.
483
-
484
- **The coarse-boundary identity encoded its members.** The identity is the
485
- persistent baseline comparison key, so including the current SCC membership
486
- meant adding one file to a tangle read as the old finding being fixed plus a
487
- new one appearing — ratchet churn on a problem that never went away. Now keyed
488
- by boundary alone.
489
-
490
- **Plan step B1.6 was completed rather than abandoned.** The plan called for
491
- moving the baseline checks into `queries/internal`; the literal move is
492
- impossible, because `checkHealthBaseline` runs every health detector and would
493
- create `internal -> cleanup` against the existing `cleanup -> internal`. The
494
- shared parts — file format, path resolution, identity normalization, and the
495
- new-versus-fixed comparison — moved to `queries/internal/baseline-file.ts`, and
496
- `checkArchitectureBaseline` moved to `queries/graph/architecture-baseline.ts`
497
- beside the report it reads. `checkHealthBaseline` stays in health because
498
- collecting findings is intrinsically a detector-layer concern. The relocation
499
- immediately produced the `requireMinimalPolicy` rule's first real finding: a
500
- `queries-health -> symbols-core` allowance left stale by the moved import.
501
-
502
- **Two smaller corrections.** `detectCoarseBoundaries` defaulted its classifier
503
- to `() => false`, so a direct caller reported barrel and entry bookkeeping; it
504
- now defaults to the path-based `classifyFile` test, with `architecture(db)`
505
- still overriding it with the content-aware version. And the report described a
506
- single-import edge as "incidental rather than load-bearing" — the graph
507
- establishes edge breadth, not importance, so it now reports the measurement and
508
- says explicitly that breadth alone settles nothing.
509
-
510
- ## 2026-07-26 Diff-Gate Progress Follow-Up
511
-
512
- The change-time gate and check-list citations remain accurate. Progress
513
- instrumentation does not add, remove, or reorder any `DIFF_GATE_CHECKS` entry:
514
- `diffGate()` emits process-local start and completion notifications around
515
- each check, while isolated CLI execution turns those notifications into
516
- diagnostic progress and active-detector timeout evidence.
@@ -1,95 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://unpkg.com/scip-query/docs/schemas/outcome-event-record.schema.json",
4
- "title": "scip-query outcome event record v1",
5
- "description": "One immutable repository-owned finding transition stored under .scipquery/events/.",
6
- "type": "object",
7
- "required": ["kind", "schemaVersion", "eventIdentity", "writer", "ts", "check", "findingId", "event", "commit"],
8
- "properties": {
9
- "kind": { "const": "scip-query-outcome-event" },
10
- "schemaVersion": { "const": 1 },
11
- "eventIdentity": { "type": "string", "minLength": 1 },
12
- "writer": {
13
- "type": "object",
14
- "required": ["tool", "version"],
15
- "properties": {
16
- "tool": { "const": "scip-query" },
17
- "version": { "type": "string", "minLength": 1 }
18
- },
19
- "additionalProperties": true
20
- },
21
- "ts": { "type": "number" },
22
- "check": { "type": "string", "minLength": 1 },
23
- "findingId": { "type": "string", "minLength": 1 },
24
- "event": { "enum": ["caught", "resolved", "suppressed", "reopened"] },
25
- "commit": {
26
- "oneOf": [{ "type": "string" }, { "type": "null" }]
27
- },
28
- "comparisonBaseCommit": { "type": "string" },
29
- "verifiedAgainstCommit": { "type": "string" },
30
- "symbol": { "type": "string" },
31
- "gateRunId": { "type": "string", "minLength": 1, "maxLength": 256 },
32
- "observer": {
33
- "type": "object",
34
- "required": ["kind", "authority"],
35
- "properties": {
36
- "kind": { "enum": ["local-agent", "local-human", "protected-ci"] },
37
- "authority": { "enum": ["repository-writable", "protected-external"] },
38
- "source": { "type": "string", "minLength": 1, "maxLength": 256 }
39
- },
40
- "allOf": [
41
- {
42
- "if": { "properties": { "authority": { "const": "protected-external" } }, "required": ["authority"] },
43
- "then": { "properties": { "kind": { "const": "protected-ci" } } }
44
- }
45
- ],
46
- "additionalProperties": true
47
- },
48
- "observation": {
49
- "type": "object",
50
- "required": ["schemaVersion", "authorityKind", "observedAt", "projectIdentity"],
51
- "properties": {
52
- "schemaVersion": { "const": 1 },
53
- "authorityKind": {
54
- "enum": ["index-worktree", "index-only", "worktree-only", "process-local"]
55
- },
56
- "observedAt": { "type": "string", "format": "date-time" },
57
- "projectIdentity": { "type": "string", "minLength": 1 },
58
- "index": {
59
- "type": "object",
60
- "required": ["generationIdentity", "source", "alignment"],
61
- "properties": {
62
- "generationIdentity": { "type": "string", "minLength": 1 },
63
- "source": { "enum": ["immutable", "legacy"] },
64
- "alignment": { "enum": ["not-certified", "leased"] }
65
- },
66
- "additionalProperties": true
67
- },
68
- "worktree": {
69
- "type": "object",
70
- "required": ["identity", "clean"],
71
- "properties": {
72
- "identity": { "type": "string", "minLength": 1 },
73
- "clean": { "type": "boolean" },
74
- "headCommit": { "type": "string", "minLength": 1 },
75
- "treeOid": { "type": "string", "minLength": 1 }
76
- },
77
- "additionalProperties": true
78
- }
79
- },
80
- "additionalProperties": true
81
- },
82
- "suppressionPolicyVersion": { "type": "integer", "minimum": 1 }
83
- },
84
- "allOf": [
85
- {
86
- "if": { "required": ["verifiedAgainstCommit"] },
87
- "then": { "properties": { "event": { "const": "resolved" } } }
88
- },
89
- {
90
- "if": { "required": ["suppressionPolicyVersion"] },
91
- "then": { "properties": { "event": { "const": "suppressed" } } }
92
- }
93
- ],
94
- "additionalProperties": true
95
- }