scip-query 0.10.12 → 0.11.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 (353) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/{vendor/scip/LICENSE.scip → LICENSE} +1 -0
  3. package/README.md +141 -49
  4. package/dist/augment-vue-worker.js +1 -1
  5. package/dist/chunk-2VSDXOG5.js +2 -0
  6. package/dist/chunk-343O6EVV.js +2 -0
  7. package/dist/{chunk-RUV5IY25.js → chunk-3KDUITBE.js} +2 -2
  8. package/dist/chunk-3T2FNHIU.js +2 -0
  9. package/dist/{chunk-EOLGSSDR.js → chunk-3V6JQQM5.js} +2 -2
  10. package/dist/chunk-5AAAEZ2Z.js +2 -0
  11. package/dist/chunk-6Q6OFLFQ.js +8 -0
  12. package/dist/chunk-6XA4LDHY.js +2 -0
  13. package/dist/chunk-75X52JTA.js +2 -0
  14. package/dist/{chunk-LEHVP4DY.js → chunk-7HB3CZFD.js} +2 -2
  15. package/dist/chunk-7JZRFDCU.js +2 -0
  16. package/dist/{chunk-SQNHOOJ5.js → chunk-7XL7J7PT.js} +2 -2
  17. package/dist/{chunk-GKB4JJDU.js → chunk-ALHNAPS2.js} +2 -2
  18. package/dist/{chunk-TBCHRDAC.js → chunk-BDRBPG7Y.js} +2 -2
  19. package/dist/chunk-BN5SXXQS.js +40 -0
  20. package/dist/chunk-C4ICAIJ4.js +3 -0
  21. package/dist/{chunk-2GLNBCHB.js → chunk-CMHYBXJB.js} +2 -2
  22. package/dist/{chunk-S2MRVIJ5.js → chunk-DRPAQAFM.js} +6 -6
  23. package/dist/chunk-FERAXG6Y.js +72 -0
  24. package/dist/chunk-FLJJLSGB.js +2 -0
  25. package/dist/chunk-FXG3PHVW.js +9 -0
  26. package/dist/{chunk-JS6B76AQ.js → chunk-GCN2P4EJ.js} +2 -2
  27. package/dist/chunk-GHXRVCIY.js +21 -0
  28. package/dist/chunk-GNG622H3.js +3 -0
  29. package/dist/chunk-H4LUPLEJ.js +2 -0
  30. package/dist/{chunk-XUCZ3RQ5.js → chunk-H56MGERE.js} +4 -4
  31. package/dist/chunk-H7NSJ7L2.js +5 -0
  32. package/dist/chunk-HINMXZ6J.js +2 -0
  33. package/dist/chunk-HXXMPYEF.js +2 -0
  34. package/dist/{chunk-A4UTLKHU.js → chunk-HZKMEXA3.js} +2 -2
  35. package/dist/{chunk-T3AEVJBG.js → chunk-IFSX6YVU.js} +2 -2
  36. package/dist/chunk-ISLWJ4PY.js +10 -0
  37. package/dist/chunk-J5WVNZ6O.js +2 -0
  38. package/dist/chunk-K2HYR5A7.js +3 -0
  39. package/dist/{chunk-UVPY3RUZ.js → chunk-K6UI6EBZ.js} +2 -2
  40. package/dist/{chunk-MNCQPMCH.js → chunk-KJCDEDQW.js} +2 -2
  41. package/dist/{chunk-KZ4MG5NY.js → chunk-KKMOB3OJ.js} +2 -2
  42. package/dist/{chunk-ELC77ZDE.js → chunk-KMVGRIO2.js} +2 -2
  43. package/dist/chunk-LWOOTRHC.js +2 -0
  44. package/dist/{chunk-DQ6433ZG.js → chunk-LZNLRE4X.js} +17 -8
  45. package/dist/{chunk-7C6JBBE4.js → chunk-M2YXL62V.js} +2 -2
  46. package/dist/chunk-MNEJYEHW.js +3 -0
  47. package/dist/chunk-MTDBHTSF.js +2 -0
  48. package/dist/{chunk-VB2EZZPA.js → chunk-N2Z3CU7X.js} +2 -2
  49. package/dist/{chunk-2UVCH7CQ.js → chunk-N7PNFLGY.js} +2 -2
  50. package/dist/chunk-NAH5EAZS.js +6 -0
  51. package/dist/{chunk-XHMVZFA6.js → chunk-NBXK32I6.js} +2 -2
  52. package/dist/chunk-NJJ7AS4F.js +2 -0
  53. package/dist/{chunk-ANUEY5WV.js → chunk-NLMRJ7SI.js} +2 -2
  54. package/dist/chunk-ODVITBYU.js +26 -0
  55. package/dist/chunk-ORBRX2QJ.js +2 -0
  56. package/dist/{chunk-NTSR6SRP.js → chunk-P36UR5II.js} +2 -2
  57. package/dist/chunk-PYZZBIEU.js +3 -0
  58. package/dist/chunk-PZS6J5YG.js +16 -0
  59. package/dist/{chunk-3XSNW5XB.js → chunk-QARYU7R3.js} +2 -2
  60. package/dist/chunk-QJ3FK4TB.js +38 -0
  61. package/dist/{chunk-4ISHQ7UW.js → chunk-QXGTGE2C.js} +4 -4
  62. package/dist/chunk-QZ4JVECJ.js +2 -0
  63. package/dist/{chunk-63CI3IXR.js → chunk-R3JY4EZ4.js} +10 -10
  64. package/dist/{chunk-FX6ULETZ.js → chunk-R5336VHZ.js} +2 -2
  65. package/dist/chunk-RJMXSHKM.js +2 -0
  66. package/dist/chunk-STBXCPKY.js +5 -0
  67. package/dist/chunk-T2FQ4GHD.js +9 -0
  68. package/dist/chunk-TFWDJDGO.js +2 -0
  69. package/dist/chunk-TG7QSYCJ.js +2 -0
  70. package/dist/{chunk-ZUUNREKS.js → chunk-TTS75UF2.js} +5 -5
  71. package/dist/{chunk-DDQONX6B.js → chunk-U7I373V4.js} +2 -2
  72. package/dist/chunk-UIKLA3F5.js +2 -0
  73. package/dist/{chunk-6BN3EHQE.js → chunk-UMPNL7T6.js} +2 -2
  74. package/dist/chunk-URSSPS5H.js +2 -0
  75. package/dist/chunk-VGMUFW3J.js +2 -0
  76. package/dist/chunk-VXTNADIW.js +18 -0
  77. package/dist/{chunk-PWAK75BU.js → chunk-VYF5HA76.js} +2 -2
  78. package/dist/chunk-WFGOH2UI.js +43 -0
  79. package/dist/chunk-WGA5BBTA.js +4 -0
  80. package/dist/chunk-WIBFXSYB.js +6 -0
  81. package/dist/chunk-WPSS37EW.js +2 -0
  82. package/dist/chunk-WQHWIVA7.js +3 -0
  83. package/dist/chunk-WS3Z6W3M.js +65 -0
  84. package/dist/chunk-WXVGNFAO.js +2 -0
  85. package/dist/{chunk-RXINFVBN.js → chunk-WZLPXFZU.js} +2 -2
  86. package/dist/chunk-X4O6K47U.js +2 -0
  87. package/dist/chunk-X6OGDTQH.js +2 -0
  88. package/dist/chunk-XEMQUN3Z.js +20 -0
  89. package/dist/{chunk-OFXN2BCT.js → chunk-XHWLNQVZ.js} +2 -2
  90. package/dist/chunk-XMR747CP.js +2 -0
  91. package/dist/{chunk-JJ5SAWBT.js → chunk-Y6L4LXPG.js} +2 -2
  92. package/dist/chunk-YCPASUCX.js +2 -0
  93. package/dist/chunk-YZXV3CU3.js +60 -0
  94. package/dist/{chunk-XRUGSM76.js → chunk-ZEKBR4OK.js} +2 -2
  95. package/dist/chunk-ZMGBWSFZ.js +2 -0
  96. package/dist/cli.js +446 -280
  97. package/dist/{config-types-dvHOz0zU.d.ts → config-types-BrHl3Bge.d.ts} +57 -0
  98. package/dist/{db-rMZO5JFK.d.ts → db-_Bdx0E1W.d.ts} +1 -1
  99. package/dist/diff-gate-types-CG2YQ_ei.d.ts +4 -0
  100. package/dist/{frontend-behavior-evidence-BxKpKWUu.d.ts → frontend-behavior-evidence-EfM4_9bc.d.ts} +1 -1
  101. package/dist/{health-CtTIGh6H.d.ts → health-BEZ1Rt0S.d.ts} +54 -2
  102. package/dist/index.d.ts +4 -68
  103. package/dist/index.js +1 -1
  104. package/dist/postinstall.js +1 -4
  105. package/dist/queries/affected.d.ts +2 -2
  106. package/dist/queries/affected.js +1 -1
  107. package/dist/queries/bottlenecks.d.ts +2 -2
  108. package/dist/queries/bottlenecks.js +1 -1
  109. package/dist/queries/by-kind.d.ts +2 -2
  110. package/dist/queries/by-kind.js +1 -1
  111. package/dist/queries/call-graph.d.ts +2 -2
  112. package/dist/queries/call-graph.js +1 -1
  113. package/dist/queries/change-surface.d.ts +2 -2
  114. package/dist/queries/change-surface.js +1 -1
  115. package/dist/queries/cleanup-plan.d.ts +2 -2
  116. package/dist/queries/cleanup-plan.js +1 -1
  117. package/dist/queries/co-change.d.ts +12 -2
  118. package/dist/queries/co-change.js +1 -1
  119. package/dist/queries/code.d.ts +2 -2
  120. package/dist/queries/code.js +1 -1
  121. package/dist/queries/complexity-hotspots.d.ts +7 -3
  122. package/dist/queries/complexity-hotspots.js +1 -1
  123. package/dist/queries/complexity.d.ts +42 -4
  124. package/dist/queries/complexity.js +1 -1
  125. package/dist/queries/convergence.d.ts +2 -2
  126. package/dist/queries/convergence.js +1 -1
  127. package/dist/queries/coupling.d.ts +2 -2
  128. package/dist/queries/coupling.js +1 -1
  129. package/dist/queries/cycles.d.ts +12 -3
  130. package/dist/queries/cycles.js +1 -1
  131. package/dist/queries/dataflow.d.ts +2 -2
  132. package/dist/queries/dataflow.js +1 -1
  133. package/dist/queries/dead.d.ts +3 -3
  134. package/dist/queries/dead.js +1 -1
  135. package/dist/queries/deep-chains.d.ts +2 -2
  136. package/dist/queries/deep-chains.js +1 -1
  137. package/dist/queries/deps.d.ts +2 -2
  138. package/dist/queries/deps.js +1 -1
  139. package/dist/queries/diff-gate.d.ts +65 -8
  140. package/dist/queries/diff-gate.js +1 -1
  141. package/dist/queries/diff-impact.d.ts +21 -3
  142. package/dist/queries/diff-impact.js +1 -1
  143. package/dist/queries/doc-drift.d.ts +29 -2
  144. package/dist/queries/doc-drift.js +1 -1
  145. package/dist/queries/drift.d.ts +15 -3
  146. package/dist/queries/drift.js +1 -1
  147. package/dist/queries/duplicate-bodies.d.ts +55 -0
  148. package/dist/queries/duplicate-bodies.js +2 -0
  149. package/dist/queries/extract-candidates.d.ts +2 -2
  150. package/dist/queries/extract-candidates.js +1 -1
  151. package/dist/queries/fan.d.ts +2 -2
  152. package/dist/queries/fan.js +1 -1
  153. package/dist/queries/files.d.ts +4 -3
  154. package/dist/queries/files.js +1 -1
  155. package/dist/queries/health.d.ts +3 -3
  156. package/dist/queries/health.js +1 -1
  157. package/dist/queries/hierarchy.d.ts +2 -2
  158. package/dist/queries/hierarchy.js +1 -1
  159. package/dist/queries/hotspots.d.ts +2 -2
  160. package/dist/queries/hotspots.js +1 -1
  161. package/dist/queries/imports.d.ts +2 -2
  162. package/dist/queries/imports.js +1 -1
  163. package/dist/queries/incomplete-migration.d.ts +3 -2
  164. package/dist/queries/incomplete-migration.js +1 -1
  165. package/dist/queries/index.d.ts +12 -7
  166. package/dist/queries/index.js +1 -1
  167. package/dist/queries/isolated.d.ts +2 -2
  168. package/dist/queries/isolated.js +1 -1
  169. package/dist/queries/locality-candidates.d.ts +2 -2
  170. package/dist/queries/locality-candidates.js +1 -1
  171. package/dist/queries/members.d.ts +2 -2
  172. package/dist/queries/members.js +1 -1
  173. package/dist/queries/methods.d.ts +2 -2
  174. package/dist/queries/methods.js +1 -1
  175. package/dist/queries/outline.d.ts +2 -2
  176. package/dist/queries/outline.js +1 -1
  177. package/dist/queries/passthrough-candidates.d.ts +11 -3
  178. package/dist/queries/passthrough-candidates.js +1 -1
  179. package/dist/queries/plan-context.d.ts +3 -2
  180. package/dist/queries/plan-context.js +1 -1
  181. package/dist/queries/react-component-duplicates.d.ts +7 -2
  182. package/dist/queries/react-component-duplicates.js +1 -1
  183. package/dist/queries/react-hook-candidates.d.ts +3 -3
  184. package/dist/queries/react-hook-candidates.js +1 -1
  185. package/dist/queries/react-large-component-pressure.d.ts +2 -2
  186. package/dist/queries/react-large-component-pressure.js +1 -1
  187. package/dist/queries/recent-duplicates.d.ts +2 -2
  188. package/dist/queries/recent-duplicates.js +1 -1
  189. package/dist/queries/redundant-reexports.d.ts +2 -2
  190. package/dist/queries/redundant-reexports.js +1 -1
  191. package/dist/queries/refs.d.ts +2 -2
  192. package/dist/queries/refs.js +1 -1
  193. package/dist/queries/self-audit.d.ts +4 -2
  194. package/dist/queries/self-audit.js +1 -1
  195. package/dist/queries/similar-chains.d.ts +2 -2
  196. package/dist/queries/similar-chains.js +1 -1
  197. package/dist/queries/similar-files.d.ts +2 -2
  198. package/dist/queries/similar-files.js +1 -1
  199. package/dist/queries/similar-signatures.d.ts +17 -10
  200. package/dist/queries/similar-signatures.js +1 -1
  201. package/dist/queries/similar.d.ts +42 -3
  202. package/dist/queries/similar.js +1 -1
  203. package/dist/queries/slice.d.ts +2 -2
  204. package/dist/queries/slice.js +1 -1
  205. package/dist/queries/stale-abstractions.d.ts +2 -2
  206. package/dist/queries/stale-abstractions.js +1 -1
  207. package/dist/queries/stats.d.ts +2 -2
  208. package/dist/queries/surface.d.ts +2 -2
  209. package/dist/queries/surface.js +1 -1
  210. package/dist/queries/symbols.d.ts +2 -2
  211. package/dist/queries/symbols.js +1 -1
  212. package/dist/queries/system.d.ts +2 -2
  213. package/dist/queries/system.js +1 -1
  214. package/dist/queries/trace.d.ts +2 -2
  215. package/dist/queries/trace.js +1 -1
  216. package/dist/queries/twin-ab.d.ts +55 -0
  217. package/dist/queries/twin-ab.js +2 -0
  218. package/dist/queries/twin-drift.d.ts +97 -0
  219. package/dist/queries/twin-drift.js +2 -0
  220. package/dist/queries/unused-imports.d.ts +2 -2
  221. package/dist/queries/unused-imports.js +1 -1
  222. package/dist/queries/unused-params.d.ts +2 -2
  223. package/dist/queries/unused-params.js +1 -1
  224. package/dist/queries/vue-component-duplicates.d.ts +7 -2
  225. package/dist/queries/vue-component-duplicates.js +1 -1
  226. package/dist/queries/vue-composable-candidates.d.ts +3 -3
  227. package/dist/queries/vue-composable-candidates.js +1 -1
  228. package/dist/queries/vue-large-view-pressure.d.ts +6 -2
  229. package/dist/queries/vue-large-view-pressure.js +1 -1
  230. package/dist/queries/wrapper-candidates.d.ts +2 -2
  231. package/dist/queries/wrapper-candidates.js +1 -1
  232. package/dist/reindex-worker.js +9 -9
  233. package/dist/reindex.d.ts +3 -3
  234. package/dist/reindex.js +19 -19
  235. package/dist/runtime.d.ts +11 -6
  236. package/dist/runtime.js +2 -2
  237. package/dist/{scip-cli-trnNvymv.d.ts → scip-cli-C7cg4ZHR.d.ts} +1 -1
  238. package/dist/symbol-types-DaoeXKUt.d.ts +66 -0
  239. package/docs/AGENT_GUIDE.md +20 -18
  240. package/docs/AI_FAILURE_MODES.md +36 -13
  241. package/docs/API.md +1 -1
  242. package/docs/COMMAND_REFERENCE.md +56 -13
  243. package/docs/DETECTOR_GUIDE.md +20 -3
  244. package/docs/REGEX_POLICY.md +34 -0
  245. package/docs/analyzer-inventory.md +40 -3
  246. package/docs/analyzer-validation-ledger.md +34 -6
  247. package/package.json +21 -7
  248. package/scripts/build-scip-windows.mjs +10 -7
  249. package/skills/_shared/SKILL.md +243 -0
  250. package/skills/_shared/agents/openai.yaml +4 -0
  251. package/skills/scip-api-impact/SKILL.md +55 -71
  252. package/skills/scip-claim-audit/SKILL.md +105 -0
  253. package/skills/scip-claim-audit/agents/openai.yaml +4 -0
  254. package/skills/scip-cleanup-audit/SKILL.md +122 -0
  255. package/skills/scip-cleanup-audit/agents/openai.yaml +4 -0
  256. package/skills/scip-cleanup-improve/SKILL.md +84 -0
  257. package/skills/scip-cleanup-improve/agents/openai.yaml +4 -0
  258. package/skills/scip-concrete-plan/SKILL.md +181 -0
  259. package/skills/scip-concrete-plan/agents/openai.yaml +4 -0
  260. package/skills/scip-conductor/SKILL.md +133 -0
  261. package/skills/scip-conductor/agents/openai.yaml +4 -0
  262. package/skills/scip-debug/SKILL.md +60 -58
  263. package/skills/scip-diagram/SKILL.md +64 -94
  264. package/skills/scip-directory-architecture/SKILL.md +65 -107
  265. package/skills/scip-doc-reconcile/SKILL.md +56 -67
  266. package/skills/scip-explore/SKILL.md +78 -210
  267. package/skills/scip-hyper-optimization/SKILL.md +124 -198
  268. package/skills/scip-integrity-audit/SKILL.md +103 -0
  269. package/skills/scip-integrity-audit/agents/openai.yaml +4 -0
  270. package/skills/scip-language-playbook/SKILL.md +56 -326
  271. package/skills/scip-maintainability/SKILL.md +80 -219
  272. package/skills/scip-probe-reachability/SKILL.md +92 -0
  273. package/skills/scip-probe-reachability/agents/openai.yaml +4 -0
  274. package/skills/scip-query/SKILL.md +108 -124
  275. package/skills/scip-react-maintainability/SKILL.md +64 -82
  276. package/skills/scip-setup/SKILL.md +121 -0
  277. package/skills/scip-setup/agents/openai.yaml +4 -0
  278. package/skills/scip-tla-model-system/SKILL.md +138 -0
  279. package/skills/scip-tla-model-system/agents/openai.yaml +4 -0
  280. package/skills/scip-triage-issue/SKILL.md +53 -41
  281. package/skills/scip-twin-drift/SKILL.md +107 -0
  282. package/skills/scip-twin-drift/agents/openai.yaml +4 -0
  283. package/skills/scip-verify/SKILL.md +70 -88
  284. package/skills/scip-vue-maintainability/SKILL.md +67 -94
  285. package/dist/chunk-2DOW7QCA.js +0 -71
  286. package/dist/chunk-2FMFF4RI.js +0 -2
  287. package/dist/chunk-5GXTUANY.js +0 -2
  288. package/dist/chunk-5JHEN5VN.js +0 -25
  289. package/dist/chunk-62ULXMQ7.js +0 -18
  290. package/dist/chunk-7EK7OSWS.js +0 -2
  291. package/dist/chunk-7IWIMNHI.js +0 -2
  292. package/dist/chunk-7XTO4YXB.js +0 -8
  293. package/dist/chunk-AOWFUGDL.js +0 -2
  294. package/dist/chunk-AREANYIA.js +0 -3
  295. package/dist/chunk-AZBELWZQ.js +0 -7
  296. package/dist/chunk-B32FX5KB.js +0 -2
  297. package/dist/chunk-B6MJ5VQV.js +0 -2
  298. package/dist/chunk-CXWCLVYL.js +0 -2
  299. package/dist/chunk-CYHIKTJN.js +0 -3
  300. package/dist/chunk-DFSEARAU.js +0 -2
  301. package/dist/chunk-DVFP6PZI.js +0 -2
  302. package/dist/chunk-E3ADDB43.js +0 -2
  303. package/dist/chunk-F6IXELII.js +0 -20
  304. package/dist/chunk-FMGVZBS2.js +0 -2
  305. package/dist/chunk-GG5LHT27.js +0 -2
  306. package/dist/chunk-H7JF2CKK.js +0 -2
  307. package/dist/chunk-HHOMJCP5.js +0 -4
  308. package/dist/chunk-HRDSU5FN.js +0 -9
  309. package/dist/chunk-HWVYTJOV.js +0 -2
  310. package/dist/chunk-JNMLBL36.js +0 -2
  311. package/dist/chunk-L446VQYQ.js +0 -2
  312. package/dist/chunk-LDJUB7XW.js +0 -2
  313. package/dist/chunk-MYTUWXHK.js +0 -4
  314. package/dist/chunk-N25HPUOK.js +0 -2
  315. package/dist/chunk-NABVR6B7.js +0 -2
  316. package/dist/chunk-NBNEVLRC.js +0 -3
  317. package/dist/chunk-ONPCQ2PM.js +0 -6
  318. package/dist/chunk-Q5P7NOVM.js +0 -2
  319. package/dist/chunk-RGKRYO22.js +0 -4
  320. package/dist/chunk-RM2WQ75T.js +0 -2
  321. package/dist/chunk-ROGZXWN2.js +0 -2
  322. package/dist/chunk-RSSXKJ6J.js +0 -38
  323. package/dist/chunk-RVGEZYMQ.js +0 -2
  324. package/dist/chunk-SA3DPTHT.js +0 -7
  325. package/dist/chunk-SGTKURU6.js +0 -52
  326. package/dist/chunk-T4N2ZRVY.js +0 -21
  327. package/dist/chunk-THB6AM3V.js +0 -11
  328. package/dist/chunk-ULHLDOD6.js +0 -4
  329. package/dist/chunk-UQ73QF5D.js +0 -43
  330. package/dist/chunk-UUBMFL3F.js +0 -59
  331. package/dist/chunk-V5FGK3DZ.js +0 -2
  332. package/dist/chunk-WTY5FERW.js +0 -2
  333. package/dist/chunk-WUOB4DHH.js +0 -6
  334. package/dist/chunk-YFQIKYOP.js +0 -2
  335. package/dist/chunk-Z2LDWIJV.js +0 -5
  336. package/dist/chunk-ZNWWVYQL.js +0 -3
  337. package/skills/concrete-plan/SKILL.md +0 -372
  338. package/skills/concrete-plan/agents/openai.yaml +0 -4
  339. package/skills/scip-adoption/SKILL.md +0 -122
  340. package/skills/scip-adoption/agents/openai.yaml +0 -4
  341. package/skills/scip-ai-cleanup/SKILL.md +0 -153
  342. package/skills/scip-ai-cleanup/agents/openai.yaml +0 -4
  343. package/skills/scip-debloat/SKILL.md +0 -439
  344. package/skills/scip-debloat/agents/openai.yaml +0 -4
  345. package/skills/scip-health-audit/SKILL.md +0 -162
  346. package/skills/scip-health-audit/agents/openai.yaml +0 -4
  347. package/skills/scip-health-improve/SKILL.md +0 -155
  348. package/skills/scip-health-improve/agents/openai.yaml +0 -4
  349. package/skills/scip-query-setup/SKILL.md +0 -170
  350. package/skills/scip-query-setup/agents/openai.yaml +0 -3
  351. package/vendor/scip/README.md +0 -6
  352. package/vendor/scip/win32-arm64/scip.exe +0 -0
  353. package/vendor/scip/win32-x64/scip.exe +0 -0
@@ -3,6 +3,7 @@
3
3
  Goal-oriented workflows for AI agents and developers. Each section starts with a goal and walks through the exact commands to run, what to expect back, and how to use the results.
4
4
 
5
5
  For command syntax and options reference, see [Command Reference](COMMAND_REFERENCE.md).
6
+ For analyzer implementation work, follow [Regex Policy](REGEX_POLICY.md): regex is kept for flat machine-generated strings, while structured inputs should use available parsers and disclose fallback paths.
6
7
 
7
8
  ---
8
9
 
@@ -14,25 +15,24 @@ For command syntax and options reference, see [Command Reference](COMMAND_REFERE
14
15
 
15
16
  1. **Run setup**
16
17
  ```bash
17
- scip-query setup-hooks --json
18
18
  scip-query setup --json
19
19
  ```
20
- Returns: project-local hook install state, detected languages, indexer readiness, remediation attempts, index result, capability summary, smoke tests, health score, issue list, health dossier paths, and setup verdict.
20
+ Returns: detected languages, indexer readiness, remediation attempts, index result, capability summary, project-local hook install state, smoke tests, health score, issue list, health dossier paths, and setup verdict. Use `scip-query setup --no-hooks --json` when the repo should not write Codex or Claude Code lifecycle hooks.
21
21
 
22
22
  2. **Resolve blockers**
23
23
  ```bash
24
- scip-query check-deps
25
24
  scip-query doctor
26
- scip-query capability-matrix --json
25
+ scip-query status --json
26
+ scip-query capabilities --matrix
27
27
  ```
28
- Missing indexers or toolchains are blockers, not clean results. Fix what setup can prove, then rerun setup or reindex.
28
+ `doctor` is the human diagnostic. `status --json` is the machine-readable freshness/config surface. `check-deps` and `capability-matrix` remain compatibility aliases, but new workflows should prefer `doctor`, `status`, and `capabilities --matrix`.
29
29
 
30
30
  3. **Start health follow-through**
31
31
  ```bash
32
- scip-query health --json --full
32
+ scip-query health --json
33
33
  scip-query diff-gate --json
34
34
  ```
35
- Before cleanup, tell the user the health score, confirmed items, unavailable checks, and recommended first cleanup batch. Use `scip-health-audit` for confirmation and `scip-health-improve` when the user wants autonomous score improvement.
35
+ Before cleanup, tell the user the health score, confirmed items, unavailable checks, and recommended first cleanup batch. Use `scip-cleanup-audit` for confirmation and `scip-cleanup-improve` when the user wants autonomous score improvement.
36
36
 
37
37
  ### What you should know after this workflow
38
38
 
@@ -178,17 +178,19 @@ For command syntax and options reference, see [Command Reference](COMMAND_REFERE
178
178
 
179
179
  ### Steps
180
180
 
181
+ Numeric thresholds below are recommended starting points for review sessions; command defaults may differ.
182
+
181
183
  1. **Get the full health report**
182
184
  ```bash
183
185
  scip-query health
184
186
  ```
185
187
  This runs every analysis and produces a prioritized action list. Start here. The actions are sorted by impact/effort ratio — do the top ones first.
186
188
 
187
- 2. **Delete dead code (safest, highest impact)**
189
+ 2. **Review dead-code candidates**
188
190
  ```bash
189
191
  scip-query dead --min-loc 10 --skip-barrels
190
192
  ```
191
- These symbols have zero cross-file references. They can be safely deleted. `--skip-barrels` ignores references from inactive barrel files, which helps surface exports kept alive only by unused re-export layers without hiding live package entry surfaces.
193
+ These symbols have zero cross-file references. Treat them as deletion candidates and confirm with `cleanup-plan --verify` before deleting. `--skip-barrels` ignores references from inactive barrel files, which helps surface exports kept alive only by unused re-export layers without hiding live package entry surfaces.
192
194
 
193
195
  3. **Delete isolated symbols**
194
196
  ```bash
@@ -233,9 +235,9 @@ For command syntax and options reference, see [Command Reference](COMMAND_REFERE
233
235
 
234
236
  9. **Fix pattern drift**
235
237
  ```bash
236
- scip-query drift
238
+ scip-query drift --patterns
237
239
  ```
238
- Files that deviate from their directory's typical dependency pattern. Bring them into line with their neighbors.
240
+ Files that deviate from their directory's typical dependency pattern. Bring them into line with their neighbors. `--patterns` is opt-in (off by default since 21.2 calibration found this channel low-precision at scale) — treat hits as leads to confirm, not findings.
239
241
 
240
242
  10. **Remove redundant re-exports**
241
243
  ```bash
@@ -253,8 +255,8 @@ For command syntax and options reference, see [Command Reference](COMMAND_REFERE
253
255
 
254
256
  | Priority | What | Why |
255
257
  |---|---|---|
256
- | 1 | Dead code | Zero risk, immediate LOC reduction |
257
- | 2 | Isolated symbols | Zero risk, zero consumers |
258
+ | 1 | Dead code | High-confidence deletion candidates; verify before deleting |
259
+ | 2 | Isolated symbols | Zero indexed consumers; verify before deleting |
258
260
  | 3 | Circular deps | Structural fix, prevents future problems |
259
261
  | 4 | Similar functions | Reduces duplication, use `convergence` for prescription |
260
262
  | 5 | Extraction candidates | Reduces function complexity |
@@ -296,9 +298,9 @@ For command syntax and options reference, see [Command Reference](COMMAND_REFERE
296
298
 
297
299
  5. **Structural drift**
298
300
  ```bash
299
- scip-query drift
301
+ scip-query drift --patterns
300
302
  ```
301
- Files with unused imports, layer violations, or dependency profiles that deviate from their neighbors.
303
+ Files with unused imports, layer violations, or dependency profiles that deviate from their neighbors. `--patterns` opts into the deviation channel (off by default since 21.2 calibration); layer violations and unused imports print either way.
302
304
 
303
305
  ### Quality report template
304
306
 
@@ -346,10 +348,10 @@ For command syntax and options reference, see [Command Reference](COMMAND_REFERE
346
348
 
347
349
  3. **Re-check structural drift around the changed area**
348
350
  ```bash
349
- scip-query drift
351
+ scip-query drift --patterns
350
352
  scip-query change-surface <changed-file>
351
353
  ```
352
- Verify the change did not introduce new dependency-pattern outliers and understand the remaining blast radius.
354
+ Verify the change did not introduce new dependency-pattern outliers and understand the remaining blast radius. `--patterns` opts into the deviation channel (off by default since 21.2 calibration).
353
355
 
354
356
  ---
355
357
 
@@ -387,4 +389,4 @@ For command syntax and options reference, see [Command Reference](COMMAND_REFERE
387
389
  - **Run `diff-impact --json` before committing** — catches unexpected blast radius across downstream consumers
388
390
  - **Use `convergence` after `similar`** — `similar` finds the problem, `convergence` gives the solution
389
391
  - **Start cleanup with `health`** — it prioritizes for you so you don't have to decide what to fix first
390
- - **Scope commands with `-s`** most commands accept `--scope <path>` to limit analysis to a specific module. Use this on large codebases to keep results focused.
392
+ - **Scope where supported**many cleanup and health commands accept `-s, --scope <path>`; navigation commands usually take a file, symbol, or module argument instead. Use the narrowest supported target on large codebases.
@@ -21,7 +21,9 @@ contradict each other.
21
21
 
22
22
  **The detector:** `recent-duplicates` makes similarity *directional* using git
23
23
  file ages - which side is the established original, which is the freshly-added
24
- echo:
24
+ echo.
25
+
26
+ Illustrative output:
25
27
 
26
28
  ```
27
29
  91% ECHO react-component src/components/ProjectCardVisual.tsx ProjectCardVisual (added 62 commits ago)
@@ -135,7 +137,9 @@ is worse than none.
135
137
 
136
138
  **The detector:** `doc-drift` reads every doc's file citations *and* its
137
139
  co-change history, and flags docs whose referenced code kept changing after
138
- the doc stopped — including broken references to files that no longer exist:
140
+ the doc stopped — including broken references to files that no longer exist.
141
+
142
+ Illustrative output:
139
143
 
140
144
  ```
141
145
  staleness 94 product/domain-model.md
@@ -183,7 +187,9 @@ safe to remove.
183
187
  deleting batch 0 makes batch 1 dead, and the plan shows the cascade. Then
184
188
  `--verify` applies each batch in a throwaway git worktree and runs **your own
185
189
  compiler** (tsc, cargo, go, python oracles — differentially, so pre-existing
186
- errors don't drown the signal):
190
+ errors don't drown the signal).
191
+
192
+ Illustrative output:
187
193
 
188
194
  ```
189
195
  ── Batch 0: deletable now (graph-fact, 67 LOC) ──
@@ -216,7 +222,7 @@ scip-query plan-context <symbol-or-file> # before the edit
216
222
  scip-query diff-impact --json # after the edit
217
223
  ```
218
224
 
219
- The `concrete-plan` skill enforces this end-to-end: every step in a plan must
225
+ The `scip-concrete-plan` skill enforces this end-to-end: every step in a plan must
220
226
  cite the scip-query command that verified it.
221
227
 
222
228
  ## 10. Slow quality decay nobody notices
@@ -248,12 +254,14 @@ The detectors only help if they run. Three layers, in increasing strength:
248
254
  bundled skills into `~/.agents/skills/`, `~/.claude/skills/`, and
249
255
  `~/.codex/skills/` — they update automatically with the package. Project setup
250
256
  writes reviewable repo-local hooks to `.codex/hooks.json` and
251
- `.claude/settings.json`, unless `SCIP_QUERY_SKIP_HOOK_INSTALL=1` is set. The
252
- hooks add scip-query context at session start, route prompts toward the right
253
- specialist, and run a safe Stop hook wrapper around the diff gate only for that
254
- repository. The Stop hook warns by default instead of blocking the agent; set
255
- `SCIP_QUERY_STOP_HOOK_MODE=feedback` to ask the agent to continue without a
256
- hook error, or `SCIP_QUERY_STOP_HOOK_MODE=block` to enforce the gate. Run
257
+ `.claude/settings.local.json` by default; `setup-hooks --shared` opts into the
258
+ tracked `.claude/settings.json`. Set `SCIP_QUERY_SKIP_HOOK_INSTALL=1` or run
259
+ `scip-query setup --no-hooks` to skip lifecycle hook setup. The hooks add
260
+ scip-query context at session start, route prompts toward the right specialist,
261
+ and run a safe Stop hook wrapper around the diff gate only for that repository.
262
+ The Stop hook sends feedback to the agent by default; set
263
+ `SCIP_QUERY_STOP_HOOK_MODE=warn` for warning-only output or
264
+ `SCIP_QUERY_STOP_HOOK_MODE=block` to enforce the gate. Run
257
265
  `scip-query setup-hooks --json` to repair the current repo's hooks.
258
266
 
259
267
  **2. Project setup and guidance.** Run once per project:
@@ -268,17 +276,32 @@ commands, writes `docs/scip-query/health-dossier.md` and `.json`, reports the
268
276
  health score and items needing attention, and seeds a managed block in
269
277
  `AGENTS.md` plus a `CLAUDE.md` import shim.
270
278
 
271
- After setup, use `scip-health-audit` to confirm raw signals and
272
- `scip-health-improve` when the user wants the agent to fix the worst confirmed
279
+ After setup, use `scip-cleanup-audit` to confirm raw signals and
280
+ `scip-cleanup-improve` when the user wants the agent to fix the worst confirmed
273
281
  items until the health score is as high as reasonably possible.
274
282
 
275
283
  **3. The gate (enforcement).**
276
284
 
277
285
  ```bash
278
- scip-query diff-gate --json # one command, every check above, scoped to the diff, exit 1 on findings
286
+ scip-query diff-gate --json # default diff-scoped checks, exit 1 on findings
287
+ scip-query diff-gate --json --baseline # include the health-baseline ratchet
279
288
  scip-query setup-agent --git-hook # pre-commit backstop: fires whoever wrote the diff
280
289
  ```
281
290
 
291
+ <!-- BEGIN GENERATED DIFF-GATE CHECKS -->
292
+ | Check | What it catches | When it runs |
293
+ | --- | --- | --- |
294
+ | `echo` | Changed symbols that newly echo established code elsewhere. | Default diff gate. |
295
+ | `incomplete-migration` | New helpers or abstractions wired into some sites while older inline sites remain. | Default diff gate. |
296
+ | `co-change-partner` | Historically coupled files that usually change together but are missing from this diff. | Default diff gate. |
297
+ | `twin-partner` | A changed symbol has a same-(near-)name twin (identical or already-divergent) elsewhere that this diff left untouched. | Default diff gate. Advisory: findings print but never cause a nonzero exit by themselves. |
298
+ | `coverage-contract` | A configured `coverageContracts` entry (.scipquery.json) drifted: its declared key set no longer matches its ground-truth source. | Default diff gate, only when either side of a configured contract changed. |
299
+ | `doc-reference` | Docs that cite changed files and may need a matching update. Dated snapshot docs (docs.snapshotPaths) are excluded by policy. | Default diff gate. Advisory (21.2) for bare file-mention citations; blocking when the citation has a line anchor or the cited file was deleted/renamed. |
300
+ | `unused-params` | Fresh trailing parameters or options that no changed body uses. | Default diff gate. |
301
+ | `new-dead` | Changed production symbols with zero indexed consumers. | Default diff gate. |
302
+ | `baseline` | New health finding identities compared with the committed health baseline. | Only with `diff-gate --baseline`. |
303
+ <!-- END GENERATED DIFF-GATE CHECKS -->
304
+
282
305
  Every finding ships with a remediation an agent can act on without human
283
306
  triage. The installed Codex/Claude Stop hook uses the same diff-gate evidence,
284
307
  warns by default, and no-ops outside indexed scip-query workspaces, so global
package/docs/API.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Programmatic API
2
2
 
3
- Every CLI command is also available as a TypeScript function. The `queries` namespace exports cover the public commands, including the `top*` variants of `fan-in`, `fan-out`, and `coupling`, plus `similarAll` for the cross-codebase mode of `similar`.
3
+ Public query commands are also available as TypeScript functions. The `queries` namespace exports cover the analysis commands, including the `top*` variants of `fan-in`, `fan-out`, and `coupling`, plus `similarAll` for the cross-codebase mode of `similar`. Operational CLI commands such as `setup`, `doctor`, and `setup-hooks` remain runtime commands rather than query-library exports.
4
4
 
5
5
  ```typescript
6
6
  import { ScipDatabase, createGitignoreFilter } from 'scip-query';
@@ -48,7 +48,7 @@ This syntax summary is generated from the CLI command descriptors. Keep workflow
48
48
  | `dead [scope]` | Find dead code and file-internal symbols (no cross-file consumers) | `--min-loc <n>`<br>`--include-tests`<br>`--skip-barrels`<br>`--include-members`<br>`--only-dead`<br>`--only-internal`<br>`--full`<br>`--json` |
49
49
  | `unused-imports <file>` | Find imports not referenced in the same file | `--full`<br>`--json` |
50
50
  | `isolated` | Find completely orphaned symbols (no references at all) | `-s, --scope <path>`<br>`--min-loc <n>`<br>`--full`<br>`--json` |
51
- | `similar [symbol]` | Find heuristic function similarity candidates from callee fingerprints | `--min-similarity <n>`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--min-callees <n>`<br>`--cross-file-only`<br>`--full`<br>`--json` |
51
+ | `similar [symbol] [other]` | Find heuristic function similarity candidates from callee fingerprints | `--min-similarity <n>`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--min-callees <n>`<br>`--cross-file-only`<br>`--plan`<br>`--full`<br>`--json` |
52
52
  | `similar-files [file]` | Find heuristic similar-file candidates from dependency profiles | `--min-similarity <n>`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--min-deps <n>`<br>`--full`<br>`--json` |
53
53
  | `react-component-duplicates [file]` | Find heuristic duplicated React component structure candidates from JSX tags, props, events, and bindings | `--min-similarity <n>`<br>`--min-tokens <n>`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--full`<br>`--json` |
54
54
  | `react-hook-candidates [file]` | Find heuristic React hook extraction candidates from shared state, effects, requests, and handlers | `--min-similarity <n>`<br>`--min-shared-behaviors <n>`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--full`<br>`--json` |
@@ -64,14 +64,17 @@ This syntax summary is generated from the CLI command descriptors. Keep workflow
64
64
  | `recent-duplicates` | Directional duplicate candidates: recent code that re-implements established callable, React, or Vue code | `--window <n>`<br>`--min-similarity <n>`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--full`<br>`--json` |
65
65
  | `doc-drift [doc]` | Stale-doc candidates: code the doc references or co-changed with kept changing after the doc stopped | `-n, --limit <n>`<br>`--min-coupling <n>`<br>`--full`<br>`--json` |
66
66
  | `unused-params` | Speculative-generality candidates: trailing parameters no body ever uses (TS/JS) | `-s, --scope <path>`<br>`-n, --limit <n>`<br>`--full`<br>`--json` |
67
- | `drift [module]` | Detect heuristic drift candidates: unused imports, layer violations, and pattern deviations | `--min-deviation <n>`<br>`--full`<br>`--json` |
68
- | `wrapper-candidates` | Find heuristic wrapper candidates only called by one consumer | `-s, --scope <path>`<br>`--max-loc <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json` |
67
+ | `drift [module]` | Detect heuristic drift candidates: unused imports and layer violations by default; pass --patterns for pattern deviations too | `--min-deviation <n>`<br>`--patterns`<br>`-n, --limit <n>`<br>`--full`<br>`--json` |
68
+ | `wrapper-candidates` | Find heuristic wrapper candidates only called by one consumer (high false-positive rate on codebases with intentional layering/ambient types — treat as exploration, not findings) | `-s, --scope <path>`<br>`--max-loc <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json` |
69
69
  | `passthrough-candidates` | Find heuristic passthrough candidates that forward to one callee | `-s, --scope <path>`<br>`--max-loc <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json` |
70
- | `stale-abstractions` | Find heuristic stale abstraction candidates with 0-1 consumers | `-s, --scope <path>`<br>`--min-loc <n>`<br>`-n, --limit <n>`<br>`--include-low-confidence`<br>`--full`<br>`--json` |
70
+ | `stale-abstractions` | Find heuristic stale abstraction candidates with 0-1 consumers (high false-positive rate on codebases with intentional layering/ambient types — treat as exploration, not findings) | `-s, --scope <path>`<br>`--min-loc <n>`<br>`-n, --limit <n>`<br>`--include-low-confidence`<br>`--full`<br>`--json` |
71
71
  | `complexity-hotspots` | Find heuristic complexity hotspot candidates from LOC x fan-in x fan-out | `-s, --scope <path>`<br>`--min-loc <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json` |
72
- | `convergence <symbol1> <symbol2>` | Show what a consolidated version of two similar functions would look like | `--full`<br>`--json` |
72
+ | `convergence <symbol1> <symbol2>` | Deprecated alias for similar <symbol1> <symbol2> --plan | `--full`<br>`--json` |
73
73
  | `redundant-reexports` | Find barrel re-exports that nobody imports through | `-s, --scope <path>`<br>`-n, --limit <n>`<br>`--full`<br>`--json` |
74
- | `similar-signatures` | Find functions with near-identical type signatures (same shape) | `-s, --scope <path>`<br>`--min-loc <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json` |
74
+ | `duplicate-bodies` | Find exact duplicate small-body candidates across files | `-s, --scope <path>`<br>`--max-loc <n>`<br>`--min-loc <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json` |
75
+ | `twin-drift` | Twin drift candidates: same-name (or near-name) functions across files with diverged bodies | `-s, --scope <path>`<br>`--min-similarity <n>`<br>`--include-homonyms`<br>`-n, --limit <n>`<br>`--full`<br>`--json` |
76
+ | `twin-ab <symbolA> <symbolB>` | Generate a behavioral A/B scaffold comparing two same-concept twins (scip-integrity-audit drill 5) — a ready-to-fill vitest file, not an auto-executor | `--out <path>`<br>`--force`<br>`--json` |
77
+ | `similar-signatures` | Find functions with near-identical type signatures (same shape) | `-s, --scope <path>`<br>`--min-loc <n>`<br>`--max-shape-frequency <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json` |
75
78
 
76
79
  ### Graph
77
80
 
@@ -93,10 +96,16 @@ This syntax summary is generated from the CLI command descriptors. Keep workflow
93
96
  | `affected <symbol>` | Transitive closure of symbols that could break if this symbol changes | `--max-depth <n>`<br>`-s, --scope <path>`<br>`--json` |
94
97
  | `change-surface <file>` | Pre-change briefing: exports, consumers, and blast-radius risk | `--full`<br>`--json` |
95
98
  | `co-change [file]` | Files that change together in git history without a dependency edge — hidden coupling candidates | `--min-together <n>`<br>`-n, --limit <n>`<br>`--all`<br>`--full`<br>`--json` |
96
- | `diff-gate` | Gate the current diff: echo candidates, incomplete migrations, missing co-change partners, uncited doc updates, unused params, new dead symbols; exit 1 on findings | `--base <ref>`<br>`--min-together <n>`<br>`--max-echo-checks <n>`<br>`--max-helpers <n>`<br>`--baseline`<br>`--full`<br>`--skip <check>`<br>`--hook`<br>`--json` |
99
+ | `diff-gate` | Gate the current diff: echo candidates, incomplete migrations, missing co-change partners, unedited twin partners (advisory), uncited doc updates, unused params, new dead symbols; exit 1 on blocking findings | `--base <ref>`<br>`--min-together <n>`<br>`--max-echo-checks <n>`<br>`--max-helpers <n>`<br>`--baseline`<br>`--full`<br>`--skip <check>`<br>`--hook`<br>`--json` |
97
100
  | `incomplete-migration` | Partially-completed extraction candidates: new helpers in the diff wired into some sites while similar un-migrated sites remain | `--base <ref>`<br>`--min-containment <n>`<br>`--max-helpers <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json` |
98
101
  | `diff-impact` | Compute changed symbols and downstream consumers from current git diff | `--base <ref>`<br>`--json` |
99
102
 
103
+ ### Formal Models
104
+
105
+ | Command | Description | Options |
106
+ |---|---|---|
107
+ | `tla <operation> [spec]` | TLA+ model workflow: verify a model and mapping contract, scaffold a draft model from indexed code, generate a trace recorder, or check a recorded trace against the next-state relation | `--map <file>`<br>`--config <file>`<br>`--checker <mode>`<br>`--tla-tools <jar>`<br>`--apalache <binary>`<br>`--length <n>`<br>`--timeout-ms <n>`<br>`--trace <file>`<br>`--next <operator>`<br>`--allow-unknown`<br>`--out <path>`<br>`--module-name <name>`<br>`--force`<br>`--full`<br>`--json` |
108
+
100
109
  ### Planning
101
110
 
102
111
  | Command | Description | Options |
@@ -116,19 +125,53 @@ This syntax summary is generated from the CLI command descriptors. Keep workflow
116
125
  | Command | Description | Options |
117
126
  |---|---|---|
118
127
  | `bench` | Benchmark indexing and command runtimes for this repository | `--json`<br>`--cold-index`<br>`--include-heavy`<br>`--command <cmd>`<br>`--timeout-ms <n>`<br>`--progress`<br>`--profile`<br>`--profile-out <path>` |
119
- | `install-skills` | Install skills (scip-query, scip-query-setup, scip-adoption, scip-health-audit, scip-health-improve, scip-hyper-optimization, scip-api-impact, concrete-plan, scip-ai-cleanup, scip-debug, scip-explore, scip-triage-issue, scip-diagram, scip-debloat, scip-doc-reconcile, scip-directory-architecture, scip-maintainability, scip-react-maintainability, scip-vue-maintainability, scip-verify, scip-language-playbook) into Claude Code, Codex, and shared agent roots | - |
120
- | `setup-hooks` | Install or refresh project-local Codex and Claude Code lifecycle hooks | `--json` |
128
+ | `install-skills` | Install skills (_shared, scip-query, scip-setup, scip-cleanup-audit, scip-cleanup-improve, scip-integrity-audit, scip-twin-drift, scip-claim-audit, scip-probe-reachability, scip-hyper-optimization, scip-api-impact, scip-concrete-plan, scip-conductor, scip-debug, scip-explore, scip-triage-issue, scip-diagram, scip-doc-reconcile, scip-directory-architecture, scip-maintainability, scip-react-maintainability, scip-vue-maintainability, scip-verify, scip-language-playbook, scip-tla-model-system) into Claude Code, Codex, and shared agent roots | - |
129
+ | `setup-hooks` | Install or refresh project-local Codex and Claude Code lifecycle hooks | `--shared`<br>`--remove`<br>`--force`<br>`--json` |
121
130
  | `check-deps` | Check whether scip-query and the detected language indexers are actually runnable | - |
122
- | `capabilities` | Report which evidence and verification capabilities are available in this project | `--json` |
123
- | `capability-matrix` | Report the evidence and verification capability matrix by language | `--json` |
131
+ | `capabilities` | Report which evidence and verification capabilities are available in this project | `--matrix`<br>`--json` |
132
+ | `capability-matrix` | Deprecated alias for capabilities --matrix | `--json` |
124
133
  | `init` | Create a .scipquery.json config file for this project | - |
125
134
  | `config-validate` | Validate .scipquery.json, including structured suppressions and declared coupling groups | `--json` |
126
135
  | `suppress <id>` | Record an accepted finding in .scipquery.json with a required reason | `--reason <text>`<br>`--check <check>`<br>`--file <path>`<br>`--expires-at <iso>`<br>`--json` |
127
136
  | `doctor` | Diagnose config, index freshness, dependency readiness, and project capabilities | `--json` |
128
- | `setup` | Bootstrap this project: install agent skills, refresh the index, verify capabilities, and report health | `--git-hook`<br>`--json` |
137
+ | `setup` | Bootstrap this project: install agent skills, refresh the index, verify capabilities, and report health | `--git-hook`<br>`--no-hooks`<br>`--dossier-dir <path>`<br>`--json` |
129
138
  | `setup-agent` | Seed agent guidance for this project: AGENTS.md/CLAUDE.md block pointing agents at the scip-query skills and diff gate, plus an optional git pre-commit backstop | `--git-hook` |
130
139
  | `setup-ci` | Write a GitHub Actions workflow that runs scip-query reindex and diff-gate on pull requests | `--force`<br>`--dry-run` |
131
- | `watch` | Watch for file changes and reindex automatically | `--debounce <ms>`<br>`--cooldown <ms>`<br>`--git-poll <ms>` |
140
+ | `uninstall` | Remove scip-query-owned skill links, project hooks, and managed agent setup blocks | `--global`<br>`--project`<br>`--dry-run`<br>`--json` |
141
+ | `watch` | Watch for file changes in the foreground and reindex automatically | `--debounce <ms>`<br>`--cooldown <ms>`<br>`--git-poll <ms>` |
132
142
  | `status` | Show index status for this project | `--json`<br>`--capabilities` |
133
143
 
134
144
  <!-- END GENERATED COMMAND REFERENCE -->
145
+
146
+ ## `analysisBudget` disclosure contract
147
+
148
+ On a large index (`stats.symbols >= 25,000` or `stats.documents >= 2,500`), commands built on the
149
+ shared `budgetedDbCommand`/`budgetedListCommand`/`budgetedTableCommand`/`budgetedReportCommand`/
150
+ `budgetedGroupedByFileCommand`/`budgetedSectionedReportCommand` helpers (`src/runtime/commands/
151
+ command-execution.ts`) automatically cap their candidate scan and disable semantic (ts-morph)
152
+ enrichment, and — unless `--full` is passed — disclose the cap two ways: a stderr notice in human
153
+ mode, and an `analysisBudget: { scanLimit, semanticEnrichment, reason }` key at the top level of
154
+ the `--json` envelope (`printJsonEnvelope`, same file). This is a general-purpose seam, not
155
+ diff-gate-specific: as of this writing it already covers `dead`, `unused-imports`, `isolated`,
156
+ `extract-candidates`, `locality-candidates`, `similar`, `similar-signatures`, `drift`,
157
+ `convergence`, `duplicate-bodies`, `twin-drift`, `cleanup-plan`, `cleanup-apply`,
158
+ `recent-duplicates`, `unused-params`, `complexity-hotspots`, `complexity`, `bottlenecks`,
159
+ `imports`, `refs`, `dataflow`, `slice`, `plan-context`, `change-surface`, `incomplete-migration`,
160
+ `co-change`, `diff-gate`, and the React/Vue battery commands.
161
+
162
+ Commands stay on the plain (unbudgeted) `dbCommand`/`listCommand`/`tableCommand`/`reportCommand`
163
+ family — and so never emit `analysisBudget` — when their cost model has no candidate-count or
164
+ semantic-enrichment knob for the budget to honestly describe: single-symbol/single-file lookups
165
+ (`code`, `outline`, `fan-in`, `fan-out`, `coupling`, `twin-ab`), or whole-graph structural queries
166
+ with their own independent bound (`cycles`, `deep-chains`). Adding the `analysisBudget` key to one of those
167
+ without also making the underlying query respect `scanLimit`/`semantic` would disclose a cap that
168
+ isn't real — forbidden by the same "no silent/false disclosure" rule this contract exists to
169
+ enforce (see `docs/plans/2026-07-02-followups.md` items 6 and 9).
170
+
171
+ Followup #6 closed the one confirmed gap in an otherwise-wired battery command: `co-change`
172
+ (`src/runtime/query-commands/impact.ts`) used the plain `dbCommand` and never disclosed a budget,
173
+ even though its per-pair classification loop in `queries.coChange`
174
+ (`src/queries/impact/co-change.ts`) does real filesystem/graph work whose cost scales with
175
+ candidate-pair count on a large repository. It now flows through `budgetedDbCommand` and
176
+ `coChange` accepts a `scanLimit` option that truncates the (already priority-sorted) candidate
177
+ pairs before classification, so the disclosed budget is truthful rather than cosmetic.
@@ -79,8 +79,25 @@ gaps:
79
79
 
80
80
  How to keep them straight: `drift` is structural and intra-code, `doc-drift`
81
81
  is prose-vs-code, `co-change` is code-vs-code where the connection exists only
82
- in commit history. The diff-gate runs all three angles scoped to your change
83
- (`doc-reference` and `co-change-partner` checks).
82
+ in commit history. The diff gate includes doc/code and hidden-coupling coverage
83
+ through the `doc-reference` and `co-change-partner` checks; run `drift`
84
+ directly when you need directory-pattern or layer-policy analysis.
85
+
86
+ <!-- BEGIN GENERATED DIFF-GATE CHECKS -->
87
+ | Check | What it catches | When it runs |
88
+ | --- | --- | --- |
89
+ | `echo` | Changed symbols that newly echo established code elsewhere. | Default diff gate. |
90
+ | `incomplete-migration` | New helpers or abstractions wired into some sites while older inline sites remain. | Default diff gate. |
91
+ | `co-change-partner` | Historically coupled files that usually change together but are missing from this diff. | Default diff gate. |
92
+ | `twin-partner` | A changed symbol has a same-(near-)name twin (identical or already-divergent) elsewhere that this diff left untouched. | Default diff gate. Advisory: findings print but never cause a nonzero exit by themselves. |
93
+ | `coverage-contract` | A configured `coverageContracts` entry (.scipquery.json) drifted: its declared key set no longer matches its ground-truth source. | Default diff gate, only when either side of a configured contract changed. |
94
+ | `doc-reference` | Docs that cite changed files and may need a matching update. Dated snapshot docs (docs.snapshotPaths) are excluded by policy. | Default diff gate. Advisory (21.2) for bare file-mention citations; blocking when the citation has a line anchor or the cited file was deleted/renamed. |
95
+ | `unused-params` | Fresh trailing parameters or options that no changed body uses. | Default diff gate. |
96
+ | `new-dead` | Changed production symbols with zero indexed consumers. | Default diff gate. |
97
+ | `baseline` | New health finding identities compared with the committed health baseline. | Only with `diff-gate --baseline`. |
98
+ <!-- END GENERATED DIFF-GATE CHECKS -->
99
+
100
+ Baseline identities use `detector:file:shortName`. File or symbol renames can legitimately show as one fixed baseline identity plus one new identity; update the baseline after reviewing intentional renames.
84
101
 
85
102
  ## Cluster 4 — "Nothing uses this" (the deadness family)
86
103
 
@@ -115,5 +132,5 @@ broad sweep on every diff; these are the targeted follow-ups.
115
132
  | Anything at all, before saying "done" | `scip-query reindex && scip-query diff-gate` |
116
133
 
117
134
  And before any non-trivial change: plan with `scip-query plan-context
118
- <target>` (or the `concrete-plan` skill, which requires a scip-query citation
135
+ <target>` (or the `scip-concrete-plan` skill, which requires a scip-query citation
119
136
  for every claim in the plan).
@@ -0,0 +1,34 @@
1
+ # Regex Policy
2
+
3
+ Regular expressions are pattern matchers over text. In this codebase, they are appropriate when the input is a flat machine-generated string whose structure is fully represented by local characters, and inappropriate when an available parser can expose the structure that gives the text its meaning.
4
+
5
+ Use parsers for structured inputs when the parser is available:
6
+
7
+ - Source code: use tree-sitter, ts-morph, Vue compiler APIs, or language-specific source readers before scanning syntax with regex.
8
+ - TLA modules: use SANY-derived facts when the tools are available; regex model parsing is a disclosed fallback only.
9
+ - Checker diagnostics: use each checker's structured output or documented diagnostic shape before falling back to generic line matching.
10
+ - Markdown citations: use the existing citation context and citation-kind classifiers rather than broad path regexes alone.
11
+
12
+ Regex remains the right tool for flat machine-generated strings:
13
+
14
+ - SCIP symbol encodings in `src/symbols/symbol-parser.ts`.
15
+ - SCIP row and descriptor filters in storage/query SQL when the pattern is static.
16
+ - Path fragments and glob prefilters, followed by segment-aware matching when slash semantics matter.
17
+ - Signature normalization in `src/queries/cleanup/similar-signatures.ts`.
18
+ - Import path and source-text stripping helpers where the input is already a known lexical fragment.
19
+ - Framework and file classifiers that match names, extensions, and conventional path segments.
20
+
21
+ Retired or downgraded load-bearing regexes in the round-2 remediation:
22
+
23
+ - Complexity branch counting now uses AST nodes when parsing succeeds; source regex counting is labeled `regex-fallback`.
24
+ - `complexity-hotspots` uses the same branch estimate and no longer relies on size and fan metrics alone.
25
+ - Scope filters in SQL queries now bind parameters instead of interpolating user text into `LIKE`.
26
+ - `files` keeps SQL `LIKE` only as a prefilter and applies segment-aware glob matching in code.
27
+ - Drift policy no longer turns an unlisted `src/*` layer into an explicit layer violation.
28
+ - Cycles output discloses when DFS depth truncates the search.
29
+
30
+ Future work already identified:
31
+
32
+ - Health's fix-commit signal intentionally remains a subject-keyword regex until conventional-commit or issue-link evidence replaces it; output must disclose that basis.
33
+ - Checker diagnostic extraction should prefer structured per-oracle parsers and label heuristic fallback.
34
+ - TLA conformance should prefer SANY XML facts and label text parsing as `regex-fallback`.
@@ -20,15 +20,15 @@ The action tiers are:
20
20
 
21
21
  ## Current Surfaces
22
22
 
23
- The published query surface and private query-helper manifest live in `src/queries/public-query-entries.ts`. The CLI command order and families live in `src/runtime/commands/query-command-specs.ts`. The composite health score runs the phases listed in `HEALTH_PHASES` in `src/queries/health/health.ts`. The diff gate runs the default diff-scoped checks listed in `DIFF_GATE_CHECKS` in `src/queries/impact/diff-gate.ts`; the baseline policy helper remains private to the query tree and runs only for the explicit full health-baseline ratchet.
23
+ The published query surface and private query-helper manifest live in `src/queries/public-query-entries.ts`. The CLI command order and families live in `src/runtime/commands/query-command-specs.ts`. The composite health score runs the phases listed in `HEALTH_PHASES` in `src/queries/health/health.ts`. The diff gate runs the default diff-scoped checks listed in `DIFF_GATE_CHECKS` in `src/queries/impact/diff-gate.ts`; the baseline policy helper remains private to the query tree and runs only for the explicit full health-baseline ratchet. The `tla` command is also ordered in that command registry as an on-demand formal-model verifier, not as a health-scored analyzer.
24
24
 
25
- `health --json` on this repository currently reports:
25
+ An earlier `health --json` run on this repository reported:
26
26
 
27
27
  - score 100, riskScore 100, hygieneScore 100
28
28
  - zero active findings across all health phases
29
29
  - 174 suppression comments: 72 extract, 62 wrapper, 17 stale, 15 similar, 8 passthrough
30
30
 
31
- That suppression shape is evidence that broad candidate analyzers have historically produced enough accepted or false-positive results to need explicit maintainer judgment. The suppression lifecycle review confirmed the current source comments are recent and reasoned, while structured file-scoped suppressions now warn when their file path goes stale.
31
+ That suppression shape was evidence that broad candidate analyzers had historically produced enough accepted or false-positive results to need explicit maintainer judgment. The suppression lifecycle review confirmed the source comments were recent and reasoned, while structured file-scoped suppressions now warn when their file path goes stale.
32
32
 
33
33
  The declared-coupling config has been refreshed after the inventory surfaced old pre-folder-move paths. `config-validate` now warns when a declared-coupling entry names a file that no longer exists, so known maintenance units stay connected to the current file graph instead of silently becoming stale metadata.
34
34
 
@@ -104,6 +104,8 @@ These commands analyze the index, but they are not finding detectors and should
104
104
 
105
105
  They are essential because other analyzers and agents use them to ground claims. Their defining characteristic is retrieval or explanation, not smell detection.
106
106
 
107
+ `tla` is a formal-model verification command: it checks a TLA+ module, an explicit model-to-TypeScript mapping contract, and compiler-indexed code evidence in one on-demand run. Its defining role is to make model/code discrepancies reviewable before a user or agent treats the TLA+ model as an accurate description of the implementation.
108
+
107
109
  The support-analysis accuracy review confirmed that `refs`, `affected`, `change-surface`, `plan-context`, `imports`, `deps`, `rdeps`, `fan-in`, `fan-out`, `hotspots`, `status`, and `self-audit` return useful source-grounded evidence for a TypeScript target. It also fixed diagnostic parity so `status` and `doctor` use the same root-aware config validation as `config-validate`.
108
110
 
109
111
  The cross-language boundary review confirmed that Rust projects have graph-backed indexing, source fallback, cleanup detector output, git/diff support, and compiler cleanup verification when `rust-analyzer` and `cargo check` are available. It also confirmed that TypeScript semantic self-audit is explicitly unavailable on Rust and that React/Vue analyzers return stack-specific empty results rather than Rust findings.
@@ -201,3 +203,38 @@ citations remain accurate after the Git evidence product migration. Health
201
203
  still owns the composite phase inventory, and diff-gate still owns
202
204
  `DIFF_GATE_CHECKS`; both now obtain Git history facts through
203
205
  `gitEvidenceProduct()` instead of direct helper reads.
206
+
207
+ ## 2026-06-30 Health Cleanup Follow-Up
208
+
209
+ The `src/queries/public-query-entries.ts` reference remains the public query
210
+ manifest reference. Private query-helper coverage is now asserted as a
211
+ CLI-contract test fixture in `tests/runtime/cli-contract.test.ts`, so the
212
+ production manifest only exports the public entries and source paths used by
213
+ packaging.
214
+
215
+ 2026-07-01 round-2 remediation note: the `src/queries/health/health.ts`
216
+ guide reference remains current after the health output gained explicit
217
+ validation-basis and source-facts disclosure fields. The analyzer inventory
218
+ still points readers at the health command implementation that owns score
219
+ phases, suppressions, and validation reporting.
220
+
221
+ ## 2026-07-01 Remediation Plan 3 Follow-Up
222
+
223
+ The `src/queries/impact/diff-gate.ts` and `src/queries/health/health.ts`
224
+ citations remain accurate after remediation plan 3 (detection primitives).
225
+ `DIFF_GATE_CHECKS` gained `twin-partner` (advisory — a same-(near-)name twin
226
+ left behind by a one-sided edit) and `coverage-contract` (enumeration-rot:
227
+ a configured `coverageContracts` key set drifted from its ground-truth
228
+ source). `HEALTH_PHASES` gained `coverage-contracts`. Both files still own
229
+ their respective canonical lists; only the list contents grew.
230
+
231
+ ## 2026-07-02 Queued Enhancements Follow-Up
232
+
233
+ The `src/queries/health/health.ts`, `src/queries/public-query-entries.ts`,
234
+ and `src/runtime/commands/query-command-specs.ts` citations remain accurate
235
+ after the queued-enhancements batch (Q1/Q4). `HEALTH_PHASES` gained
236
+ `twin-drift` (divergent/identical same-name twin groups as a hygiene
237
+ dimension), and the public command surface gained `twin-ab` (behavioral A/B
238
+ scaffold generator for scip-integrity-audit drill 5) in `queryCommandOrder`
239
+ and `PUBLIC_QUERY_ENTRIES`. All three files still own their respective
240
+ canonical lists; only the list contents grew.
@@ -14,10 +14,10 @@ The ledger is anchored to the current tool surface, not memory.
14
14
 
15
15
  | Surface | Source | Why it anchors the ledger |
16
16
  | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------- |
17
- | Repo-wide health analysis | `scip-query code health --json` reported `src/queries/health/health.ts:194`, where `health()` runs `runHealthAnalyses()` and `buildHealthReport()`. | Every repo-wide analyzer validation must eventually reconcile with health output and scoring. |
18
- | Change-time gate analysis | `scip-query code diffGate --json` reported `src/queries/impact/diff-gate.ts:94`, where `diffGate()` runs the default diff-scoped checks: `echo`, `incomplete-migration`, `co-change-partner`, `doc-reference`, `unused-params`, and `new-dead`. The baseline ratchet is explicit because it is repo-wide. | Every diff-only analyzer needs a separate validation path from repo-wide health. |
19
- | Public command registry | `scip-query trace queryCommandOrder --json` reported `src/runtime/commands/query-command-specs.ts:10`, where the public query command order starts. `scip-query code queryCommandDescriptor --json` reported `src/runtime/commands/query-command-specs.ts:94`, where command descriptors are resolved by id. | The ledger must not silently miss a public analyzer command. |
20
- | Diff-gate check list | `scip-query trace DIFF_GATE_CHECKS --json` reported `src/queries/impact/diff-gate.ts:27`, where the canonical diff-gate check list is exported. | The ledger must cover every change-time check that can block a diff. |
17
+ | Repo-wide health analysis | `scip-query code health --json` reported `src/queries/health/health.ts:217`, where `health()` runs `runHealthAnalyses()` and `buildHealthReport()`. | Every repo-wide analyzer validation must eventually reconcile with health output and scoring. |
18
+ | Change-time gate analysis | `scip-query code diffGate --json` reported `src/queries/impact/diff-gate.ts:228`, where `diffGate()` runs the default diff-scoped checks: `echo`, `incomplete-migration`, `co-change-partner`, `doc-reference`, `unused-params`, and `new-dead`. The baseline ratchet is explicit because it is repo-wide. | Every diff-only analyzer needs a separate validation path from repo-wide health. |
19
+ | Public command registry | `scip-query trace queryCommandOrder --json` reported `src/runtime/commands/query-command-specs.ts:11`, where the public query command order starts. `scip-query code queryCommandDescriptor --json` reported `src/runtime/commands/query-command-specs.ts:104`, where command descriptors are resolved by id. | The ledger must not silently miss a public analyzer command. |
20
+ | Diff-gate check list | `scip-query trace DIFF_GATE_CHECKS --json` reported `src/queries/impact/diff-gate.ts:64`, where the canonical diff-gate check list is exported. | The ledger must cover every change-time check that can block a diff. |
21
21
 
22
22
  ## Core Concepts
23
23
 
@@ -64,14 +64,15 @@ Closeout status: all active ledger rows are complete as of 2026-06-22. Remaining
64
64
 
65
65
  ## Public Command Coverage Checklist
66
66
 
67
- The canonical source is `src/runtime/commands/query-command-specs.ts:10-73`, where `queryCommandOrder` lists the public query command surface.
67
+ The canonical source is `src/runtime/commands/query-command-specs.ts:11-78`, where `queryCommandOrder` lists the public query command surface.
68
68
 
69
69
  - Core and navigation support: `stats`, `files`, `methods`, `refs`, `trace`, `deps`, `rdeps`, `system`, `surface`, `imports`, `imported-by`, `outline`, `members`, `by-kind`, `kind-counts`, `hierarchy`, `call-graph`, `code`, `dataflow`, `slice`
70
70
  - Direct cleanup and deletion analyzers: `dead`, `isolated`, `unused-imports`, `cleanup-plan`, `unused-params`, `passthrough-candidates`, `redundant-reexports`
71
- - Similarity, reuse, extraction, and locality analyzers: `similar`, `similar-files`, `similar-chains`, `similar-signatures`, `recent-duplicates`, `extract-candidates`, `locality-candidates`, `wrapper-candidates`, `stale-abstractions`, `doc-drift`, `drift`, `convergence`
71
+ - Similarity, reuse, extraction, and locality analyzers: `similar`, `similar-files`, `similar-chains`, `similar-signatures`, `recent-duplicates`, `duplicate-bodies`, `twin-drift`, `twin-ab`, `extract-candidates`, `locality-candidates`, `wrapper-candidates`, `stale-abstractions`, `doc-drift`, `drift`, `convergence`
72
72
  - Frontend analyzers: `react-component-duplicates`, `react-hook-candidates`, `react-large-component-pressure`, `vue-component-duplicates`, `vue-composable-candidates`, `vue-large-view-pressure`
73
73
  - Graph, risk, and complexity analyzers: `hotspots`, `fan-in`, `fan-out`, `coupling`, `cycles`, `bottlenecks`, `deep-chains`, `complexity-hotspots`, `complexity`
74
74
  - Diff, impact, and planning analyzers: `affected`, `change-surface`, `co-change`, `diff-gate`, `incomplete-migration`, `plan-context`
75
+ - Formal model verification: `tla`
75
76
  - Meta and action commands: `self-audit`, `cleanup-apply`
76
77
 
77
78
  ## Completed Run Batches
@@ -306,3 +307,30 @@ The `diffGate()` and health citations remain accurate after the Git evidence
306
307
  product migration. Default diff-gate still runs the same check family, and
307
308
  health still reports the same Git evidence summary; both paths now read Git
308
309
  history through `gitEvidenceProduct()`.
310
+
311
+ 2026-07-01 round-2 remediation note: the `src/queries/health/health.ts`
312
+ configuration example remains current after the health command added
313
+ validation-basis disclosure and parser-unavailable reporting. The validation
314
+ ledger's health examples still cite the command surface that computes and
315
+ renders those analyzer signals.
316
+
317
+ ## 2026-07-01 Remediation Plan 3 Follow-Up
318
+
319
+ The `diffGate()` and health citations remain accurate after remediation plan 3
320
+ (detection primitives). Default diff-gate now also runs `twin-partner`
321
+ (advisory) and `coverage-contract`; `src/runtime/commands/query-command-specs.ts`
322
+ still owns the public query order. Health gained a `coverage-contracts` phase
323
+ and a `detectorPrecision` field (per-check finding-outcome stats from the new
324
+ finding-outcome ledger) — both paths still compute and render through the same
325
+ command surfaces cited above.
326
+
327
+ ## 2026-07-02 Doc-Reference Hub-Cascade Follow-Up
328
+
329
+ The `diffGate()` and `DIFF_GATE_CHECKS` citations were refreshed (line anchors
330
+ `diff-gate.ts:205` -> `:228` and `:62` -> `:64`) after followup #8 added
331
+ hub-file cascade damping to the doc-reference check: when more than 3 docs
332
+ cite the same changed hub file in one gate run, their findings collapse into
333
+ one clustered finding carrying `citationCount`, up to 3 `citationExemplars`,
334
+ and an explicit `suppressedCount`. Default diff-gate still runs the same
335
+ check family through the same entry point; per-doc findings under the
336
+ threshold are unchanged.