scip-query 0.24.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 (661) hide show
  1. package/CHANGELOG.md +247 -1
  2. package/README.md +111 -124
  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-BociKRpF.d.ts → call-graph-evidence-CUtj8V2I.d.ts} +1 -1
  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-E65ELFKU.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-BHKK5RJY.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-6ILKOOGH.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-OHIV323X.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-2GJSD5GY.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-A4WEAK35.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-GHNPACNP.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-T6DK3ZP7.js +2 -0
  164. package/dist/chunk-TKD34PHN.js +4 -0
  165. package/dist/chunk-TNNQFH7W.js +2 -0
  166. package/dist/chunk-TNV7SSUF.js +2 -0
  167. package/dist/chunk-TO7ZR3EH.js +8 -0
  168. package/dist/chunk-TOU3CHK4.js +2 -0
  169. package/dist/chunk-TRBI4UKT.js +2 -0
  170. package/dist/chunk-TZCVNCAN.js +4 -0
  171. package/dist/chunk-U4LZA5LL.js +3 -0
  172. package/dist/chunk-U5RIG3JP.js +3 -0
  173. package/dist/chunk-UP5KXN2I.js +2 -0
  174. package/dist/chunk-UQFR3NDH.js +5 -0
  175. package/dist/chunk-UXYXF7GV.js +2 -0
  176. package/dist/chunk-VB3GOKOS.js +2 -0
  177. package/dist/{chunk-4FR6GQIT.js → chunk-VF5JZICY.js} +2 -2
  178. package/dist/chunk-VTY3VK6E.js +2 -0
  179. package/dist/chunk-VX2O4RIS.js +2 -0
  180. package/dist/chunk-WKPV2TDZ.js +2 -0
  181. package/dist/chunk-WOFQ5DTB.js +2 -0
  182. package/dist/chunk-WS4C6TCK.js +2 -0
  183. package/dist/chunk-WXU3DGPU.js +2 -0
  184. package/dist/{chunk-ATXPTSEI.js → chunk-X6RMKHJQ.js} +7 -7
  185. package/dist/{chunk-44IETFOU.js → chunk-XHMN6ZX7.js} +2 -2
  186. package/dist/chunk-XHTVFLWW.js +2 -0
  187. package/dist/chunk-XKIDJCIK.js +2 -0
  188. package/dist/chunk-XTYTYZPT.js +2 -0
  189. package/dist/chunk-Y2JHHTTA.js +2 -0
  190. package/dist/chunk-YGVRMGYN.js +4 -0
  191. package/dist/chunk-YNQCGEQE.js +2 -0
  192. package/dist/chunk-YOQVEXVE.js +14 -0
  193. package/dist/chunk-YRT2WLYY.js +2 -0
  194. package/dist/chunk-YTAP5Y2G.js +2 -0
  195. package/dist/chunk-YTYWI7VB.js +2 -0
  196. package/dist/chunk-YULZRALL.js +2 -0
  197. package/dist/chunk-Z33WQG4Q.js +2 -0
  198. package/dist/chunk-ZGTYGDMF.js +16 -0
  199. package/dist/chunk-ZHMRSZFD.js +43 -0
  200. package/dist/chunk-ZHSP366W.js +10 -0
  201. package/dist/chunk-ZIBYCYKK.js +7 -0
  202. package/dist/chunk-ZLADLUE6.js +3 -0
  203. package/dist/chunk-ZO4YXUT6.js +4 -0
  204. package/dist/{chunk-MZPXPSUJ.js → chunk-ZR4HBC2H.js} +2 -2
  205. package/dist/cli-main.js +6 -6
  206. package/dist/cli.js +1 -1
  207. package/dist/{code-B17qEMbt.d.ts → code-BNyrCF3_.d.ts} +3 -2
  208. package/dist/code-IL5WH3NZ.js +2 -0
  209. package/dist/code-result-json-ANTBEDFP.js +4 -0
  210. package/dist/command-descriptors-HEEMDHTU.js +222 -0
  211. package/dist/deps-EOWFC6FD.js +2 -0
  212. package/dist/direct-navigation-Y5B6OSIQ.js +3 -0
  213. package/dist/{exploration-topology-BG4v30HZ.d.ts → exploration-topology-CSgEyAz-.d.ts} +3 -1
  214. package/dist/files-K4AI3JUM.js +2 -0
  215. package/dist/{health-BI2a9WPy.d.ts → health-BtfmNrfa.d.ts} +5 -79
  216. package/dist/hierarchy-6W5NDIFI.js +2 -0
  217. package/dist/imports-WH365QY4.js +2 -0
  218. package/dist/index.d.ts +13 -1
  219. package/dist/index.js +1 -1
  220. package/dist/members-K3PHMF5S.js +2 -0
  221. package/dist/methods-E7KVMBX4.js +2 -0
  222. package/dist/output-continuation-command-BJSY67SN.js +3 -0
  223. package/dist/output-pagination-UZJ5ACIX.js +24 -0
  224. package/dist/postinstall.js +1 -1
  225. package/dist/project-reindex-EP24WT4X.js +3 -0
  226. package/dist/queries/affected.js +1 -1
  227. package/dist/queries/architecture.d.ts +15 -4
  228. package/dist/queries/architecture.js +1 -1
  229. package/dist/queries/bottlenecks.js +1 -1
  230. package/dist/queries/by-kind.js +1 -1
  231. package/dist/queries/call-graph.d.ts +1 -1
  232. package/dist/queries/call-graph.js +1 -1
  233. package/dist/queries/change-surface.d.ts +1 -0
  234. package/dist/queries/change-surface.js +1 -1
  235. package/dist/queries/cleanup-plan.d.ts +3 -3
  236. package/dist/queries/cleanup-plan.js +1 -1
  237. package/dist/queries/co-change.js +1 -1
  238. package/dist/queries/code.d.ts +1 -1
  239. package/dist/queries/code.js +1 -1
  240. package/dist/queries/complexity.d.ts +6 -3
  241. package/dist/queries/complexity.js +1 -1
  242. package/dist/queries/context.d.ts +1 -7
  243. package/dist/queries/context.js +1 -1
  244. package/dist/queries/coupling.js +1 -1
  245. package/dist/queries/cycles.js +1 -1
  246. package/dist/queries/dead.js +1 -1
  247. package/dist/queries/decorative-checkers.js +1 -1
  248. package/dist/queries/dependence-slice.d.ts +46 -22
  249. package/dist/queries/dependence-slice.js +1 -1
  250. package/dist/queries/dependency-depth.d.ts +1 -7
  251. package/dist/queries/dependency-depth.js +1 -1
  252. package/dist/queries/deps.js +1 -1
  253. package/dist/queries/diff-impact.d.ts +3 -1
  254. package/dist/queries/diff-impact.js +1 -1
  255. package/dist/queries/doc-drift.js +1 -1
  256. package/dist/queries/drift.d.ts +1 -1
  257. package/dist/queries/drift.js +1 -1
  258. package/dist/queries/duplicate-bodies.d.ts +1 -1
  259. package/dist/queries/duplicate-bodies.js +1 -1
  260. package/dist/queries/entry-map.d.ts +2 -4
  261. package/dist/queries/entry-map.js +1 -1
  262. package/dist/queries/evidence.d.ts +121 -61
  263. package/dist/queries/evidence.js +1 -1
  264. package/dist/queries/fan.js +1 -1
  265. package/dist/queries/files.js +1 -1
  266. package/dist/queries/health.d.ts +1 -1
  267. package/dist/queries/health.js +1 -1
  268. package/dist/queries/hierarchy.d.ts +2 -2
  269. package/dist/queries/hierarchy.js +1 -1
  270. package/dist/queries/hotspots.d.ts +1 -1
  271. package/dist/queries/hotspots.js +1 -1
  272. package/dist/queries/imports.d.ts +1 -0
  273. package/dist/queries/imports.js +1 -1
  274. package/dist/queries/incomplete-migration.d.ts +3 -3
  275. package/dist/queries/incomplete-migration.js +1 -1
  276. package/dist/queries/index.d.ts +15 -64
  277. package/dist/queries/index.js +1 -1
  278. package/dist/queries/locality-candidates.d.ts +4 -4
  279. package/dist/queries/locality-candidates.js +1 -1
  280. package/dist/queries/members.d.ts +2 -2
  281. package/dist/queries/members.js +1 -1
  282. package/dist/queries/methods.js +1 -1
  283. package/dist/queries/not-implemented.d.ts +2 -6
  284. package/dist/queries/not-implemented.js +1 -1
  285. package/dist/queries/outline.js +1 -1
  286. package/dist/queries/passthrough-candidates.js +1 -1
  287. package/dist/queries/react-component-duplicates.js +1 -1
  288. package/dist/queries/react-hook-candidates.js +1 -1
  289. package/dist/queries/react-large-component-pressure.js +1 -1
  290. package/dist/queries/recent-duplicates.js +1 -1
  291. package/dist/queries/redundant-reexports.d.ts +4 -14
  292. package/dist/queries/redundant-reexports.js +1 -1
  293. package/dist/queries/refs.d.ts +4 -1
  294. package/dist/queries/refs.js +1 -1
  295. package/dist/queries/review.d.ts +188 -0
  296. package/dist/queries/review.js +2 -0
  297. package/dist/queries/similar-files.d.ts +7 -10
  298. package/dist/queries/similar-files.js +1 -1
  299. package/dist/queries/similar-signatures.js +1 -1
  300. package/dist/queries/similar.d.ts +19 -1
  301. package/dist/queries/similar.js +1 -1
  302. package/dist/queries/slice-cohesion.d.ts +205 -0
  303. package/dist/queries/slice-cohesion.js +2 -0
  304. package/dist/queries/source-inspection.d.ts +6 -202
  305. package/dist/queries/source-inspection.js +1 -1
  306. package/dist/queries/source-search.d.ts +2 -3
  307. package/dist/queries/source-search.js +1 -1
  308. package/dist/queries/stats.d.ts +1 -0
  309. package/dist/queries/stats.js +1 -1
  310. package/dist/queries/surface.js +1 -1
  311. package/dist/queries/symbols.js +1 -1
  312. package/dist/queries/system.d.ts +4 -2
  313. package/dist/queries/system.js +1 -1
  314. package/dist/queries/test-quality.d.ts +1 -1
  315. package/dist/queries/test-quality.js +1 -1
  316. package/dist/queries/twin-drift.d.ts +1 -1
  317. package/dist/queries/twin-drift.js +1 -1
  318. package/dist/queries/unused-imports.js +1 -1
  319. package/dist/queries/unused-params.d.ts +3 -15
  320. package/dist/queries/unused-params.js +1 -1
  321. package/dist/queries/vue-component-duplicates.js +1 -1
  322. package/dist/queries/vue-composable-candidates.js +1 -1
  323. package/dist/queries/vue-large-view-pressure.js +1 -1
  324. package/dist/query-service-fastpath.js +5 -5
  325. package/dist/query-service-server.js +4 -4
  326. package/dist/refs-CCBJG7WK.js +2 -0
  327. package/dist/refs-pagination-DRNLVU4S.js +2 -0
  328. package/dist/reindex-worker.js +79 -29
  329. package/dist/reindex.js +45 -45
  330. package/dist/repository-cache-worker.js +2 -0
  331. package/dist/runtime.d.ts +8 -8
  332. package/dist/runtime.js +3 -4
  333. package/dist/rust-semantic-session-server.js +1 -1
  334. package/dist/rust-semantic-session-worker.js +1 -1
  335. package/dist/rust-semantic-worker.js +1 -1
  336. package/dist/service-queries-2WAJI7R6.js +6 -0
  337. package/dist/source-inspection-91U9zdO3.d.ts +341 -0
  338. package/dist/{source-search-types-Dwz8KeuW.d.ts → source-search-types-DWGYNg8M.d.ts} +15 -2
  339. package/dist/stats-G7DIV6VU.js +2 -0
  340. package/dist/surface-IO55UALI.js +2 -0
  341. package/dist/system-ZBMSHJXU.js +2 -0
  342. package/dist/{queries/trace.d.ts → trace-BMjw3prn.d.ts} +1 -18
  343. package/dist/typescript-indexer.js +2 -0
  344. package/dist/typescript-mailbox-worker.js +1 -1
  345. package/dist/watch-server.js +3 -3
  346. package/docs/AGENT_GUIDE.md +19 -128
  347. package/docs/CLI_JSON_OUTPUT.md +21 -17
  348. package/docs/COMMAND_REFERENCE.md +34 -49
  349. package/docs/CURRENT_COMMANDS.md +123 -0
  350. package/docs/DETECTOR_EVIDENCE_CONTRACTS.md +0 -40
  351. package/docs/DETECTOR_GUIDE.md +27 -23
  352. package/docs/PRODUCT_VISION.md +135 -0
  353. package/docs/PROPERTY_TESTING.md +73 -0
  354. package/docs/REVIEW.md +76 -0
  355. package/docs/SKILLS.md +51 -0
  356. package/docs/WINDOWS_SIDECAR_RELEASE.md +12 -3
  357. package/docs/accuracy-audit-checklist.md +34 -0
  358. package/docs/analyzer-inventory.md +2 -2
  359. package/package.json +18 -80
  360. package/scripts/evidence-product-contract.mjs +7 -3
  361. package/scripts/record-review-coverage.mjs +118 -0
  362. package/scripts/scip-windows-provenance.mjs +29 -19
  363. package/skills/scip-architecture-review/SKILL.md +57 -0
  364. package/skills/scip-architecture-review/agents/openai.yaml +4 -0
  365. package/skills/scip-architecture-review/references/design-checks.md +17 -0
  366. package/skills/scip-explore/SKILL.md +15 -59
  367. package/skills/scip-explore/agents/openai.yaml +3 -3
  368. package/skills/scip-explore/references/external-evidence.md +2 -2
  369. package/skills/scip-explore/references/information-model.md +26 -29
  370. package/skills/scip-explore/scripts/capture-evidence.mjs +68 -34
  371. package/skills/scip-integrity-audit/SKILL.md +53 -181
  372. package/skills/scip-integrity-audit/agents/openai.yaml +3 -3
  373. package/skills/scip-integrity-audit/references/integrity-probes.md +27 -0
  374. package/skills/scip-plan/SKILL.md +39 -65
  375. package/skills/scip-plan/agents/openai.yaml +2 -2
  376. package/skills/scip-query/SKILL.md +28 -81
  377. package/skills/scip-query/agents/openai.yaml +2 -2
  378. package/skills/scip-query/references/command-guide.md +169 -0
  379. package/skills/scip-setup/SKILL.md +4 -2
  380. package/skills/scip-setup/agents/openai.yaml +3 -3
  381. package/dist/by-kind-H3P6BR5G.js +0 -2
  382. package/dist/call-graph-VTG2CUOQ.js +0 -2
  383. package/dist/chunk-26CT72HM.js +0 -2
  384. package/dist/chunk-2BMSSRBH.js +0 -2
  385. package/dist/chunk-2M2LSIMY.js +0 -7
  386. package/dist/chunk-2N6WBNDC.js +0 -29
  387. package/dist/chunk-2OOY75BW.js +0 -2
  388. package/dist/chunk-2USA3S3P.js +0 -3
  389. package/dist/chunk-2VAHDDLM.js +0 -133
  390. package/dist/chunk-2XWIUW5Z.js +0 -455
  391. package/dist/chunk-35NLDRZC.js +0 -2
  392. package/dist/chunk-3AF4TUFK.js +0 -3
  393. package/dist/chunk-3D4BOXW6.js +0 -20
  394. package/dist/chunk-3LO4FST5.js +0 -16
  395. package/dist/chunk-3WTY4LP2.js +0 -3
  396. package/dist/chunk-3Z5AMSK6.js +0 -29
  397. package/dist/chunk-4KBTHJLP.js +0 -2
  398. package/dist/chunk-5BIKR67W.js +0 -2
  399. package/dist/chunk-5PROPLHI.js +0 -2
  400. package/dist/chunk-5V7EPTII.js +0 -2
  401. package/dist/chunk-62LPZCBQ.js +0 -3
  402. package/dist/chunk-64O2JHQA.js +0 -2
  403. package/dist/chunk-6D4F5VWG.js +0 -10
  404. package/dist/chunk-6ERFBC3X.js +0 -3
  405. package/dist/chunk-6MFXCMZC.js +0 -2
  406. package/dist/chunk-6O7FACKB.js +0 -2
  407. package/dist/chunk-6TS3KOXR.js +0 -2
  408. package/dist/chunk-76QOU4PK.js +0 -3
  409. package/dist/chunk-7DUI77BN.js +0 -2
  410. package/dist/chunk-7F45LJKI.js +0 -2
  411. package/dist/chunk-7F7T6DCR.js +0 -2
  412. package/dist/chunk-7H6VHWWJ.js +0 -2
  413. package/dist/chunk-7HXT6YLU.js +0 -5
  414. package/dist/chunk-7KCZELVM.js +0 -2
  415. package/dist/chunk-7R4V5ES6.js +0 -6
  416. package/dist/chunk-7RIRIADH.js +0 -7
  417. package/dist/chunk-7ZLWLOGT.js +0 -2
  418. package/dist/chunk-AADQLOQ4.js +0 -38
  419. package/dist/chunk-AN76MGUE.js +0 -2
  420. package/dist/chunk-ANLNLY66.js +0 -2
  421. package/dist/chunk-AX7IDVFT.js +0 -2
  422. package/dist/chunk-B3X6KU75.js +0 -2
  423. package/dist/chunk-B7MPDEAK.js +0 -3
  424. package/dist/chunk-BBB5FBX4.js +0 -2
  425. package/dist/chunk-BJT7LSPK.js +0 -3
  426. package/dist/chunk-BJWFVAA5.js +0 -2
  427. package/dist/chunk-BKVWUP7Y.js +0 -2
  428. package/dist/chunk-BKZYTLGE.js +0 -35
  429. package/dist/chunk-BL6DCHQP.js +0 -2
  430. package/dist/chunk-BOW7SSQH.js +0 -43
  431. package/dist/chunk-C4RHHCKL.js +0 -7
  432. package/dist/chunk-C7C6AKAT.js +0 -117
  433. package/dist/chunk-CD6M6LS2.js +0 -16
  434. package/dist/chunk-CFE6PSG6.js +0 -2
  435. package/dist/chunk-CFNIGQMT.js +0 -2
  436. package/dist/chunk-CKBUBRYD.js +0 -2
  437. package/dist/chunk-CZW5MZ5B.js +0 -2
  438. package/dist/chunk-DBBZ63ZX.js +0 -2
  439. package/dist/chunk-DBN7DMJB.js +0 -18
  440. package/dist/chunk-DUULLZHZ.js +0 -3
  441. package/dist/chunk-DV5Y5NOS.js +0 -2
  442. package/dist/chunk-DZOIKCTM.js +0 -3
  443. package/dist/chunk-E4PKTOL3.js +0 -2
  444. package/dist/chunk-E7QR35ST.js +0 -2
  445. package/dist/chunk-EFSXAINW.js +0 -2
  446. package/dist/chunk-EHVEIEQN.js +0 -18
  447. package/dist/chunk-EHYDXE3Z.js +0 -2
  448. package/dist/chunk-EP63Y6LD.js +0 -2
  449. package/dist/chunk-EPX6NQN6.js +0 -4
  450. package/dist/chunk-ETC674NS.js +0 -5
  451. package/dist/chunk-F5GSBHC6.js +0 -3
  452. package/dist/chunk-FH3DGXC6.js +0 -2
  453. package/dist/chunk-FI7VGOR4.js +0 -16
  454. package/dist/chunk-FJF6VO2P.js +0 -2
  455. package/dist/chunk-FLMTCX5R.js +0 -2
  456. package/dist/chunk-FVFDOIM3.js +0 -2
  457. package/dist/chunk-G2HU5WRN.js +0 -2
  458. package/dist/chunk-G4ALYS4J.js +0 -2
  459. package/dist/chunk-G56I7K4W.js +0 -26
  460. package/dist/chunk-GC4DG2V5.js +0 -2
  461. package/dist/chunk-GG45PK4S.js +0 -4
  462. package/dist/chunk-GINH3YQU.js +0 -20
  463. package/dist/chunk-GTZZVLKJ.js +0 -2
  464. package/dist/chunk-GXXW5ZHH.js +0 -2
  465. package/dist/chunk-H5EXS3HM.js +0 -2
  466. package/dist/chunk-HAXXKRTD.js +0 -4
  467. package/dist/chunk-HEZWBAZY.js +0 -2
  468. package/dist/chunk-HMEWLMML.js +0 -2
  469. package/dist/chunk-HOBOVYPO.js +0 -11
  470. package/dist/chunk-HRFQ6GW5.js +0 -8
  471. package/dist/chunk-HX4X7KG3.js +0 -2
  472. package/dist/chunk-HYT2R7LX.js +0 -4
  473. package/dist/chunk-IKQVBVQL.js +0 -40
  474. package/dist/chunk-IW5XQG5G.js +0 -2
  475. package/dist/chunk-J6GLBBRK.js +0 -4
  476. package/dist/chunk-J7A4PWFX.js +0 -3
  477. package/dist/chunk-JCSAZ35V.js +0 -2
  478. package/dist/chunk-JDU2IV3A.js +0 -2
  479. package/dist/chunk-JFMEXGFE.js +0 -2
  480. package/dist/chunk-JFMI5SGB.js +0 -4
  481. package/dist/chunk-JJP37RGX.js +0 -57
  482. package/dist/chunk-JZ2A7LDM.js +0 -5
  483. package/dist/chunk-KMVGRIO2.js +0 -2
  484. package/dist/chunk-KNLQGXVH.js +0 -80
  485. package/dist/chunk-KVQCECPR.js +0 -2
  486. package/dist/chunk-KXXORBZ2.js +0 -4
  487. package/dist/chunk-L5KYH6U3.js +0 -35
  488. package/dist/chunk-L6XHYJPZ.js +0 -21
  489. package/dist/chunk-L7KTFEAV.js +0 -43
  490. package/dist/chunk-LDXHR5EL.js +0 -23
  491. package/dist/chunk-LEECKFCJ.js +0 -2
  492. package/dist/chunk-MHGDSBFX.js +0 -2
  493. package/dist/chunk-MLQVVDG3.js +0 -74
  494. package/dist/chunk-MOKUWRHO.js +0 -3
  495. package/dist/chunk-MPYAPMNE.js +0 -2
  496. package/dist/chunk-MTDBHTSF.js +0 -2
  497. package/dist/chunk-MV6SPXCR.js +0 -7
  498. package/dist/chunk-MWN53KRN.js +0 -60
  499. package/dist/chunk-MXNGIEPU.js +0 -3
  500. package/dist/chunk-N55KIE46.js +0 -2
  501. package/dist/chunk-NB4D3BNM.js +0 -2
  502. package/dist/chunk-NGKBOT6G.js +0 -23
  503. package/dist/chunk-NJGKXKQF.js +0 -2
  504. package/dist/chunk-NJQISBL4.js +0 -8
  505. package/dist/chunk-NJT3ZEKY.js +0 -16
  506. package/dist/chunk-NKMKZP6A.js +0 -2
  507. package/dist/chunk-NODFZ6ED.js +0 -2
  508. package/dist/chunk-NSM5IEVW.js +0 -2
  509. package/dist/chunk-NTGUVNR2.js +0 -3
  510. package/dist/chunk-NU3KFF2O.js +0 -57
  511. package/dist/chunk-NWLVNU66.js +0 -557
  512. package/dist/chunk-NYKZMCRC.js +0 -4
  513. package/dist/chunk-O6BUXZEH.js +0 -6
  514. package/dist/chunk-ODPDP7A4.js +0 -3
  515. package/dist/chunk-OIAPEKMT.js +0 -3
  516. package/dist/chunk-OIOC5EHF.js +0 -3
  517. package/dist/chunk-ONPPQM4G.js +0 -2
  518. package/dist/chunk-OUHEZBYI.js +0 -2
  519. package/dist/chunk-OVGYW7UD.js +0 -29
  520. package/dist/chunk-OYKU4B3Y.js +0 -2
  521. package/dist/chunk-POBJ6FR2.js +0 -5
  522. package/dist/chunk-PSZPMMWN.js +0 -2
  523. package/dist/chunk-PXTRBKRK.js +0 -3
  524. package/dist/chunk-Q5JRIHT3.js +0 -4
  525. package/dist/chunk-Q7ATHARX.js +0 -2
  526. package/dist/chunk-Q7CSKIDM.js +0 -5
  527. package/dist/chunk-QBQE7ZJ5.js +0 -3
  528. package/dist/chunk-QH22UIXP.js +0 -5
  529. package/dist/chunk-QXCKQTKR.js +0 -60
  530. package/dist/chunk-RBAD4GJ2.js +0 -13
  531. package/dist/chunk-RMDPFPNW.js +0 -2
  532. package/dist/chunk-ROPJDEJZ.js +0 -4
  533. package/dist/chunk-RVZC6TJE.js +0 -2
  534. package/dist/chunk-S4QZBKSR.js +0 -3
  535. package/dist/chunk-SCPMZ73U.js +0 -2
  536. package/dist/chunk-SIAP5RGI.js +0 -73
  537. package/dist/chunk-SIX4RFR3.js +0 -3
  538. package/dist/chunk-SKKXTABJ.js +0 -16
  539. package/dist/chunk-SSRFUQBD.js +0 -2
  540. package/dist/chunk-SYVJEEUJ.js +0 -3
  541. package/dist/chunk-T3CZAZSI.js +0 -8
  542. package/dist/chunk-T6DWDI5E.js +0 -3
  543. package/dist/chunk-T6HRIROJ.js +0 -7
  544. package/dist/chunk-TAA7HXHE.js +0 -2
  545. package/dist/chunk-TJ2JQYT3.js +0 -2
  546. package/dist/chunk-TULNMD5T.js +0 -368
  547. package/dist/chunk-U2FPY5XA.js +0 -3
  548. package/dist/chunk-U3SXIMII.js +0 -38
  549. package/dist/chunk-U6KCHXJ4.js +0 -2
  550. package/dist/chunk-UH3XSKS5.js +0 -9
  551. package/dist/chunk-UIFUZVCC.js +0 -2
  552. package/dist/chunk-UXKURIVI.js +0 -2
  553. package/dist/chunk-V2RBODHL.js +0 -2
  554. package/dist/chunk-VBKUWB6N.js +0 -2
  555. package/dist/chunk-VBV6ALJE.js +0 -2
  556. package/dist/chunk-VDGFWCQV.js +0 -2
  557. package/dist/chunk-VDSDOEWF.js +0 -2
  558. package/dist/chunk-VZPWVCLN.js +0 -20
  559. package/dist/chunk-WDSFQDPN.js +0 -2
  560. package/dist/chunk-WFA35BGR.js +0 -7
  561. package/dist/chunk-WLMP3OCW.js +0 -2
  562. package/dist/chunk-WSA52GOR.js +0 -2
  563. package/dist/chunk-WYPL7GF7.js +0 -2
  564. package/dist/chunk-X3YVZAKZ.js +0 -5
  565. package/dist/chunk-X6OGVFIT.js +0 -2
  566. package/dist/chunk-XDAUYDFT.js +0 -2
  567. package/dist/chunk-XKXTR6ZI.js +0 -9
  568. package/dist/chunk-Y5DFAW5W.js +0 -4
  569. package/dist/chunk-YSYPDRD5.js +0 -3
  570. package/dist/chunk-ZFVPWH62.js +0 -5
  571. package/dist/chunk-ZGIHTH27.js +0 -2
  572. package/dist/chunk-ZGIQN2SX.js +0 -2
  573. package/dist/chunk-ZHG4WAHR.js +0 -12
  574. package/dist/chunk-ZKB2XUEN.js +0 -4
  575. package/dist/chunk-ZLMXIQLC.js +0 -21
  576. package/dist/chunk-ZMCQIHI4.js +0 -2
  577. package/dist/code-TAVIKWJI.js +0 -2
  578. package/dist/code-result-json-5FEFQCAQ.js +0 -2
  579. package/dist/command-descriptors-7BKH53Y3.js +0 -343
  580. package/dist/dataflow-GFBTVDH3.js +0 -2
  581. package/dist/dependence-slice-GWGQCODG.js +0 -2
  582. package/dist/deps-4QHVDPYA.js +0 -2
  583. package/dist/direct-navigation-4UBC6HNW.js +0 -3
  584. package/dist/entry-map-QCTF4RVY.js +0 -2
  585. package/dist/files-M2UBF5HJ.js +0 -2
  586. package/dist/graph-evidence-Bjyky2V4.d.ts +0 -126
  587. package/dist/hierarchy-2UIHRLW4.js +0 -2
  588. package/dist/imports-WIE3YZOB.js +0 -2
  589. package/dist/members-YKD636DA.js +0 -2
  590. package/dist/methods-VDF4IMYG.js +0 -2
  591. package/dist/next-anchor-candidates-BwMczMvX.d.ts +0 -90
  592. package/dist/output-continuation-command-4UMDOOLO.js +0 -3
  593. package/dist/output-pagination-2GME6OPY.js +0 -19
  594. package/dist/project-reindex-XEQTRCV5.js +0 -3
  595. package/dist/queries/anchors.d.ts +0 -123
  596. package/dist/queries/anchors.js +0 -2
  597. package/dist/queries/complexity-hotspots.d.ts +0 -40
  598. package/dist/queries/complexity-hotspots.js +0 -2
  599. package/dist/queries/convergence.d.ts +0 -33
  600. package/dist/queries/convergence.js +0 -2
  601. package/dist/queries/dataflow.d.ts +0 -77
  602. package/dist/queries/dataflow.js +0 -2
  603. package/dist/queries/deep-chains.d.ts +0 -5
  604. package/dist/queries/deep-chains.js +0 -2
  605. package/dist/queries/extract-candidates.d.ts +0 -79
  606. package/dist/queries/extract-candidates.js +0 -2
  607. package/dist/queries/isolated.d.ts +0 -24
  608. package/dist/queries/isolated.js +0 -2
  609. package/dist/queries/plan-context.d.ts +0 -33
  610. package/dist/queries/plan-context.js +0 -2
  611. package/dist/queries/reference-neighborhood.d.ts +0 -4
  612. package/dist/queries/reference-neighborhood.js +0 -2
  613. package/dist/queries/reference-reachability.d.ts +0 -48
  614. package/dist/queries/reference-reachability.js +0 -2
  615. package/dist/queries/self-audit.d.ts +0 -69
  616. package/dist/queries/self-audit.js +0 -2
  617. package/dist/queries/similar-chains.d.ts +0 -48
  618. package/dist/queries/similar-chains.js +0 -2
  619. package/dist/queries/slice.d.ts +0 -4
  620. package/dist/queries/slice.js +0 -2
  621. package/dist/queries/stale-abstractions.d.ts +0 -72
  622. package/dist/queries/stale-abstractions.js +0 -2
  623. package/dist/queries/system-map.d.ts +0 -449
  624. package/dist/queries/system-map.js +0 -2
  625. package/dist/queries/trace.js +0 -2
  626. package/dist/queries/twin-ab.d.ts +0 -66
  627. package/dist/queries/twin-ab.js +0 -2
  628. package/dist/queries/value-flow.d.ts +0 -43
  629. package/dist/queries/value-flow.js +0 -2
  630. package/dist/queries/wrapper-candidates.d.ts +0 -49
  631. package/dist/queries/wrapper-candidates.js +0 -2
  632. package/dist/refs-JNK5CLM7.js +0 -2
  633. package/dist/refs-pagination-6BLRYGMV.js +0 -2
  634. package/dist/slice-PHPVNCWX.js +0 -2
  635. package/dist/source-snippet-_wrcgmZc.d.ts +0 -15
  636. package/dist/stats-OOJ74B32.js +0 -2
  637. package/dist/surface-MQX5MPIV.js +0 -2
  638. package/dist/symbol-resolution-DBLVXLBC.js +0 -2
  639. package/dist/system-JOPKV4OG.js +0 -2
  640. package/dist/trace-I2P2YFH4.js +0 -2
  641. package/dist/value-flow-JJVMF7NP.js +0 -2
  642. package/skills/concrete-plan/SKILL.md +0 -8
  643. package/skills/concrete-plan/agents/openai.yaml +0 -4
  644. package/skills/conductor/SKILL.md +0 -110
  645. package/skills/conductor/agents/openai.yaml +0 -4
  646. package/skills/principal-maintainability-review/SKILL.md +0 -273
  647. package/skills/principal-maintainability-review/agents/openai.yaml +0 -4
  648. package/skills/scip-calibrate/SKILL.md +0 -102
  649. package/skills/scip-calibrate/agents/openai.yaml +0 -4
  650. package/skills/scip-claim-audit/SKILL.md +0 -113
  651. package/skills/scip-claim-audit/agents/openai.yaml +0 -4
  652. package/skills/scip-probe-reachability/SKILL.md +0 -93
  653. package/skills/scip-probe-reachability/agents/openai.yaml +0 -4
  654. package/skills/scip-root-cause/SKILL.md +0 -160
  655. package/skills/scip-root-cause/agents/openai.yaml +0 -4
  656. package/skills/scip-system-compression/SKILL.md +0 -252
  657. package/skills/scip-system-compression/agents/openai.yaml +0 -4
  658. package/skills/scip-system-compression/references/compression-atlas.md +0 -116
  659. package/skills/scip-system-compression/references/compression-patterns.md +0 -87
  660. package/skills/scip-twin-drift/SKILL.md +0 -109
  661. package/skills/scip-twin-drift/agents/openai.yaml +0 -4
package/CHANGELOG.md CHANGED
@@ -2,7 +2,253 @@
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).
6
252
 
7
253
  ## [0.24.0]
8
254
 
package/README.md CHANGED
@@ -1,31 +1,31 @@
1
1
  # scip-query
2
2
 
3
- scip-query is a compiler-backed repository-understanding system for coding
4
- agents.
5
-
6
- A repository-understanding system turns indexed code facts into accurate,
7
- navigable abstractions of the systems in a codebase. Its essential service is
8
- structure-preserving compression: an agent can see the relevant regions and
9
- relationships before an edit, drill into several material regions together,
10
- and keep exact source identities for its plan without reading every
11
- implementation. scip-query differs from text search because it uses
12
- compiler-produced SCIP indexes: two matching words count as the same symbol
13
- only when the language tooling resolves them to the same definition. It also
14
- reports coverage gaps, so omitted evidence is not mistaken for evidence that a
15
- relationship does not exist.
16
-
17
- The tool helps an agent answer four practical questions:
18
-
19
- - What is this code connected to?
20
- - Which systems participate in this behavior from entry to final effect?
21
- - Who consumes it, and what could a change affect?
22
- - Does the repository declare a structural rule for this dependency?
23
- - Where do React, Vue, duplication, drift, complexity, or cleanup detectors
24
- point to code worth inspecting?
25
-
26
- The agent still owns the task, plan, implementation, tests, and final judgment.
27
- scip-query does not create goals, act as an acceptance test, or decide that work
28
- is complete.
3
+ For the normal **explore → plan → implement → review** workflow, use `scip-query system --source` for a module inventory, `scip-query health` for cleanup candidates, and `scip-query review --base HEAD` after edits. These inspect current TS/JS source without an index. See [agent workflows and module evidence](docs/SKILLS.md), [review and coverage](docs/REVIEW.md), and the [product vision](docs/PRODUCT_VISION.md).
4
+
5
+ scip-query helps coding agents inspect code relationships and review changes.
6
+ It uses compiler-produced symbol identities to distinguish definitions that happen
7
+ to share a name, then attaches source locations and coverage to the relationships
8
+ it reports.
9
+
10
+ The core workflow is to locate the code, inspect the relationships relevant to a
11
+ change, make the change, and check its consumers and declared architectural rules.
12
+ The tool supplies evidence; design decisions still require understanding the
13
+ project's responsibilities and verifying behavior with tests.
14
+
15
+ | Question | Evidence to use |
16
+ | --- | --- |
17
+ | Which definition does this reference mean? | Search, outline, references, exact source |
18
+ | What can call this, or be called by it? | Execution relationships |
19
+ | Where does a value come from? | Value transfers and function-local dependence slices |
20
+ | What state or external boundary does this operation touch? | State and runtime relationships, with provider limits |
21
+ | Which dependencies are permitted? | Explicit architecture rules |
22
+ | What might my edit affect? | Changed symbols and downstream consumers from diff-impact |
23
+ | Which code warrants review? | Individual health findings, exclusions, and analysis coverage |
24
+
25
+ Containment identifies where a symbol is declared. Domain ownership identifies
26
+ which module is responsible for enforcing a rule or controlling a resource;
27
+ containment alone cannot establish that responsibility. Neither a dependency count
28
+ nor a detector finding establishes architectural quality.
29
29
 
30
30
  ## Install
31
31
 
@@ -49,7 +49,7 @@ allow-scripts=... --location=user` command npm prints; `--allow-scripts` is
49
49
  rejected inside a project directory by design.
50
50
 
51
51
  Setup detects supported languages, installs or checks their indexers, builds
52
- the local index, installs the bundled skills, and writes concise agent guidance.
52
+ the local index, installs the six agent workflows, and writes concise agent guidance.
53
53
  When the repository declares valid architecture rules, setup also installs one
54
54
  checkout-local Stop hook that checks those rules after indexed source changes.
55
55
  It does not install a completion gate, pre-commit gate, or CI enforcement.
@@ -63,81 +63,36 @@ scip-query capabilities
63
63
 
64
64
  ## The normal workflow
65
65
 
66
- Use scip-query as the primary reading surface for indexed source. First name the
67
- few material repository facts the answer depends on. Locate exact referents with
68
- `search` for trustworthy text, `outline` for a known file, or `entrypoints` for
69
- an external callable surface. Then select exact symbols or file/line constructs
70
- and project only the relationship families and directions capable of establishing
71
- those facts. scip-query resolves identity, typed edges, evidence strength, provider
72
- support, and bounded coverage; it does not decide which facts matter to the task.
66
+ Use ordinary file search and source reads for implementation details. Use
67
+ scip-query to inspect relationships, discover reuse opportunities, evaluate
68
+ module dependencies and review actual changes. For a substantial change, map
69
+ the existing central path and comparable features before choosing an extension
70
+ point; document what will be reused and which consumers are affected.
73
71
 
74
72
  ```bash
75
- scip-query search 'work_session_stream_events'
76
- scip-query evidence \
77
- --symbol 'appendWorkSessionStreamEvents' \
78
- --edge execution \
79
- --edge runtime \
80
- --direction both \
81
- --depth 2 \
82
- --max-edges 32
73
+ scip-query system --source
74
+ scip-query evidence --at src/service.ts:42 --edge execution --direction incoming --depth 1 --max-edges 30
83
75
  ```
84
76
 
85
- Treat the evidence inventory, facts, calibration, coverage, and recovery paths as
86
- one contract. Missing output is not evidence of absence. If a material fact still
87
- requires implementation behavior, batch its exact constructs into `inspect --view
88
- behavior`. Use `code` only when exact syntax can change the decision. Do not reread
89
- source already rendered by either command, and do not expand unrelated frontiers.
90
-
91
- Before answering, audit the draft itself against the material claims. A fact
92
- seen in evidence but left implicit in the answer is not recovered. Copy returned
93
- file and line identities exactly rather than reconstructing citation paths.
94
-
95
- A broad literal is counted exactly and returned with recoverable structural scopes.
96
- Narrow only when a named material fact requires one of those scopes.
97
-
98
- `code` accepts up to 24 exact symbols, ranges, or indexed file paths. A file
99
- path returns its exported definitions—or its top-level definitions when the
100
- language has no explicit export surface—plus the file-local definitions they
101
- reference, then lists every omitted local definition as an exact range. This
102
- keeps the default source surface small without hiding what remains available.
103
- Use `--members all` only when the complete file matters. If a proposed packet
104
- would exceed the active output budget, `code` emits no partial source and
105
- prints exact complete-packet splits; narrow to the exact units still needed
106
- before deciding whether every split remains necessary.
107
-
108
- Start an unknown path with `search`; batch related text, symbol, and file-line
109
- anchors with `inspect`; use `evidence` when one symbol and its real uses are the
110
- center of the question. For tracked nonbinary repository content, keep
111
- exploration on scip-query. Native tools are for applying edits, running checks,
112
- binary content, or a specific unsupported gap that scip-query has explicitly
113
- reported.
114
-
115
- ```bash
116
- scip-query search work_session_stream_events
117
- scip-query inspect --search sessionStreamEvents --search work_session_stream_events --view behavior
118
- scip-query evidence appendWorkSessionStreamEvents --include definition,references,callers,callees
119
- ```
120
-
121
- `inspect --view behavior` returns the cheapest faithful syntax-derived view of
122
- each complete source unit. Compact units stay raw. Larger units become
123
- hierarchical outlines only when that representation is materially smaller;
124
- every source statement is represented, and unsupported or
125
- compression-sensitive statements are copied verbatim. Coverage reports the
126
- represented, copied, and omitted counts. Exact source can be requested for any
127
- unit whose complete implementation matters. `inspect --symbol` includes definitions,
128
- references, callers, callees, dependencies, and consumers by default.
129
-
130
- Search, location, and relationship evidence is deduplicated into one ranked
131
- packet. Exact locations and definitions rank first; later units must add new
132
- file, role, scope, symbol, or behavior coverage. A default packet materializes
133
- at most 12 matching lines per text selector, then applies a soft ceiling of 48
134
- units or 60,000 displayed-evidence characters without clipping a returned
135
- syntax unit. Its omission ledger groups everything withheld by scope and role,
136
- reports what each group contains, and gives an exact command for drilling into
137
- that group. Drill into several relevant groups together; use `--full` only when
138
- all omitted evidence can change the decision. Large rendered output from other
139
- commands can still use the universal byte-transport continuation printed by
140
- every command.
77
+ The module inventory shows groups and dependencies; selecting a printed group
78
+ reveals its files, exports and import sites. The evidence command answers a
79
+ chosen relationship question. Use incoming/outgoing execution for callers and
80
+ callees, dataflow for values, runtime for handoffs and dependencies for imports.
81
+ Candidate edges require confirmation. Missing or bounded evidence cannot
82
+ establish absence. `evidence --detail` adds inventory and provider explanations
83
+ when their limitations matter.
84
+
85
+ `search`, `outline`, `entrypoints`, `code` and `inspect` remain optional tools
86
+ for compiler identity, nesting, external roots or grouped source reads. `code`
87
+ accepts exact symbols, file ranges or file paths; `--members all` selects a
88
+ complete file and `--local-calls` adds same-file callees of a selected range.
89
+ `inspect --view behavior` can provide a statement-accounted view of a selected
90
+ construct. Both source commands add external literal values only with
91
+ `--bindings`. Their machine results retain detailed evidence.
92
+
93
+ Load the relevant [workflow skill](docs/SKILLS.md), batch useful questions and
94
+ stop when the facts needed for the change are settled. There is no requirement
95
+ to exhaust the command catalogue, unrelated relationships or saved output.
141
96
 
142
97
  Before a nonlocal change:
143
98
 
@@ -146,7 +101,7 @@ scip-query context RetryPolicy
146
101
  ```
147
102
 
148
103
  `context` returns a bounded evidence packet for a symbol, file, or module. It
149
- combines definitions, references, calls, data flow, dependencies, consumers,
104
+ combines definitions, references, call neighborhoods, dependencies, consumers,
150
105
  change risk, history, suppressions, and possible reuse sites. A bounded packet
151
106
  is a deliberately limited result: it is useful for a decision but does not
152
107
  claim to contain every possible relationship.
@@ -221,7 +176,6 @@ scip-query incomplete-migration --full
221
176
  scip-query doc-drift --full
222
177
  scip-query unused-params --full
223
178
  scip-query dead --full
224
- scip-query isolated --full
225
179
  scip-query cycles --full
226
180
  scip-query co-change --full
227
181
  ```
@@ -244,14 +198,12 @@ still pass.
244
198
 
245
199
  ## Focused graph queries
246
200
 
247
- Use the aggregate `context` command first for ordinary planning. Reach for a
248
- focused query when one unresolved relationship can change the decision:
201
+ Choose a focused query when one unresolved relationship can change the decision:
249
202
 
250
203
  ```bash
251
204
  scip-query refs SomeSymbol --full
252
- scip-query trace SomeSymbol
253
205
  scip-query call-graph SomeSymbol
254
- scip-query value-flow SomeSymbol
206
+ scip-query evidence --symbol SomeSymbol --edge dataflow --direction both --depth 2 --max-edges 48
255
207
  scip-query affected SomeSymbol --full
256
208
  scip-query system src/payments
257
209
  scip-query surface src/payments
@@ -262,6 +214,43 @@ scip-query rdeps src/payments/service.ts
262
214
  Do not repeat an unchanged query after context compaction. Re-run when source,
263
215
  the index generation, the command input, or the required coverage changed.
264
216
 
217
+ ## Value flow and slicing
218
+
219
+ A value transfer connects a particular value-producing occurrence to an occurrence
220
+ that receives it. `evidence --edge dataflow` reports supported static transfer relationships,
221
+ including argument-to-parameter and consumed return-value relationships. Each
222
+ edge distinguishes confirmed evidence from candidates and reports provider limits.
223
+
224
+ A backward slice identifies the source occurrences that can affect a chosen
225
+ variable occurrence through assignments, value use, or conditions governing
226
+ execution. A forward slice follows those dependencies toward affected occurrences.
227
+ `dependence-slice` computes these within one TypeScript or JavaScript callable:
228
+
229
+ ```bash
230
+ scip-query dependence-slice src/payments/service.ts:42 --variable total
231
+ scip-query dependence-slice src/payments/service.ts:42 --variable total --column 10
232
+ scip-query dependence-slice src/payments/service.ts:12 --variable amount --forward
233
+ ```
234
+
235
+ Lines and columns in command arguments are one-based. Ambiguous occurrences are
236
+ listed for refinement. The default traverses the local graph to completion;
237
+ `--depth` limits hops and `--max-edges` bounds rendered edges. Coverage distinguishes
238
+ output bounds from an incomplete analysis. Calls into other functions, general heap
239
+ aliasing (different references to the same stored object), closure invocation order,
240
+ and unsupported exception behavior require separate evidence. This is a dependency
241
+ slice, not a proof that extracting its statements into a function preserves behavior.
242
+
243
+ `slice-cohesion` compares slices for a function's different outputs to suggest
244
+ possible separations. Its suggestions require source confirmation and tests; partial
245
+ models cannot earn an extraction signal. Health reports retain the individual
246
+ findings and coverage without aggregate quality grades.
247
+
248
+ ## Optional skills
249
+
250
+ Setup and `install-skills` install `scip-query` and `scip-explore` by default.
251
+ Use `scip-query install-skills --all` to install the shipped specialist workflows.
252
+ Existing specialist installations and user-owned skill directories are preserved.
253
+
265
254
  ## Suppressions
266
255
 
267
256
  A suppression is a versioned repository record that says one detector finding
@@ -289,28 +278,26 @@ line numbers readable. Programmatic consumers can use:
289
278
  scip-query context RetryPolicy --json --result-only
290
279
  ```
291
280
 
292
- Search output separates a complete occurrence ledger from source
293
- materialization. Every exact matching path and line is listed with its owner;
294
- the default expands only a representative source subset. Use the emitted
295
- batched drilldowns for selected owners. `search --full` expands every source
296
- window and is not needed to establish complete text-match coverage.
297
-
298
- Cross-command evidence citations are off by default. With an explicit
299
- `SCIP_QUERY_SESSION`, a complete source unit, a byte-identical exact subset of a
300
- prior exact source read, or a graph unit/edge may be replaced by a visible
301
- receipt from the same index generation. Preview coverage never suppresses an
302
- exact unit. Changed bytes, changed graph content, a new generation, or
303
- `--reemit` force full evidence.
281
+ Search displays selected matching windows once, with exact locations, optional
282
+ compiler owners and an honest total. Use `--scope` to narrow or `--full` to
283
+ expand all matching windows. The JSON result retains identity metadata.
304
284
 
305
- If output prints `Continue exactly:`, run the emitted command unchanged until
306
- transport is complete. Transport completion means every rendered character was
307
- retrieved; it does not make bounded analysis exhaustive.
285
+ Oversized ordinary human output is saved to a private temporary file, with a
286
+ short preview and absolute path. Read or filter the file selectively using
287
+ normal tools; no automatic `continue` call is required. Saved previews expire
288
+ after one hour or can be reclaimed earlier under storage pressure. Redirect
289
+ stdout to your own file for durable output:
308
290
 
309
- Output redirected to a regular file (`scip-query health --full > report.txt`) is written in full; page cursors apply to terminals and pipes, where the reader is an agent whose context the page budget protects.
291
+ ```bash
292
+ scip-query health --full > report.txt
293
+ scip-query health --json --json-output report.json
294
+ ```
310
295
 
311
- Use `--full` only when complete command coverage can change a decision. Always
312
- read a command's coverage note before claiming that every caller, consumer, or
313
- finding was considered.
296
+ Small results, regular-file redirects and machine JSON contracts are preserved.
297
+ Explicit pagination remains a compatibility option. Cross-command evidence
298
+ receipts remain opt-in through `SCIP_QUERY_SESSION`; `--reemit` forces full
299
+ evidence. Material omissions and unsupported/stale evidence remain visible,
300
+ without routine successful coverage footers. See [output modes](docs/CLI_JSON_OUTPUT.md).
314
301
 
315
302
  ## Configuration
316
303
 
@@ -339,8 +326,8 @@ and focused use of the React, Vue, and general cleanup detectors.
339
326
  ```bash
340
327
  npm install
341
328
  npm run typecheck
342
- npm test
343
329
  npm run build
330
+ npm test
344
331
  ```
345
332
 
346
333
  The React and Vue detector suites are part of the normal test surface and must
@@ -1,2 +1,2 @@
1
- import{d as t}from"./chunk-3LO4FST5.js";import"./chunk-YUKYB54I.js";import"./chunk-BJT7LSPK.js";import"./chunk-YXPUP5G2.js";import"./chunk-MWN53KRN.js";import"./chunk-IW5XQG5G.js";import"./chunk-7HXT6YLU.js";import"./chunk-7F45LJKI.js";import{writeFileSync as s}from"fs";import{workerData as o}from"worker_threads";var r=o;try{let e=t({projectRoot:r.projectRoot,dbPath:r.dbPath,tsconfig:r.tsconfig,vueFiles:r.vueFiles,tasks:r.tasks});s(r.resultPath,JSON.stringify({version:1,runId:r.runId,workerId:r.workerId,taskIds:r.taskIds,ok:!0,result:e}))}catch(e){s(r.resultPath,JSON.stringify({version:1,runId:r.runId,workerId:r.workerId,taskIds:r.taskIds,ok:!1,error:e instanceof Error?e.message:String(e)}))}
1
+ import{d as t}from"./chunk-YOQVEXVE.js";import"./chunk-O2C4UILI.js";import"./chunk-WXU3DGPU.js";import"./chunk-YUKYB54I.js";import"./chunk-H75GSPRV.js";import"./chunk-QOIXNWQR.js";import"./chunk-GZKFETP5.js";import"./chunk-YULZRALL.js";import"./chunk-TKD34PHN.js";import"./chunk-2HLAFUCY.js";import"./chunk-U5RIG3JP.js";import"./chunk-62BDNPMI.js";import{writeFileSync as s}from"fs";import{workerData as o}from"worker_threads";var r=o;try{let e=t({projectRoot:r.projectRoot,dbPath:r.dbPath,tsconfig:r.tsconfig,vueFiles:r.vueFiles,tasks:r.tasks});s(r.resultPath,JSON.stringify({version:1,runId:r.runId,workerId:r.workerId,taskIds:r.taskIds,ok:!0,result:e}))}catch(e){s(r.resultPath,JSON.stringify({version:1,runId:r.runId,workerId:r.workerId,taskIds:r.taskIds,ok:!1,error:e instanceof Error?e.message:String(e)}))}
2
2
  //# sourceMappingURL=augment-vue-worker.js.map
@@ -0,0 +1,2 @@
1
+ import{a,b}from"./chunk-QJRMOK5N.js";import"./chunk-DVFP6PZI.js";import"./chunk-J5FJMODQ.js";import"./chunk-WOFQ5DTB.js";import"./chunk-PH52RA7D.js";import"./chunk-7Y5T6XDP.js";import"./chunk-X6RMKHJQ.js";import"./chunk-JEVRKFRL.js";import"./chunk-QOIXNWQR.js";import"./chunk-GZKFETP5.js";import"./chunk-HRRFKWPZ.js";import"./chunk-YULZRALL.js";import"./chunk-HGFDYOVB.js";import"./chunk-TKD34PHN.js";import"./chunk-2HLAFUCY.js";import"./chunk-U5RIG3JP.js";import"./chunk-62BDNPMI.js";export{a as byKind,b as kindCounts};
2
+ //# sourceMappingURL=by-kind-PRVFAGTQ.js.map
@@ -0,0 +1,2 @@
1
+ import{a}from"./chunk-VB3GOKOS.js";import"./chunk-BGBBVSH4.js";import"./chunk-7VPEEAAG.js";import"./chunk-S6CZA3MV.js";import"./chunk-65245JCM.js";import"./chunk-NJJMVD65.js";import"./chunk-ZHMRSZFD.js";import"./chunk-ZGTYGDMF.js";import"./chunk-WRQXLNYE.js";import"./chunk-DVFP6PZI.js";import"./chunk-QIWXRW72.js";import"./chunk-LOVIZBJ4.js";import"./chunk-QXEUDXBT.js";import"./chunk-O2C4UILI.js";import"./chunk-WXU3DGPU.js";import"./chunk-YUKYB54I.js";import"./chunk-TRBI4UKT.js";import"./chunk-WKPV2TDZ.js";import"./chunk-F4FNK44D.js";import"./chunk-ZLADLUE6.js";import"./chunk-6FFVZZL4.js";import"./chunk-4XQ4O6IM.js";import"./chunk-BZB4QPIP.js";import"./chunk-CN5EH7O3.js";import"./chunk-T3I6NHBH.js";import"./chunk-J5FJMODQ.js";import"./chunk-WOFQ5DTB.js";import"./chunk-PH52RA7D.js";import"./chunk-7Y5T6XDP.js";import"./chunk-X6RMKHJQ.js";import"./chunk-JEVRKFRL.js";import"./chunk-QOIXNWQR.js";import"./chunk-GZKFETP5.js";import"./chunk-3JIQS44J.js";import"./chunk-O4UZSPPI.js";import"./chunk-B3PYOSCX.js";import"./chunk-HRRFKWPZ.js";import"./chunk-YULZRALL.js";import"./chunk-HGFDYOVB.js";import"./chunk-QZ7KQZRN.js";import"./chunk-TKD34PHN.js";import"./chunk-2HLAFUCY.js";import"./chunk-U5RIG3JP.js";import"./chunk-62BDNPMI.js";export{a as callGraph};
2
+ //# sourceMappingURL=call-graph-DVPAQV2F.js.map
@@ -4,7 +4,7 @@
4
4
  * is a leaf-name resolution over imports and local receivers; the other two
5
5
  * are the on-demand compiler and chunk co-occurrence paths.
6
6
  */
7
- type CalleeEvidenceSource = 'scip-occurrence' | 'ast-callsite' | 'semantic-callee' | 'scip-chunk';
7
+ type CalleeEvidenceSource = 'scip-occurrence' | 'scip-declaration' | 'ast-callsite' | 'semantic-callee' | 'scip-chunk';
8
8
  interface CalleeRow {
9
9
  symbol: string;
10
10
  file: string;