scip-query 0.20.0 → 0.21.1
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.
- package/CHANGELOG.md +81 -0
- package/README.md +255 -884
- package/dist/augment-vue-worker.js +1 -1
- package/dist/by-kind-XXGZGNZ6.js +2 -0
- package/dist/call-graph-VGY3R4L3.js +2 -0
- package/dist/call-graph-evidence-lZa2dwQA.d.ts +11 -0
- package/dist/change-analysis-types-CCtoCHbC.d.ts +9 -0
- package/dist/chunk-26CT72HM.js +2 -0
- package/dist/chunk-27OUNZW5.js +3 -0
- package/dist/chunk-2LJLEM5B.js +2 -0
- package/dist/chunk-3KXFB2FM.js +2 -0
- package/dist/chunk-3T5U2EQ2.js +2 -0
- package/dist/chunk-3TNRNKAT.js +2 -0
- package/dist/{chunk-PXY7F6Y4.js → chunk-3XQLJG7V.js} +5 -5
- package/dist/chunk-3XZELASU.js +2 -0
- package/dist/chunk-3YETOKNO.js +4 -0
- package/dist/chunk-47WX6UC4.js +2 -0
- package/dist/{chunk-7SQQWSY3.js → chunk-4HQYNZ3P.js} +2 -2
- package/dist/chunk-4IASLUOP.js +3 -0
- package/dist/{chunk-KMKTIO2G.js → chunk-4KIPF45P.js} +2 -2
- package/dist/chunk-4SZJF4GK.js +2 -0
- package/dist/chunk-4TOU7HHQ.js +2 -0
- package/dist/chunk-4ZCLDH6T.js +11 -0
- package/dist/{chunk-DQGFVPUV.js → chunk-527HV7JY.js} +3 -3
- package/dist/{chunk-ZTETIQ35.js → chunk-5BJPJUXF.js} +2 -2
- package/dist/chunk-5J3A6RBZ.js +16 -0
- package/dist/chunk-5KIJMEPC.js +2 -0
- package/dist/{chunk-JDOEX4E6.js → chunk-5QM7QT5B.js} +2 -2
- package/dist/chunk-5Z2H76VD.js +11 -0
- package/dist/chunk-63TFRBMB.js +2 -0
- package/dist/chunk-67FK5KGV.js +3 -0
- package/dist/chunk-6DO3VBLV.js +2 -0
- package/dist/chunk-6LS3IG2I.js +13 -0
- package/dist/chunk-6QN4FYQW.js +2 -0
- package/dist/chunk-6X4KO5A7.js +11 -0
- package/dist/chunk-743MEVFJ.js +8 -0
- package/dist/chunk-7G2WIVIX.js +2 -0
- package/dist/chunk-7KCZELVM.js +2 -0
- package/dist/chunk-7MUHSZGN.js +3 -0
- package/dist/chunk-7YZGSLW6.js +3 -0
- package/dist/chunk-7Z4GMCHM.js +117 -0
- package/dist/{chunk-32LVLCLN.js → chunk-AAOEROT3.js} +3 -3
- package/dist/chunk-AFRS7WJU.js +26 -0
- package/dist/chunk-ANCHW2R4.js +57 -0
- package/dist/{chunk-SXP2MBJH.js → chunk-AQF35NGT.js} +2 -2
- package/dist/chunk-ARGPDW2Y.js +6 -0
- package/dist/chunk-B3AREUQK.js +16 -0
- package/dist/chunk-BCTCADNB.js +2 -0
- package/dist/chunk-BM4OTGSY.js +3 -0
- package/dist/chunk-BMKTDJI6.js +16 -0
- package/dist/chunk-BOJ5SVE2.js +2 -0
- package/dist/{chunk-WXZLAAWK.js → chunk-BVR44XXB.js} +2 -2
- package/dist/{chunk-RUJURYSV.js → chunk-BYXWXLKM.js} +2 -2
- package/dist/chunk-BZCRHP46.js +3 -0
- package/dist/chunk-BZYSGZRK.js +2 -0
- package/dist/chunk-C52Q3JEQ.js +2 -0
- package/dist/chunk-C7WSQA6A.js +21 -0
- package/dist/{chunk-BDCC2NPY.js → chunk-CNT4ND5O.js} +2 -2
- package/dist/chunk-CQVDALWQ.js +2 -0
- package/dist/chunk-CTO3TRX7.js +2 -0
- package/dist/chunk-CXT3GZSQ.js +2 -0
- package/dist/{chunk-JVYA47YU.js → chunk-DGM2RJ3I.js} +2 -2
- package/dist/{chunk-7PIO7NKH.js → chunk-DK6MB565.js} +2 -2
- package/dist/chunk-DNPETNXT.js +2 -0
- package/dist/chunk-DRENNWRG.js +2 -0
- package/dist/chunk-DUDUIT5P.js +2 -0
- package/dist/chunk-DXEJ4FLZ.js +21 -0
- package/dist/chunk-DXYMTQZ4.js +2 -0
- package/dist/chunk-DZA7MQMU.js +6 -0
- package/dist/{chunk-ZHXX42OH.js → chunk-DZNWXJN2.js} +4 -4
- package/dist/{chunk-CJST5ETY.js → chunk-E6N6YTVM.js} +2 -2
- package/dist/chunk-E7CJ6O72.js +2 -0
- package/dist/chunk-EJHNTAEE.js +2 -0
- package/dist/chunk-EPLE5O5O.js +2 -0
- package/dist/chunk-F4FNK44D.js +2 -0
- package/dist/chunk-FCGMQETU.js +2 -0
- package/dist/chunk-FIO44MVK.js +3 -0
- package/dist/chunk-FLSVYEPL.js +2 -0
- package/dist/chunk-FOP7HD6H.js +3 -0
- package/dist/chunk-FSPENGSU.js +4 -0
- package/dist/chunk-FUUDUAKM.js +2 -0
- package/dist/chunk-FYCH2EYQ.js +2 -0
- package/dist/{chunk-5E4WNAVD.js → chunk-G47MFF47.js} +2 -2
- package/dist/chunk-G6VV7ROY.js +2 -0
- package/dist/chunk-GBZCVYWA.js +2 -0
- package/dist/chunk-GSHTVE56.js +3 -0
- package/dist/chunk-GTZFKDP3.js +2 -0
- package/dist/{chunk-2HPVVXM5.js → chunk-H2RBDP5S.js} +2 -2
- package/dist/chunk-H5EXS3HM.js +2 -0
- package/dist/chunk-HR5JYLVV.js +4 -0
- package/dist/chunk-HW7FASEL.js +2 -0
- package/dist/chunk-HYU4W353.js +10 -0
- package/dist/{chunk-FKSELJQF.js → chunk-I2LY3KN7.js} +2 -2
- package/dist/chunk-IGBQVEHE.js +2 -0
- package/dist/{chunk-3G66UZBH.js → chunk-IH3K5J6K.js} +2 -2
- package/dist/chunk-IHGK3SZ7.js +29 -0
- package/dist/chunk-IM23CSG5.js +2 -0
- package/dist/chunk-IQMGNIGY.js +2 -0
- package/dist/chunk-ITF3CWS5.js +2 -0
- package/dist/chunk-IZKJQQCQ.js +3 -0
- package/dist/chunk-J4HUBIVF.js +5 -0
- package/dist/{chunk-AZJQQKDD.js → chunk-JGMD6JGB.js} +2 -2
- package/dist/chunk-JLZWYDCZ.js +4 -0
- package/dist/chunk-JO6FK3Q5.js +2 -0
- package/dist/chunk-JSHDCVUM.js +81 -0
- package/dist/chunk-K2DZCH2K.js +2 -0
- package/dist/chunk-K63CAPS2.js +23 -0
- package/dist/chunk-KBIC6JHJ.js +2 -0
- package/dist/chunk-KFFQURUZ.js +2 -0
- package/dist/chunk-KFOYCQAJ.js +9 -0
- package/dist/chunk-KGKCJFWZ.js +6 -0
- package/dist/chunk-KK7GPALL.js +28 -0
- package/dist/chunk-L7WRUNKJ.js +2 -0
- package/dist/{chunk-W4ETQAXM.js → chunk-LFWB7TOJ.js} +2 -2
- package/dist/chunk-LGVTIZPV.js +61 -0
- package/dist/chunk-LIWIV26I.js +29 -0
- package/dist/chunk-LJMWILX6.js +3 -0
- package/dist/{chunk-BPAPWKP6.js → chunk-LXMW6ZAX.js} +8 -8
- package/dist/chunk-MFBVUQJZ.js +2 -0
- package/dist/{chunk-O64IZ6UX.js → chunk-MLTKGHD2.js} +2 -2
- package/dist/chunk-MLTSTKXD.js +5 -0
- package/dist/chunk-MR4ZKWO6.js +57 -0
- package/dist/{chunk-EN3O7VJA.js → chunk-MRXBLYRE.js} +2 -2
- package/dist/chunk-MXNGIEPU.js +3 -0
- package/dist/chunk-N4EFQIRX.js +20 -0
- package/dist/chunk-ND3BWIVN.js +7 -0
- package/dist/chunk-NODZYYGC.js +2 -0
- package/dist/chunk-NP4JFCLE.js +133 -0
- package/dist/chunk-NQXWWE6S.js +8 -0
- package/dist/chunk-NSDPPUDY.js +7 -0
- package/dist/chunk-NT4NVEHU.js +18 -0
- package/dist/chunk-O2VY47Y5.js +325 -0
- package/dist/chunk-O3EX5STE.js +5 -0
- package/dist/chunk-O4PZFAXA.js +3 -0
- package/dist/chunk-OA2BO4DR.js +2 -0
- package/dist/chunk-OFZVFIDF.js +3 -0
- package/dist/{chunk-PQCI4SQX.js → chunk-OG5UK2K7.js} +2 -2
- package/dist/chunk-OMVNRPST.js +2 -0
- package/dist/{chunk-7BAVHKMJ.js → chunk-OU6SDWAM.js} +9 -9
- package/dist/{chunk-LY4WC4AD.js → chunk-OY7PCALC.js} +2 -2
- package/dist/{chunk-A73XVBCR.js → chunk-P3UFF22M.js} +2 -2
- package/dist/chunk-PAZSBPJR.js +3 -0
- package/dist/chunk-PJBYDCBQ.js +38 -0
- package/dist/chunk-PRLU3I7G.js +79 -0
- package/dist/chunk-PU6XDQ2X.js +16 -0
- package/dist/{chunk-3CLX5EOX.js → chunk-PWEQ6CZZ.js} +2 -2
- package/dist/{chunk-XSRF6Q77.js → chunk-PX6QNUYF.js} +2 -2
- package/dist/chunk-Q4MRRB3C.js +3 -0
- package/dist/chunk-QGVUPYBC.js +35 -0
- package/dist/chunk-QH5Q6M5C.js +2 -0
- package/dist/chunk-QLWZUFDT.js +2 -0
- package/dist/chunk-QN2AI3D2.js +3 -0
- package/dist/{chunk-JAYYFEQY.js → chunk-QZCACNV5.js} +2 -2
- package/dist/chunk-RNKRYK6B.js +4 -0
- package/dist/chunk-RSUH7G5T.js +29 -0
- package/dist/chunk-RZWBTKXO.js +5 -0
- package/dist/chunk-SBFDPHKH.js +4 -0
- package/dist/{chunk-HX4GQPZP.js → chunk-SGSPCEFC.js} +3 -3
- package/dist/chunk-SIGVQT43.js +2 -0
- package/dist/chunk-SRIZDEWX.js +4 -0
- package/dist/chunk-SV2LEFVM.js +2 -0
- package/dist/chunk-T2PBOVDI.js +3 -0
- package/dist/chunk-TP2X2C2Y.js +3 -0
- package/dist/chunk-U2MNECDU.js +2 -0
- package/dist/chunk-U7DOYZDH.js +2 -0
- package/dist/chunk-UAQQR55F.js +2 -0
- package/dist/chunk-UBETC3Q2.js +2 -0
- package/dist/chunk-UEQORB2A.js +2 -0
- package/dist/chunk-UM56ZET4.js +38 -0
- package/dist/chunk-UXNXOMXJ.js +2 -0
- package/dist/{chunk-6SHPK5ZE.js → chunk-V6XENWOF.js} +2 -2
- package/dist/chunk-VJAD5WX5.js +2 -0
- package/dist/chunk-VRJG7N3I.js +453 -0
- package/dist/chunk-W7HN6V4E.js +7 -0
- package/dist/chunk-WCIKJ2E3.js +3 -0
- package/dist/chunk-WEXQYJY3.js +5 -0
- package/dist/chunk-WOPZX5GM.js +2 -0
- package/dist/chunk-WRQXLNYE.js +9 -0
- package/dist/{chunk-XKWKXZKW.js → chunk-WV6R37XV.js} +2 -2
- package/dist/{chunk-N5W4YZMK.js → chunk-WZ7V4BQV.js} +2 -2
- package/dist/chunk-WZRNEVYC.js +2 -0
- package/dist/chunk-X5MWO4DM.js +7 -0
- package/dist/chunk-XDAUYDFT.js +2 -0
- package/dist/{chunk-L7AW2QB5.js → chunk-XDOEHEET.js} +2 -2
- package/dist/chunk-XDQX6LDT.js +4 -0
- package/dist/chunk-XFRHBAIT.js +2 -0
- package/dist/chunk-XIPGCT3D.js +5 -0
- package/dist/chunk-XKM5D2XS.js +16 -0
- package/dist/chunk-XNF5T4T2.js +4 -0
- package/dist/chunk-Y2S4YNLH.js +3 -0
- package/dist/chunk-YA72ZUKO.js +2 -0
- package/dist/chunk-YBWE6J32.js +43 -0
- package/dist/chunk-YCXQQ3YB.js +2 -0
- package/dist/chunk-YDTK77JP.js +43 -0
- package/dist/chunk-YF25RQER.js +4 -0
- package/dist/chunk-YKHL4J3G.js +2 -0
- package/dist/chunk-YLNCTPOI.js +4 -0
- package/dist/chunk-YR7VRWNX.js +2 -0
- package/dist/chunk-YT4IQBET.js +3 -0
- package/dist/chunk-YUKYB54I.js +1 -0
- package/dist/chunk-Z2KGMIL4.js +2 -0
- package/dist/chunk-Z2QB75BS.js +3 -0
- package/dist/chunk-Z67JOKRE.js +554 -0
- package/dist/chunk-ZGDHC5AT.js +2 -0
- package/dist/chunk-ZMS4YCY7.js +2 -0
- package/dist/chunk-ZNW5A5VX.js +3 -0
- package/dist/{chunk-TFRAYKN6.js → chunk-ZP2WUVZ5.js} +2 -2
- package/dist/chunk-ZQUNCTEZ.js +2 -0
- package/dist/cli-main.js +8 -0
- package/dist/cli.js +1 -3
- package/dist/code-AXLJBZ6T.js +2 -0
- package/dist/code-B17qEMbt.d.ts +121 -0
- package/dist/code-result-json-CTZHAQXJ.js +2 -0
- package/dist/command-descriptors-6INSCKLW.js +342 -0
- package/dist/{config-types-jVM3D7MA.d.ts → config-types-B9B60MiR.d.ts} +199 -23
- package/dist/dataflow-AFXY423Q.js +2 -0
- package/dist/{db-B5PM5yNk.d.ts → db-BwIVAYNB.d.ts} +1 -1
- package/dist/dependence-slice-2G4X6VSJ.js +2 -0
- package/dist/deps-LMCAV5DO.js +2 -0
- package/dist/direct-navigation-2ONV22Y2.js +3 -0
- package/dist/entry-map-ZOC3VXO5.js +2 -0
- package/dist/exploration-topology-BG4v30HZ.d.ts +256 -0
- package/dist/file-dep-graph-Bqg3t3Px.d.ts +4 -0
- package/dist/file-kind-BKCVMNUf.d.ts +10 -0
- package/dist/files-WJQJLHMH.js +2 -0
- package/dist/graph-evidence-Bjyky2V4.d.ts +126 -0
- package/dist/graph-exploration-contract-CqDsnPQL.d.ts +7 -0
- package/dist/{health-Do5TKSJI.d.ts → health-CPp2Jf1Z.d.ts} +33 -34
- package/dist/hierarchy-ASNIHAX4.js +2 -0
- package/dist/imports-JICEKDKK.js +2 -0
- package/dist/index.d.ts +4 -31
- package/dist/index.js +1 -1
- package/dist/members-C5H2K3MS.js +2 -0
- package/dist/methods-KZOZHSD4.js +2 -0
- package/dist/next-anchor-candidates-BwMczMvX.d.ts +90 -0
- package/dist/output-continuation-command-NX3RH3TP.js +3 -0
- package/dist/output-pagination-3OFL2MJV.js +19 -0
- package/dist/postinstall.js +1 -1
- package/dist/project-reindex-A2SXUH2H.js +3 -0
- package/dist/queries/affected.d.ts +22 -4
- package/dist/queries/affected.js +1 -1
- package/dist/queries/anchors.d.ts +123 -0
- package/dist/queries/anchors.js +2 -0
- package/dist/queries/architecture.d.ts +3 -2
- package/dist/queries/architecture.js +1 -1
- package/dist/queries/bottlenecks.d.ts +26 -7
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.d.ts +2 -2
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.d.ts +17 -3
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.d.ts +2 -2
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.d.ts +2 -2
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.d.ts +2 -2
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.d.ts +5 -26
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity-hotspots.d.ts +2 -2
- package/dist/queries/complexity-hotspots.js +1 -1
- package/dist/queries/complexity.d.ts +2 -2
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/context.d.ts +145 -0
- package/dist/queries/context.js +2 -0
- package/dist/queries/convergence.d.ts +2 -2
- package/dist/queries/convergence.js +1 -1
- package/dist/queries/coupling.d.ts +8 -3
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.d.ts +34 -7
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dataflow.d.ts +40 -14
- package/dist/queries/dataflow.js +1 -1
- package/dist/queries/dead.d.ts +2 -2
- package/dist/queries/dead.js +1 -1
- package/dist/queries/decorative-checkers.d.ts +3 -3
- package/dist/queries/decorative-checkers.js +1 -1
- package/dist/queries/deep-chains.d.ts +4 -38
- package/dist/queries/deep-chains.js +1 -1
- package/dist/queries/dependence-slice.d.ts +47 -0
- package/dist/queries/dependence-slice.js +2 -0
- package/dist/queries/dependency-depth.d.ts +49 -0
- package/dist/queries/dependency-depth.js +2 -0
- package/dist/queries/deps.d.ts +4 -2
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-impact.d.ts +3 -3
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.d.ts +4 -4
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +2 -2
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +2 -2
- package/dist/queries/duplicate-bodies.js +1 -1
- package/dist/queries/entry-map.d.ts +121 -0
- package/dist/queries/entry-map.js +2 -0
- package/dist/queries/evidence.d.ts +70 -0
- package/dist/queries/evidence.js +2 -0
- package/dist/queries/extract-candidates.d.ts +2 -2
- package/dist/queries/extract-candidates.js +1 -1
- package/dist/queries/fan.d.ts +18 -5
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.d.ts +2 -2
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.d.ts +4 -3
- package/dist/queries/health.js +1 -1
- package/dist/queries/hierarchy.d.ts +5 -3
- package/dist/queries/hierarchy.js +1 -1
- package/dist/queries/hotspots.d.ts +11 -5
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.d.ts +2 -2
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.d.ts +4 -4
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +56 -136
- package/dist/queries/index.js +1 -1
- package/dist/queries/isolated.d.ts +2 -2
- package/dist/queries/isolated.js +1 -1
- package/dist/queries/locality-candidates.d.ts +2 -2
- package/dist/queries/locality-candidates.js +1 -1
- package/dist/queries/members.d.ts +2 -2
- package/dist/queries/members.js +1 -1
- package/dist/queries/methods.d.ts +2 -2
- package/dist/queries/methods.js +1 -1
- package/dist/queries/not-implemented.d.ts +3 -3
- package/dist/queries/not-implemented.js +1 -1
- package/dist/queries/outline.d.ts +2 -2
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.d.ts +5 -9
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/plan-context.d.ts +27 -64
- package/dist/queries/plan-context.js +1 -1
- package/dist/queries/react-component-duplicates.d.ts +2 -2
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +2 -2
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.d.ts +2 -2
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.d.ts +2 -2
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.d.ts +2 -2
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/reference-neighborhood.d.ts +4 -0
- package/dist/queries/reference-neighborhood.js +2 -0
- package/dist/queries/reference-reachability.d.ts +48 -0
- package/dist/queries/reference-reachability.js +2 -0
- package/dist/queries/refs.d.ts +2 -2
- package/dist/queries/refs.js +1 -1
- package/dist/queries/self-audit.d.ts +2 -2
- package/dist/queries/self-audit.js +1 -1
- package/dist/queries/similar-chains.d.ts +2 -2
- package/dist/queries/similar-chains.js +1 -1
- package/dist/queries/similar-files.d.ts +2 -2
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.d.ts +2 -2
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +2 -2
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice.d.ts +3 -36
- package/dist/queries/slice.js +1 -1
- package/dist/queries/source-inspection.d.ts +209 -0
- package/dist/queries/source-inspection.js +2 -0
- package/dist/queries/source-search.d.ts +13 -0
- package/dist/queries/source-search.js +2 -0
- package/dist/queries/stale-abstractions.d.ts +2 -2
- package/dist/queries/stale-abstractions.js +1 -1
- package/dist/queries/stats.d.ts +2 -2
- package/dist/queries/surface.d.ts +13 -4
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.d.ts +2 -2
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system-map.d.ts +449 -0
- package/dist/queries/system-map.js +2 -0
- package/dist/queries/system.d.ts +5 -3
- package/dist/queries/system.js +1 -1
- package/dist/queries/test-quality.d.ts +2 -2
- package/dist/queries/test-quality.js +1 -1
- package/dist/queries/trace.d.ts +47 -3
- package/dist/queries/trace.js +1 -1
- package/dist/queries/twin-ab.d.ts +3 -3
- package/dist/queries/twin-ab.js +1 -1
- package/dist/queries/twin-drift.d.ts +3 -3
- package/dist/queries/twin-drift.js +1 -1
- package/dist/queries/unused-imports.d.ts +2 -2
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.d.ts +2 -2
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/value-flow.d.ts +43 -0
- package/dist/queries/value-flow.js +2 -0
- package/dist/queries/vue-component-duplicates.d.ts +2 -2
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.d.ts +2 -2
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.d.ts +2 -2
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/queries/wrapper-candidates.d.ts +2 -2
- package/dist/queries/wrapper-candidates.js +1 -1
- package/dist/query-service-fastpath.js +6 -0
- package/dist/query-service-server.js +5 -0
- package/dist/refs-ZOORVRQC.js +2 -0
- package/dist/refs-pagination-SRCUOYRD.js +2 -0
- package/dist/reindex-worker.js +85 -86
- package/dist/reindex.d.ts +64 -42
- package/dist/reindex.js +93 -77
- package/dist/repository-text-C0Q8VYdN.d.ts +19 -0
- package/dist/runtime.d.ts +287 -8
- package/dist/runtime.js +4 -3
- package/dist/rust-semantic-session-server.js +1 -1
- package/dist/rust-semantic-session-worker.js +1 -1
- package/dist/rust-semantic-worker.js +1 -1
- package/dist/{scip-cli-BnEwZRLJ.d.ts → scip-cli-H-n59izO.d.ts} +33 -2
- package/dist/slice-NOTBWA7S.js +2 -0
- package/dist/source-search-types-Dwz8KeuW.d.ts +79 -0
- package/dist/source-snippet-_wrcgmZc.d.ts +15 -0
- package/dist/stats-OOJ74B32.js +2 -0
- package/dist/surface-BTBCLKNA.js +2 -0
- package/dist/symbol-resolution-SVSMX4RN.js +2 -0
- package/dist/system-2EIUFP6B.js +2 -0
- package/dist/trace-BB2GHQPG.js +2 -0
- package/dist/typescript-mailbox-worker.js +1 -1
- package/dist/value-flow-OA7AHSUG.js +2 -0
- package/dist/watch-server.js +3 -2
- package/docs/AGENT_GUIDE.md +133 -476
- package/docs/AI_FAILURE_MODES.md +30 -301
- package/docs/API.md +1 -1
- package/docs/API_EVOLUTION.md +6 -0
- package/docs/CLI_JSON_OUTPUT.md +207 -29
- package/docs/COMMAND_REFERENCE.md +255 -154
- package/docs/CONFIGURATION_WRITE_SAFETY.md +14 -13
- package/docs/DETECTOR_EVIDENCE_CONTRACTS.md +84 -0
- package/docs/DETECTOR_GUIDE.md +46 -138
- package/docs/DURABILITY.md +7 -1
- package/docs/INDEX_GENERATIONS.md +6 -0
- package/docs/LOCK_PROTOCOL.md +8 -0
- package/docs/REINDEX_METADATA_COMPATIBILITY.md +13 -3
- package/docs/SECURITY_MODEL.md +39 -42
- package/docs/accuracy-audit-checklist.md +4 -0
- package/docs/accuracy-hardening-goal.md +9 -2
- package/docs/analyzer-inventory.md +59 -264
- package/docs/analyzer-validation-protocol.md +62 -170
- package/docs/architecture-coherence-vision.md +18 -12
- package/docs/locality-analyzer-design.md +1 -1
- package/docs/schemas/cli-json-envelope.schema.json +212 -27
- package/docs/schemas/cli-json-export-receipt.schema.json +25 -0
- package/docs/schemas/cli-output-page.schema.json +1 -1
- package/docs/schemas/observation-receipt.schema.json +164 -0
- package/docs/schemas/project-config.schema.json +37 -45
- package/docs/schemas/suppression-record.schema.json +1 -34
- package/package.json +69 -11
- package/skills/concrete-plan/SKILL.md +8 -0
- package/skills/concrete-plan/agents/openai.yaml +4 -0
- package/skills/scip-explore/SKILL.md +49 -61
- package/skills/scip-explore/agents/openai.yaml +3 -3
- package/skills/scip-explore/references/delegated-exploration.md +51 -0
- package/skills/scip-explore/references/external-evidence.md +72 -0
- package/skills/scip-explore/references/information-model.md +51 -0
- package/skills/scip-explore/scripts/capture-evidence.mjs +666 -0
- package/skills/scip-integrity-audit/SKILL.md +185 -0
- package/skills/scip-integrity-audit/agents/openai.yaml +4 -0
- package/skills/scip-plan/SKILL.md +67 -49
- package/skills/scip-plan/agents/openai.yaml +3 -3
- package/skills/scip-query/SKILL.md +98 -77
- package/skills/scip-query/agents/openai.yaml +3 -3
- package/skills/scip-setup/SKILL.md +10 -102
- package/skills/scip-setup/agents/openai.yaml +3 -3
- package/dist/chunk-26QA6FAI.js +0 -8
- package/dist/chunk-2KAZEZ6M.js +0 -2
- package/dist/chunk-3ORVDL3H.js +0 -2
- package/dist/chunk-46XGSFNI.js +0 -2
- package/dist/chunk-4MAK2HOY.js +0 -6
- package/dist/chunk-4TURLRL5.js +0 -16
- package/dist/chunk-4UQVNCQE.js +0 -2
- package/dist/chunk-55Q3WLZX.js +0 -2
- package/dist/chunk-5I5G2QOX.js +0 -3
- package/dist/chunk-6LDJQXAH.js +0 -2
- package/dist/chunk-6O5TICIZ.js +0 -3
- package/dist/chunk-7O5IKBTZ.js +0 -16
- package/dist/chunk-7S5E7KWT.js +0 -2
- package/dist/chunk-7WPLAODU.js +0 -5
- package/dist/chunk-AFHORGLH.js +0 -42
- package/dist/chunk-AIE7TFJW.js +0 -9
- package/dist/chunk-AQOFWNQJ.js +0 -1
- package/dist/chunk-B2PX5I6M.js +0 -2
- package/dist/chunk-B75HZHUP.js +0 -2
- package/dist/chunk-B7PBSLZN.js +0 -2
- package/dist/chunk-BBW6JFHN.js +0 -2
- package/dist/chunk-BNXCIFVY.js +0 -2
- package/dist/chunk-BS2NMXQZ.js +0 -4
- package/dist/chunk-C3KV2II6.js +0 -2
- package/dist/chunk-C43RDDP4.js +0 -20
- package/dist/chunk-DAFAHMNB.js +0 -42
- package/dist/chunk-DQLPXMH6.js +0 -8
- package/dist/chunk-EKZTZXHZ.js +0 -117
- package/dist/chunk-EW2NTSFA.js +0 -18
- package/dist/chunk-F3Z4OUDS.js +0 -8
- package/dist/chunk-FJH2NW7J.js +0 -66
- package/dist/chunk-FTFP6O3L.js +0 -11
- package/dist/chunk-FYLK2DEJ.js +0 -2
- package/dist/chunk-GH74ASD6.js +0 -11
- package/dist/chunk-GMXWZP2B.js +0 -2
- package/dist/chunk-GOUBFH5O.js +0 -3
- package/dist/chunk-HLF2TX6R.js +0 -2
- package/dist/chunk-HX7M4BDI.js +0 -30
- package/dist/chunk-HZ72SESS.js +0 -128
- package/dist/chunk-IB2N4FIY.js +0 -10
- package/dist/chunk-IZYYAFN5.js +0 -2
- package/dist/chunk-JFGGXWQF.js +0 -947
- package/dist/chunk-JN4NMBEX.js +0 -8
- package/dist/chunk-JW56N3KI.js +0 -4
- package/dist/chunk-JZ2OXNWB.js +0 -2
- package/dist/chunk-KFZNKUNT.js +0 -2
- package/dist/chunk-L5GJNV2T.js +0 -8
- package/dist/chunk-L7JDSCDF.js +0 -4
- package/dist/chunk-LU47HG23.js +0 -14
- package/dist/chunk-LVY7NPF7.js +0 -2
- package/dist/chunk-MKCDWWGV.js +0 -4
- package/dist/chunk-MNE7YG56.js +0 -2
- package/dist/chunk-MRXBEXSY.js +0 -26
- package/dist/chunk-MV7OWDUX.js +0 -2
- package/dist/chunk-NGEXCJJW.js +0 -11
- package/dist/chunk-NIW6JDC5.js +0 -29
- package/dist/chunk-PBUQFCNB.js +0 -16
- package/dist/chunk-POAVPHH7.js +0 -2
- package/dist/chunk-QZ4JVECJ.js +0 -2
- package/dist/chunk-RDO52JGY.js +0 -2
- package/dist/chunk-RJT3TUUZ.js +0 -2
- package/dist/chunk-RVLDN63O.js +0 -4
- package/dist/chunk-RXOXSKY3.js +0 -2
- package/dist/chunk-S7OYBOCK.js +0 -2
- package/dist/chunk-SMNXQT5Z.js +0 -3
- package/dist/chunk-SRAFT254.js +0 -2
- package/dist/chunk-T7YQSHPQ.js +0 -3
- package/dist/chunk-UJCOIXDY.js +0 -2
- package/dist/chunk-UJPRPGCO.js +0 -13
- package/dist/chunk-WCCFZ7V7.js +0 -113
- package/dist/chunk-WUPW3UN3.js +0 -3
- package/dist/chunk-X54AGLVX.js +0 -2
- package/dist/chunk-Y2MVPNKY.js +0 -5
- package/dist/chunk-YKUU5AIC.js +0 -3
- package/dist/chunk-YLCJLTPL.js +0 -2
- package/dist/chunk-YTQVETEO.js +0 -2
- package/dist/chunk-Z4N3MZYA.js +0 -38
- package/dist/chunk-ZJOOT3BG.js +0 -2
- package/dist/chunk-ZK26BAQL.js +0 -2
- package/dist/command-descriptors-DSS46KXI.js +0 -642
- package/dist/diff-gate-types-B0QYpDv1.d.ts +0 -11
- package/dist/direct-navigation-6YHV6IB5.js +0 -3
- package/dist/queries/diff-gate.d.ts +0 -253
- package/dist/queries/diff-gate.js +0 -2
- package/docs/COMMITTED_RECORD_COMPATIBILITY.md +0 -154
- package/docs/analyzer-validation-ledger.md +0 -516
- package/docs/schemas/outcome-event-record.schema.json +0 -95
- package/skills/_shared/SKILL.md +0 -101
- package/skills/_shared/agents/openai.yaml +0 -4
- package/skills/_shared/references/agent-contract-catalog.md +0 -105
- package/skills/_shared/references/command-catalog.md +0 -118
- package/skills/_shared/references/detector-precision-and-diffgate.md +0 -59
- package/skills/_shared/references/evidence-and-dead-code.md +0 -25
- package/skills/scip-audit/SKILL.md +0 -77
- package/skills/scip-audit/agents/openai.yaml +0 -4
- package/skills/scip-audit/references/claims.md +0 -98
- package/skills/scip-audit/references/cleanup.md +0 -100
- package/skills/scip-audit/references/directory.md +0 -222
- package/skills/scip-audit/references/frontend.md +0 -130
- package/skills/scip-audit/references/integrity.md +0 -154
- package/skills/scip-audit/references/maintainability.md +0 -162
- package/skills/scip-audit/references/twin-drift.md +0 -104
- package/skills/scip-diagnose/SKILL.md +0 -52
- package/skills/scip-diagnose/agents/openai.yaml +0 -4
- package/skills/scip-diagnose/references/debug.md +0 -117
- package/skills/scip-diagnose/references/probe-reachability.md +0 -77
- package/skills/scip-diagnose/references/root-cause.md +0 -145
- package/skills/scip-diagnose/references/triage.md +0 -119
- package/skills/scip-explore/references/diagrams.md +0 -40
- package/skills/scip-explore/references/language-playbook.md +0 -49
- package/skills/scip-improve/SKILL.md +0 -56
- package/skills/scip-improve/agents/openai.yaml +0 -4
- package/skills/scip-improve/references/cleanup-batches.md +0 -53
- package/skills/scip-improve/references/directory-moves.md +0 -53
- package/skills/scip-improve/references/doc-reconcile.md +0 -30
- package/skills/scip-improve/references/frontend-extraction.md +0 -39
- package/skills/scip-improve/references/maintainability-mechanism.md +0 -43
- package/skills/scip-improve/references/twin-drift.md +0 -35
- package/skills/scip-plan/references/api-impact.md +0 -19
- package/skills/scip-plan/references/conductor.md +0 -41
- package/skills/scip-plan/references/high-assurance.md +0 -43
- package/skills/scip-plan/references/hyper-optimization.md +0 -50
- package/skills/scip-plan/references/tla-model.md +0 -88
- package/skills/scip-setup/references/bootstrap-workflow.md +0 -119
- package/skills/scip-setup/references/language-verification.md +0 -61
- package/skills/scip-setup/references/lifecycle-commands.md +0 -119
- package/skills/scip-setup/references/per-repo-triage.md +0 -24
- package/skills/scip-verify/SKILL.md +0 -229
- package/skills/scip-verify/agents/openai.yaml +0 -4
- package/skills/scip-verify/references/calibrate-detectors.md +0 -170
package/docs/AI_FAILURE_MODES.md
CHANGED
|
@@ -1,314 +1,43 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Coding-agent failure modes
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
one lives in the relationships between files — the reference graph, the git
|
|
6
|
-
change graph, or the gap between docs and code. Each failure mode below names
|
|
7
|
-
the behavior, the detector built for it, exactly how to run it, and how to wire
|
|
8
|
-
it in so it gets caught automatically.
|
|
3
|
+
scip-query helps with failures caused by an incomplete repository map. It does
|
|
4
|
+
not prevent every coding error and does not replace tests.
|
|
9
5
|
|
|
10
|
-
|
|
11
|
-
heuristic candidates are labeled, and heuristic output always says so.
|
|
6
|
+
## Narrow implementation
|
|
12
7
|
|
|
13
|
-
|
|
8
|
+
The edit handles the obvious entry point but misses consumers, callers, or
|
|
9
|
+
parallel paths. Use `scip-query context <target>` before the edit and
|
|
10
|
+
`scip-query diff-impact` after it.
|
|
14
11
|
|
|
15
|
-
##
|
|
12
|
+
## Retirement residue
|
|
16
13
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
A replacement works, but old helpers, exports, adapters, tests, or docs remain
|
|
15
|
+
and mislead later agents. Inspect `scip-query incomplete-migration --full`,
|
|
16
|
+
`scip-query dead --full`, and the changed source. A detector suggests where to
|
|
17
|
+
look; source and native checks decide what can be removed.
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
file ages - which side is the established original, which is the freshly-added
|
|
24
|
-
echo.
|
|
19
|
+
## Duplicate or drifted concepts
|
|
25
20
|
|
|
26
|
-
|
|
21
|
+
An agent creates another implementation instead of reusing the current owner,
|
|
22
|
+
or updates one twin while leaving another behind. Inspect
|
|
23
|
+
`scip-query duplicate-bodies --full`, `scip-query twin-drift --full`, and
|
|
24
|
+
`scip-query recent-duplicates --full`.
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
91% ECHO react-component src/components/ProjectCardVisual.tsx ProjectCardVisual (added 62 commits ago)
|
|
30
|
-
duplicates established src/pages/HomePage.tsx RecentProjectRow()
|
|
31
|
-
basis: jsx-structure
|
|
32
|
-
```
|
|
26
|
+
## Structural drift
|
|
33
27
|
|
|
34
|
-
|
|
28
|
+
The code works locally but violates declared dependency rules or spreads one
|
|
29
|
+
concept across inappropriate boundaries. Inspect `scip-query architecture` and
|
|
30
|
+
the relevant dependency edges.
|
|
35
31
|
|
|
36
|
-
|
|
37
|
-
scip-query recent-duplicates # after any AI session
|
|
38
|
-
scip-query similar <closest-existing-fn> # BEFORE writing a new helper
|
|
39
|
-
```
|
|
32
|
+
## Framework cleanup missed
|
|
40
33
|
|
|
41
|
-
|
|
42
|
-
|
|
34
|
+
Repeated React components or hooks, or repeated Vue components or composables,
|
|
35
|
+
remain invisible to a language-neutral review. Use the React and Vue detector
|
|
36
|
+
families in `scip-query health --full`, then confirm candidates in source.
|
|
43
37
|
|
|
44
|
-
##
|
|
38
|
+
## Ceremony without information
|
|
45
39
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
**The detector:** `recent-duplicates` reports these as **TWIN** (both sides
|
|
51
|
-
inside the recency window) and tells you to pick one before they drift:
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
100% TWIN src/workflows/a.ts ensureAccessible() / src/workflows/b.ts ensureAccessible()
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
**Use it:** `scip-query recent-duplicates` at the end of every agent session.
|
|
58
|
-
|
|
59
|
-
## 3. Extracting a helper but only migrating some call sites
|
|
60
|
-
|
|
61
|
-
**What the agent does:** creates an abstraction, rewires one or two call
|
|
62
|
-
sites into it, and abandons the rest — the extracted logic survives inline at
|
|
63
|
-
every site it missed. The codebase ends up with the worst of both worlds: an
|
|
64
|
-
abstraction _and_ the duplication it was meant to remove.
|
|
65
|
-
|
|
66
|
-
**The detector:** `incomplete-migration` finds symbols that are new at the
|
|
67
|
-
base ref, confirms they were wired into at least one site, then reports
|
|
68
|
-
established untouched functions whose callee sets _contain_ the helper's
|
|
69
|
-
(containment scoring, because a missed site holds the helper's logic plus its
|
|
70
|
-
own — symmetric similarity under-scores exactly these):
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
src:demo:summarize:recordScore() (src/demo/summarize.ts)
|
|
74
|
-
wired into: src/demo/report-a.ts
|
|
75
|
-
un-migrated: 100% buildReportB() (src/demo/report-b.ts)
|
|
76
|
-
un-migrated: 100% buildReportC() (src/demo/report-c.ts)
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**Use it:**
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
scip-query incomplete-migration # after any extraction
|
|
83
|
-
scip-query incomplete-migration --base origin/main # gate a whole branch
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
**Caught automatically by:** the `incomplete-migration` check in `diff-gate`.
|
|
87
|
-
|
|
88
|
-
## 4. Writing code that never gets wired up
|
|
89
|
-
|
|
90
|
-
**What the agent does:** builds the function, the type, the handler — and
|
|
91
|
-
never connects it. Or it _was_ connected, then a later session rewired the
|
|
92
|
-
flow and left the original dangling. Dead code that looks intentional.
|
|
93
|
-
|
|
94
|
-
**The detectors:** `dead` (evidence-ranked, entrypoint-aware), and the
|
|
95
|
-
`new-dead` check in `diff-gate` that catches it _at the moment of creation_:
|
|
96
|
-
|
|
97
|
-
```
|
|
98
|
-
[new-dead] resolveTheme (src/theme.ts) was changed but has zero indexed consumers
|
|
99
|
-
-> Wire it up, or remove it before it becomes permanent dead code.
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
**Use it:**
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
scip-query dead --min-loc 10 --skip-barrels
|
|
106
|
-
scip-query isolated # whole files nothing imports
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
## 5. Speculative generality — options and parameters "for later"
|
|
110
|
-
|
|
111
|
-
**What the agent does:** adds trailing parameters, option bags, and config
|
|
112
|
-
flags for futures that never arrive. Every one is permanent API surface that
|
|
113
|
-
every future reader has to understand.
|
|
114
|
-
|
|
115
|
-
**The detectors:** `unused-params` (trailing parameters no body uses, scoped
|
|
116
|
-
to removals that are type-safe by construction), plus the abstraction-level
|
|
117
|
-
versions: `wrapper-candidates` (functions that only forward),
|
|
118
|
-
`passthrough-candidates` (layers that add nothing), and `stale-abstractions`
|
|
119
|
-
(interfaces/bases with a single implementation).
|
|
120
|
-
|
|
121
|
-
**Use it:**
|
|
122
|
-
|
|
123
|
-
```bash
|
|
124
|
-
scip-query unused-params
|
|
125
|
-
scip-query wrapper-candidates
|
|
126
|
-
scip-query stale-abstractions
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
**Caught automatically by:** the `unused-params` check in `diff-gate`.
|
|
130
|
-
|
|
131
|
-
## 6. Letting the standards docs lie
|
|
132
|
-
|
|
133
|
-
**What the agent does:** nothing — that's the problem. You write in-repo
|
|
134
|
-
standards _for_ agents; the code moves on; the doc doesn't. The next agent
|
|
135
|
-
reads the doc and faithfully implements against a dead spec. A stale standard
|
|
136
|
-
is worse than none.
|
|
137
|
-
|
|
138
|
-
**The detector:** `doc-drift` reads every doc's file citations _and_ its
|
|
139
|
-
co-change history, and flags docs whose referenced code kept changing after
|
|
140
|
-
the doc stopped — including broken references to files that no longer exist.
|
|
141
|
-
|
|
142
|
-
Illustrative output:
|
|
143
|
-
|
|
144
|
-
```
|
|
145
|
-
staleness 94 product/domain-model.md
|
|
146
|
-
BROKEN REFERENCE: cites src/api/servicePlans.ts — that file no longer exists
|
|
147
|
-
22 change(s) since doc update src/workflows/serviceTasks.ts
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
**Use it:** `scip-query doc-drift`, then run the `scip-improve` documentation-reconciliation scenario to
|
|
151
|
-
drive staleness to zero (it updates descriptive claims and _escalates_
|
|
152
|
-
normative violations instead of silently blessing them).
|
|
153
|
-
|
|
154
|
-
**Caught automatically by:** the `doc-reference` check in `diff-gate` — a doc
|
|
155
|
-
cites a file you changed and wasn't updated in the same diff.
|
|
156
|
-
|
|
157
|
-
## 7. Editing one side of an invisible contract
|
|
158
|
-
|
|
159
|
-
**What the agent does:** changes the schema but not the generated inventory;
|
|
160
|
-
the `.env.example` but not its parser; the API contract but not the frontend
|
|
161
|
-
store. The reference graph can't see these pairs — no import connects them —
|
|
162
|
-
but git history can: they've changed together in 12 of the last 14 commits.
|
|
163
|
-
|
|
164
|
-
**The detector:** `co-change` finds file pairs that repeatedly change in the
|
|
165
|
-
same commits with _no_ dependency edge.
|
|
166
|
-
|
|
167
|
-
**Use it:**
|
|
168
|
-
|
|
169
|
-
```bash
|
|
170
|
-
scip-query co-change # repo-wide hidden coupling
|
|
171
|
-
scip-query co-change src/db/schema.prisma # partners of one file
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
**Caught automatically by:** the `co-change-partner` check in `diff-gate`:
|
|
175
|
-
|
|
176
|
-
```
|
|
177
|
-
[co-change-partner] schema.prisma changed, but scripts/scope-inventory.mjs did not — they change together 12x (86%)
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
## 8. Deleting things that are still used — or refusing to delete at all
|
|
181
|
-
|
|
182
|
-
**What the agent does:** both. It deletes a "dead" function that a dynamic
|
|
183
|
-
path still references, or it hoards code because it can't prove anything is
|
|
184
|
-
safe to remove.
|
|
185
|
-
|
|
186
|
-
**The detector:** `cleanup-plan` runs dead-code analysis to a _fixpoint_ —
|
|
187
|
-
deleting batch 0 makes batch 1 dead, and the plan shows the cascade. Then
|
|
188
|
-
`--verify` applies each batch in a throwaway git worktree and runs **your own
|
|
189
|
-
compiler** (tsc, cargo, go, python oracles — differentially, so pre-existing
|
|
190
|
-
errors don't drown the signal).
|
|
191
|
-
|
|
192
|
-
Illustrative output:
|
|
193
|
-
|
|
194
|
-
```
|
|
195
|
-
── Batch 0: deletable now (graph-fact, 67 LOC) ──
|
|
196
|
-
Batch 0: COMPILER-VERIFIED
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
When verification fails, the errors name the exact references the static
|
|
200
|
-
evidence missed. Delete with a proof in hand, not vibes.
|
|
201
|
-
|
|
202
|
-
**Use it:**
|
|
203
|
-
|
|
204
|
-
```bash
|
|
205
|
-
scip-query cleanup-plan --verify
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
## 9. Making every change blind to its blast radius
|
|
209
|
-
|
|
210
|
-
**What the agent does:** edits a symbol without knowing who consumes it, what
|
|
211
|
-
breaks transitively, or which files historically move together with it — then
|
|
212
|
-
"finishes" with three consumers silently broken.
|
|
213
|
-
|
|
214
|
-
**The detectors:** `plan-context` (one command bundling definitions,
|
|
215
|
-
references, call graph, blast radius, churn, and co-change partners — the
|
|
216
|
-
pre-edit briefing), `change-surface`, `affected`, `diff-impact --json`.
|
|
217
|
-
|
|
218
|
-
**Use it:**
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
scip-query plan-context <symbol-or-file> # before the edit
|
|
222
|
-
scip-query diff-impact --json # after the edit
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
The `scip-plan` skill enforces this end-to-end: every step in a plan must
|
|
226
|
-
cite the scip-query command that verified it.
|
|
227
|
-
|
|
228
|
-
## 10. Slow quality decay nobody notices
|
|
229
|
-
|
|
230
|
-
**What the agent does:** each session adds a little rot. No single diff is
|
|
231
|
-
alarming; six weeks later the repo is unrecognizable.
|
|
232
|
-
|
|
233
|
-
**The detector:** the ratchet. `health --write-baseline` snapshots finding
|
|
234
|
-
identities into a committable file; `health --baseline` exits 1 on any _new_
|
|
235
|
-
finding. "Don't get worse" becomes an objective gate no score arithmetic can
|
|
236
|
-
game.
|
|
237
|
-
|
|
238
|
-
**Use it:**
|
|
239
|
-
|
|
240
|
-
```bash
|
|
241
|
-
scip-query health --write-baseline # once, committed
|
|
242
|
-
scip-query health --baseline # in CI
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
**Caught automatically by:** the `baseline` check in `diff-gate`.
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## Wiring it all up so nobody has to remember any of this
|
|
250
|
-
|
|
251
|
-
The detectors only help if they run. Three layers, in increasing strength:
|
|
252
|
-
|
|
253
|
-
**1. Skills and lifecycle hooks (routing).** Installing scip-query symlinks the
|
|
254
|
-
bundled skills into `~/.agents/skills/`, `~/.claude/skills/`, and
|
|
255
|
-
`~/.codex/skills/` — they update automatically with the package. Project setup
|
|
256
|
-
writes reviewable checkout-local hooks to `.codex/hooks.json` and
|
|
257
|
-
`.claude/settings.local.json` and excludes both through `.git/info/exclude`.
|
|
258
|
-
The deprecated `setup-hooks --shared` flag remains parse-compatible but no
|
|
259
|
-
longer writes tracked settings. Set `SCIP_QUERY_SKIP_HOOK_INSTALL=1` or run
|
|
260
|
-
`scip-query setup --no-hooks` to skip lifecycle hook setup. The hooks add
|
|
261
|
-
scip-query context at session start, route prompts toward the right specialist,
|
|
262
|
-
and run a safe Stop hook wrapper around the diff gate only for that repository.
|
|
263
|
-
The Stop hook sends feedback to the agent by default; set
|
|
264
|
-
`SCIP_QUERY_STOP_HOOK_MODE=warn` for warning-only output or
|
|
265
|
-
`SCIP_QUERY_STOP_HOOK_MODE=block` to enforce the gate. Run
|
|
266
|
-
`scip-query setup-hooks --json` to repair the current repo's hooks.
|
|
267
|
-
|
|
268
|
-
**2. Project setup and guidance.** Run once per project:
|
|
269
|
-
|
|
270
|
-
```bash
|
|
271
|
-
scip-query setup --json
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
Setup installs or refreshes skills, configures project-local hooks, checks indexer readiness, attempts
|
|
275
|
-
configured indexer remediation, refreshes the index, smoke-tests representative
|
|
276
|
-
commands, writes `docs/scip-query/health-dossier.md` and `.json`, reports the
|
|
277
|
-
health score and items needing attention, and seeds a managed block in
|
|
278
|
-
`AGENTS.md` plus a `CLAUDE.md` import shim.
|
|
279
|
-
|
|
280
|
-
The generated guidance distinguishes shared repository records from local
|
|
281
|
-
preferences. Commit suppression files and `.scipquery/ledger/` outcome events
|
|
282
|
-
with the change that produced them. Never commit the checkout hook files.
|
|
283
|
-
|
|
284
|
-
After setup, use `scip-audit` to confirm raw signals and
|
|
285
|
-
`scip-improve` when the user wants the agent to fix the worst confirmed
|
|
286
|
-
items until the health score is as high as reasonably possible.
|
|
287
|
-
|
|
288
|
-
**3. The gate (enforcement).**
|
|
289
|
-
|
|
290
|
-
```bash
|
|
291
|
-
scip-query diff-gate --json # default diff-scoped checks, exit 1 on findings
|
|
292
|
-
scip-query diff-gate --json --baseline # include the health-baseline ratchet
|
|
293
|
-
scip-query setup-agent --git-hook # pre-commit backstop: fires whoever wrote the diff
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
<!-- BEGIN GENERATED DIFF-GATE CHECKS -->
|
|
297
|
-
| Check | What it catches | When it runs |
|
|
298
|
-
| --- | --- | --- |
|
|
299
|
-
| `echo` | Changed symbols that newly echo established code elsewhere. | Default diff gate. |
|
|
300
|
-
| `incomplete-migration` | New helpers or abstractions wired into some sites while older inline sites remain. | Default diff gate. |
|
|
301
|
-
| `co-change-partner` | Historically coupled files that usually change together but are missing from this diff. | Default diff gate. |
|
|
302
|
-
| `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. |
|
|
303
|
-
| `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. |
|
|
304
|
-
| `architecture` | A declared architecture boundary rule has a violation absent from the committed health baseline. | Default diff gate when closed dependency rows, requireCompletePolicy, requireAcyclic, requireResolvedBoundaries, requireMinimalPolicy, maxBoundaryFanOut/maxBoundaryFiles, or testPaths are configured and a baseline exists. |
|
|
305
|
-
| `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. |
|
|
306
|
-
| `unused-params` | Fresh trailing parameters or options that no changed body uses. | Default diff gate. |
|
|
307
|
-
| `new-dead` | Changed production symbols with zero indexed consumers. | Default diff gate. |
|
|
308
|
-
| `baseline` | New health finding identities compared with the committed health baseline. | Only with `diff-gate --baseline`. |
|
|
309
|
-
<!-- END GENERATED DIFF-GATE CHECKS -->
|
|
310
|
-
|
|
311
|
-
Every finding ships with a remediation an agent can act on without human
|
|
312
|
-
triage. The installed Codex/Claude Stop hook uses the same diff-gate evidence,
|
|
313
|
-
warns by default, and no-ops outside indexed scip-query workspaces, so global
|
|
314
|
-
hook install stays safe for ordinary projects.
|
|
40
|
+
Repeated status checks, duplicate queries, and record writing spend time
|
|
41
|
+
without changing the agent's decision. scip-query therefore keeps work-state
|
|
42
|
+
ownership outside the tool. Reuse evidence while repository state and coverage
|
|
43
|
+
needs are unchanged.
|
package/docs/API.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Programmatic API
|
|
2
2
|
|
|
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 `
|
|
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 `watch` remain runtime commands rather than query-library exports.
|
|
4
4
|
|
|
5
5
|
```typescript
|
|
6
6
|
import { ScipDatabase, createGitignoreFilter } from 'scip-query';
|
package/docs/API_EVOLUTION.md
CHANGED
|
@@ -57,6 +57,12 @@ list. Do not edit the generated manifest or an acceptance record by hand.
|
|
|
57
57
|
|
|
58
58
|
- Keep a deprecated export or adapter for at least one minor release before
|
|
59
59
|
removal when a feasible compatibility path exists.
|
|
60
|
+
- When preserving behavior would reintroduce a deliberately retired subsystem,
|
|
61
|
+
record a versioned compatibility exception beside the API change. The record
|
|
62
|
+
must name the removed referents, explain why an adapter would give consumers
|
|
63
|
+
false semantics, preserve any independently useful serialized types, and
|
|
64
|
+
identify the supported replacement. A generated breaking-change acceptance
|
|
65
|
+
record alone is not that justification.
|
|
60
66
|
- Add optional fields instead of making old consumers construct new required
|
|
61
67
|
state.
|
|
62
68
|
- Treat parameter optionality, union membership, generic constraints, and
|