scip-query 0.23.0 → 0.26.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 (650) hide show
  1. package/CHANGELOG.md +491 -2
  2. package/README.md +111 -122
  3. package/dist/augment-vue-worker.js +1 -1
  4. package/dist/by-kind-PRVFAGTQ.js +2 -0
  5. package/dist/call-graph-DVPAQV2F.js +2 -0
  6. package/dist/call-graph-evidence-CUtj8V2I.d.ts +19 -0
  7. package/dist/chunk-2FSBGL5P.js +2 -0
  8. package/dist/chunk-2HLAFUCY.js +2 -0
  9. package/dist/chunk-2IWUT6CJ.js +3 -0
  10. package/dist/chunk-2KNN7GTQ.js +2 -0
  11. package/dist/chunk-2LHXRE2B.js +8 -0
  12. package/dist/{chunk-EG2CPZMJ.js → chunk-2YXE77TJ.js} +2 -2
  13. package/dist/chunk-36SGVCGX.js +2 -0
  14. package/dist/chunk-3ABBFPTP.js +2 -0
  15. package/dist/chunk-3IVFU4FD.js +3 -0
  16. package/dist/chunk-3JIQS44J.js +7 -0
  17. package/dist/chunk-3ZRB6DNK.js +7 -0
  18. package/dist/{chunk-6YTSKJJ3.js → chunk-42EOW5VI.js} +1 -1
  19. package/dist/{chunk-6I6L7Z62.js → chunk-4BHGBMNO.js} +2 -2
  20. package/dist/chunk-4BP3UBDG.js +2 -0
  21. package/dist/chunk-4D6RO7G4.js +2 -0
  22. package/dist/chunk-4FEWQ6RH.js +2 -0
  23. package/dist/chunk-4IGEOBG7.js +2 -0
  24. package/dist/chunk-4QZXBUKC.js +2 -0
  25. package/dist/chunk-4WBDEVX2.js +4 -0
  26. package/dist/chunk-4WCUBZU3.js +8 -0
  27. package/dist/chunk-4WTUBQ36.js +40 -0
  28. package/dist/chunk-4XQ4O6IM.js +3 -0
  29. package/dist/chunk-55UQAMZO.js +4 -0
  30. package/dist/chunk-5D2LVK7O.js +125 -0
  31. package/dist/chunk-5IYJ56TT.js +2 -0
  32. package/dist/chunk-5PLMJC7Q.js +2 -0
  33. package/dist/chunk-5TNQJUR2.js +5 -0
  34. package/dist/chunk-62BDNPMI.js +2 -0
  35. package/dist/chunk-64DZ5TXR.js +7 -0
  36. package/dist/chunk-65245JCM.js +2 -0
  37. package/dist/chunk-6FFVZZL4.js +2 -0
  38. package/dist/chunk-6KO5JHAR.js +2 -0
  39. package/dist/chunk-6LRXOOSX.js +2 -0
  40. package/dist/chunk-6LSEIIF7.js +2 -0
  41. package/dist/chunk-6YMNWD3H.js +6 -0
  42. package/dist/chunk-72AD6ZRR.js +5 -0
  43. package/dist/chunk-73AAKPUC.js +4 -0
  44. package/dist/chunk-76CZ77DF.js +2 -0
  45. package/dist/chunk-7VPEEAAG.js +2 -0
  46. package/dist/chunk-7WTPQ4NX.js +14 -0
  47. package/dist/chunk-7Y5T6XDP.js +2 -0
  48. package/dist/chunk-A2IIGFMJ.js +5 -0
  49. package/dist/chunk-AB5KCTEV.js +2 -0
  50. package/dist/chunk-AC566WBP.js +6 -0
  51. package/dist/chunk-AGWFSTXC.js +3 -0
  52. package/dist/chunk-AOSIYPTA.js +2 -0
  53. package/dist/chunk-AUVEWPIF.js +2 -0
  54. package/dist/chunk-B56T42J3.js +25 -0
  55. package/dist/chunk-BIQEF5NE.js +2 -0
  56. package/dist/chunk-BL6XJKTA.js +3 -0
  57. package/dist/chunk-BMKOQJRI.js +2 -0
  58. package/dist/chunk-BOZ4EXBB.js +3 -0
  59. package/dist/chunk-BUTWYEPH.js +2 -0
  60. package/dist/chunk-BZB4QPIP.js +2 -0
  61. package/dist/{chunk-ILTDAWEF.js → chunk-CE357GEE.js} +4 -4
  62. package/dist/chunk-CFN45HFP.js +2 -0
  63. package/dist/chunk-CFYMZFXT.js +368 -0
  64. package/dist/chunk-CN5EH7O3.js +2 -0
  65. package/dist/chunk-D254DNNQ.js +4 -0
  66. package/dist/chunk-D3FDISIC.js +2 -0
  67. package/dist/chunk-D3NX5XIE.js +3 -0
  68. package/dist/chunk-DA7RPPDF.js +3 -0
  69. package/dist/chunk-DDMC3FON.js +3 -0
  70. package/dist/chunk-DIO3FUSG.js +2 -0
  71. package/dist/chunk-DJ2NNSUK.js +3 -0
  72. package/dist/chunk-DKYQIM3C.js +18 -0
  73. package/dist/{chunk-JTQVMR42.js → chunk-DOOEL2IV.js} +2 -2
  74. package/dist/chunk-DVFP6PZI.js +2 -0
  75. package/dist/chunk-E3FDPXZK.js +2 -0
  76. package/dist/chunk-E7YNJLCB.js +2 -0
  77. package/dist/chunk-EFGW5JPH.js +2 -0
  78. package/dist/chunk-EJVTR244.js +13 -0
  79. package/dist/chunk-EOV7RTRZ.js +2 -0
  80. package/dist/chunk-ETOIKRHO.js +2 -0
  81. package/dist/chunk-EYK3ZAO2.js +3 -0
  82. package/dist/chunk-F2V2LPET.js +52 -0
  83. package/dist/chunk-F4LUHJTF.js +2 -0
  84. package/dist/chunk-F4PUT6IT.js +2 -0
  85. package/dist/chunk-F56GCXXS.js +5 -0
  86. package/dist/chunk-FC2EVQRM.js +2 -0
  87. package/dist/chunk-FL7NBMHP.js +3 -0
  88. package/dist/chunk-FMRN2TRL.js +3 -0
  89. package/dist/chunk-FVULPZDF.js +20 -0
  90. package/dist/chunk-GCKCF5FL.js +43 -0
  91. package/dist/chunk-GH2PYF46.js +2 -0
  92. package/dist/chunk-GHJAGXIP.js +2 -0
  93. package/dist/{chunk-WIWY3CRX.js → chunk-GMVSHUKZ.js} +2 -2
  94. package/dist/chunk-GS6KDO4R.js +2 -0
  95. package/dist/chunk-GUUBXNN7.js +2 -0
  96. package/dist/chunk-GVWX5T43.js +80 -0
  97. package/dist/chunk-GZKFETP5.js +2 -0
  98. package/dist/chunk-H4EQHO6J.js +9 -0
  99. package/dist/chunk-H73WY2RM.js +2 -0
  100. package/dist/chunk-H75GSPRV.js +60 -0
  101. package/dist/chunk-HDR3AHSV.js +61 -0
  102. package/dist/chunk-HQBSL74Y.js +2 -0
  103. package/dist/chunk-HRRFKWPZ.js +2 -0
  104. package/dist/chunk-HXENDJC6.js +2 -0
  105. package/dist/chunk-IIBAZNSW.js +21 -0
  106. package/dist/chunk-INLMWEUU.js +12 -0
  107. package/dist/chunk-IWQPAF4F.js +2 -0
  108. package/dist/chunk-IZJ6YUKP.js +35 -0
  109. package/dist/chunk-J2TMAIN5.js +60 -0
  110. package/dist/chunk-J5FJMODQ.js +142 -0
  111. package/dist/chunk-J7HZPIO3.js +2 -0
  112. package/dist/chunk-JEVRKFRL.js +2 -0
  113. package/dist/chunk-JFXSGAEB.js +30 -0
  114. package/dist/chunk-JVRTHGFS.js +3 -0
  115. package/dist/chunk-JYWEX7RR.js +360 -0
  116. package/dist/chunk-K3YL22N6.js +2 -0
  117. package/dist/chunk-K4CN7GXK.js +12 -0
  118. package/dist/chunk-K5TBVXU4.js +30 -0
  119. package/dist/chunk-KDDIE2DP.js +9 -0
  120. package/dist/chunk-KHWRRPV4.js +2 -0
  121. package/dist/chunk-KI6NBKDY.js +14 -0
  122. package/dist/chunk-KU3QRSTH.js +2 -0
  123. package/dist/chunk-KZBJWZJB.js +2 -0
  124. package/dist/chunk-L7GFM3NP.js +3 -0
  125. package/dist/chunk-LMO6PK3V.js +35 -0
  126. package/dist/chunk-LN4YXJJU.js +2 -0
  127. package/dist/chunk-LOVIZBJ4.js +43 -0
  128. package/dist/chunk-LPCRK4A2.js +11 -0
  129. package/dist/chunk-MMHZKBFA.js +2 -0
  130. package/dist/{chunk-M2O5NY6W.js → chunk-MOQQBQRD.js} +2 -2
  131. package/dist/chunk-N2WN6I3L.js +2 -0
  132. package/dist/chunk-N3ORQT7L.js +2 -0
  133. package/dist/chunk-NAZ3RAIW.js +2 -0
  134. package/dist/chunk-NDUNO5JQ.js +2 -0
  135. package/dist/chunk-NEIWRNAZ.js +4 -0
  136. package/dist/chunk-NJJMVD65.js +2 -0
  137. package/dist/chunk-NLOQOBXI.js +20 -0
  138. package/dist/chunk-NOLZOVCU.js +2 -0
  139. package/dist/chunk-NOWINRRN.js +2 -0
  140. package/dist/chunk-NZAXKGRL.js +16 -0
  141. package/dist/chunk-O2C4UILI.js +2 -0
  142. package/dist/chunk-O3RHA6ZT.js +3 -0
  143. package/dist/chunk-O4UZSPPI.js +3 -0
  144. package/dist/chunk-OGFV2BUX.js +2 -0
  145. package/dist/chunk-OZCJXZK6.js +499 -0
  146. package/dist/chunk-P6ODM7BY.js +2 -0
  147. package/dist/{chunk-XBGWL66K.js → chunk-PAVGPRHJ.js} +2 -2
  148. package/dist/chunk-PH52RA7D.js +2 -0
  149. package/dist/chunk-PKN354TH.js +3 -0
  150. package/dist/chunk-PWOASWEG.js +11 -0
  151. package/dist/chunk-QIWXRW72.js +2 -0
  152. package/dist/chunk-QJRMOK5N.js +2 -0
  153. package/dist/{chunk-YXPUP5G2.js → chunk-QOIXNWQR.js} +2 -2
  154. package/dist/chunk-QXEUDXBT.js +3 -0
  155. package/dist/chunk-QYUVVBMR.js +6 -0
  156. package/dist/chunk-QZ7KQZRN.js +2 -0
  157. package/dist/chunk-R6LQBUDH.js +2 -0
  158. package/dist/chunk-RBS42E55.js +20 -0
  159. package/dist/chunk-RSJKPCFX.js +26 -0
  160. package/dist/chunk-S6CZA3MV.js +2 -0
  161. package/dist/chunk-STMVAHJP.js +2 -0
  162. package/dist/chunk-SYVPTTVW.js +2 -0
  163. package/dist/chunk-T3I6NHBH.js +2 -0
  164. package/dist/chunk-T6DK3ZP7.js +2 -0
  165. package/dist/chunk-TKD34PHN.js +4 -0
  166. package/dist/chunk-TNNQFH7W.js +2 -0
  167. package/dist/chunk-TNV7SSUF.js +2 -0
  168. package/dist/chunk-TO7ZR3EH.js +8 -0
  169. package/dist/chunk-TOU3CHK4.js +2 -0
  170. package/dist/chunk-TRBI4UKT.js +2 -0
  171. package/dist/chunk-TZCVNCAN.js +4 -0
  172. package/dist/chunk-U4LZA5LL.js +3 -0
  173. package/dist/chunk-U5RIG3JP.js +3 -0
  174. package/dist/chunk-UP5KXN2I.js +2 -0
  175. package/dist/chunk-UQFR3NDH.js +5 -0
  176. package/dist/chunk-UXYXF7GV.js +2 -0
  177. package/dist/chunk-VB3GOKOS.js +2 -0
  178. package/dist/chunk-VF5JZICY.js +2 -0
  179. package/dist/chunk-VTY3VK6E.js +2 -0
  180. package/dist/chunk-VX2O4RIS.js +2 -0
  181. package/dist/chunk-WKPV2TDZ.js +2 -0
  182. package/dist/chunk-WOFQ5DTB.js +2 -0
  183. package/dist/chunk-WS4C6TCK.js +2 -0
  184. package/dist/chunk-WXU3DGPU.js +2 -0
  185. package/dist/chunk-X6RMKHJQ.js +81 -0
  186. package/dist/{chunk-4ILJCCXV.js → chunk-XHMN6ZX7.js} +2 -2
  187. package/dist/chunk-XHTVFLWW.js +2 -0
  188. package/dist/chunk-XKIDJCIK.js +2 -0
  189. package/dist/chunk-XTYTYZPT.js +2 -0
  190. package/dist/chunk-Y2JHHTTA.js +2 -0
  191. package/dist/chunk-YGVRMGYN.js +4 -0
  192. package/dist/chunk-YNQCGEQE.js +2 -0
  193. package/dist/chunk-YOQVEXVE.js +14 -0
  194. package/dist/chunk-YRT2WLYY.js +2 -0
  195. package/dist/chunk-YTAP5Y2G.js +2 -0
  196. package/dist/chunk-YTYWI7VB.js +2 -0
  197. package/dist/chunk-YULZRALL.js +2 -0
  198. package/dist/chunk-Z33WQG4Q.js +2 -0
  199. package/dist/chunk-ZGTYGDMF.js +16 -0
  200. package/dist/chunk-ZHMRSZFD.js +43 -0
  201. package/dist/chunk-ZHSP366W.js +10 -0
  202. package/dist/chunk-ZIBYCYKK.js +7 -0
  203. package/dist/{chunk-GAS2LJMP.js → chunk-ZLADLUE6.js} +3 -3
  204. package/dist/chunk-ZO4YXUT6.js +4 -0
  205. package/dist/{chunk-HYO3NP5Q.js → chunk-ZR4HBC2H.js} +2 -2
  206. package/dist/cli-main.js +6 -6
  207. package/dist/cli.js +1 -1
  208. package/dist/{code-B17qEMbt.d.ts → code-BNyrCF3_.d.ts} +3 -2
  209. package/dist/code-IL5WH3NZ.js +2 -0
  210. package/dist/code-result-json-ANTBEDFP.js +4 -0
  211. package/dist/command-descriptors-HEEMDHTU.js +222 -0
  212. package/dist/deps-EOWFC6FD.js +2 -0
  213. package/dist/direct-navigation-Y5B6OSIQ.js +3 -0
  214. package/dist/{exploration-topology-BG4v30HZ.d.ts → exploration-topology-CSgEyAz-.d.ts} +3 -1
  215. package/dist/files-K4AI3JUM.js +2 -0
  216. package/dist/frontend-profile-roles-D7eCum8P.d.ts +10 -0
  217. package/dist/{health-CPp2Jf1Z.d.ts → health-BtfmNrfa.d.ts} +58 -74
  218. package/dist/hierarchy-6W5NDIFI.js +2 -0
  219. package/dist/imports-WH365QY4.js +2 -0
  220. package/dist/index.d.ts +13 -1
  221. package/dist/index.js +1 -1
  222. package/dist/members-K3PHMF5S.js +2 -0
  223. package/dist/methods-E7KVMBX4.js +2 -0
  224. package/dist/output-continuation-command-BJSY67SN.js +3 -0
  225. package/dist/output-pagination-UZJ5ACIX.js +24 -0
  226. package/dist/postinstall.js +1 -1
  227. package/dist/project-reindex-EP24WT4X.js +3 -0
  228. package/dist/queries/affected.js +1 -1
  229. package/dist/queries/architecture.d.ts +15 -4
  230. package/dist/queries/architecture.js +1 -1
  231. package/dist/queries/bottlenecks.js +1 -1
  232. package/dist/queries/by-kind.js +1 -1
  233. package/dist/queries/call-graph.d.ts +3 -1
  234. package/dist/queries/call-graph.js +1 -1
  235. package/dist/queries/change-surface.d.ts +1 -0
  236. package/dist/queries/change-surface.js +1 -1
  237. package/dist/queries/cleanup-plan.d.ts +3 -3
  238. package/dist/queries/cleanup-plan.js +1 -1
  239. package/dist/queries/co-change.d.ts +20 -2
  240. package/dist/queries/co-change.js +1 -1
  241. package/dist/queries/code.d.ts +1 -1
  242. package/dist/queries/code.js +1 -1
  243. package/dist/queries/complexity.d.ts +6 -3
  244. package/dist/queries/complexity.js +1 -1
  245. package/dist/queries/context.d.ts +1 -7
  246. package/dist/queries/context.js +1 -1
  247. package/dist/queries/coupling.js +1 -1
  248. package/dist/queries/cycles.js +1 -1
  249. package/dist/queries/dead.d.ts +2 -0
  250. package/dist/queries/dead.js +1 -1
  251. package/dist/queries/decorative-checkers.js +1 -1
  252. package/dist/queries/dependence-slice.d.ts +46 -22
  253. package/dist/queries/dependence-slice.js +1 -1
  254. package/dist/queries/dependency-depth.d.ts +1 -7
  255. package/dist/queries/dependency-depth.js +1 -1
  256. package/dist/queries/deps.js +1 -1
  257. package/dist/queries/diff-impact.d.ts +3 -1
  258. package/dist/queries/diff-impact.js +1 -1
  259. package/dist/queries/doc-drift.js +1 -1
  260. package/dist/queries/drift.d.ts +1 -1
  261. package/dist/queries/drift.js +1 -1
  262. package/dist/queries/duplicate-bodies.d.ts +29 -2
  263. package/dist/queries/duplicate-bodies.js +1 -1
  264. package/dist/queries/entry-map.d.ts +2 -4
  265. package/dist/queries/entry-map.js +1 -1
  266. package/dist/queries/evidence.d.ts +121 -61
  267. package/dist/queries/evidence.js +1 -1
  268. package/dist/queries/fan.js +1 -1
  269. package/dist/queries/files.js +1 -1
  270. package/dist/queries/health.d.ts +1 -1
  271. package/dist/queries/health.js +1 -1
  272. package/dist/queries/hierarchy.d.ts +2 -2
  273. package/dist/queries/hierarchy.js +1 -1
  274. package/dist/queries/hotspots.d.ts +1 -1
  275. package/dist/queries/hotspots.js +1 -1
  276. package/dist/queries/imports.d.ts +1 -0
  277. package/dist/queries/imports.js +1 -1
  278. package/dist/queries/incomplete-migration.d.ts +3 -3
  279. package/dist/queries/incomplete-migration.js +1 -1
  280. package/dist/queries/index.d.ts +17 -65
  281. package/dist/queries/index.js +1 -1
  282. package/dist/queries/locality-candidates.d.ts +4 -4
  283. package/dist/queries/locality-candidates.js +1 -1
  284. package/dist/queries/members.d.ts +2 -2
  285. package/dist/queries/members.js +1 -1
  286. package/dist/queries/methods.js +1 -1
  287. package/dist/queries/not-implemented.d.ts +2 -6
  288. package/dist/queries/not-implemented.js +1 -1
  289. package/dist/queries/outline.js +1 -1
  290. package/dist/queries/passthrough-candidates.d.ts +9 -1
  291. package/dist/queries/passthrough-candidates.js +1 -1
  292. package/dist/queries/react-component-duplicates.d.ts +19 -3
  293. package/dist/queries/react-component-duplicates.js +1 -1
  294. package/dist/queries/react-hook-candidates.d.ts +22 -3
  295. package/dist/queries/react-hook-candidates.js +1 -1
  296. package/dist/queries/react-large-component-pressure.d.ts +17 -3
  297. package/dist/queries/react-large-component-pressure.js +1 -1
  298. package/dist/queries/recent-duplicates.js +1 -1
  299. package/dist/queries/redundant-reexports.d.ts +4 -14
  300. package/dist/queries/redundant-reexports.js +1 -1
  301. package/dist/queries/refs.d.ts +4 -1
  302. package/dist/queries/refs.js +1 -1
  303. package/dist/queries/review.d.ts +188 -0
  304. package/dist/queries/review.js +2 -0
  305. package/dist/queries/similar-files.d.ts +7 -10
  306. package/dist/queries/similar-files.js +1 -1
  307. package/dist/queries/similar-signatures.js +1 -1
  308. package/dist/queries/similar.d.ts +19 -1
  309. package/dist/queries/similar.js +1 -1
  310. package/dist/queries/slice-cohesion.d.ts +205 -0
  311. package/dist/queries/slice-cohesion.js +2 -0
  312. package/dist/queries/source-inspection.d.ts +6 -202
  313. package/dist/queries/source-inspection.js +1 -1
  314. package/dist/queries/source-search.d.ts +2 -3
  315. package/dist/queries/source-search.js +1 -1
  316. package/dist/queries/stats.d.ts +1 -0
  317. package/dist/queries/stats.js +1 -1
  318. package/dist/queries/surface.js +1 -1
  319. package/dist/queries/symbols.js +1 -1
  320. package/dist/queries/system.d.ts +4 -2
  321. package/dist/queries/system.js +1 -1
  322. package/dist/queries/test-quality.d.ts +1 -1
  323. package/dist/queries/test-quality.js +1 -1
  324. package/dist/queries/twin-drift.d.ts +23 -7
  325. package/dist/queries/twin-drift.js +1 -1
  326. package/dist/queries/unused-imports.js +1 -1
  327. package/dist/queries/unused-params.d.ts +3 -15
  328. package/dist/queries/unused-params.js +1 -1
  329. package/dist/queries/vue-component-duplicates.js +1 -1
  330. package/dist/queries/vue-composable-candidates.js +1 -1
  331. package/dist/queries/vue-large-view-pressure.js +1 -1
  332. package/dist/query-service-fastpath.js +5 -5
  333. package/dist/query-service-server.js +4 -4
  334. package/dist/refs-CCBJG7WK.js +2 -0
  335. package/dist/refs-pagination-DRNLVU4S.js +2 -0
  336. package/dist/reindex-worker.js +79 -29
  337. package/dist/reindex.js +45 -45
  338. package/dist/repository-cache-worker.js +2 -0
  339. package/dist/runtime.d.ts +8 -8
  340. package/dist/runtime.js +3 -4
  341. package/dist/rust-semantic-session-server.js +1 -1
  342. package/dist/rust-semantic-session-worker.js +1 -1
  343. package/dist/rust-semantic-worker.js +1 -1
  344. package/dist/service-queries-2WAJI7R6.js +6 -0
  345. package/dist/source-inspection-91U9zdO3.d.ts +341 -0
  346. package/dist/{source-search-types-Dwz8KeuW.d.ts → source-search-types-DWGYNg8M.d.ts} +15 -2
  347. package/dist/stats-G7DIV6VU.js +2 -0
  348. package/dist/surface-IO55UALI.js +2 -0
  349. package/dist/system-ZBMSHJXU.js +2 -0
  350. package/dist/{queries/trace.d.ts → trace-BMjw3prn.d.ts} +1 -18
  351. package/dist/typescript-indexer.js +2 -0
  352. package/dist/typescript-mailbox-worker.js +1 -1
  353. package/dist/watch-server.js +3 -3
  354. package/docs/AGENT_GUIDE.md +19 -128
  355. package/docs/CLI_JSON_OUTPUT.md +21 -17
  356. package/docs/COMMAND_REFERENCE.md +34 -49
  357. package/docs/CURRENT_COMMANDS.md +123 -0
  358. package/docs/DETECTOR_EVIDENCE_CONTRACTS.md +0 -40
  359. package/docs/DETECTOR_GUIDE.md +55 -12
  360. package/docs/PRODUCT_VISION.md +135 -0
  361. package/docs/PROPERTY_TESTING.md +73 -0
  362. package/docs/REVIEW.md +76 -0
  363. package/docs/SKILLS.md +51 -0
  364. package/docs/WINDOWS_SIDECAR_RELEASE.md +12 -3
  365. package/docs/accuracy-audit-checklist.md +70 -13
  366. package/docs/analyzer-inventory.md +2 -2
  367. package/docs/locality-analyzer-design.md +9 -9
  368. package/package.json +18 -80
  369. package/scripts/evidence-product-contract.mjs +7 -3
  370. package/scripts/record-review-coverage.mjs +118 -0
  371. package/scripts/scip-windows-provenance.mjs +29 -19
  372. package/skills/scip-architecture-review/SKILL.md +57 -0
  373. package/skills/scip-architecture-review/agents/openai.yaml +4 -0
  374. package/skills/scip-architecture-review/references/design-checks.md +17 -0
  375. package/skills/scip-explore/SKILL.md +15 -59
  376. package/skills/scip-explore/agents/openai.yaml +3 -3
  377. package/skills/scip-explore/references/external-evidence.md +2 -2
  378. package/skills/scip-explore/references/information-model.md +26 -29
  379. package/skills/scip-explore/scripts/capture-evidence.mjs +68 -34
  380. package/skills/scip-integrity-audit/SKILL.md +53 -181
  381. package/skills/scip-integrity-audit/agents/openai.yaml +3 -3
  382. package/skills/scip-integrity-audit/references/integrity-probes.md +27 -0
  383. package/skills/scip-plan/SKILL.md +39 -65
  384. package/skills/scip-plan/agents/openai.yaml +2 -2
  385. package/skills/scip-query/SKILL.md +28 -81
  386. package/skills/scip-query/agents/openai.yaml +2 -2
  387. package/skills/scip-query/references/command-guide.md +169 -0
  388. package/skills/scip-setup/SKILL.md +4 -2
  389. package/skills/scip-setup/agents/openai.yaml +3 -3
  390. package/dist/by-kind-XI2CSWEY.js +0 -2
  391. package/dist/call-graph-UONR6JR5.js +0 -2
  392. package/dist/call-graph-evidence-lZa2dwQA.d.ts +0 -11
  393. package/dist/chunk-26CT72HM.js +0 -2
  394. package/dist/chunk-2E7CX53V.js +0 -2
  395. package/dist/chunk-2GRUZAQF.js +0 -43
  396. package/dist/chunk-2LDBDR6J.js +0 -29
  397. package/dist/chunk-2OOY75BW.js +0 -2
  398. package/dist/chunk-2R3V3PSD.js +0 -4
  399. package/dist/chunk-2WC2OEDO.js +0 -4
  400. package/dist/chunk-35NLDRZC.js +0 -2
  401. package/dist/chunk-3AF4TUFK.js +0 -3
  402. package/dist/chunk-3D3QG236.js +0 -2
  403. package/dist/chunk-3FHOF22C.js +0 -21
  404. package/dist/chunk-3JKSW6LJ.js +0 -2
  405. package/dist/chunk-3L2ZBPEX.js +0 -133
  406. package/dist/chunk-3PJABJSU.js +0 -2
  407. package/dist/chunk-3SVF22I5.js +0 -2
  408. package/dist/chunk-3WR4E3A3.js +0 -3
  409. package/dist/chunk-4FTZ4P5G.js +0 -2
  410. package/dist/chunk-4UX2F3JX.js +0 -2
  411. package/dist/chunk-4WNW27SX.js +0 -2
  412. package/dist/chunk-5ENOG4VP.js +0 -61
  413. package/dist/chunk-64BFSI5I.js +0 -2
  414. package/dist/chunk-66DVSJQG.js +0 -455
  415. package/dist/chunk-6HFCYNYE.js +0 -9
  416. package/dist/chunk-6PQNKL3G.js +0 -3
  417. package/dist/chunk-6V5CNXL6.js +0 -2
  418. package/dist/chunk-6VVV4WRR.js +0 -4
  419. package/dist/chunk-7BWFZPPZ.js +0 -2
  420. package/dist/chunk-7CYG22FH.js +0 -2
  421. package/dist/chunk-7F45LJKI.js +0 -2
  422. package/dist/chunk-7IWV2EG3.js +0 -3
  423. package/dist/chunk-7KCZELVM.js +0 -2
  424. package/dist/chunk-AFHTBORT.js +0 -2
  425. package/dist/chunk-AVRYW5OZ.js +0 -2
  426. package/dist/chunk-B3X6KU75.js +0 -2
  427. package/dist/chunk-B5D7QPBE.js +0 -4
  428. package/dist/chunk-BBCIS4DX.js +0 -16
  429. package/dist/chunk-BDUVI7TO.js +0 -3
  430. package/dist/chunk-BE7ZZTMC.js +0 -2
  431. package/dist/chunk-BHVUJOCQ.js +0 -3
  432. package/dist/chunk-BJT7LSPK.js +0 -3
  433. package/dist/chunk-BKVWUP7Y.js +0 -2
  434. package/dist/chunk-BQGB4HBD.js +0 -2
  435. package/dist/chunk-BRV7PIFF.js +0 -2
  436. package/dist/chunk-CEEZJXEF.js +0 -2
  437. package/dist/chunk-CIYLO6SI.js +0 -7
  438. package/dist/chunk-CJZXN4NU.js +0 -2
  439. package/dist/chunk-CNO7TOKL.js +0 -2
  440. package/dist/chunk-COF23M5F.js +0 -2
  441. package/dist/chunk-CWFP7GM5.js +0 -2
  442. package/dist/chunk-D2DHWI3D.js +0 -2
  443. package/dist/chunk-D4N5SQ2M.js +0 -4
  444. package/dist/chunk-DBRSYFXR.js +0 -2
  445. package/dist/chunk-DHUIOLDT.js +0 -2
  446. package/dist/chunk-DIRJWYBM.js +0 -6
  447. package/dist/chunk-DIUFNHRJ.js +0 -35
  448. package/dist/chunk-DRENNWRG.js +0 -2
  449. package/dist/chunk-DTZCKZEU.js +0 -4
  450. package/dist/chunk-DULC3QFP.js +0 -5
  451. package/dist/chunk-DYGHBZ2N.js +0 -16
  452. package/dist/chunk-E5R6AQ73.js +0 -40
  453. package/dist/chunk-E73UNJTF.js +0 -38
  454. package/dist/chunk-EKV5HX33.js +0 -2
  455. package/dist/chunk-EQHFIL6T.js +0 -3
  456. package/dist/chunk-ESIQ66Z7.js +0 -2
  457. package/dist/chunk-EVFUMY4R.js +0 -3
  458. package/dist/chunk-F7DY272B.js +0 -2
  459. package/dist/chunk-FBN2FGXG.js +0 -2
  460. package/dist/chunk-FDLOBR6P.js +0 -4
  461. package/dist/chunk-FESCRNVV.js +0 -5
  462. package/dist/chunk-FFRKR4EQ.js +0 -2
  463. package/dist/chunk-FGA2U4OR.js +0 -8
  464. package/dist/chunk-FIQRSHVM.js +0 -2
  465. package/dist/chunk-FPYLNQPT.js +0 -2
  466. package/dist/chunk-FRUSVINH.js +0 -2
  467. package/dist/chunk-GSP44ENC.js +0 -2
  468. package/dist/chunk-GUFSG5TX.js +0 -2
  469. package/dist/chunk-GYIZ4NXB.js +0 -2
  470. package/dist/chunk-GZIUDL6G.js +0 -2
  471. package/dist/chunk-H5EXS3HM.js +0 -2
  472. package/dist/chunk-HCXEQRFF.js +0 -18
  473. package/dist/chunk-HEHOQQKH.js +0 -2
  474. package/dist/chunk-HKGFPJ4T.js +0 -4
  475. package/dist/chunk-HLZTEXRA.js +0 -2
  476. package/dist/chunk-HOENASQM.js +0 -3
  477. package/dist/chunk-HVF5VBG6.js +0 -2
  478. package/dist/chunk-I55I7XXP.js +0 -2
  479. package/dist/chunk-IDFEUFKS.js +0 -2
  480. package/dist/chunk-IHGQTTVW.js +0 -2
  481. package/dist/chunk-IICPE7B2.js +0 -20
  482. package/dist/chunk-IL676XCC.js +0 -18
  483. package/dist/chunk-IW5XQG5G.js +0 -2
  484. package/dist/chunk-IZDPJ2QI.js +0 -2
  485. package/dist/chunk-J66VOFW6.js +0 -5
  486. package/dist/chunk-JFMEXGFE.js +0 -2
  487. package/dist/chunk-JGKUET5J.js +0 -3
  488. package/dist/chunk-JS4PGXMV.js +0 -3
  489. package/dist/chunk-JWTGMPIT.js +0 -80
  490. package/dist/chunk-JYR66JN5.js +0 -5
  491. package/dist/chunk-KFOYCQAJ.js +0 -9
  492. package/dist/chunk-KLFEXGQA.js +0 -2
  493. package/dist/chunk-KMVGRIO2.js +0 -2
  494. package/dist/chunk-KYSDI3GE.js +0 -5
  495. package/dist/chunk-L6PJPETJ.js +0 -29
  496. package/dist/chunk-LDVT66YM.js +0 -2
  497. package/dist/chunk-LEECKFCJ.js +0 -2
  498. package/dist/chunk-LMZ5PRUV.js +0 -2
  499. package/dist/chunk-LQRQN2XA.js +0 -2
  500. package/dist/chunk-LXABEJX3.js +0 -2
  501. package/dist/chunk-MNV5FSBW.js +0 -3
  502. package/dist/chunk-MPQ4OTBM.js +0 -2
  503. package/dist/chunk-MTDBHTSF.js +0 -2
  504. package/dist/chunk-MV3CDXPI.js +0 -38
  505. package/dist/chunk-MWN53KRN.js +0 -60
  506. package/dist/chunk-MXNGIEPU.js +0 -3
  507. package/dist/chunk-N2ZSIIGR.js +0 -117
  508. package/dist/chunk-N5B2NILC.js +0 -5
  509. package/dist/chunk-NJITK2GP.js +0 -2
  510. package/dist/chunk-NOGJXYFO.js +0 -2
  511. package/dist/chunk-NOYBFVJA.js +0 -554
  512. package/dist/chunk-NWQXSFFU.js +0 -3
  513. package/dist/chunk-ODDUPDP7.js +0 -13
  514. package/dist/chunk-OLIWTZI3.js +0 -3
  515. package/dist/chunk-OLNV6I6U.js +0 -2
  516. package/dist/chunk-OR2E3AGZ.js +0 -2
  517. package/dist/chunk-OSR2GEHQ.js +0 -2
  518. package/dist/chunk-OSSESPDX.js +0 -3
  519. package/dist/chunk-OWOOWNJ5.js +0 -7
  520. package/dist/chunk-P42EIXTA.js +0 -2
  521. package/dist/chunk-PJFGPYTU.js +0 -2
  522. package/dist/chunk-PP7KNN7L.js +0 -2
  523. package/dist/chunk-PU7T5QYQ.js +0 -2
  524. package/dist/chunk-PWWAJSKV.js +0 -74
  525. package/dist/chunk-PZL5T7SU.js +0 -73
  526. package/dist/chunk-QBE3YX64.js +0 -23
  527. package/dist/chunk-QGVTFRY2.js +0 -7
  528. package/dist/chunk-QOJONDS7.js +0 -2
  529. package/dist/chunk-QU5XRYB5.js +0 -4
  530. package/dist/chunk-QUU5OBVK.js +0 -11
  531. package/dist/chunk-RBLQNW26.js +0 -20
  532. package/dist/chunk-RTQ7NEKG.js +0 -81
  533. package/dist/chunk-SQXRS7BG.js +0 -4
  534. package/dist/chunk-SSK6LDPC.js +0 -2
  535. package/dist/chunk-SZHGTCPP.js +0 -7
  536. package/dist/chunk-T4N4P2K5.js +0 -16
  537. package/dist/chunk-TA3QKLLU.js +0 -2
  538. package/dist/chunk-TEBQMNVI.js +0 -43
  539. package/dist/chunk-TPFHAQ2G.js +0 -2
  540. package/dist/chunk-TQPCBMWT.js +0 -5
  541. package/dist/chunk-TQZV7KV4.js +0 -2
  542. package/dist/chunk-TRNAEQ6P.js +0 -3
  543. package/dist/chunk-TY7CRN3Z.js +0 -2
  544. package/dist/chunk-UHFYCMZO.js +0 -35
  545. package/dist/chunk-UICY4GTQ.js +0 -7
  546. package/dist/chunk-UVGEWT4Y.js +0 -26
  547. package/dist/chunk-UXW33INU.js +0 -29
  548. package/dist/chunk-VMPRET3I.js +0 -5
  549. package/dist/chunk-VNLGKHS6.js +0 -6
  550. package/dist/chunk-VQILFTEH.js +0 -2
  551. package/dist/chunk-VUPHCS7Y.js +0 -57
  552. package/dist/chunk-VVZSBTSU.js +0 -23
  553. package/dist/chunk-VZRNID6A.js +0 -2
  554. package/dist/chunk-W5OXRYGE.js +0 -7
  555. package/dist/chunk-W6STWDQI.js +0 -57
  556. package/dist/chunk-W7CXK74K.js +0 -2
  557. package/dist/chunk-WB3WYIRE.js +0 -4
  558. package/dist/chunk-WDNVY4E7.js +0 -20
  559. package/dist/chunk-WK46TNUM.js +0 -3
  560. package/dist/chunk-WNTFFKAX.js +0 -12
  561. package/dist/chunk-WOIKCX6A.js +0 -2
  562. package/dist/chunk-WUN6KBHV.js +0 -2
  563. package/dist/chunk-WYCTJDVR.js +0 -2
  564. package/dist/chunk-WYPL7GF7.js +0 -2
  565. package/dist/chunk-XDAUYDFT.js +0 -2
  566. package/dist/chunk-XDQMU3BT.js +0 -2
  567. package/dist/chunk-XFA4SSO3.js +0 -3
  568. package/dist/chunk-XGZEP6GR.js +0 -8
  569. package/dist/chunk-XPDPNWTQ.js +0 -368
  570. package/dist/chunk-XRYABF57.js +0 -8
  571. package/dist/chunk-YBGKCQIS.js +0 -2
  572. package/dist/chunk-YEN6CYC7.js +0 -16
  573. package/dist/chunk-YF5IB2LF.js +0 -2
  574. package/dist/chunk-YI2AWIHC.js +0 -3
  575. package/dist/chunk-YPWBKGFU.js +0 -2
  576. package/dist/chunk-YPWHBBIS.js +0 -2
  577. package/dist/chunk-YSH6U3L4.js +0 -3
  578. package/dist/chunk-YU5DZUZI.js +0 -10
  579. package/dist/chunk-YWO5DDRC.js +0 -16
  580. package/dist/chunk-Z4CDXYNQ.js +0 -2
  581. package/dist/chunk-ZF5KHH7C.js +0 -2
  582. package/dist/chunk-ZOHS7AQV.js +0 -21
  583. package/dist/chunk-ZTI4SBFV.js +0 -3
  584. package/dist/code-MI6F2TTU.js +0 -2
  585. package/dist/code-result-json-FXALY4HE.js +0 -2
  586. package/dist/command-descriptors-P34VABY5.js +0 -343
  587. package/dist/dataflow-4KEMJPC6.js +0 -2
  588. package/dist/dependence-slice-R7FPWD5M.js +0 -2
  589. package/dist/deps-7EMQUYUT.js +0 -2
  590. package/dist/direct-navigation-6YO234F2.js +0 -3
  591. package/dist/entry-map-KOOLR26E.js +0 -2
  592. package/dist/files-OPIPJIGZ.js +0 -2
  593. package/dist/graph-evidence-Bjyky2V4.d.ts +0 -126
  594. package/dist/hierarchy-QPD2CAER.js +0 -2
  595. package/dist/imports-M6HUXRXC.js +0 -2
  596. package/dist/members-I5MEFOCT.js +0 -2
  597. package/dist/methods-5JYGGHXA.js +0 -2
  598. package/dist/next-anchor-candidates-BwMczMvX.d.ts +0 -90
  599. package/dist/output-continuation-command-UPQAAKBP.js +0 -3
  600. package/dist/output-pagination-3OFL2MJV.js +0 -19
  601. package/dist/project-reindex-UKKQ5PLS.js +0 -3
  602. package/dist/queries/anchors.d.ts +0 -123
  603. package/dist/queries/anchors.js +0 -2
  604. package/dist/queries/complexity-hotspots.d.ts +0 -40
  605. package/dist/queries/complexity-hotspots.js +0 -2
  606. package/dist/queries/convergence.d.ts +0 -33
  607. package/dist/queries/convergence.js +0 -2
  608. package/dist/queries/dataflow.d.ts +0 -77
  609. package/dist/queries/dataflow.js +0 -2
  610. package/dist/queries/deep-chains.d.ts +0 -5
  611. package/dist/queries/deep-chains.js +0 -2
  612. package/dist/queries/extract-candidates.d.ts +0 -52
  613. package/dist/queries/extract-candidates.js +0 -2
  614. package/dist/queries/isolated.d.ts +0 -24
  615. package/dist/queries/isolated.js +0 -2
  616. package/dist/queries/plan-context.d.ts +0 -33
  617. package/dist/queries/plan-context.js +0 -2
  618. package/dist/queries/reference-neighborhood.d.ts +0 -4
  619. package/dist/queries/reference-neighborhood.js +0 -2
  620. package/dist/queries/reference-reachability.d.ts +0 -48
  621. package/dist/queries/reference-reachability.js +0 -2
  622. package/dist/queries/self-audit.d.ts +0 -63
  623. package/dist/queries/self-audit.js +0 -2
  624. package/dist/queries/similar-chains.d.ts +0 -48
  625. package/dist/queries/similar-chains.js +0 -2
  626. package/dist/queries/slice.d.ts +0 -4
  627. package/dist/queries/slice.js +0 -2
  628. package/dist/queries/stale-abstractions.d.ts +0 -72
  629. package/dist/queries/stale-abstractions.js +0 -2
  630. package/dist/queries/system-map.d.ts +0 -449
  631. package/dist/queries/system-map.js +0 -2
  632. package/dist/queries/trace.js +0 -2
  633. package/dist/queries/twin-ab.d.ts +0 -66
  634. package/dist/queries/twin-ab.js +0 -2
  635. package/dist/queries/value-flow.d.ts +0 -43
  636. package/dist/queries/value-flow.js +0 -2
  637. package/dist/queries/wrapper-candidates.d.ts +0 -34
  638. package/dist/queries/wrapper-candidates.js +0 -2
  639. package/dist/refs-PSU4JZZW.js +0 -2
  640. package/dist/refs-pagination-JG6CJMRC.js +0 -2
  641. package/dist/slice-HYRATV64.js +0 -2
  642. package/dist/source-snippet-_wrcgmZc.d.ts +0 -15
  643. package/dist/stats-OOJ74B32.js +0 -2
  644. package/dist/surface-VTGDYWF5.js +0 -2
  645. package/dist/symbol-resolution-WD5EU5JE.js +0 -2
  646. package/dist/system-LRQNFOR2.js +0 -2
  647. package/dist/trace-F4B6OLL4.js +0 -2
  648. package/dist/value-flow-VRPZY72V.js +0 -2
  649. package/skills/concrete-plan/SKILL.md +0 -8
  650. package/skills/concrete-plan/agents/openai.yaml +0 -4
package/CHANGELOG.md CHANGED
@@ -2,7 +2,496 @@
2
2
 
3
3
  All notable changes to `scip-query` are documented here. This file starts at 0.11.0; everything below covers behavior changes made since the 0.10.12 release.
4
4
 
5
- ## [Unreleased]
5
+ ## [0.26.0] - 2026-09-11
6
+
7
+ ### Agent workflows and quality review
8
+
9
+ - `review --base <ref>` evaluates changed, new, and untracked TS/JS functions
10
+ for complexity and duplication. Coverage-backed risk analysis requires
11
+ coverage matched to the reviewed source.
12
+ - `system --source [module]` supplies current module files, exports, imports,
13
+ consumers, policy, and findings without first building an index. `health`
14
+ reports concrete source findings instead of an aggregate health score.
15
+ - Consolidated agent guidance into six workflows: `scip-query`, `scip-explore`,
16
+ `scip-plan`, `scip-architecture-review`, `scip-integrity-audit`, and
17
+ `scip-setup`. Planning requires documenting the existing end-to-end flow,
18
+ comparable features, shared owners, and reuse choices before implementation.
19
+ Use ordinary file tools for source reading and scip-query for relationships,
20
+ architecture, quality findings, and change impact.
21
+
22
+ ### Output and migration notes
23
+
24
+ - Oversized human output now saves the complete result to a temporary file
25
+ and prints a preview and file location. Automatic continuation prompts and
26
+ routine metadata footers are removed. Explicit pagination and the internal
27
+ `continue` command remain available. Use `--json --json-output <path>` for
28
+ programmatic filtering; human output is not a stable parsing interface.
29
+ - Source and graph additions are opt-in: for example, `inspect --bindings`
30
+ requests binding details and `evidence --detail` requests detailed edges.
31
+ - Removed overlapping CLI commands: `trace`, `reference-neighborhood`,
32
+ `value-flow`, `reference-reachability`, `isolated`, `similar-chains`,
33
+ `extract-candidates`, `wrapper-candidates`, `stale-abstractions`,
34
+ `complexity-hotspots`, and `self-audit`. Use `evidence` for explicit typed
35
+ relationships, `refs` for reference sites, `dead` for unused-code candidates,
36
+ `dependence-slice` / `slice-cohesion` for local flow questions, and
37
+ `health` / `review` / `complexity` for quality findings. See
38
+ [the current command inventory](docs/CURRENT_COMMANDS.md) for scope and
39
+ [the command reference](docs/COMMAND_REFERENCE.md) for arguments.
40
+ - Removed obsolete JavaScript package subpaths under `scip-query/queries/`:
41
+ `anchors`, `complexity-hotspots`, `convergence`, `dataflow`, `deep-chains`,
42
+ `system-map`, `extract-candidates`, `isolated`, `plan-context`,
43
+ `reference-neighborhood`, `reference-reachability`, `self-audit`,
44
+ `similar-chains`, `slice`, `stale-abstractions`, `trace`, `twin-ab`,
45
+ `value-flow`, and `wrapper-candidates`. Update imports to supported query
46
+ entries; replacements are not necessarily signature-compatible.
47
+
48
+ ### TypeScript accuracy and incremental indexing
49
+
50
+ - Corrected compiler identity and source binding handling across index
51
+ partitions, anonymous/default exports, mutable bindings, and nested value
52
+ reads. Graph results retain the distinction between established edges,
53
+ derived observations, and candidates that require confirmation.
54
+ - Strengthened stale-input detection, source dependency tracking, cache
55
+ invalidation, failed-publication recovery, and incremental compiler-state
56
+ recovery. Failed compiler work does not publish a partially replaced index.
57
+ - Preserved watcher ownership through cleanup failures and made unavailable
58
+ incremental-service recovery explicit. Configured rebuild policy and
59
+ disabled watchers remain respected.
60
+ - Added reproducible property-based tests and state-transition coverage for
61
+ indexing, caches, query inputs, and publication recovery, alongside
62
+ independent known-answer graph tests. These tests do not establish complete
63
+ TypeScript or runtime coverage.
64
+
65
+ ### Indexing performance
66
+
67
+ - Reuse verified compiler documents and runtime analysis after incremental
68
+ edits; avoid repeated reference preparation and runtime mount parsing.
69
+ - Share parsed TypeScript sources across bounded compiler batches and reuse
70
+ focused source facts during graph analysis.
71
+ - On the recorded LaunchPoint backend snapshot, the final compiler-batch
72
+ change reduced a cold index from 192.9 to 167.4 seconds and compiler work
73
+ from 119.7 to 95.1 seconds. All 9,485 compiler documents and recorded
74
+ runtime facts matched the preceding build. Peak process-tree memory rose
75
+ from 11.8 to 12.5 GiB; the one-minute cold-index target remains unmet.
76
+ Results are workload-specific, not a universal latency or memory guarantee.
77
+ - The Windows sidecar remains pinned to `scip-query-scip-windows@0.13.1`.
78
+ Node.js 22 or later is still required.
79
+
80
+ ### Release checks
81
+
82
+ - Build before the complete test suite so CLI contracts exercise the artifact
83
+ that will be packed. Use the compiled CLI in the source-reading contract
84
+ suites and share Node's compilation cache between release test subprocesses,
85
+ with temporary-cache cleanup and explicit cache/coverage controls preserved.
86
+ - Reduce temporary SQLite journal churn in generated read-proof tests while
87
+ retaining the separate reader, every edit checkpoint, and existing timeouts.
88
+ Keep the two-worker test limit and all release checks.
89
+
90
+ ## [0.25.0]
91
+
92
+ ### Slice-based cohesion
93
+
94
+ - New `slice-cohesion [symbol]` command. For every value a TypeScript
95
+ function hands out (its return value, each property of a returned object
96
+ literal, an effect call, a write to a parameter or field, a throw) it
97
+ takes the backward slice over the compiler-owned local flow graph and
98
+ partitions the body by which outputs share statements. Outputs whose
99
+ slices never meet are separate local computations; the largest cluster
100
+ stays in place and every other qualifying cluster is reported as an
101
+ extraction with its line ranges, the outputs it produces, and the
102
+ parameters it would take. Exit-only guards (including branches that only
103
+ log before leaving), shared setup derived only from inputs, and writes
104
+ that reach a parameter through an alias (`bucket = map.get(k)`,
105
+ `map.set(k, bucket)`) are modeled so that one-computation functions stay
106
+ whole.
107
+ - The model keeps failure handling with the operation it protects: every
108
+ statement in a `catch` or `finally` block depends on the try block it
109
+ handles. A function's return value is one output no matter how many
110
+ return statements produce it, and the same field on several returned
111
+ object literals is one output, so alternate returns and guard clauses
112
+ are not seams.
113
+ - React bodies are modeled by state ownership. A tuple state hook
114
+ (`const [x, setX] = useState()`) makes `setX(...)` a write to `x` when it
115
+ runs at render time or inside an effect callback (directly, through
116
+ promise continuations and timers, or through a `useCallback` closure the
117
+ effect calls), so later reads of `x` depend on it. Event handlers declared
118
+ and passed away write nothing until invoked. Candidates carry an
119
+ archetype (`calculation`, `react-component`, `react-hook`,
120
+ `orchestration`), clusters carry a kind (`calculation`, `hook`,
121
+ `effects`) and a role (`remainder`, `extraction`, `below-threshold`), and
122
+ the recommendation names a pure calculation, custom hook, or effect
123
+ sequence candidate rather than a generic function split.
124
+ - Guards are structural: a then-branch that only prepares or reports an exit
125
+ (calls, local bindings, then a return or throw whose value is not computed
126
+ in the branch or an enclosing loop) is an exit, so `return empty` after a
127
+ shared constant, a log line before `return null`, and `return
128
+ suppress(params)` do not form clusters. Every unit also depends on the
129
+ predicates that syntactically enclose it, so a strategy branch inside a
130
+ `try` shares its branch with the fallback that follows. Shared setup is
131
+ judged against the partition: a unit read by outputs of one cluster only
132
+ returns to that cluster. Clusters that compute a result while awaiting or
133
+ producing effects are `operation` candidates, not pure calculations.
134
+ - A keep-whole verdict explains what joins the outputs (statements feeding
135
+ every output, statements feeding several, chaining through predicates or
136
+ state writes, or setup-only reads) instead of a bare shared count, and
137
+ bodies whose only extractions are effect sequences rank after
138
+ calculations, operations, and hooks with an advisory note that
139
+ orchestration may be intentional.
140
+ - Extraction interfaces count only what would become a parameter:
141
+ function parameters, `this`, shared-setup bindings, and locals of an
142
+ enclosing function. Imports, module-level names, globals, and JSX tags
143
+ stay what they are. The `signal` tier requires a complete local model
144
+ and at least one extraction within five parameters; the remainder never
145
+ needs an interface. Orchestration roots (bodies whose value outputs are
146
+ all calls) and code under scripts, tools, bin, or migration directories
147
+ are reported at support tier and ranked last.
148
+ - Coverage names its scope: `coverage.model` is `function-local-flow`,
149
+ `coverage.candidateEdgeEffect` records that candidate flow edges were
150
+ treated as dependencies and can only merge clusters, and a partial model
151
+ turns the recommendation into an inspection request. The JSON envelope
152
+ reports one row per finding, a targeted symbol reports complete
153
+ coverage, a scan without a cap reports complete coverage, and a capped
154
+ scan reports what it omitted. Scan results omit per-unit listings and
155
+ slice arrays (a targeted symbol keeps them), `--scan-limit <n>` bounds
156
+ the analysis work independently of `-n`, help states that `--full` and
157
+ `--limit` cannot be combined, and long scans report progress on stderr.
158
+ - Performance: the analyzer builds one in-memory compiler program per file
159
+ and previously re-parsed the standard library, re-resolved every import
160
+ and `@types` package, and looked for `@typescript/lib-*` replacements on
161
+ each of them. Library and `@types` declaration files are now parsed once
162
+ per process, imports resolve only when an `@types` package can back
163
+ them, lib replacement lookup is off, property accesses are keyed by
164
+ their receiver and member name instead of an inferred property symbol,
165
+ reaching definitions and postdominators run as bit-set worklists in
166
+ reverse postorder, and a scan evaluates a file's callables together so
167
+ its flow graph and parse are shared. On a 7,900-file Next.js repository
168
+ the `.tsx`-scoped scan went from 177 s to 8 s and the unbounded scan from
169
+ more than 30 minutes to 33 s.
170
+
171
+ ### Local flow models try, catch, and finally
172
+
173
+ - The TypeScript local flow CFG now builds try, catch, and finally regions
174
+ instead of treating a try statement as one opaque node that invalidated
175
+ every reaching definition. Any node inside a try block may raise, so the
176
+ state before each of them flows to the catch entry; a `throw` inside the
177
+ block lands in the catch; the catch binding is a definition; normal
178
+ completion of either block continues through the finally block. A finally
179
+ block after a return, break, or continue inside its try or catch is the
180
+ one remaining disclosed gap. Control dependence is derived from predicate
181
+ nodes only, so raise edges do not become spurious branches.
182
+
183
+ ### Local flow covers destructuring, element writes, and loop variables
184
+
185
+ - The TypeScript local definition-use analysis now binds every leaf of an
186
+ object or array pattern in parameters and declarations, feeds pattern
187
+ defaults into the definition, records `container[index] = value` as a
188
+ partial definition that does not kill earlier definitions of the
189
+ container, draws a `for...of` or `for...in` variable from its iterable,
190
+ and resolves a shorthand property (`{ value }`) to the local binding
191
+ rather than the property it creates. Previously a destructuring statement
192
+ or element write invalidated every reaching definition after it, which
193
+ truncated `dependence-slice`, `value-flow`, and every consumer of the flow
194
+ graph.
195
+
196
+ ## [0.24.1]
197
+
198
+ ### Solution-style tsconfigs and a live type checker
199
+
200
+ - A repository whose root `tsconfig.json` only references other projects
201
+ (`files: []` plus `references`) crashed every compiler-backed command in
202
+ 0.24.0 (`Cannot read properties of undefined (reading 'flags')`): the
203
+ root's empty program received each file as an ad hoc addition and the
204
+ provider kept using a checker from the program before the addition. The
205
+ root is now replaced by the projects it references, and the provider reads
206
+ the current program's checker on every use.
207
+ - A function whose return type holds an object type literal
208
+ (`): Promise<{ url: string }> {`) had its body read from the wrong brace;
209
+ thin-forwarder, wrapper, twin, and duplicate-body checks now skip type and
210
+ value literals when locating a body.
211
+
212
+ ### Health counts cycles on the import graph
213
+
214
+ - The health report's circular-dependency axis counts real cycles on the
215
+ import graph, where a cycle is a runtime dependency a reader can break.
216
+ A component that cycles only through type or symbol references (the
217
+ `cycles` command's default basis) is disclosed as a policy exclusion with
218
+ its file count instead of being scored. On Launchpoint this turns one
219
+ 725-file symbol-reference component into a disclosure and no counted
220
+ cycle.
221
+
222
+ ### Detector calibration on a third and fourth repository
223
+
224
+ Label sets for SuplierScout (Express + React, solution-style tsconfig) and
225
+ Stable_Management (workspace monorepo, five tsconfigs) under
226
+ `docs/validation/labels/`. Only the rules those labels measured as an
227
+ improvement shipped.
228
+
229
+ - `similar`: two functions in one file sharing four or more callees at
230
+ similarity 0.5 or more are direct findings whatever the vocabulary class
231
+ (create/update/delete workflows, archive/restore pairs), because the file's
232
+ own imports are the scaffolding vocabulary. A cross-file pair whose shared
233
+ evidence mixes domain behavior with scaffolding is direct from similarity
234
+ 0.6. Precision holds at 1.0 on Launchpoint (recall 0.43 to 0.71) and on
235
+ Stable_Management (recall 0.33 to 0.92); no labeled false row is promoted
236
+ on any of the four repositories.
237
+ - `co-change`: a `<Name>.script.ts` companion is a single-file component's
238
+ script block, so a view script changing with its model is model-view
239
+ coupling rather than a schema-with-script sweep. Stable_Management recall
240
+ 0.82 to 1.0 at precision 1.0.
241
+ - `extract-candidates`: a selected region that is one statement (an awaited
242
+ call with callback arguments, a resource or form declaration, a nested
243
+ function) is support tier, because extracting it would only wrap that
244
+ statement. SuplierScout precision 0.9 to 1.0 with recall unchanged; Vega
245
+ unchanged.
246
+ - `extract-candidates`: every tier reason now names the line range it was
247
+ decided on. The reason said "the largest region" while describing the most
248
+ actionable region, which is often a different one.
249
+ - `passthrough-candidates`: a body whose parameter carries a default value
250
+ reshapes its input and is not a literal passthrough (source-facts payload
251
+ version 10).
252
+
253
+ ## [0.24.0]
254
+
255
+ ### Oversized compiler projects are served from file closures
256
+
257
+ - A tsconfig that lists more files than the semantic worker's heap can hold
258
+ (by the same estimate that sizes the heap: 2,560 MB plus 1.25 MB per
259
+ file) is no longer loaded whole and no longer declined. Its compiler
260
+ program starts empty and grows by the import closure of each requested
261
+ file, so callees, callee coverage, signatures, and import usage stay
262
+ exact per file; references and hierarchies, which need every file, are
263
+ declined per request and the cheap paths answer them. The service status
264
+ and provider availability report `projectScope: file-closure`.
265
+
266
+ ### Second-repository review: layering, facades, stubs, and configuration entry points
267
+
268
+ - A member that calls another member of its twin cluster leaves the cluster
269
+ before pairing, so a facade method no longer pairs with its near-name
270
+ siblings either; the delegation check follows one re-export hop, so a
271
+ caller importing through a barrel is recognized. A thin forwarder whose
272
+ single call has a different name than its own (a web client calling
273
+ `apiClient.getData`, a vendor adapter) is a stub over its peer's concept,
274
+ not a twin of it. Overrides of one abstract member and key-qualified
275
+ lookup members (`getBySlug`, `findByEmail`) on unrelated classes are
276
+ convention, not drift.
277
+ - A class whose methods forward to members of several collaborators is a
278
+ composed-service facade even when no single collaborator receives three
279
+ forwards. A body of the form `return handler(async () => {...})(req, res,
280
+ next)` is a curried handler, not a literal passthrough.
281
+ - A wrapper forwarding through a module-private variable
282
+ (`return loadedLanguages.has(lang)`) is a boundary signal: inlining it
283
+ would export the state it hides.
284
+ - Rendered extraction regions grow to element boundaries: a region cut
285
+ inside a JSX element now reaches its closing tag or, when it only
286
+ straddles two elements, fails the size rules instead of reporting a
287
+ fragment. Growth stops at the function's own `return`, and the candidate's
288
+ region is the largest extractable one rather than the largest one, so a
289
+ smaller signal-tier region beside a region that holds the function's
290
+ return is the advice.
291
+ - Concise arrow bodies are read past braces in parameter types and type
292
+ arguments (`(x) => client.patchData<{ ok: true }>(x)`), so arrow-function
293
+ wrappers, twins, and duplicate bodies see the real body. A file of
294
+ wrappers that all forward through one receiver (a copy catalog, a client
295
+ object) is a facade over it and its wrappers are signal tier.
296
+ - Co-change findings carry an action tier. Pairs whose shared commits were
297
+ only broad sweeps, stale pairs with at most two focused co-changes, and
298
+ configuration, schema, documentation, or generated partners are signal
299
+ tier and no longer count toward the hidden-coupling score.
300
+ - Source files a root configuration names by path (`next.config.js`
301
+ `images.loaderFile`, a `package.json` script running `src/scripts/x.ts`)
302
+ are entry surfaces: their exports are invoked by the framework or tool,
303
+ not dead.
304
+ - `duplicate-bodies --json` no longer prints policy-exclusion lines into
305
+ the JSON document or export file; they remain in human output.
306
+ - Label sets for dead code, similar pairs, stale abstractions, complexity
307
+ hotspots, large components, and co-change on Launchpoint, and for twin
308
+ drift, wrappers, passthroughs, and extraction on Vega, live under
309
+ `docs/validation/labels/`.
310
+
311
+ ### Human output redirected to a file is complete
312
+
313
+ - When stdout is a regular file (`scip-query health --full > report.txt`),
314
+ human output is written in full. Page cursors remain for terminals and
315
+ pipes, where the reader is an agent whose context the page budget
316
+ protects from a client that truncates long tool results.
317
+
318
+ ### Call sites the grammar wraps are no longer dropped
319
+
320
+ - `await client.getData<T>(...)` parses with the `await` bound to the member
321
+ expression, and `(a as B).run()`, `a!.run()`, and `(fn)()` wrap the target
322
+ the same way. The call-site extractor now reads through those wrappers,
323
+ so the occurrence and AST callee tiers see the call; source facts carry
324
+ a new payload version. Found by the Vega self-audit's one oracle-only edge.
325
+
326
+ ### Evidence products keyed by build
327
+
328
+ - File and project evidence rows are keyed by the running build's digest
329
+ as well as their payload version, and rows another build wrote are pruned
330
+ when the cache opens. A development build with changed analysis logic
331
+ never reads a previous build's rows; compiler-derived callee and reference
332
+ rows keep their schema-only keys.
333
+
334
+ ### Dependency cycles classified by component content
335
+
336
+ - A cyclic component is classified by what remains after its barrels,
337
+ tests, and entry files are removed: if the product files still cycle,
338
+ that cycle is the finding and its witness is reported; if not, the
339
+ component only cycles through module bookkeeping. Previously the
340
+ verdict followed one witness path, which could run through a barrel that
341
+ a genuine product cycle sat beside.
342
+
343
+ ### Wrapper, passthrough, and twin-drift findings reviewed against source
344
+
345
+ - A wrapper is `forwarding`-shaped only when its body is exactly one call
346
+ with plain-value arguments; a preparatory statement, a callback, a nested
347
+ call, or a literal the body builds now makes it a helper (signal tier, not
348
+ counted by health). The two-statement allowance had classified computed
349
+ keys, reductions, and two-step operations as inline advice.
350
+ - Boundary-term evidence for wrappers and passthroughs reads owner-qualified
351
+ leaf names (`BaseLogger log`) instead of path-qualified short names, so a
352
+ directory both sides live in (`lib/auth/`, `social-providers/`) no longer
353
+ reads as a boundary while an enclosing class still counts, and a term
354
+ present on both sides (`toBaseRate` forwarding to `parseBaseRate`) is
355
+ shared vocabulary rather than a reason to demote the finding.
356
+ - A twin-drift member that calls its same-name counterpart (an operations
357
+ function over its use-case, a component over the function it renders)
358
+ is a layer, not a parallel implementation; the delegation exclusion no
359
+ longer requires the caller to be a thin forwarder, and an aliased import
360
+ of the counterpart counts only under its alias.
361
+ - Reviewed label sets for the three detectors on `launchpoint-backend`
362
+ live under `docs/validation/labels/launchpoint-backend/`; the label
363
+ scorer understands the `direct | signal` tier vocabulary.
364
+
365
+ ### The semantic worker loads one compiler project at a time
366
+
367
+ - Compiler projects are built lazily: a tsconfig's project exists only once a
368
+ request needs one of its files, files are routed to the tsconfig that
369
+ lists them, and a project that was never asked for costs nothing. The
370
+ semantic worker now carries the same soft-memory retirement mark as the
371
+ index worker, restarts once after a failure, and a batch whose worker died
372
+ of memory is retried as file halves down to single files before the
373
+ service counts as failed. Worker heaps are sized to the indexed document
374
+ count, capped by physical memory or the container's cgroup limit,
375
+ whichever is lower.
376
+
377
+ ### Self-audit distinguishes what the compiler cannot see
378
+
379
+ - A cheap-path answer in a file outside every tsconfig (a test excluded from
380
+ the build config) is reported as outside oracle coverage rather than as a
381
+ false positive, and precision is measured over the rest.
382
+
383
+ ### Health report cache keyed by build
384
+
385
+ - The cache key carries a digest of the running entry bundle, so two builds
386
+ under one version string never serve each other's reports.
387
+
388
+ ### Compiler callees resolve imported functions, and self-audit measures callee precision
389
+
390
+ - The compiler callee path bound an imported call to its import alias and then
391
+ looked for a definition at the import statement, so every cross-file call to
392
+ an imported function was dropped from the semantic callee product and from
393
+ the self-audit oracle. Aliases now resolve to their declaration; cached
394
+ compiler callees carry a new schema so they recompute.
395
+ - The compiler now also reports, per definition, how many call and render
396
+ sites it resolved inside the repository, resolved to a library or ambient
397
+ symbol, or could not bind at all. `self-audit` treats a definition with no
398
+ unbound site as a complete oracle and measures callee and render precision
399
+ over those symbols; a cheap-only answer next to a partial oracle stays
400
+ unverified. Scores report `completeOracleSymbols`.
401
+
402
+ ### Whole-project semantic passes stay inside memory
403
+
404
+ - `extract-candidates --full` (and every other full-mode semantic pass) sent
405
+ the whole candidate set to the semantic service in one request; on a large
406
+ repository the service's worker died at its heap limit and the command then
407
+ loaded the compiler in-process and died at its own. Bulk callee requests are
408
+ now sent in bounded per-file batches, a service failure on a large index
409
+ disables semantic enrichment for the run instead of loading the compiler
410
+ in-process (with a stderr notice), a service that merely lacks a request
411
+ kind keeps serving the others, and the service sizes its compiler worker
412
+ heaps from the indexed document count with a machine-memory ceiling.
413
+ Decoded occurrence data is held in a bounded cache instead of per run.
414
+
415
+ ### Extraction candidates require a real block and stay out of control flow
416
+
417
+ - A region must span eight lines, and a region holding a `return` statement
418
+ of the function itself is support tier: it is the function's control flow,
419
+ not a helper. Exclusive call spans inside one multi-line statement (a
420
+ fluent query chain, a large literal) now form one region, since a region
421
+ never cuts through a statement; rendered subtrees keep the proximity rule
422
+ because a subtree is a legitimate cut inside a `return`. A reviewed
423
+ Launchpoint label set
424
+ (`docs/validation/labels/launchpoint-backend/extract-candidates.json`)
425
+ scores against the current output.
426
+
427
+ ### Carried publications keep the deferred-companion marker
428
+
429
+ - A publication that carried every language shard rewrote the metadata
430
+ without the `scipCompanion` marker while its publication record still said
431
+ `deferred`; the marker is now carried from the accepted generation.
432
+
433
+ ### Health reports name the input they were computed from
434
+
435
+ - `health` now records provenance: the immutable index generation identity
436
+ (with its publication time and mode when the generation store has them),
437
+ the git HEAD, branch, and uncommitted-path count, and the computation time.
438
+ The text report prints it as an `Input:` line under the file and symbol
439
+ counts; `health --json` carries it as `provenance`. Two reports whose
440
+ provenance differs were computed from different inputs, which the file and
441
+ symbol counts alone could not show.
442
+
443
+ ### Incremental TypeScript refresh survives a reused-shard publication
444
+
445
+ - A publication that reused the TypeScript shard (only non-TypeScript inputs
446
+ changed) advances the project snapshot without writing a new overlay, so
447
+ the next TypeScript edit looked for an overlay named by the new snapshot,
448
+ found nothing, and every refresh failed with "deferred TypeScript SCIP
449
+ base has no matching overlay generation" until an explicit
450
+ `--allow-expensive-rebuild`. The incremental planner now bases the next
451
+ overlay on the overlay generation the accepted publication carries, which
452
+ is the overlay that exists.
453
+
454
+ ### Extraction candidates are exclusive regions, not line coincidences
455
+
456
+ - `extract-candidates` now reports contiguous line ranges whose callees are
457
+ used nowhere else in the function, grown over the enclosing block's opener
458
+ and closer, and only when the range is at least five lines, at most three
459
+ quarters of the body, and leaves the rest of the function with callees of
460
+ its own. Callees used across the body (loggers, translators) are reported
461
+ as ambient instead of gluing every region together. When the indexer
462
+ emitted local-symbol occurrences, each region lists the bindings an
463
+ extraction would take as parameters and hand back. The previous
464
+ implementation keyed callee co-occurrence on a source line, so its
465
+ "clusters" were names sharing one line and its isolation score was always
466
+ 100%; `ExtractCandidate.clusters` is replaced by `regions` and the kinds
467
+ are now `call-region` and `render-region`.
468
+
469
+ ### Callee edges start from the indexer's own bindings
470
+
471
+ - The cheap callee path now reads the compiler-resolved occurrence the index
472
+ already stores for each call line before falling back to leaf-name
473
+ resolution. Member calls through typed receivers (`this.service.method()`)
474
+ resolve exactly, and a call the indexer bound to a library or ambient symbol
475
+ is no longer guessed onto a same-named repository function. Occurrences are
476
+ decoded per file from the chunk blobs, so no query loads the whole SCIP
477
+ artifact. `CalleeRow.source` gains `scip-occurrence`, `graph` prints it as
478
+ `O`, and `self-audit` reports cheap rows by evidence source. On a NestJS +
479
+ Next.js monorepo, callee recall against the compiler moved from 0.29 to 0.98.
480
+
481
+ ### Eight judgment skills restored to the bundled suite
482
+
483
+ - `install-skills` and `setup` now also link `principal-maintainability-review`,
484
+ `scip-system-compression`, `scip-root-cause`, `scip-claim-audit`,
485
+ `scip-probe-reachability`, `scip-twin-drift`, `scip-calibrate`, and
486
+ `conductor` into Claude Code, Codex, and the shared agent root. Each is the
487
+ last full version from this repository's history, ported to the current
488
+ command surface: retired `diff-gate`, `cleanup-apply`, `plan-context`,
489
+ `effectiveness`, and `symbols` references are replaced with `diff-impact`,
490
+ `architecture`, `outline`, and the standalone detectors, and every
491
+ `metadata.commands` template validates against the live descriptors.
492
+ - The repo-local `.agents/skills/principal-maintainability-review` and
493
+ `.agents/skills/scip-system-compression` stubs are removed; the bundled
494
+ skills supersede them.
6
495
 
7
496
  ## [0.23.0]
8
497
 
@@ -256,7 +745,7 @@ All notable changes to `scip-query` are documented here. This file starts at 0.1
256
745
  in-process. When more than 256 files have cold fragments and no watch
257
746
  service is running, the semantic consumer tier is reported as failed with
258
747
  the remedy (`scip-query health --full` once, or `scip-query watch
259
- --daemon`) and the source-fallback tier still runs; on a 7,800-file
748
+ --daemon`) and the source-fallback tier still runs; on a 7,800-file
260
749
  repository the in-process computation took longer than the 10-minute batch
261
750
  budget while the service or the prewarm warms the same rows in the
262
751
  background. With warm fragments the same diff-impact takes seconds.