scip-query 0.10.12 → 0.12.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 (354) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/{vendor/scip/LICENSE.scip → LICENSE} +1 -0
  3. package/README.md +164 -49
  4. package/dist/augment-vue-worker.js +1 -1
  5. package/dist/{chunk-RUV5IY25.js → chunk-2LQWMYG4.js} +2 -2
  6. package/dist/{chunk-KZ4MG5NY.js → chunk-2QGE5AEP.js} +2 -2
  7. package/dist/chunk-4D54JIU3.js +2 -0
  8. package/dist/{chunk-2GLNBCHB.js → chunk-52Q4JFDW.js} +2 -2
  9. package/dist/chunk-5AAAEZ2Z.js +2 -0
  10. package/dist/chunk-64PRNLKP.js +2 -0
  11. package/dist/chunk-6XA4LDHY.js +2 -0
  12. package/dist/chunk-72MFTCU5.js +38 -0
  13. package/dist/chunk-75X52JTA.js +2 -0
  14. package/dist/{chunk-LEHVP4DY.js → chunk-7ITCOJGD.js} +2 -2
  15. package/dist/chunk-7JZRFDCU.js +2 -0
  16. package/dist/{chunk-XRUGSM76.js → chunk-AZLKLZ5S.js} +2 -2
  17. package/dist/chunk-B4VYXRCQ.js +26 -0
  18. package/dist/chunk-BCNT6ODA.js +5 -0
  19. package/dist/chunk-BP2NAIAZ.js +2 -0
  20. package/dist/chunk-BVNO67DB.js +2 -0
  21. package/dist/{chunk-XHMVZFA6.js → chunk-CW3KZ7UF.js} +2 -2
  22. package/dist/{chunk-6BN3EHQE.js → chunk-D64L53WX.js} +2 -2
  23. package/dist/{chunk-T3AEVJBG.js → chunk-D7J6GZAG.js} +2 -2
  24. package/dist/chunk-ECVXWZ4Q.js +3 -0
  25. package/dist/chunk-EDB7Y442.js +2 -0
  26. package/dist/{chunk-4ISHQ7UW.js → chunk-ETU2I5JM.js} +4 -4
  27. package/dist/chunk-EXKLAEB4.js +18 -0
  28. package/dist/chunk-EZ5WDZ2Q.js +3 -0
  29. package/dist/{chunk-S2MRVIJ5.js → chunk-F5BJSNU5.js} +6 -6
  30. package/dist/chunk-FBCOFKEC.js +2 -0
  31. package/dist/chunk-FERAXG6Y.js +72 -0
  32. package/dist/chunk-FXG3PHVW.js +9 -0
  33. package/dist/{chunk-XUCZ3RQ5.js → chunk-G2UBOONK.js} +4 -4
  34. package/dist/chunk-GNG622H3.js +3 -0
  35. package/dist/{chunk-JS6B76AQ.js → chunk-H2NMIZFD.js} +2 -2
  36. package/dist/chunk-H7NSJ7L2.js +5 -0
  37. package/dist/chunk-HSU3M25J.js +21 -0
  38. package/dist/chunk-HXXMPYEF.js +2 -0
  39. package/dist/chunk-IRJDYTNZ.js +3 -0
  40. package/dist/chunk-ISLWJ4PY.js +10 -0
  41. package/dist/chunk-J5WVNZ6O.js +2 -0
  42. package/dist/{chunk-UVPY3RUZ.js → chunk-K6UI6EBZ.js} +2 -2
  43. package/dist/{chunk-MNCQPMCH.js → chunk-KJCDEDQW.js} +2 -2
  44. package/dist/{chunk-ELC77ZDE.js → chunk-KMVGRIO2.js} +2 -2
  45. package/dist/chunk-KSUZS77X.js +16 -0
  46. package/dist/{chunk-A4UTLKHU.js → chunk-L2CX5GHZ.js} +2 -2
  47. package/dist/chunk-LFM3O5KX.js +2 -0
  48. package/dist/{chunk-ZUUNREKS.js → chunk-M72ZFN6E.js} +5 -5
  49. package/dist/chunk-MBKJ7GHT.js +102 -0
  50. package/dist/chunk-MJKJMWIM.js +2 -0
  51. package/dist/chunk-MKM7NBZK.js +43 -0
  52. package/dist/chunk-MTDBHTSF.js +2 -0
  53. package/dist/chunk-NAH5EAZS.js +6 -0
  54. package/dist/chunk-NJJ7AS4F.js +2 -0
  55. package/dist/{chunk-EOLGSSDR.js → chunk-NKT5EMEX.js} +2 -2
  56. package/dist/{chunk-ANUEY5WV.js → chunk-NLMRJ7SI.js} +2 -2
  57. package/dist/chunk-NQ75OVUU.js +40 -0
  58. package/dist/{chunk-TBCHRDAC.js → chunk-O3WDE26W.js} +2 -2
  59. package/dist/{chunk-VB2EZZPA.js → chunk-OPE5YXFE.js} +2 -2
  60. package/dist/chunk-ORBRX2QJ.js +2 -0
  61. package/dist/{chunk-OFXN2BCT.js → chunk-OSWF3HSF.js} +2 -2
  62. package/dist/{chunk-JJ5SAWBT.js → chunk-OVMUVXKQ.js} +2 -2
  63. package/dist/{chunk-NTSR6SRP.js → chunk-PH7ZFK6L.js} +2 -2
  64. package/dist/chunk-PXHPCWX5.js +2 -0
  65. package/dist/chunk-Q3B3FNCU.js +3 -0
  66. package/dist/{chunk-SQNHOOJ5.js → chunk-Q7S2DADC.js} +2 -2
  67. package/dist/{chunk-3XSNW5XB.js → chunk-QARYU7R3.js} +2 -2
  68. package/dist/chunk-QZ4JVECJ.js +2 -0
  69. package/dist/{chunk-FX6ULETZ.js → chunk-R5336VHZ.js} +2 -2
  70. package/dist/chunk-RA5MTIOO.js +2 -0
  71. package/dist/{chunk-RXINFVBN.js → chunk-RIQED5OU.js} +2 -2
  72. package/dist/chunk-T2FQ4GHD.js +9 -0
  73. package/dist/chunk-T6NGEV5I.js +2 -0
  74. package/dist/chunk-T7VQG55Q.js +2 -0
  75. package/dist/chunk-TFWDJDGO.js +2 -0
  76. package/dist/chunk-TG7QSYCJ.js +2 -0
  77. package/dist/{chunk-DQ6433ZG.js → chunk-TTMKELT7.js} +17 -8
  78. package/dist/{chunk-DDQONX6B.js → chunk-U7I373V4.js} +2 -2
  79. package/dist/chunk-UAHZ57BR.js +2 -0
  80. package/dist/chunk-URSSPS5H.js +2 -0
  81. package/dist/chunk-V3Z3IOWO.js +2 -0
  82. package/dist/{chunk-7C6JBBE4.js → chunk-V7CVBPWX.js} +2 -2
  83. package/dist/{chunk-PWAK75BU.js → chunk-VYF5HA76.js} +2 -2
  84. package/dist/chunk-WIBFXSYB.js +6 -0
  85. package/dist/chunk-WS3Z6W3M.js +65 -0
  86. package/dist/chunk-WXVGNFAO.js +2 -0
  87. package/dist/chunk-XEMQUN3Z.js +20 -0
  88. package/dist/chunk-YCPASUCX.js +2 -0
  89. package/dist/chunk-YDDGCJJG.js +3 -0
  90. package/dist/{chunk-2UVCH7CQ.js → chunk-YPKBZ77R.js} +2 -2
  91. package/dist/chunk-YZXV3CU3.js +60 -0
  92. package/dist/chunk-Z3IPJKJP.js +4 -0
  93. package/dist/chunk-ZMGBWSFZ.js +2 -0
  94. package/dist/{chunk-GKB4JJDU.js → chunk-ZOIPAYRP.js} +2 -2
  95. package/dist/chunk-ZRIOGL7F.js +8 -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 +23 -4
  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 +57 -14
  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 +39 -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 +150 -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-63CI3IXR.js +0 -102
  291. package/dist/chunk-7EK7OSWS.js +0 -2
  292. package/dist/chunk-7IWIMNHI.js +0 -2
  293. package/dist/chunk-7XTO4YXB.js +0 -8
  294. package/dist/chunk-AOWFUGDL.js +0 -2
  295. package/dist/chunk-AREANYIA.js +0 -3
  296. package/dist/chunk-AZBELWZQ.js +0 -7
  297. package/dist/chunk-B32FX5KB.js +0 -2
  298. package/dist/chunk-B6MJ5VQV.js +0 -2
  299. package/dist/chunk-CXWCLVYL.js +0 -2
  300. package/dist/chunk-CYHIKTJN.js +0 -3
  301. package/dist/chunk-DFSEARAU.js +0 -2
  302. package/dist/chunk-DVFP6PZI.js +0 -2
  303. package/dist/chunk-E3ADDB43.js +0 -2
  304. package/dist/chunk-F6IXELII.js +0 -20
  305. package/dist/chunk-FMGVZBS2.js +0 -2
  306. package/dist/chunk-GG5LHT27.js +0 -2
  307. package/dist/chunk-H7JF2CKK.js +0 -2
  308. package/dist/chunk-HHOMJCP5.js +0 -4
  309. package/dist/chunk-HRDSU5FN.js +0 -9
  310. package/dist/chunk-HWVYTJOV.js +0 -2
  311. package/dist/chunk-JNMLBL36.js +0 -2
  312. package/dist/chunk-L446VQYQ.js +0 -2
  313. package/dist/chunk-LDJUB7XW.js +0 -2
  314. package/dist/chunk-MYTUWXHK.js +0 -4
  315. package/dist/chunk-N25HPUOK.js +0 -2
  316. package/dist/chunk-NABVR6B7.js +0 -2
  317. package/dist/chunk-NBNEVLRC.js +0 -3
  318. package/dist/chunk-ONPCQ2PM.js +0 -6
  319. package/dist/chunk-Q5P7NOVM.js +0 -2
  320. package/dist/chunk-RGKRYO22.js +0 -4
  321. package/dist/chunk-RM2WQ75T.js +0 -2
  322. package/dist/chunk-ROGZXWN2.js +0 -2
  323. package/dist/chunk-RSSXKJ6J.js +0 -38
  324. package/dist/chunk-RVGEZYMQ.js +0 -2
  325. package/dist/chunk-SA3DPTHT.js +0 -7
  326. package/dist/chunk-SGTKURU6.js +0 -52
  327. package/dist/chunk-T4N2ZRVY.js +0 -21
  328. package/dist/chunk-THB6AM3V.js +0 -11
  329. package/dist/chunk-ULHLDOD6.js +0 -4
  330. package/dist/chunk-UQ73QF5D.js +0 -43
  331. package/dist/chunk-UUBMFL3F.js +0 -59
  332. package/dist/chunk-V5FGK3DZ.js +0 -2
  333. package/dist/chunk-WTY5FERW.js +0 -2
  334. package/dist/chunk-WUOB4DHH.js +0 -6
  335. package/dist/chunk-YFQIKYOP.js +0 -2
  336. package/dist/chunk-Z2LDWIJV.js +0 -5
  337. package/dist/chunk-ZNWWVYQL.js +0 -3
  338. package/skills/concrete-plan/SKILL.md +0 -372
  339. package/skills/concrete-plan/agents/openai.yaml +0 -4
  340. package/skills/scip-adoption/SKILL.md +0 -122
  341. package/skills/scip-adoption/agents/openai.yaml +0 -4
  342. package/skills/scip-ai-cleanup/SKILL.md +0 -153
  343. package/skills/scip-ai-cleanup/agents/openai.yaml +0 -4
  344. package/skills/scip-debloat/SKILL.md +0 -439
  345. package/skills/scip-debloat/agents/openai.yaml +0 -4
  346. package/skills/scip-health-audit/SKILL.md +0 -162
  347. package/skills/scip-health-audit/agents/openai.yaml +0 -4
  348. package/skills/scip-health-improve/SKILL.md +0 -155
  349. package/skills/scip-health-improve/agents/openai.yaml +0 -4
  350. package/skills/scip-query-setup/SKILL.md +0 -170
  351. package/skills/scip-query-setup/agents/openai.yaml +0 -3
  352. package/vendor/scip/README.md +0 -6
  353. package/vendor/scip/win32-arm64/scip.exe +0 -0
  354. package/vendor/scip/win32-x64/scip.exe +0 -0
@@ -1,104 +1,107 @@
1
1
  ---
2
2
  name: scip-hyper-optimization
3
- description: Run scientific performance optimization campaigns with scip-query evidence, hierarchical profiling, command ledgers, and benchmark corpora. Use when the user asks to hyper optimize, make commands blazing fast, speed up a CLI/tool/app, find bottlenecks, benchmark regressions, optimize cold or warm paths, or compare targeted tuning against radically different implementations.
3
+ description: Optimize performance scientifically with scip-query evidence. Use for benchmarking, profiling, speeding up commands, workflows, indexers, detectors, app paths, cold/warm regressions, memory/cost reduction, or comparing current-pipeline tuning with alternative designs.
4
+ commands:
5
+ - template: "scip-query bench --json"
6
+ when: "Target and harness: baseline timings for a scip-query command target."
7
+ - template: "scip-query bench --json --cold-index --include-heavy --timeout-ms 600000"
8
+ when: "Target and harness: cold-path and heavy-detector timings."
9
+ - template: "scip-query plan-context <entry-symbol-or-file>"
10
+ when: "Trace behavior: pre-edit context for the profiled entry point."
11
+ - template: "scip-query call-graph <entry-symbol>"
12
+ when: "Trace behavior: callers/callees for the pipeline under test."
13
+ - template: "scip-query complexity <hot-symbol>"
14
+ when: "Diagnose: branches, cyclomatic estimate, fan-in/out for a hot symbol."
15
+ - template: "scip-query change-surface <touched-file> --json --full"
16
+ when: "Verify and report: blast radius of the optimization change."
4
17
  ---
5
18
 
6
- # SCIP Hyper Optimization
7
-
8
- Use this skill to make a command, workflow, service, page, or tool as fast as
9
- feasibly possible without changing its observable result. Hyper optimization is
10
- a bounded campaign that improves runtime, memory use, or computational cost
11
- against objective measurements; every accepted change is proven by a repeatable
12
- benchmark and unchanged output.
13
-
14
- A measurement harness is the repeatable set of commands, fixtures, corpora,
15
- environment notes, and result documents used to decide whether performance
16
- changed. A run history is the durable time-series of those measurements: one
17
- record per run, command, subprocess, or profiled stage, with enough metadata to
18
- compare commits and draw charts later. A profile span is one named timed piece
19
- of work inside the target process, such as input loading, cache reads, database
20
- queries, graph traversal, rendering, or a child process. Hierarchical profiling
21
- is using coarse spans to find the dominant stage, then recursively splitting
22
- only that stage until the expensive operation is concrete enough to fix. A
23
- command ledger is the living document for one target: what it returns, what code
24
- runs, where time is spent, what was tried, and what evidence accepted or
25
- rejected each idea.
19
+ # scip-hyper-optimization
20
+
21
+ Use this skill to make a command, workflow, service, page, or tool faster without changing its observable result. Hyper optimization is a bounded campaign that improves runtime, memory, or computational cost against repeatable measurements.
22
+
23
+ Campaign-level conduct delegation, handoff verification, benchmark pre-registration across multiple phases — is `scip-conductor`; this skill is the performance-domain method that runs inside it (or standalone for a single target).
24
+
25
+ Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
26
+
27
+ ## Scale Gate
28
+
29
+ Choose the mode before starting:
30
+
31
+ - **QUICK** a single command/function target with an obvious hot path: capture one `docs/benchmarks/runs/YYYY-MM-DD-<target>.jsonl` baseline, skip the ledger and the rest of the campaign artifact set, fix the hypothesis, measure after, done.
32
+ - **CAMPAIGN** multiple targets, an unclear bottleneck, or a decision between competing designs: run the full machinery below (baseline doc, ledger, profiling, alternative-design track).
33
+
34
+ One sentence to decide: if you can already name the one function you expect to fix and a single before/after number will settle it, use QUICK; if naming that function requires investigation or the fix might be architectural, use CAMPAIGN.
35
+
36
+ <!-- BEGIN GENERATED SKILL COMMANDS -->
37
+ ## Commands for this skill
38
+
39
+ | Command | Purpose | When |
40
+ | --- | --- | --- |
41
+ | `scip-query bench --json` | Benchmark indexing and command runtimes for this repository | Target and harness: baseline timings for a scip-query command target. |
42
+ | `scip-query bench --json --cold-index --include-heavy --timeout-ms 600000` | Benchmark indexing and command runtimes for this repository | Target and harness: cold-path and heavy-detector timings. |
43
+ | `scip-query plan-context <entry-symbol-or-file>` | Pre-edit planning context for a symbol, file, or module | Trace behavior: pre-edit context for the profiled entry point. |
44
+ | `scip-query call-graph <entry-symbol>` | Show incoming callers and outgoing callees for a symbol | Trace behavior: callers/callees for the pipeline under test. |
45
+ | `scip-query complexity <hot-symbol>` | Per-symbol complexity: branches, cyclomatic estimate, fan-in/out, callees | Diagnose: branches, cyclomatic estimate, fan-in/out for a hot symbol. |
46
+ | `scip-query change-surface <touched-file> --json --full` | Pre-change briefing: exports, consumers, and blast-radius risk | Verify and report: blast radius of the optimization change. |
47
+
48
+ Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
49
+ <!-- END GENERATED SKILL COMMANDS -->
50
+
51
+ ## Terms
52
+
53
+ A measurement harness is the repeatable set of commands, fixtures, corpora, environment notes, and result documents used to decide whether performance changed.
54
+
55
+ A run history is the durable time series of measurements, with one record per run, command, subprocess, or profiled stage.
56
+
57
+ A profile span is one named timed piece of work inside the target process, such as input loading, cache reads, database queries, graph traversal, rendering, or a child process.
58
+
59
+ Hierarchical profiling is measuring coarse spans first, then recursively splitting only the dominant span until the expensive operation is concrete enough to fix.
60
+
61
+ A command ledger is the living document for one target: output contract, current pipeline, timings, tried ideas, and decisions.
26
62
 
27
63
  ## Rules
28
64
 
29
- 1. Do not optimize until a measurement harness exists or has been created.
30
- 2. Use scip-query for code understanding: `status`, `plan-context`, `trace`,
31
- `call-graph`, `code`, `dataflow`, `complexity`, `diff-impact`, `diff-gate`.
32
- 3. Capture representative inputs, required output behavior, and correctness
33
- checks before editing.
34
- 4. Record every benchmark in a machine-readable run history before and after
35
- each optimization; Markdown summaries are secondary.
36
- 5. Measure cold-index, cold-cache or evidence-fill, warm steady-state, and
37
- repeated focused paths separately when they can diverge.
38
- 6. Profile the target's internal chain before editing. A bare command duration
39
- is enough to rank targets, not enough to choose a fix.
40
- 7. Treat profiling as a search algorithm: place coarse spans first, split the
41
- biggest span, and stop descending only when the slow operation is identifiable
42
- as a specific repeated lookup, initialization, scan, traversal, subprocess,
43
- serialization step, or wait.
44
- 8. Attach counts to spans: files, rows, symbols, candidates, cache hits/misses,
45
- subprocesses, bytes, edges, nodes, retries, and output rows. Time without
46
- cardinality hides the cause.
47
- 9. Work both tracks: tune the current pipeline and evaluate radically different
48
- algorithms or data models that preserve the same result.
49
- 10. Keep only changes that improve real workloads without reducing accuracy,
50
- diagnostics, safety checks, or supported inputs.
51
-
52
- ## Phase 0: Target And Measurement Harness
53
-
54
- If the target repository is not already a reliable scip-query workspace, invoke
55
- `scip-query-setup` first. Do not run setup-ci in this workflow.
56
-
57
- Choose the optimization target explicitly. Use user-reported pain, production
58
- telemetry, benchmark ranking, regression data, cost, frequency, or risk to
59
- justify why this target comes first. Do not optimize the slowest thing by habit
60
- if another path dominates real user time or compute spend.
61
-
62
- Create or update a benchmark note and a run-history store before code changes.
63
- Prefer the repo's existing convention; otherwise use
64
- `docs/benchmarks/YYYY-MM-DD-<target>-baseline.md` and
65
- `docs/benchmarks/runs/YYYY-MM-DD-<target>.jsonl`. Include target, machine/date
66
- context, corpus or fixture list, cold/warm/correctness commands, baseline
67
- timings, output-contract evidence, and slowest stages. Append a structured run
68
- record for each measurement with at least timestamp, commit/version, target,
69
- corpus, scenario, command, duration, exit status, output hash or size, and
70
- notes for outliers.
71
-
72
- Choose the measurement mechanism from the target's real workload. For app
73
- paths, use the app's benchmark, test, route smoke, build, profiler, load test,
74
- or timing script; if none exists, create the smallest repeatable timing command.
75
- For scip-query command, detector, or indexer targets, benchmark the relevant
76
- command matrix:
65
+ 1. Do not optimize until a measurement harness exists or is created.
66
+ 2. Capture representative inputs, output contract, and correctness checks before editing.
67
+ 3. Record every benchmark in machine-readable run history.
68
+ 4. Measure cold and warm paths separately when they can diverge.
69
+ 5. Profile the internal chain before choosing a fix.
70
+ 6. Attach cardinality to spans: files, rows, symbols, candidates, cache hits/misses, bytes, edges, nodes, retries, or output rows.
71
+ 7. Work both tracks: tune the current pipeline and evaluate alternative algorithms or data models.
72
+ 8. Keep only changes that improve real workloads without reducing accuracy, diagnostics, safety, or supported inputs.
73
+
74
+ ## Workflow
75
+
76
+ ### 1. Target and harness
77
+
78
+ If the repo is not a reliable scip-query workspace, invoke `scip-setup` first. Choose the target from user pain, telemetry, benchmark ranking, regression data, cost, frequency, or risk.
79
+
80
+ Create or update:
81
+
82
+ - `docs/benchmarks/YYYY-MM-DD-<target>-baseline.md` (CAMPAIGN only — QUICK skips this)
83
+ - `docs/benchmarks/runs/YYYY-MM-DD-<target>.jsonl` (both modes the one required artifact)
84
+
85
+ For scip-query command targets, start with:
77
86
 
78
87
  ```bash
79
88
  scip-query bench --json
80
89
  scip-query bench --json --cold-index --include-heavy --timeout-ms 600000
81
90
  ```
82
91
 
83
- For long benchmark matrices, prefer progress output or incremental JSONL writes
84
- so the current command, subprocess, elapsed time, and completed measurements are
85
- visible while the run is still active and useful if interrupted.
92
+ This step is complete only when baseline timings, output identity evidence, corpus, environment, and run-history location exist.
93
+
94
+ ### 2. Create the ledger
86
95
 
87
- ## Phase 1: Command Ledger
96
+ CAMPAIGN only QUICK mode skips this step and goes straight to tracing behavior with the single run-history file as its record.
88
97
 
89
- Create one ledger per target:
90
- `docs/benchmarks/YYYY-MM-DD-<target>-ledger.md`. Include Output Contract,
91
- Target Selection, Current Pipeline, Run History Location, Profile Spans,
92
- Bottleneck Candidates, Measurements, Current-Pipeline Optimizations,
93
- Alternative Designs, and Decisions.
98
+ Write `docs/benchmarks/YYYY-MM-DD-<target>-ledger.md` with Output Contract, Target Selection, Current Pipeline, Run History Location, Profile Spans, Bottleneck Candidates, Measurements, Current-Pipeline Optimizations, Alternative Designs, and Decisions.
94
99
 
95
- ## Phase 2: Trace Current Behavior
100
+ This step is complete only when the ledger can explain what must not change.
96
101
 
97
- Trace the target end to end and write the actual path into the ledger:
102
+ ### 3. Trace behavior
98
103
 
99
104
  ```bash
100
- scip-query status --capabilities
101
- # If stale, missing, or unknown: scip-query reindex
102
105
  scip-query plan-context <entry-symbol-or-file>
103
106
  scip-query trace <entry-symbol>
104
107
  scip-query call-graph <entry-symbol>
@@ -108,119 +111,42 @@ scip-query complexity <hot-symbol>
108
111
  scip-query change-surface <touched-file> --json --full
109
112
  ```
110
113
 
111
- Record the chain reaction from entry point to result: input parsing, option
112
- resolution, subprocesses, lookups, database queries, graph traversal, source
113
- scans, semantic calls, cache reads/writes, rendering, output serialization, and
114
- verification. The trace should be concrete enough that each major step can be
115
- timed as a profile span.
116
-
117
- Before adding spans, use the trace to predict span boundaries. Good first spans
118
- usually match the target's real pipeline nouns: load inputs, compute candidates,
119
- read cache, compute misses, write cache, build graph, score, render, serialize,
120
- and child process. Use `call-graph` to find nested helpers inside the slow
121
- stage, `dataflow` to follow the expensive object or cache key, `refs` to learn
122
- whether a suspected fix affects other paths, and `complexity` to avoid spending
123
- the first profiling pass on low-risk glue.
124
-
125
- ## Phase 3: Profile The Timed Chain
126
-
127
- Before editing, produce a stage profile for the selected target. Prefer existing
128
- runtime profilers, tracing systems, structured logs, or benchmark hooks. If none
129
- exist, add temporary or permanent instrumentation that names timed spans without
130
- changing observable output. For CLIs and build tools, include child processes
131
- and worker tasks; for services, include request handlers, database calls,
132
- network calls, queue jobs, cache hits/misses, rendering, and serialization.
133
-
134
- Use this discovery ladder:
135
-
136
- 1. Measure the target unprofiled so the user-facing baseline is real.
137
- 2. Measure it profiled once. If profiled and unprofiled times are close, the
138
- profiler is diagnostic overhead, not the bottleneck. If profiling dominates,
139
- fix the harness before trusting fine spans.
140
- 3. Measure distinct states separately: cold index, cold derived-cache/evidence
141
- fill, warm cache hit, repeated focused run, and production-like mixed state.
142
- 4. Add coarse spans that cover the whole chain. If span time does not explain
143
- wall time, look for uninstrumented child processes, async waits, I/O, process
144
- startup, or profiler gaps.
145
- 5. Pick the largest span by wall time multiplied by real workload frequency.
146
- Split only that span into child spans.
147
- 6. Repeat until a fixable operation appears: a repeated singleton creation, a
148
- per-item lookup, a broad scan, a wrapper traversal, a cache miss storm, a
149
- subprocess startup, a serialization step, or a wait.
150
- 7. Add cardinality metadata to every split: count of rows/files/symbols/nodes,
151
- cache hits/misses, bytes, output rows, and skipped items.
152
- 8. Record the before profile in the ledger before touching code.
153
-
154
- Write profile records to the run history with parent/child span names when
155
- possible. Separate wall time from CPU time when the tools allow it. Mark cache
156
- state explicitly: cold index, cold evidence/cache fill, warm cache hit, repeated
157
- focused run, or production-like mixed state.
158
-
159
- ## Phase 4: Diagnose And Find Speedups
160
-
161
- Classify the dominant span before choosing a fix:
162
-
163
- | Profile shape | Likely cause | First fixes to test |
164
- | ----------------------------------------------------- | ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- |
165
- | Cold path huge, warm path fast | Derived evidence/cache fill, expensive initialization, or cache invalidation | Persist the derived result, reuse compatible cache versions, batch cache fills, hoist initialization |
166
- | Warm path still slow | Cache scan, query shape, deserialization, reshaping, rendering, or output size | Narrow query, add indexes, store compact payloads, stream or avoid repeated object shaping |
167
- | Same expensive setup repeated across many files/items | Singleton/client/checker/session/project built inside a loop | Preload required inputs, create once after inputs are stable, cache per project/process |
168
- | Many medium-cost per-item operations | N+1 lookups, scalar provider calls, repeated source reads | Batch by provider/file/key, load rows in bulk, group work by locality |
169
- | Traversal span grows with AST/source nodes | Wrapper allocation or broad source scan | Use lower-level APIs, prefilter by exact names only when output identity proves equivalence, index reusable facts |
170
- | Database time dominates | Broad scan, missing index, many statements, repeated prepares | Push filters into SQL, batch queries, cache prepared statements, add measured indexes |
171
- | Child process or startup dominates | Too many subprocesses or cold tool startup | Reuse workers, batch commands, keep warm daemons, collapse process boundaries |
172
- | Serialization/output dominates | Large JSON, repeated formatting, full materialization | Stream, summarize, avoid duplicate fields, or add an explicit compact mode |
173
-
174
- For the current pipeline, look for repeated work, broad scans, N+1 lookups,
175
- uncached pure work, avoidable source or semantic reads, large arrays, late
176
- filters, batchable per-file work, excessive subprocess startup, serialization
177
- cost, cache invalidation churn, and safe parallelism. Prioritize by measured
178
- span cost multiplied by real workload frequency; do not chase a large cold-only
179
- span if the stated purpose depends on warm interactive latency.
180
-
181
- Favor fixes in this order when they preserve output:
182
-
183
- 1. Remove accidental repetition: hoist, memoize, reuse, or preload.
184
- 2. Batch scalar work by provider, file, database key, network endpoint, or
185
- process.
186
- 3. Move stable derived work from the hot path into an index/cache with a clear
187
- invalidation key.
188
- 4. Replace broad scans with indexed lookups or candidate-first retrieval.
189
- 5. Replace high-overhead wrapper APIs with lower-level APIs only after output
190
- identity checks prove equivalence.
191
- 6. Add pruning only when it is mathematically equivalent or output-identity
192
- checks across representative corpora prove no observable change.
193
-
194
- For alternative designs, restate the output contract first. Ask whether SQLite
195
- can answer directly, an index/cache/precomputed table can move work out of the
196
- hot path, batch queries can replace loops, a cheap pruning stage can precede
197
- exact work, or workers can run independent phases safely.
198
-
199
- ## Phase 5: Implement And Verify
200
-
201
- Make the smallest reversible change that tests one performance hypothesis.
202
- Update the ledger and run history with hypothesis, changed files/symbols,
203
- before/after timings, profile-span deltas, output comparison, tests, and gates.
204
-
205
- After each candidate fix, run the smallest valid before/after matrix for the
206
- target scenario: unprofiled control, profiled profile, output hash or semantic
207
- identity check, and representative correctness tests. If a faster change alters
208
- the output contract, reject or revert it unless the user explicitly approved a
209
- behavior change.
210
-
211
- Run the narrow correctness check, benchmark cases, `scip-query diff-impact
212
- --json`, and `scip-query diff-gate --json`; reindex first if freshness is not
213
- proven. Also run postchecks matching the change type. End with starting time,
214
- final time, percentage change, accepted changes, rejected ideas, remaining
215
- bottlenecks, and the next target. If results conflict, keep the change only when
216
- the target scenario and output contract justify it; otherwise revert and record
217
- the rejected hypothesis.
218
-
219
- ## Phase 6: Report And Visualize
220
-
221
- End every optimization round with a compact scoreboard generated from the run
222
- history, not hand-copied memory. At minimum, show starting value, current value,
223
- delta, scenario, corpus, commit/version, and output identity evidence. When the
224
- history has enough rows, produce a trend table or chart for the target command
225
- or workflow. Keep Markdown readable for humans, but treat the structured
226
- history as the source of truth.
114
+ Record input parsing, option resolution, subprocesses, lookups, database queries, graph traversal, source scans, semantic calls, cache reads/writes, rendering, serialization, and verification.
115
+
116
+ This step is complete only when each major pipeline step can be timed as a profile span.
117
+
118
+ ### 4. Profile the chain
119
+
120
+ 0. Check whether the target app already has an instrumentation layer before adding spans a bespoke profiling harness competes with the one the codebase already trusts. When the target is scip-query itself, its instrumentation is `src/instrumentation/profile.ts` (`profileSpan`, env-gated by `SCIP_QUERY_PROFILE`/`SCIP_QUERY_PROFILE_OUT`, with `SCIP_QUERY_PROFILE_CACHE_STATE` for cache-state labels) — use it, don't add a parallel one.
121
+ 1. Measure the target unprofiled.
122
+ 2. Measure profiled once and compare overhead.
123
+ 3. Measure distinct states: cold index, cold evidence/cache fill, warm cache hit, repeated focused run, production-like mixed state.
124
+ 4. Add coarse spans covering the whole chain.
125
+ 5. Split the largest workload-weighted span.
126
+ 6. Repeat until the slow operation is a repeated lookup, initialization, scan, traversal, subprocess, serialization step, or wait.
127
+ 7. Write span records with cardinality to run history.
128
+
129
+ This step is complete only when the dominant cost is concrete enough to form a falsifiable hypothesis.
130
+
131
+ ### 5. Diagnose and test one hypothesis
132
+
133
+ Classify the dominant shape: cold-only setup, warm slow path, repeated setup, N+1 work, broad scan, database time, subprocess startup, serialization, or cache invalidation. Prefer fixes in this order:
134
+
135
+ 1. Remove accidental repetition.
136
+ 2. Batch scalar work.
137
+ 3. Move stable derived work to an index/cache with invalidation.
138
+ 4. Replace broad scans with indexed lookups.
139
+ 5. Replace wrapper APIs only after output identity proves equivalence.
140
+ 6. Add pruning only when mathematically equivalent or corpus-proven.
141
+
142
+ Make the smallest reversible change that tests one hypothesis.
143
+
144
+ This step is complete only when before/after timings, profile deltas, and output identity are recorded.
145
+
146
+ ### 6. Verify and report
147
+
148
+ Run the narrow correctness check, benchmark cases, routed postchecks, and invoke `scip-verify`.
149
+
150
+ Reject faster changes that alter the output contract unless the user approved a behavior change.
151
+
152
+ End with a scoreboard from run history: starting value, current value, delta, scenario, corpus, commit/version, output identity, accepted changes, rejected ideas, remaining bottlenecks, and next target.
@@ -0,0 +1,103 @@
1
+ ---
2
+ name: scip-integrity-audit
3
+ description: Audit whether implementations are real with scip-query. Use for suspected faked or half-implemented features, decorative checkers or verifiers that never fail, dead code paths hidden behind graceful fallbacks, metrics that may be lying, or a "does any of this actually work" interrogation of a system.
4
+ commands:
5
+ - scip-query refs <symbol>
6
+ - scip-query code <symbol>
7
+ - scip-query trace <symbol>
8
+ - scip-query call-graph <symbol>
9
+ - scip-query twin-drift -s <scope> --json
10
+ - scip-query twin-ab <symbolA> <symbolB>
11
+ - scip-query outline <file> --signatures
12
+ ---
13
+
14
+ # scip-integrity-audit
15
+
16
+ Use this skill to interrogate whether a system's claims are backed by real
17
+ implementations. Structural review asks "is this well organized?"
18
+ (`scip-maintainability`); this skill asks **"is this real?"** — it hunts
19
+ decorative checkers, adapters written against imagined data, features that
20
+ have silently never run, and numbers nobody ever recomputed.
21
+
22
+ Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
23
+
24
+ ## The Stance
25
+
26
+ A green result you have never seen fail is unverified. Every status word,
27
+ banner, and metric is testimony from the code, not evidence about the code —
28
+ cross-examine the producer before believing it. The most dangerous code is
29
+ not broken code; it is code that reports success without doing the work.
30
+
31
+ ## Drills
32
+
33
+ Run all five over the chosen scope. Each has a checkable exit.
34
+
35
+ ### 1. Falsify every checker
36
+
37
+ Inventory everything in scope that accepts/rejects, passes/fails, or
38
+ validates (checkers, gates, verifiers, validators — find producers with
39
+ `refs`/`call-graph` on the status words in output). For each one, construct
40
+ an input that MUST fail — a wrong binding, a corrupt file, an impossible
41
+ value — and run it. A checker that passes its should-fail input is
42
+ decorative: file it as a defect, not a note.
43
+ Complete only when every checker in scope has been witnessed rejecting a
44
+ constructed should-fail input, or is listed with a reason it cannot be.
45
+
46
+ ### 2. Diff every adapter against captured reality
47
+
48
+ For each parser/adapter of an external format (tool output, XML/JSON
49
+ schemas, protocol messages): obtain ONE real sample from the actual source
50
+ and diff it against the code's assumptions and the tests' fixtures. Ask of
51
+ every fixture: was this generated from reality, or imagined? A parser and a
52
+ hand-written fixture can validate each other's shared hallucination
53
+ indefinitely.
54
+ Complete only when every adapter has been checked against at least one
55
+ captured-real sample.
56
+
57
+ ### 3. Autopsy every fallback
58
+
59
+ Graceful degradation is where dead features hide: a primary path that has
60
+ never worked looks identical to a healthy fallback. For every catch block,
61
+ `?? fallback`, and degraded mode in scope: produce an execution witness that
62
+ the PRIMARY path runs (a test, a probe, a log). Use `scip-probe-reachability`
63
+ for parser/AST branch reachability. A fallback that always fires means the
64
+ feature above it is dead — date of death: birth.
65
+ Complete only when every fallback's primary path has a witness or a filed
66
+ defect.
67
+
68
+ ### 4. Hand-compute every metric twice
69
+
70
+ For each number the system reports (scores, counts, estimates): pick two
71
+ concrete instances, compute the expected value by hand from first
72
+ principles, and compare. Off-by-a-factor errors (double counting, inflated
73
+ estimates) survive for years because nobody ever recomputes one sample.
74
+ Complete only when every reported metric has two hand-verified samples.
75
+
76
+ ### 5. Cross-examine same-concept twins
77
+
78
+ Where one concept is computed in more than one place, feed both the same
79
+ input and require the same answer. `twin-drift` finds the same-name cases
80
+ mechanically; for same-concept-different-name pairs, trace the concept's
81
+ consumers with `refs` and compare implementations with `code`. Once a pair
82
+ is identified, `scip-query twin-ab <symbolA> <symbolB>` scaffolds a
83
+ table-driven vitest file that imports both and asserts equal output —
84
+ fill in the input table and run it. Disagreement between twins means at
85
+ least one is wrong — determine which before consolidating.
86
+ Complete only when every discovered twin pair has been compared on a shared
87
+ input.
88
+
89
+ ## Severity
90
+
91
+ Rank findings by what the failure does to a user who trusted the output:
92
+ a decorative checker or false "verified" banner outranks everything; a
93
+ dead-but-fallbacked feature outranks a wrong metric; a wrong metric outranks
94
+ structural mess. Route structural findings to `scip-maintainability` —
95
+ they are real but they are not lies.
96
+
97
+ ## Reporting
98
+
99
+ File each finding with: the claim as displayed, the producer (file:line),
100
+ the drill that exposed it, the should-fail input or real sample used, and
101
+ the fix. The audit is complete only when every drill's exit criterion is
102
+ met for the scope, and every defect found has a regression artifact — a
103
+ test, fixture, or model that fails on the pre-fix behavior.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "scip integrity audit"
3
+ short_description: "Interrogate whether implementations are real: falsify checkers, diff adapters against reality, autopsy fallbacks."
4
+ default_prompt: "Run the scip-integrity-audit drills over this codebase and report every decorative checker, dead-behind-fallback feature, and lying metric."