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,9 +1,8 @@
1
1
  # Configuration and setup write safety
2
2
 
3
3
  scip-query updates files that people and other agents may edit at the same
4
- time: `.scipquery.json`, provider hook JSON, `.git/info/exclude`,
5
- `AGENTS.md`, `CLAUDE.md`, structured suppression records, and an owned
6
- pre-commit hook. A conflict-aware writer is a file updater that transforms one
4
+ time: `.scipquery.json`, `.git/info/exclude`, `AGENTS.md`, `CLAUDE.md`, and
5
+ structured suppression records. A conflict-aware writer is a file updater that transforms one
7
6
  identified revision and refuses to claim success if an independent revision
8
7
  wins before commit. Its defining behavior is preservation: it either applies
9
8
  its narrow change to the newest valid input or leaves the newest input
@@ -43,11 +42,6 @@ the caller's observed value, the latest value, and the requested value:
43
42
  - a different latest value for the same field is an explicit stale-field
44
43
  conflict.
45
44
 
46
- Hook setup rereads the latest valid provider object on every bounded retry,
47
- removes only scip-query-owned hook entries, and merges the current owned hook
48
- groups. Unknown top-level fields and non-scip hook entries survive installation
49
- and removal.
50
-
51
45
  Malformed latest JSON is never repaired by replacement because doing so could
52
46
  erase information the writer cannot classify. The command reports the parse
53
47
  failure and leaves the exact bytes in place.
@@ -68,6 +62,14 @@ hint, the writer still publishes a current record and reports `changed: true`.
68
62
  Unknown root and nested fields survive because migration begins from the
69
63
  latest complete object and removes only the owned legacy discriminator.
70
64
 
65
+ A collaboration domain is the merge-intended family of repository copies that
66
+ share durable project decisions. Its real-world referents are branches,
67
+ clones, linked worktrees, and contributor forks whose records are expected to
68
+ rejoin; the committed `collaborationDomainId` distinguishes that family
69
+ without confusing a filesystem path, host, or mutable remote URL for its
70
+ identity. `init` and `setup` create one opaque UUID when it is missing. A
71
+ concurrent winner is adopted, and later runs never rotate an established ID.
72
+
71
73
  A non-integer discriminator, non-object top level, invalid `$schema` hint, or
72
74
  unsupported older/future version fails before options are exposed to runtime
73
75
  consumers. The loader names the supported legacy/current versions. A setup
@@ -95,9 +97,8 @@ New records use suppression schema version 1 and include the
95
97
  `scip-query` writer version. Unversioned legacy records and v1 records written
96
98
  before the discriminator was added remain readable. They remain byte-for-byte
97
99
  unchanged on an idempotent replay and are upgraded only by an explicit
98
- compare-and-replace policy change. Incompatible files are counted and reported
99
- by `diff-gate`; they never authorize a suppression. See
100
- [`COMMITTED_RECORD_COMPATIBILITY.md`](COMMITTED_RECORD_COMPATIBILITY.md).
100
+ compare-and-replace policy change. Incompatible files are reported by
101
+ `config-validate`; they never authorize a suppression.
101
102
 
102
103
  ## Managed text rules
103
104
 
@@ -107,8 +108,8 @@ Missing markers permit first installation, but incomplete, duplicated, or
107
108
  reordered markers are a conflict because the intended ownership boundary is
108
109
  ambiguous.
109
110
 
110
- Managed Markdown and owned pre-commit operations use a strict final revision
111
- check rather than silently recomputing across an intervening edit. The command
111
+ Managed Markdown uses a strict final revision check rather than silently
112
+ recomputing across an intervening edit. The command
112
113
  reports the expected and latest revision hashes and does not write.
113
114
  `.git/info/exclude` can safely retry because its exact owned marker block is
114
115
  recomputed from the newest text.
@@ -0,0 +1,84 @@
1
+ # Detector evidence contracts
2
+
3
+ Generated from `DETECTOR_EVIDENCE_CONTRACTS`.
4
+
5
+ ## dead
6
+
7
+ The symbol has no visible repository reference after entry, framework, and rooted-symbol exclusions.
8
+
9
+ - Calibration: `mixed`; provider coverage: `partial`.
10
+ - Relations: `identity/references` (exact), `execution/call` (exact).
11
+ - Structural evidence: entry-surface exclusions; framework/source fallback references; rooted-symbol exclusions.
12
+ - Does not establish: Absence of visible references does not prove absence of reflection, generated dispatch, or external use.
13
+ - Recover with: `scip-query evidence --symbol <symbol> --edge execution --edge runtime --edge identity --direction both --depth 2 --max-edges 100`
14
+
15
+ ## isolated
16
+
17
+ The callable has no visible non-self caller or callee after entry, framework, and rooted-symbol exclusions.
18
+
19
+ - Calibration: `mixed`; provider coverage: `partial`.
20
+ - Relations: `execution/call` (exact), `identity/references` (exact).
21
+ - Structural evidence: entry-surface exclusions; framework contract exclusions; source fallback callers.
22
+ - Does not establish: Visible graph isolation does not establish runtime unreachability through reflection or generated dispatch.
23
+ - Recover with: `scip-query evidence --symbol <symbol> --edge execution --edge runtime --edge identity --direction both --depth 2 --max-edges 100`
24
+
25
+ ## wrapper-candidates
26
+
27
+ A small callable has one visible consumer and wrapper-shaped delegation, after boundary evidence is disclosed.
28
+
29
+ - Calibration: `candidate`; provider coverage: `partial`.
30
+ - Relations: `execution/call` (exact), `ownership/contains` (exact).
31
+ - Structural evidence: callable body shape; public and runtime-boundary signals; consumer fan-in.
32
+ - Does not establish: Wrapper shape does not prove that an API, ownership, observability, or compatibility boundary is unnecessary.
33
+ - Recover with: `scip-query inspect --symbol <symbol> --view behavior`
34
+
35
+ ## passthrough-candidates
36
+
37
+ A small callable visibly forwards to one callee, with public-facade and boundary signals disclosed.
38
+
39
+ - Calibration: `mixed`; provider coverage: `partial`.
40
+ - Relations: `execution/call` (exact), `contract/uses-contract-symbol` (exact).
41
+ - Structural evidence: statement-complete forwarding shape; public facade evidence; runtime-boundary signals.
42
+ - Does not establish: Literal forwarding does not prove the callable has no contract, naming, policy, or compatibility role.
43
+ - Recover with: `scip-query inspect --symbol <symbol> --view behavior`
44
+
45
+ ## stale-abstractions
46
+
47
+ A type-like abstraction has zero or one visible real consumer after re-export and ownership distinctions.
48
+
49
+ - Calibration: `mixed`; provider coverage: `partial`.
50
+ - Relations: `identity/references` (exact), `ownership/contains` (exact).
51
+ - Structural evidence: definition kind; barrel-only consumer distinction; defining-file usage.
52
+ - Does not establish: Low visible consumer count does not prove a public contract or runtime-registered type is obsolete.
53
+ - Recover with: `scip-query evidence --symbol <symbol> --edge identity --edge ownership --edge contract --direction both --depth 2 --max-edges 100`
54
+
55
+ ## complexity-hotspots
56
+
57
+ A callable concentrates local branch/control pressure and graph fan-in or fan-out.
58
+
59
+ - Calibration: `mixed`; provider coverage: `partial`.
60
+ - Relations: `execution/predicate-consequence` (exact), `execution/call` (exact).
61
+ - Structural evidence: AST branch count or disclosed regex fallback; call fan-in; callee count.
62
+ - Does not establish: Structural complexity does not establish runtime frequency, latency, defect density, or a required refactor.
63
+ - Recover with: `scip-query inspect --symbol <symbol> --view behavior`
64
+
65
+ ## decorative-checkers
66
+
67
+ A checker-shaped callable lacks a visible failure terminal directly or through one resolved delegate.
68
+
69
+ - Calibration: `mixed`; provider coverage: `partial`.
70
+ - Relations: `execution/returns` (exact), `execution/throws` (exact).
71
+ - Structural evidence: checker naming shape; direct terminal behavior; one-hop delegate body.
72
+ - Does not establish: No visible terminal does not prove the checker cannot fail through an opaque call, exception, or process exit.
73
+ - Recover with: `scip-query inspect --symbol <symbol> --view behavior`
74
+
75
+ ## duplicate and similarity detectors
76
+
77
+ Two source units share the detector-specific structural or token pattern.
78
+
79
+ - Calibration: `candidate`; provider coverage: `partial`.
80
+ - Relations: none; structural detector.
81
+ - Structural evidence: normalized source/token/JSX/template similarity.
82
+ - Does not establish: Structural similarity does not establish shared domain identity or justify consolidation.
83
+ - Recover with: `scip-query inspect --symbol <symbol-a> --symbol <symbol-b> --view behavior`
84
+
@@ -1,138 +1,46 @@
1
- # Which Detector Do I Want?
2
-
3
- scip-query has several detectors that sound alike but answer different
4
- questions. This guide explains what each one actually measures, the
5
- differences inside each confusable cluster, and which check to run after which
6
- kind of change. (The companion doc [AI_FAILURE_MODES.md](AI_FAILURE_MODES.md)
7
- maps these to the agent behaviors that create the problems.)
8
-
9
- ---
10
-
11
- ## Cluster 1 — "This structure shouldn't exist" (the speculation family)
12
-
13
- Same disease — structure built for a future that never came — detected at
14
- four different altitudes:
15
-
16
- | Command | Altitude | What it measures | The fix |
17
- | ------------------------ | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
18
- | `unused-params` | **parameter** | Trailing parameters no body ever uses. TS/JS only, trailing-run only — removals that are type-safe by construction. `_`-prefixed and externally-published signatures are exempt. | Delete the parameters and their call-site arguments. |
19
- | `passthrough-candidates` | **function (fan-out view)** | Functions with exactly **one callee** and a small body — they just forward arguments to the real implementation. | Inline it: call the target directly. |
20
- | `wrapper-candidates` | **function (fan-in view)** | Symbols with exactly **one caller** — indirection that provides no reuse. Strongest when the sole caller is itself widely used. | Fold the body into the caller. |
21
- | `stale-abstractions` | **type** | Classes, interfaces, and type aliases with 0–1 _real_ cross-file consumers (barrel re-exports don't count as consumers). Single-implementation interfaces, misplaced types. | De-abstract: replace the interface with the concrete thing, or move the type to its one consumer. |
22
-
23
- How to keep them straight:
24
-
25
- - `passthrough` looks **down** (what does this function call? one thing) —
26
- `wrapper` looks **up** (who calls this function? one caller). A function can
27
- be both: a one-line forwarder with a single caller is the purest bloat.
28
- - `unused-params` is _inside_ a signature; the other three are _about whole
29
- symbols_.
30
- - `stale-abstractions` is the only one about **types**, not behavior. Note its
31
- confidence ranking: a single-consumer `class` is usually deliberate
32
- encapsulation (low), a single-consumer `interface` is worth questioning
33
- (medium), a zero-consumer type is just dead (high).
34
-
35
- ## Cluster 2 — "This already exists" (the similarity family)
36
-
37
- All of these find duplication, but at different granularities and with
38
- different evidence — and two of them add _direction_:
39
-
40
- | Command | Granularity | Evidence | Question it answers |
41
- | ---------------------- | ------------------------------------ | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
42
- | `similar <symbol>` | function | callee-fingerprint cosine (TF-IDF), source-token fallback | "What else does roughly what this function does?" |
43
- | `similar-signatures` | function | normalized parameter + return types | "What has the same _shape_, regardless of body?" |
44
- | `similar-files` | file | Jaccard on import/dependency profiles | "Which files are copy-paste variants of each other?" |
45
- | `similar-chains` | pipeline | edit distance on infrastructure-filtered dependency chains | "Which end-to-end flows are parallel re-implementations?" |
46
- | `recent-duplicates` | callable/frontend unit + **git age** | callable, React, and Vue similarity + file-add history | "Which side is the established original, which is the fresh echo?" (ECHO = new copies old; TWIN = both new) |
47
- | `incomplete-migration` | function + **git diff** | callee _containment_ vs new-in-diff helpers | "I just extracted a helper — which call sites still have the logic inline and were never migrated?" |
48
- | `convergence <a> <b>` | a known pair | shared/unique callees | "I already know these two overlap — give me the merge prescription." |
49
-
50
- How to keep them straight:
51
-
52
- - Use `similar` when you have **one symbol** in hand; `similar-files` /
53
- `similar-chains` for repo-wide sweeps at coarser grain;
54
- `similar-signatures` when implementations differ but the shape repeats.
55
- - `recent-duplicates` is duplicate evidence **plus direction in time** - it tells you
56
- which copy to delete. Run it after agent sessions. It covers generic callables,
57
- React component structure, React hook behavior, Vue template structure, and
58
- Vue composable-like behavior.
59
- - `incomplete-migration` is the **inverse of an echo**: the _new_ code is the
60
- canonical one (the helper you just extracted), and the _established_ code is
61
- what should disappear. It also scores by containment, not symmetric
62
- similarity, because an un-migrated site holds the helper's logic _plus_ its
63
- own — cosine under-scores exactly those.
64
- - `extract-candidates` is the **before** picture: seams inside one big
65
- function that _should_ become a helper. `incomplete-migration` is the
66
- **after** picture: you made the helper but didn't finish moving everyone
67
- onto it.
68
-
69
- ## Cluster 3 — "Things drifting apart" (the drift family)
70
-
71
- Three detectors share the word "drift" or the concept; they watch different
72
- gaps:
73
-
74
- | Command | Watches the gap between | Evidence |
75
- | ----------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
76
- | `drift` | a file and its **siblings/declared architecture** | reference graph: unused imports, project-owned forbidden boundary edges, "no sibling imports this" deviations |
77
- | `doc-drift` | **docs** and the code they describe | doc file-citations + doc↔code co-change history; flags broken references and staleness scores |
78
- | `co-change` | two **files** with an invisible contract | git history: pairs that change together with no dependency edge |
79
-
80
- How to keep them straight: `drift` is structural and intra-code, `doc-drift`
81
- is prose-vs-code, `co-change` is code-vs-code where the connection exists only
82
- in commit history. The diff gate includes doc/code and hidden-coupling coverage
83
- through the `doc-reference` and `co-change-partner` checks; run `drift
84
- --architecture` when you need direct dependency-rule findings beside boundary
85
- coverage, reciprocity, and connected-group signals.
86
-
87
- <!-- BEGIN GENERATED DIFF-GATE CHECKS -->
88
- | Check | What it catches | When it runs |
89
- | --- | --- | --- |
90
- | `echo` | Changed symbols that newly echo established code elsewhere. | Default diff gate. |
91
- | `incomplete-migration` | New helpers or abstractions wired into some sites while older inline sites remain. | Default diff gate. |
92
- | `co-change-partner` | Historically coupled files that usually change together but are missing from this diff. | Default diff gate. |
93
- | `twin-partner` | A changed symbol has a same-(near-)name twin (identical or already-divergent) elsewhere that this diff left untouched. | Default diff gate. Advisory: findings print but never cause a nonzero exit by themselves. |
94
- | `coverage-contract` | A configured `coverageContracts` entry (.scipquery.json) drifted: its declared key set no longer matches its ground-truth source. | Default diff gate, only when either side of a configured contract changed. |
95
- | `architecture` | A declared architecture boundary rule has a violation absent from the committed health baseline. | Default diff gate when closed dependency rows, requireCompletePolicy, requireAcyclic, requireResolvedBoundaries, requireMinimalPolicy, maxBoundaryFanOut/maxBoundaryFiles, or testPaths are configured and a baseline exists. |
96
- | `doc-reference` | Docs that cite changed files and may need a matching update. Dated snapshot docs (docs.snapshotPaths) are excluded by policy. | Default diff gate. Advisory (21.2) for bare file-mention citations; blocking when the citation has a line anchor or the cited file was deleted/renamed. |
97
- | `unused-params` | Fresh trailing parameters or options that no changed body uses. | Default diff gate. |
98
- | `new-dead` | Changed production symbols with zero indexed consumers. | Default diff gate. |
99
- | `baseline` | New health finding identities compared with the committed health baseline. | Only with `diff-gate --baseline`. |
100
- <!-- END GENERATED DIFF-GATE CHECKS -->
101
-
102
- Baseline identities use `detector:file:shortName`. File or symbol renames can legitimately show as one fixed baseline identity plus one new identity; update the baseline after reviewing intentional renames.
103
-
104
- ## Cluster 4 — "Nothing uses this" (the deadness family)
105
-
106
- | Command | Scope | Question |
107
- | -------------- | ----------- | --------------------------------------------------------------------------------------------------------------------- |
108
- | `dead` | symbols | "What has zero consumers?" (evidence-ranked, entrypoint-aware) |
109
- | `isolated` | callables | "What is fully disconnected — no callers _and_ no callees?" |
110
- | `cleanup-plan` | the cascade | "If I delete the dead stuff, what _becomes_ dead next — and will my compiler vouch for the whole batch?" (`--verify`) |
111
-
112
- `dead` finds candidates; `isolated` finds the most extreme subset;
113
- `cleanup-plan --verify` turns candidates into a compiler-proven deletion plan.
114
- Don't hand-delete from `dead` output when `cleanup-plan` can prove it.
115
-
116
- ---
117
-
118
- ## After-the-change check matrix
119
-
120
- The reflex to build (and the one the `scip-query` router skill teaches
121
- agents): match the check to what the change _did_. `diff-gate` runs the
122
- broad sweep on every diff; these are the targeted follow-ups.
123
-
124
- | You just... | Run |
125
- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
126
- | Extracted a helper / created an abstraction | `scip-query incomplete-migration` — did every site migrate? |
127
- | Wrote a brand-new helper or module | `scip-query similar <it>` and `scip-query recent-duplicates` — did it already exist? |
128
- | Added parameters, options, or config flags | `scip-query unused-params` — does anything use them yet? |
129
- | Added a forwarding/wrapper layer | `scip-query wrapper-candidates` and `scip-query passthrough-candidates` — does it earn its indirection? |
130
- | Added an interface, base class, or type alias | `scip-query stale-abstractions` — does it have more than one real consumer? |
131
- | Changed a schema, contract, config, or generated file | `scip-query co-change <file>` — who historically moves with it? |
132
- | Changed code that docs describe | `scip-query doc-drift` — which docs now lie? |
133
- | Deleted code | `scip-query cleanup-plan --verify` — what else just became dead, and does the compiler agree? |
134
- | Anything at all, before saying "done" | `scip-query reindex && scip-query diff-gate` |
135
-
136
- And before any non-trivial change: plan with `scip-query plan-context
137
- <target>` (or the `scip-plan` skill, which requires a scip-query citation
138
- for every claim in the plan).
1
+ # Detector guide
2
+
3
+ A detector is a repository analysis that selects source locations with a
4
+ shared evidence pattern. Compiler-graph detectors report resolved program
5
+ relationships. Heuristic detectors report candidates that require source
6
+ confirmation.
7
+
8
+ ## Repository overview
9
+
10
+ ```bash
11
+ scip-query health --full
12
+ ```
13
+
14
+ The health report combines graph structure, duplication, drift, complexity,
15
+ history, suppressions, coverage contracts, and React and Vue analyses. Its
16
+ score is a summary, not proof of correctness.
17
+
18
+ ## Focused detector families
19
+
20
+ | Concern | Commands |
21
+ | --- | --- |
22
+ | Exact or near duplication | `duplicate-bodies`, `similar`, `recent-duplicates` |
23
+ | Parallel implementations | `twin-drift`, `incomplete-migration`, `drift` |
24
+ | Unused or disconnected code | `dead`, `isolated`, `unused-params` |
25
+ | Excess indirection | `wrapper-candidates`, `passthrough-candidates`, `stale-abstractions`, `redundant-reexports` |
26
+ | Change pressure | `complexity-hotspots`, `co-change`, `cycles` |
27
+ | Documentation | `doc-drift` |
28
+ | React | `react-component-duplicates`, `react-hook-candidates`, `react-large-component-pressure` |
29
+ | Vue | `vue-component-duplicates`, `vue-composable-candidates`, `vue-large-view-pressure` |
30
+ | Team structure policy | `architecture` |
31
+
32
+ Run focused commands through the `scip-query` CLI. Add `--full` only when that
33
+ command supports it and exhaustive command coverage can change the decision.
34
+
35
+ ## Acting on findings
36
+
37
+ 1. Read the cited source.
38
+ 2. Identify the shared concept or violated rule.
39
+ 3. Preserve intentional variation.
40
+ 4. Make one coherent edit.
41
+ 5. Run native checks and the relevant detector again.
42
+ 6. Use `scip-query diff-impact` when downstream consumers may have changed.
43
+
44
+ Suppress a false or accepted finding with `scip-query suppress <id>` and a
45
+ specific reason. A suppression addresses one finding; it must not disable an
46
+ unrelated detector family.
@@ -112,7 +112,6 @@ could not confirm the stronger durability guarantee.
112
112
  | Watch refresh request, claim, and completion records | Durable immutable admission and acknowledgement | Accepted intent survives activity replacement and owner crashes; exclusive claims may be recovered only by the next lock owner |
113
113
  | Cache ownership credential | Directory-durable where supported | A complete file is flushed privately, hardening is revalidated, the public credential is linked exclusively, and its directory is flushed before detailed publication success |
114
114
  | npm release state | Directory-durable where supported; file-flushed on bounded hosts | The registry is freshly reconciled and remains external authority; the local coordinate-pair recovery record reports its exact achieved guarantee |
115
- | Outcome event | File publication locally; repository-durable only after Git commit | The event becomes shared history through the committed repository record, not merely because a checkout-local file exists |
116
115
  | TypeScript fragment/overlay manifests | Visibility-atomic | Content-addressed cache artifacts are validated and rebuildable |
117
116
  | Repository GC state | Visibility-atomic | Sweep history can be reconstructed conservatively |
118
117
  | Affected-set shadow latest record | Visibility-atomic | Calibration telemetry does not control publication |
@@ -126,6 +125,13 @@ stable compatibility mirrors, and their crash ordering are defined in
126
125
  idempotency, claim recovery, and acknowledgement ordering are defined in
127
126
  [Watch Refresh Requests](WATCH_REFRESH_REQUESTS.md).
128
127
 
128
+ The outcome-event journal was retired in version `0.20.0` together with
129
+ autonomous completion state. Current scip-query neither writes nor reads those
130
+ records and therefore makes no current durability claim for them. Git history
131
+ retains the removed repository records; deprecated record-shape types remain
132
+ temporarily available only for consumer-owned historical data. See
133
+ [Workflow API retirement compatibility](api/compatibility/2026-08-09-workflow-retirement.md).
134
+
129
135
  ## Executable crash model
130
136
 
131
137
  `tests/helpers/persistence-frontier.ts` models the two states a normal
@@ -121,6 +121,12 @@ publishes a lease containing its random token, generation identity, PID, and
121
121
  operating-system process-start identity when available. Closing the database
122
122
  removes that exact lease idempotently.
123
123
 
124
+ Reader admission flushes the lock's complete ownership record but deliberately
125
+ does not force its directory entry to durable storage. The lock coordinates
126
+ live processes immediately; after a host storage crash every reader is dead, so
127
+ a lost name is safe and a resurrected complete name is attributable and
128
+ reclaimable. Publication and collection locks remain directory-durable.
129
+
124
130
  Publication and collection use the same token-owned process lock. Collection
125
131
  always protects the current generation, the named recovery generation, and
126
132
  every live reader generation. It removes only oldest unprotected generations
@@ -58,6 +58,14 @@ owner. A crash before the link can leave a private candidate, but it cannot
58
58
  expose an empty or truncated public lock. Successful publication removes the
59
59
  private name and flushes the containing directory where supported.
60
60
 
61
+ The SQLite generation reader-admission lock is the one narrower durability
62
+ class. It still flushes the complete private ownership record before exclusive
63
+ publication, but it does not force the containing directory on acquire or
64
+ release. A host storage crash ends every admitted reader: losing the public name
65
+ is then harmless, while a resurrected name contains the flushed record for a
66
+ dead process instance and is reclaimed through the same guarded recovery path.
67
+ All other process locks retain directory-durable acquire and release.
68
+
61
69
  ## Observation and Recovery
62
70
 
63
71
  | Observed state | Recovery decision |
@@ -18,9 +18,10 @@ classifies an input as:
18
18
  invalid field in a recognized version.
19
19
 
20
20
  The decoder shares only dependency-free object-record, timestamp,
21
- scalar-number, and string-or-null-record predicates in
22
- `src/domain/record-validation.ts`; moving those generic primitives out of
23
- individual decoders does not change any version or capability decision.
21
+ scalar-number, non-empty string, bounded one-line string, and
22
+ string-or-null-record predicates in `src/domain/record-validation.ts`; moving
23
+ those generic primitives out of individual decoders does not change any
24
+ version or capability decision.
24
25
 
25
26
  No consumer may cast an unsupported or malformed record to the current model.
26
27
  The decoder returns the original accepted v2/v3 object, so an authorized
@@ -45,6 +46,15 @@ additionally require it to be an object. Language lists contain unique names
45
46
  from the same
46
47
  `SUPPORTED_LANGUAGES` catalog used by configuration.
47
48
 
49
+ When the fingerprint also decodes as the current versioned
50
+ `ProjectInputSnapshot`, a fixed-snapshot receipt projects it as
51
+ `scip-query:index-inputs`. This is a derived identity over the existing
52
+ fingerprint bytes, not a second persisted identity field. The receipt compares
53
+ that projection only with a current fixed snapshot built under the same
54
+ project-input version; malformed, older, or otherwise unrecognized fingerprint
55
+ shapes remain usable only for the capabilities above and do not acquire an
56
+ index-alignment claim.
57
+
48
58
  The SQLite layout field is an additive v3 upgrade boundary rather than a wire
49
59
  version migration. A v3 record without it remains queryable, evidence-usable,
50
60
  and eligible for language-shard reuse. It is not eligible for whole-SQLite
@@ -40,15 +40,14 @@ An input budget is a maximum amount of untrusted data one operation will
40
40
  materialize or ask a parser to compile, distinguished from silent truncation by
41
41
  failing explicitly with the input kind, observed amount, and accepted limit.
42
42
 
43
- | Input class | Limit | Representative users |
44
- | ------------------------------------------------------ | -----------------------: | ------------------------------------------------------------------------ |
45
- | Config, manifest, lock, lease, and other small records | 8 MiB | `.scipquery.json`, package manifests, generation metadata, hook settings |
46
- | One source or per-document fragment | 64 MiB | indexed source reads, TypeScript/Vue snapshots, mailbox result payloads |
47
- | One SCIP index artifact | 512 MiB | merge, sanitize, Rust occurrence fallback, shared-generation hydration |
48
- | Profile or retained JSONL artifact | 256 MiB | profiling audits, legacy event ledgers, rotating diagnostic segments |
49
- | Generated TLA trace | 16 MiB and 100,000 steps | `tla instrument` recorder |
50
- | Repository-supplied regular-expression pattern | 4,096 characters | entry-root patterns and TLA statement bindings |
51
- | Agent hook standard input | 8 MiB | stop-hook request payload |
43
+ | Input class | Limit | Representative users |
44
+ | ------------------------------------------------------ | -----------------------: | ----------------------------------------------------------------------- |
45
+ | Config, manifest, lock, lease, and other small records | 8 MiB | `.scipquery.json`, package manifests, generation metadata |
46
+ | One source or per-document fragment | 64 MiB | indexed source reads, TypeScript/Vue snapshots, mailbox result payloads |
47
+ | One SCIP index artifact | 512 MiB | merge, sanitize, Rust occurrence fallback, shared-generation hydration |
48
+ | Profile or retained JSONL artifact | 256 MiB | profiling output and rotating diagnostic segments |
49
+ | Generated TLA trace | 16 MiB and 100,000 steps | `tla instrument` recorder |
50
+ | Repository-supplied regular-expression pattern | 4,096 characters | entry-root patterns and TLA statement bindings |
52
51
 
53
52
  Regular files are opened first, checked through that descriptor, read, and
54
53
  checked again so replacement or growth cannot bypass the pre-read limit.
@@ -64,15 +63,20 @@ coverage metadata and `--full` remediation.
64
63
 
65
64
  Output pagination is a resumable transport for one rendered command result,
66
65
  distinguished from a result limit by preserving every rendered character.
67
- Human output above 12,000 characters automatically includes the exact command
68
- for the next page. Large default JSON remains byte-compatible and writes the
69
- exact opt-in paging command to stderr before and after the JSON stream.
66
+ Human output above 6,500 characters, or above the smaller content allowance
67
+ required to keep its wrapped page under 8,000 UTF-8 bytes, automatically
68
+ includes the exact command for the next page. Large default JSON remains
69
+ byte-compatible and writes the exact opt-in paging command to stderr before
70
+ and after the JSON stream.
70
71
 
71
72
  Every command accepts:
72
73
 
73
74
  ```text
74
75
  --output-page-size <characters>
75
76
  --output-cursor <cursor>
77
+ --agent-output
78
+ --json-output <path>
79
+ --raw-json
76
80
  ```
77
81
 
78
82
  The opaque cursor binds the command, working directory, non-pagination
@@ -88,44 +92,37 @@ under a process-identity-aware lock. Abandoned writers are reclaimed without
88
92
  removing a live writer; complete snapshots expire after one hour and are
89
93
  removed after their final page.
90
94
 
95
+ `--agent-output` requires JSON, selects the command-owned bounded projection,
96
+ and limits the complete rendered stream to 16 JSON content pages (currently
97
+ 56,000 characters). The command fails before delivering partial stdout when
98
+ that fuse is exceeded. This bounds model-context consumption even when every
99
+ individual page would be transport-safe.
100
+
101
+ `--json-output <path>` requires JSON and captures the complete serialized
102
+ result before publishing it through an atomic mode-`0600` file replacement.
103
+ The destination path is limited to 4,096 UTF-8 bytes and the file to 32 million
104
+ characters and 64 MiB. Stdout receives only a bounded receipt containing the
105
+ absolute path, byte count, and SHA-256 digest. Paging, agent projection, and
106
+ explicit raw streaming are mutually exclusive with file export.
107
+
91
108
  Run commands normally without selecting a page size. If human output is
92
109
  oversized, the readable multiline page prints one `Continue exactly:` command;
93
110
  run it unchanged until the transport-complete marker. That marker proves every
94
111
  rendered character was retrieved; command coverage remains a separate claim.
95
- Explicit paged `--json`
96
- returns the versioned object envelope and must be followed until
97
- `page.complete` is `true`. Do not pipe output through `head`, `tail`, or a
112
+ Explicit paged `--json` and automatic `--json --agent-output` return the
113
+ versioned object envelope and must be followed until `page.complete` is
114
+ `true`. Do not pipe output through `head`, `tail`, or a
98
115
  line-range `sed`; those programs discard data without creating a resumable
99
116
  position. See [CLI JSON output](CLI_JSON_OUTPUT.md) and the [output-page
100
117
  schema](schemas/cli-output-page.schema.json).
101
118
 
102
- ## Diff-gate process containment
103
-
104
- A diff-gate lease is one live process identity permitted to evaluate a
105
- project's current diff, distinguished from an ordinary lock file by recording
106
- and validating the owner's PID, process start, and project identity. CLI and
107
- Stop-hook gates share this lease, so an overlapping request reports the live
108
- owner instead of multiplying detector work.
109
-
110
- The public gate owns an isolated child process. Its default deadline is 60
111
- seconds, or 180 seconds with `--full`. On timeout, failure, or interruption the
112
- parent terminates and reaps that child before releasing the lease. An operator
113
- may set `SCIP_QUERY_DIFF_GATE_TIMEOUT_MS` to a positive millisecond value; the
114
- runtime caps it at 10 minutes.
115
-
116
- The parent creates a unique, private progress path and one-run token while it
117
- owns the lease. The child visibility-atomically records the current gate phase
118
- and detector immediately before and after each detector. A timed-out parent
119
- accepts only the record carrying its token, reports the active detector or
120
- phase plus the last completed detector, and removes the record before releasing
121
- the lease. The progress record is diagnostic evidence, not authority: failure
122
- to write it cannot turn a passing gate into a failure, and a stale or malformed
123
- record cannot alter the gate result.
124
-
125
- Outcome reconciliation rechecks at most one historical comparison base per
126
- gate. Deferred bases remain open and the result reports their exact base and
127
- finding counts, so accumulated event history cannot silently multiply one
128
- foreground gate into an unbounded replay batch.
119
+ ## Analysis process containment
120
+
121
+ The `health` and `diff-impact` commands split expensive analysis into isolated
122
+ child processes. Each child has a finite deadline and bounded output. On a
123
+ timeout, failure, or interruption, the parent terminates and reaps the child.
124
+ The child must return the expected versioned protocol, command identity, and
125
+ result before its output is accepted.
129
126
 
130
127
  ## Terminal and JSON output
131
128
 
@@ -3,6 +3,10 @@
3
3
  Date: 2026-07-10
4
4
  Status: Complete; see the 2026-07-11 closure certificate
5
5
 
6
+ > Historical certification snapshot. Command rows below record the surface
7
+ > that existed on 2026-07-10. See [Analyzer inventory](analyzer-inventory.md)
8
+ > for the current product.
9
+
6
10
  ## Purpose
7
11
 
8
12
  This checklist tracks whether each public command tells the truth about the
@@ -3,6 +3,12 @@
3
3
  Date: 2026-07-10
4
4
  Status: Complete for private-shadow readiness; public leaderboard remains a separate program
5
5
 
6
+ > Historical certification record. It preserves the evidence and command
7
+ > names used during the 2026-07 program. See
8
+ > [Analyzer inventory](analyzer-inventory.md) and
9
+ > [Analyzer validation protocol](analyzer-validation-protocol.md) for the
10
+ > current product and evaluation standard.
11
+
6
12
  Current execution plan:
7
13
  [`2026-07-11-remaining-accuracy-verification-program.md`](./plans/2026-07-11-remaining-accuracy-verification-program.md).
8
14
  Closure certificate:
@@ -489,5 +495,6 @@ exist only when an upstream indexer emits them.
489
495
  to comparable cohorts.
490
496
  - `npm test`, `npm run typecheck`, and `npm run build` pass after each
491
497
  implementation slice.
492
- - Completed code or documentation changes pass `scip-query reindex` and
493
- `scip-query diff-gate` before being declared finished.
498
+ - Current changes use native tests plus the relevant `context`, `diff-impact`,
499
+ `architecture`, or detector command. No scip-query command declares an
500
+ arbitrary coding task complete.