scip-query 0.20.0 → 0.21.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.
- package/CHANGELOG.md +69 -0
- package/README.md +255 -884
- package/dist/augment-vue-worker.js +1 -1
- package/dist/by-kind-CI3O6PQG.js +2 -0
- package/dist/call-graph-6QTUTXH7.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-7PIO7NKH.js → chunk-2COFMIVK.js} +2 -2
- package/dist/chunk-2H4IAJHO.js +2 -0
- package/dist/chunk-2I3RSUWX.js +16 -0
- package/dist/chunk-2RP27XLR.js +2 -0
- package/dist/chunk-2ZBMOQGG.js +3 -0
- package/dist/{chunk-HX4GQPZP.js → chunk-32A42O5B.js} +3 -3
- package/dist/chunk-35ELD3RM.js +2 -0
- package/dist/chunk-35IW3P4H.js +2 -0
- package/dist/{chunk-DQGFVPUV.js → chunk-3653GTR7.js} +3 -3
- package/dist/chunk-3EX7DNBC.js +2 -0
- package/dist/chunk-3FQ3KMCD.js +2 -0
- package/dist/{chunk-5E4WNAVD.js → chunk-3PII3JI5.js} +2 -2
- package/dist/chunk-3TNRNKAT.js +2 -0
- package/dist/chunk-3VLJ2DCA.js +2 -0
- package/dist/{chunk-XSRF6Q77.js → chunk-46JLFIGA.js} +2 -2
- package/dist/chunk-4DCKBY6T.js +5 -0
- package/dist/chunk-4EXFZP6H.js +2 -0
- package/dist/chunk-4IIMPWMR.js +29 -0
- package/dist/chunk-4ILHWBYF.js +2 -0
- package/dist/chunk-4N6QSEMZ.js +10 -0
- package/dist/chunk-4OE2JO6I.js +2 -0
- package/dist/{chunk-7BAVHKMJ.js → chunk-4S4DF62J.js} +9 -9
- package/dist/chunk-4UUCUASK.js +554 -0
- package/dist/chunk-5236NQV3.js +2 -0
- package/dist/chunk-54EOGFBR.js +2 -0
- package/dist/{chunk-LY4WC4AD.js → chunk-5H7IWVXJ.js} +2 -2
- package/dist/chunk-5IZTXSOL.js +117 -0
- package/dist/{chunk-AZJQQKDD.js → chunk-5SE323LF.js} +2 -2
- package/dist/chunk-5ZJH6DDE.js +2 -0
- package/dist/chunk-63MBA7EG.js +3 -0
- package/dist/chunk-6BJ7SOY7.js +2 -0
- package/dist/chunk-6GJAP4OE.js +2 -0
- package/dist/chunk-6IEVHGWG.js +26 -0
- package/dist/chunk-6SWA6B24.js +7 -0
- package/dist/chunk-6T7H2AFY.js +3 -0
- package/dist/chunk-73Z33VFI.js +4 -0
- package/dist/chunk-7COHFNJK.js +38 -0
- package/dist/chunk-7HU2IJ2T.js +3 -0
- package/dist/chunk-7IOAZRVL.js +60 -0
- package/dist/chunk-7KCZELVM.js +2 -0
- package/dist/chunk-7PPYXENX.js +2 -0
- package/dist/chunk-7TWP3MCP.js +2 -0
- package/dist/chunk-AA7K3XLM.js +21 -0
- package/dist/chunk-AJVMVE7X.js +7 -0
- package/dist/chunk-ANWGXPPN.js +4 -0
- package/dist/chunk-APLKXICZ.js +3 -0
- package/dist/{chunk-JDOEX4E6.js → chunk-AQDWTCDC.js} +2 -2
- package/dist/chunk-AUP6YI5M.js +2 -0
- package/dist/chunk-B7ECWJAZ.js +2 -0
- package/dist/{chunk-ZHXX42OH.js → chunk-BATIVRU2.js} +4 -4
- package/dist/chunk-BBEDPVPB.js +4 -0
- package/dist/chunk-BBWPOMGU.js +2 -0
- package/dist/chunk-BD6CV7PN.js +2 -0
- package/dist/{chunk-XKWKXZKW.js → chunk-BHE44MHT.js} +2 -2
- package/dist/chunk-BOJ5SVE2.js +2 -0
- package/dist/chunk-BZYSGZRK.js +2 -0
- package/dist/chunk-CA5RE6H7.js +2 -0
- package/dist/chunk-CKDOY6JA.js +2 -0
- package/dist/chunk-CN2WGM7D.js +2 -0
- package/dist/chunk-COTMS5KM.js +3 -0
- package/dist/chunk-CSDDOUA4.js +3 -0
- package/dist/chunk-CT5SI2I4.js +2 -0
- package/dist/chunk-D5EKVZPI.js +2 -0
- package/dist/{chunk-FKSELJQF.js → chunk-D5W4UZY5.js} +2 -2
- package/dist/{chunk-RUJURYSV.js → chunk-DEUGHURX.js} +2 -2
- package/dist/chunk-DHKBIOXF.js +7 -0
- package/dist/chunk-DMQ7ZKJG.js +81 -0
- package/dist/chunk-DMUGTKMD.js +2 -0
- package/dist/chunk-DOPCR5BY.js +2 -0
- package/dist/chunk-DRENNWRG.js +2 -0
- package/dist/chunk-E4EJBGDZ.js +2 -0
- package/dist/chunk-E7BJXRNV.js +2 -0
- package/dist/chunk-EA4SH4U5.js +5 -0
- package/dist/{chunk-L7AW2QB5.js → chunk-EKZRF57O.js} +2 -2
- package/dist/chunk-ELNRLMC5.js +29 -0
- package/dist/chunk-F4FNK44D.js +2 -0
- package/dist/chunk-F7WQ337U.js +308 -0
- package/dist/chunk-FEQIQ26E.js +2 -0
- package/dist/chunk-FGB567HK.js +23 -0
- package/dist/chunk-FHV7NMFU.js +29 -0
- package/dist/chunk-FN6EJM6Q.js +2 -0
- package/dist/chunk-FTSQNONX.js +2 -0
- package/dist/chunk-FUG6RPYY.js +6 -0
- package/dist/chunk-G2F6T5BV.js +2 -0
- package/dist/chunk-G6OGPXJW.js +9 -0
- package/dist/chunk-GFLTPNWV.js +3 -0
- package/dist/chunk-GTDP2SKQ.js +2 -0
- package/dist/chunk-H46QMB7E.js +2 -0
- package/dist/chunk-H5EXS3HM.js +2 -0
- package/dist/chunk-HEOMG7IM.js +8 -0
- package/dist/chunk-HG5YI7PV.js +2 -0
- package/dist/{chunk-7SQQWSY3.js → chunk-HGKEAP7F.js} +2 -2
- package/dist/chunk-HUZNZ3H2.js +2 -0
- package/dist/chunk-HWLCBKFE.js +2 -0
- package/dist/chunk-I3U2FN2T.js +13 -0
- package/dist/{chunk-JAYYFEQY.js → chunk-I7PFL5P3.js} +2 -2
- package/dist/{chunk-2HPVVXM5.js → chunk-ICHBVITH.js} +2 -2
- package/dist/chunk-ICUQONOG.js +38 -0
- package/dist/chunk-IDPLC3FI.js +5 -0
- package/dist/{chunk-A73XVBCR.js → chunk-IGKKTHJR.js} +2 -2
- package/dist/chunk-IOKWFRFQ.js +4 -0
- package/dist/chunk-IPAL6DP2.js +3 -0
- package/dist/chunk-IUJ3ZFEE.js +7 -0
- package/dist/chunk-IXJ26KJJ.js +16 -0
- package/dist/chunk-IYV2YBHM.js +2 -0
- package/dist/chunk-JVZNWJBH.js +2 -0
- package/dist/chunk-K5MZYZV7.js +3 -0
- package/dist/{chunk-3G66UZBH.js → chunk-KFK7GF5C.js} +2 -2
- package/dist/chunk-KTRGJLY7.js +18 -0
- package/dist/chunk-KW6B5OL4.js +2 -0
- package/dist/chunk-KWARB5FZ.js +2 -0
- package/dist/chunk-LHTT5C3Z.js +2 -0
- package/dist/chunk-LPGDO2XA.js +3 -0
- package/dist/chunk-LXLD46LH.js +21 -0
- package/dist/chunk-MEI3PTUK.js +2 -0
- package/dist/chunk-MJNV7OCG.js +5 -0
- package/dist/chunk-MO226P4Q.js +4 -0
- package/dist/{chunk-3CLX5EOX.js → chunk-MOBF2GH6.js} +2 -2
- package/dist/chunk-MXNGIEPU.js +3 -0
- package/dist/chunk-MYUKI5VN.js +4 -0
- package/dist/{chunk-TFRAYKN6.js → chunk-N5C65OFK.js} +2 -2
- package/dist/{chunk-PXY7F6Y4.js → chunk-O2RM7E7L.js} +5 -5
- package/dist/chunk-OFUBXBYX.js +3 -0
- package/dist/chunk-OFY4HTMI.js +2 -0
- package/dist/chunk-OIRWZIYL.js +38 -0
- package/dist/chunk-OIVZ7PW6.js +438 -0
- package/dist/chunk-ORBKAUCH.js +4 -0
- package/dist/chunk-OUB4J26T.js +2 -0
- package/dist/chunk-OVPS2ILI.js +20 -0
- package/dist/chunk-PHSPBQM6.js +5 -0
- package/dist/{chunk-JVYA47YU.js → chunk-PIZY2GX6.js} +2 -2
- package/dist/chunk-PNISDVYC.js +3 -0
- package/dist/chunk-PQOL42AW.js +2 -0
- package/dist/chunk-PUVZNFVY.js +11 -0
- package/dist/chunk-PZEI2TVL.js +4 -0
- package/dist/{chunk-ZK26BAQL.js → chunk-Q2J2VZZT.js} +2 -2
- package/dist/chunk-Q7HB7BFJ.js +2 -0
- package/dist/{chunk-ZTETIQ35.js → chunk-QBANU5BQ.js} +2 -2
- package/dist/chunk-QD7IFBCR.js +10 -0
- package/dist/chunk-QDCCHMVZ.js +2 -0
- package/dist/chunk-QLQBZOJH.js +3 -0
- package/dist/{chunk-PQCI4SQX.js → chunk-QXR5QPSF.js} +2 -2
- package/dist/chunk-R2MOKIVO.js +2 -0
- package/dist/{chunk-EN3O7VJA.js → chunk-RFWAUHVW.js} +2 -2
- package/dist/chunk-RGCJ4646.js +16 -0
- package/dist/{chunk-BPAPWKP6.js → chunk-S3RTPPLQ.js} +8 -8
- package/dist/chunk-S73HBCGI.js +11 -0
- package/dist/chunk-SDPA5DKN.js +210 -0
- package/dist/chunk-SEUJVWT2.js +3 -0
- package/dist/chunk-SF7X6QNW.js +2 -0
- package/dist/chunk-SKUMCCC5.js +2 -0
- package/dist/chunk-SSSJO4RG.js +2 -0
- package/dist/chunk-SWFAFA4G.js +49 -0
- package/dist/chunk-SYUNTKO2.js +2 -0
- package/dist/chunk-T6FRID7Y.js +3 -0
- package/dist/chunk-TGWNNMPF.js +3 -0
- package/dist/chunk-TM5XEDDR.js +4 -0
- package/dist/chunk-TNOHGHZQ.js +2 -0
- package/dist/chunk-U2GPTA5U.js +3 -0
- package/dist/{chunk-SXP2MBJH.js → chunk-U7DR7MJD.js} +2 -2
- package/dist/chunk-U7LRSQG6.js +3 -0
- package/dist/chunk-UL4VJUMD.js +2 -0
- package/dist/chunk-UNORWZIJ.js +16 -0
- package/dist/chunk-UQ7XPRWU.js +2 -0
- package/dist/{chunk-6SHPK5ZE.js → chunk-URMZLV2N.js} +2 -2
- package/dist/chunk-URTX2BEA.js +6 -0
- package/dist/chunk-UZFCZ7SJ.js +2 -0
- package/dist/{chunk-KMKTIO2G.js → chunk-V7LQZTTZ.js} +2 -2
- package/dist/chunk-VETXXOYU.js +3 -0
- package/dist/chunk-VGRUM7JI.js +3 -0
- package/dist/{chunk-WXZLAAWK.js → chunk-VNKYRJKN.js} +2 -2
- package/dist/chunk-VWLIOEEF.js +11 -0
- package/dist/chunk-WB6LGCFB.js +6 -0
- package/dist/{chunk-W4ETQAXM.js → chunk-WK4FD4PG.js} +2 -2
- package/dist/{chunk-O64IZ6UX.js → chunk-WKPZCQLI.js} +2 -2
- package/dist/chunk-WSG3DK5H.js +2 -0
- package/dist/chunk-WULAPQUD.js +38 -0
- package/dist/chunk-WZQFY5S7.js +4 -0
- package/dist/chunk-X434XZAI.js +2 -0
- package/dist/chunk-X7PJJYKX.js +29 -0
- package/dist/chunk-XDAUYDFT.js +2 -0
- package/dist/chunk-XITQLISP.js +2 -0
- package/dist/chunk-XRXCANFQ.js +4 -0
- package/dist/chunk-XVDMJMES.js +3 -0
- package/dist/chunk-XXJ7WL3F.js +35 -0
- package/dist/chunk-Y4XQ7LES.js +9 -0
- package/dist/chunk-YIEFEPG6.js +16 -0
- package/dist/chunk-YRVERHJR.js +49 -0
- package/dist/{chunk-CJST5ETY.js → chunk-YUFWLWIC.js} +2 -2
- package/dist/chunk-YUKYB54I.js +1 -0
- package/dist/chunk-Z3GCK3PD.js +3 -0
- package/dist/chunk-ZBNL3QCY.js +4 -0
- package/dist/chunk-ZD3Z54IW.js +2 -0
- package/dist/chunk-ZDVDSDFG.js +4 -0
- package/dist/{chunk-32LVLCLN.js → chunk-ZHSARYVS.js} +3 -3
- package/dist/{chunk-BDCC2NPY.js → chunk-ZW44MCJM.js} +2 -2
- package/dist/{chunk-N5W4YZMK.js → chunk-ZYREOING.js} +2 -2
- package/dist/cli-main.js +8 -0
- package/dist/cli.js +1 -3
- package/dist/code-CczEvHui.d.ts +121 -0
- package/dist/code-EQL6ZBLH.js +2 -0
- package/dist/code-result-json-6E4J6LGZ.js +2 -0
- package/dist/command-descriptors-QH3G2OVD.js +346 -0
- package/dist/{config-types-jVM3D7MA.d.ts → config-types-Cm-VSEBb.d.ts} +189 -23
- package/dist/dataflow-2BLMUZBP.js +2 -0
- package/dist/{db-B5PM5yNk.d.ts → db-LKJXAlNS.d.ts} +1 -1
- package/dist/dependence-slice-MGAJDZXB.js +2 -0
- package/dist/deps-GQMUYVKW.js +2 -0
- package/dist/direct-navigation-6RUJKLAV.js +3 -0
- package/dist/entry-map-V2NQP5JU.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-VM53I4IU.js +2 -0
- package/dist/graph-evidence-CbUPCSKV.d.ts +126 -0
- package/dist/graph-exploration-contract-CqDsnPQL.d.ts +7 -0
- package/dist/{health-Do5TKSJI.d.ts → health-Wl5G_LRt.d.ts} +33 -34
- package/dist/hierarchy-D553WRSZ.js +2 -0
- package/dist/imports-DOZAJWLW.js +2 -0
- package/dist/index.d.ts +4 -31
- package/dist/index.js +1 -1
- package/dist/members-HE67475K.js +2 -0
- package/dist/methods-K5JK4PPH.js +2 -0
- package/dist/next-anchor-candidates-BwMczMvX.d.ts +90 -0
- package/dist/output-continuation-command-LKBUTNRL.js +3 -0
- package/dist/output-pagination-VAWOGX4R.js +19 -0
- package/dist/postinstall.js +1 -1
- package/dist/project-reindex-4ARU6QCM.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-NBHKL4UQ.js +2 -0
- package/dist/refs-pagination-BBVTIHMH.js +2 -0
- package/dist/reindex-worker.js +27 -45
- package/dist/reindex.d.ts +62 -42
- package/dist/reindex.js +32 -33
- package/dist/repository-text-C0Q8VYdN.d.ts +19 -0
- package/dist/runtime.d.ts +286 -7
- 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-CppzF5MK.d.ts} +33 -2
- package/dist/slice-U6S6LBSB.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-C7SS5CDQ.js +2 -0
- package/dist/symbol-resolution-3FVEKDTJ.js +2 -0
- package/dist/system-6K2NOO5C.js +2 -0
- package/dist/trace-II5K2TMH.js +2 -0
- package/dist/typescript-mailbox-worker.js +1 -1
- package/dist/value-flow-MKFUUE5B.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 +27 -45
- package/docs/schemas/suppression-record.schema.json +1 -34
- package/package.json +65 -8
- package/skills/concrete-plan/SKILL.md +8 -0
- package/skills/concrete-plan/agents/openai.yaml +4 -0
- package/skills/scip-explore/SKILL.md +3 -85
- package/skills/scip-explore/agents/openai.yaml +3 -3
- 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 +77 -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/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
|
@@ -1,516 +0,0 @@
|
|
|
1
|
-
# Analyzer Validation Ledger
|
|
2
|
-
|
|
3
|
-
This ledger records the analyzer evaluation work carried out after the analyzer inventory, validation protocol, and locality design. It is the operating document for keeping analyzer accuracy work traceable end to end.
|
|
4
|
-
|
|
5
|
-
The companion documents are:
|
|
6
|
-
|
|
7
|
-
- `docs/analyzer-inventory.md`: names the analyzers and their action tiers.
|
|
8
|
-
- `docs/analyzer-validation-protocol.md`: defines the review protocol and per-analyzer TP/FP/FN criteria.
|
|
9
|
-
- `docs/locality-analyzer-design.md`: defines the locality and organization analyzer behavior.
|
|
10
|
-
|
|
11
|
-
## Source Anchors
|
|
12
|
-
|
|
13
|
-
The ledger is anchored to the current tool surface, not memory.
|
|
14
|
-
|
|
15
|
-
| Surface | Source | Why it anchors the ledger |
|
|
16
|
-
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------- |
|
|
17
|
-
| Repo-wide health analysis | `scip-query code health --json` reported `src/queries/health/health.ts:218`, where `health()` runs `runHealthAnalyses()` and `buildHealthReport()` through the health budget that carries full-vs-bounded semantic enrichment. | Every repo-wide analyzer validation must eventually reconcile with health output and scoring. |
|
|
18
|
-
| Change-time gate analysis | `scip-query trace diffGate --json` resolves `diffGate()` in `src/queries/impact/diff-gate.ts`, where it runs the default diff-scoped checks: `echo`, `incomplete-migration`, `co-change-partner`, `twin-partner`, `coverage-contract`, `architecture`, `doc-reference`, `unused-params`, and `new-dead`. The baseline ratchet is explicit because it is repo-wide. | Every diff-only analyzer needs a separate validation path from repo-wide health. |
|
|
19
|
-
| Public command registry | `scip-query trace queryCommandOrder --json` reported `src/runtime/commands/query-command-specs.ts:11`, where the public query command order starts. `scip-query code queryCommandDescriptor --json` reported `src/runtime/commands/query-command-specs.ts:104`, where command descriptors are resolved by id. | The ledger must not silently miss a public analyzer command. |
|
|
20
|
-
| Diff-gate check list | `scip-query trace DIFF_GATE_CHECKS --json` resolves the canonical exported check list in `src/queries/impact/diff-gate.ts`. | The ledger must cover every change-time check that can block a diff. |
|
|
21
|
-
|
|
22
|
-
## Core Concepts
|
|
23
|
-
|
|
24
|
-
A validation ledger is a maintained record of analyzer evaluation work, including the claim being tested, the repositories used, the evidence captured, the verdict, and the next precision action. Its essential role is to keep validation from dissolving into scattered notes by making every analyzer claim traceable to a reviewed outcome.
|
|
25
|
-
|
|
26
|
-
A ledger item is one independently completable evaluation obligation. It may cover one analyzer, one analyzer family, one repository run, or one score-model decision; its essential characteristic is that it has a clear done signal and can move from ready to complete without needing the whole validation effort to finish.
|
|
27
|
-
|
|
28
|
-
A run batch is a bounded execution of analyzer commands against one repository and revision. It is the smallest repeatable field-test unit because it records the project, commit, commands, raw output, sample selection, and reviewer verdicts together.
|
|
29
|
-
|
|
30
|
-
A calibration decision is a documented change to detector confidence, action tier, score weight, threshold, wording, or evidence fields. It is not just a preference; it is a maintainer decision justified by reviewed true positives, false positives, false negatives, suppressions, or repair outcomes.
|
|
31
|
-
|
|
32
|
-
A repair outcome is the result of acting on an analyzer finding. It matters because an analyzer can be locally accurate while still causing bad repairs, churn, misplaced abstractions, or broader APIs when an agent follows it.
|
|
33
|
-
|
|
34
|
-
## Status Values
|
|
35
|
-
|
|
36
|
-
| Status | Meaning |
|
|
37
|
-
| ---------- | ---------------------------------------------------------------------------------- |
|
|
38
|
-
| `ready` | The item has a defined scope, command set, corpus, and done signal. |
|
|
39
|
-
| `running` | Raw analyzer output or human review is currently being collected. |
|
|
40
|
-
| `blocked` | The item cannot be completed until tooling, indexing, or corpus access improves. |
|
|
41
|
-
| `complete` | The item has reviewed evidence, verdicts, and any next precision actions recorded. |
|
|
42
|
-
| `deferred` | The item is valid but intentionally lower priority than other ledger work. |
|
|
43
|
-
|
|
44
|
-
## Active Ledger
|
|
45
|
-
|
|
46
|
-
Closeout status: all active ledger rows are complete as of 2026-06-22. Remaining future work is provider- or corpus-gated, not an unfinished validation slice: true co-change issue/PR label ingestion needs a repository metadata provider, and locality score integration needs stronger consumer-coverage plus repair-outcome evidence.
|
|
47
|
-
|
|
48
|
-
| ID | Item | Scope | Status | Next action | Done signal |
|
|
49
|
-
| ------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
50
|
-
| AVL-001 | Field evaluation baseline | Run the protocol on `scip-query`, `Stable_Management`, `Vega_2.0`, and `SynthRunnerRust`. | `complete` | Completed in `docs/validation/2026-06-21-second-repo-confirmation.md`. | A dated run summary exists for each repo with raw-output locations and sampling notes. |
|
|
51
|
-
| AVL-002 | Direct repair analyzer verdicts | `cleanup-plan`, `dead`, `new-dead`, `isolated`, `unused-params`, `unused-imports`, `redundant-reexports`, `passthrough-candidates`, `cycles`, broken `doc-drift`, and `doc-reference`. | `complete` | Completed in `docs/validation/2026-06-21-direct-deletion-family-closure-result.md`. | Each direct analyzer has TP/FP/FN counts, accepted-design examples, and precision actions. |
|
|
52
|
-
| AVL-003 | Contextual signal analyzer verdicts | Similarity, extraction, locality, wrapper, stale abstraction, frontend duplicate, hook/composable, co-change, bottleneck, coupling, drift, and deep-chain families. | `complete` | Completed in `docs/validation/2026-06-21-contextual-signal-closure-result.md`. | Each contextual family has a reviewed precision note and a score-weight recommendation. |
|
|
53
|
-
| AVL-004 | Support analysis accuracy | `affected`, `change-surface`, `plan-context`, navigation commands, graph metrics, and `self-audit`. | `complete` | Completed in `docs/validation/2026-06-21-support-analysis-accuracy-result.md`. | Support commands have referential-accuracy notes and known unsupported cases. |
|
|
54
|
-
| AVL-005 | Analyzer implementation parity | Confirm each public analyzer command's documented behavior matches implementation behavior. | `complete` | Completed in `docs/validation/2026-06-21-analyzer-implementation-parity-result.md`. | The inventory and protocol either match implementation or list required doc/code corrections. |
|
|
55
|
-
| AVL-006 | Score calibration | Evaluate direct findings, contextual signals, suppressions, validation ratio, and signal backlog pressure. | `complete` | Completed in `docs/validation/2026-06-21-score-calibration-finalization-result.md`. | A calibration memo states score-weight changes, accepted current weights, or blocked evidence gaps. |
|
|
56
|
-
| AVL-007 | Output and schema quality | Verify each analyzer emits enough structured evidence for users and agents to review the claim. | `complete` | Completed in `docs/validation/2026-06-21-output-schema-quality-finalization-result.md`. | Each analyzer family has an output-quality verdict and missing-field list. |
|
|
57
|
-
| AVL-008 | Performance and budget behavior | Check large-index behavior, `--full`, scan limits, git-history bounds, and graceful degradation. | `complete` | Completed in `docs/validation/2026-06-21-performance-budget-behavior-result.md`. | Budget behavior is documented with any timeout, cap, or misleading-empty-output issues. |
|
|
58
|
-
| AVL-009 | Suppression lifecycle | Evaluate whether suppressions are stale, justified, expired, or useful as detector precision feedback. | `complete` | Completed in `docs/validation/2026-06-21-suppression-lifecycle-result.md`. | Suppression categories have counts, stale examples, and trust-weight recommendations. |
|
|
59
|
-
| AVL-010 | Cross-language capability boundaries | Establish what works for TypeScript, React, Vue, Rust, and any unsupported language surfaces. | `complete` | Completed in `docs/validation/2026-06-21-cross-language-capability-boundaries-result.md`. | Capability notes distinguish "no findings" from "not supported by current evidence." |
|
|
60
|
-
| AVL-011 | Agent repair outcomes | Test whether acting on analyzer findings produces better code rather than churn or misplaced abstraction. | `complete` | Completed in `docs/validation/2026-06-21-agent-repair-outcomes-result.md`. | Each action tier has at least one reviewed repair outcome or an explicit reason it cannot be tested yet. |
|
|
61
|
-
| AVL-012 | Locality analyzer validation | Validate the proposed `locality-candidates` report and `scip-locality-review` skill workflow before implementation. | `complete` | Completed in `docs/validation/2026-06-21-locality-analyzer-validation-result.md`. | The locality design has TP/FP/FN-style examples and a go/no-go recommendation for implementation. |
|
|
62
|
-
| AVL-013 | Config and declared-coupling freshness | Check whether `.scipquery.json` declared couplings and suppressions still point at current paths. | `complete` | Completed in `docs/validation/2026-06-21-config-declared-coupling-freshness-result.md`. | Stale config paths are fixed, removed, or documented as intentionally retained. |
|
|
63
|
-
| AVL-014 | Public command surface coverage | Ensure every public analyzer command is present in the inventory, protocol, and ledger. | `complete` | Completed in `docs/validation/2026-06-21-public-command-surface-coverage-result.md`. | A coverage checklist shows no missing analyzer or marks non-analyzer support commands separately. |
|
|
64
|
-
| AVL-015 | TypeScript `dead` certification | Fixed-seed four-repository precision review, causal remediation, holdout replay, and known-positive recall. | `complete` | Certified in `docs/validation/2026-07-10-typescript-dead-certification.md`. | Precision, confidence, corpus, and recall gates pass under the repository-dead truth rule. |
|
|
65
|
-
| AVL-016 | Rust `dead` hardening | Pinned Codex, SynthRunnerRust, and VegaAssistant review covering Cargo surfaces, traits, macros, reflection, examples, and positive recall. | `complete` | Hardened but insufficiently evidenced in `docs/validation/2026-07-10-rust-dead-certification.md`; expand the corpus before renewal. | Every baseline false positive is removed, applicability is visible, recall fixtures pass, and failed certification gates are explicit. |
|
|
66
|
-
|
|
67
|
-
## Public Command Coverage Checklist
|
|
68
|
-
|
|
69
|
-
The canonical source is `src/runtime/commands/query-command-specs.ts:11-78`, where `queryCommandOrder` lists the public query command surface.
|
|
70
|
-
|
|
71
|
-
- Core and navigation support: `stats`, `files`, `methods`, `refs`, `trace`, `deps`, `rdeps`, `system`, `surface`, `imports`, `imported-by`, `outline`, `members`, `by-kind`, `kind-counts`, `hierarchy`, `call-graph`, `code`, `dataflow`, `slice`
|
|
72
|
-
- Direct cleanup and deletion analyzers: `dead`, `isolated`, `unused-imports`, `cleanup-plan`, `unused-params`, `passthrough-candidates`, `redundant-reexports`
|
|
73
|
-
- Similarity, reuse, extraction, and locality analyzers: `similar`, `similar-files`, `similar-chains`, `similar-signatures`, `recent-duplicates`, `duplicate-bodies`, `twin-drift`, `twin-ab`, `extract-candidates`, `locality-candidates`, `wrapper-candidates`, `stale-abstractions`, `doc-drift`, `drift`, `convergence`
|
|
74
|
-
- Frontend analyzers: `react-component-duplicates`, `react-hook-candidates`, `react-large-component-pressure`, `vue-component-duplicates`, `vue-composable-candidates`, `vue-large-view-pressure`
|
|
75
|
-
- Graph, risk, and complexity analyzers: `architecture`, `hotspots`, `fan-in`, `fan-out`, `coupling`, `cycles`, `bottlenecks`, `deep-chains`, `complexity-hotspots`, `complexity`
|
|
76
|
-
- Diff, impact, and planning analyzers: `affected`, `change-surface`, `co-change`, `diff-gate`, `incomplete-migration`, `plan-context`
|
|
77
|
-
- Formal model verification: `tla`
|
|
78
|
-
- Meta and action commands: `self-audit`, `cleanup-apply`
|
|
79
|
-
|
|
80
|
-
## Completed Run Batches
|
|
81
|
-
|
|
82
|
-
The completed effort used this order so early runs created useful evidence for later calibration work.
|
|
83
|
-
|
|
84
|
-
Current pilot:
|
|
85
|
-
|
|
86
|
-
- Plan: `docs/plans/2026-06-21-analyzer-validation-pilot.md`
|
|
87
|
-
- Summary: `docs/validation/2026-06-21-analyzer-validation-pilot.md`
|
|
88
|
-
- Verdict review: `docs/validation/2026-06-21-analyzer-verdict-review.md`
|
|
89
|
-
- Calibration memo: `docs/validation/2026-06-21-analyzer-calibration-memo.md`
|
|
90
|
-
- Precision implementation plan: `docs/plans/2026-06-21-analyzer-precision-implementation.md`
|
|
91
|
-
- Precision implementation result: `docs/validation/2026-06-21-analyzer-precision-implementation-result.md`
|
|
92
|
-
- Stable_Management second confirmation: `docs/validation/2026-06-21-stable-management-second-confirmation.md`
|
|
93
|
-
- Echo tier refinement result: `docs/validation/2026-06-21-echo-tier-refinement-result.md`
|
|
94
|
-
- Wrapper boundary evidence result: `docs/validation/2026-06-21-wrapper-boundary-evidence-result.md`
|
|
95
|
-
- Passthrough boundary evidence result: `docs/validation/2026-06-22-passthrough-boundary-evidence-result.md`
|
|
96
|
-
- Passthrough public-facade caveats result: `docs/validation/2026-06-22-passthrough-public-facade-caveats-result.md`
|
|
97
|
-
- Public surface caveats result: `docs/validation/2026-06-22-public-surface-caveats-result.md`
|
|
98
|
-
- Doc cited-claim metadata result: `docs/validation/2026-06-22-doc-cited-claim-metadata-result.md`
|
|
99
|
-
- Root-cause grouping result: `docs/validation/2026-06-22-root-cause-grouping-result.md`
|
|
100
|
-
- Co-change partner labels result: `docs/validation/2026-06-22-co-change-partner-labels-result.md`
|
|
101
|
-
- Incomplete migration containment result: `docs/validation/2026-06-22-incomplete-migration-containment-result.md`
|
|
102
|
-
- Co-change recency and broad-sweep context result: `docs/validation/2026-06-22-co-change-recency-sweep-result.md`
|
|
103
|
-
- Doc drift historical intent result: `docs/validation/2026-06-22-doc-drift-historical-intent-result.md`
|
|
104
|
-
- Framework entry caveats result: `docs/validation/2026-06-22-framework-entry-caveats-result.md`
|
|
105
|
-
- Incomplete migration scope hints result: `docs/validation/2026-06-22-incomplete-migration-scope-hints-result.md`
|
|
106
|
-
- Doc reference citation parser result: `docs/validation/2026-06-22-doc-reference-citation-parser-result.md`
|
|
107
|
-
- Co-change subject context result: `docs/validation/2026-06-22-co-change-subject-context-result.md`
|
|
108
|
-
- Second-corpus score-weight confirmation result: `docs/validation/2026-06-22-second-corpus-score-weight-confirmation-result.md`
|
|
109
|
-
- Passthrough exported-facade second-corpus result: `docs/validation/2026-06-22-passthrough-exported-facade-second-corpus-result.md`
|
|
110
|
-
- Incomplete migration second-corpus scope result: `docs/validation/2026-06-22-incomplete-migration-second-corpus-scope-result.md`
|
|
111
|
-
- Doc parser second-corpus validation result: `docs/validation/2026-06-22-doc-parser-second-corpus-validation-result.md`
|
|
112
|
-
- Validation ledger closeout result: `docs/validation/2026-06-22-validation-ledger-closeout-result.md`
|
|
113
|
-
- Global install cross-verification result: `docs/validation/2026-06-22-global-install-cross-verification-result.md`
|
|
114
|
-
- Stable Management locality suggested-home review: `docs/validation/2026-06-22-stable-management-locality-suggested-home-review.md`
|
|
115
|
-
- Locality positive suggested-home result: `docs/validation/2026-06-22-locality-positive-suggested-home-result.md`
|
|
116
|
-
- Stable_Management wrapper confirmation: `docs/validation/2026-06-21-stable-management-wrapper-boundary-confirmation.md`
|
|
117
|
-
- Vue pressure-kind output result: `docs/validation/2026-06-21-vue-pressure-kind-output-result.md`
|
|
118
|
-
- Similarity evidence split result: `docs/validation/2026-06-21-similarity-evidence-split-result.md`
|
|
119
|
-
- Doc citation-kind output result: `docs/validation/2026-06-21-doc-citation-kind-output-result.md`
|
|
120
|
-
- Baseline metadata inheritance result: `docs/validation/2026-06-21-baseline-metadata-inheritance-result.md`
|
|
121
|
-
- Second-repo confirmation: `docs/validation/2026-06-21-second-repo-confirmation.md`
|
|
122
|
-
- Rust wrapper and React pressure review: `docs/validation/2026-06-21-rust-wrapper-react-pressure-review.md`
|
|
123
|
-
- React pressure-kind output result: `docs/validation/2026-06-21-react-pressure-kind-output-result.md`
|
|
124
|
-
- Rust wrapper boundary vocabulary result: `docs/validation/2026-06-21-rust-wrapper-boundary-vocabulary-result.md`
|
|
125
|
-
- Frontend behavior evidence classification result: `docs/validation/2026-06-21-frontend-behavior-evidence-classification-result.md`
|
|
126
|
-
- Extract candidate evidence classification result: `docs/validation/2026-06-21-extract-candidate-evidence-classification-result.md`
|
|
127
|
-
- Stale abstraction action-tier result: `docs/validation/2026-06-21-stale-abstraction-action-tier-result.md`
|
|
128
|
-
- Health score action-tier counts result: `docs/validation/2026-06-21-health-score-action-tier-counts-result.md`
|
|
129
|
-
- Graph-risk family result: `docs/validation/2026-06-21-graph-risk-family-result.md`
|
|
130
|
-
- Config declared-coupling freshness result: `docs/validation/2026-06-21-config-declared-coupling-freshness-result.md`
|
|
131
|
-
- Suppression lifecycle result: `docs/validation/2026-06-21-suppression-lifecycle-result.md`
|
|
132
|
-
- Support analysis accuracy result: `docs/validation/2026-06-21-support-analysis-accuracy-result.md`
|
|
133
|
-
- Cross-language capability boundaries result: `docs/validation/2026-06-21-cross-language-capability-boundaries-result.md`
|
|
134
|
-
- Public command surface coverage result: `docs/validation/2026-06-21-public-command-surface-coverage-result.md`
|
|
135
|
-
- Analyzer implementation parity result: `docs/validation/2026-06-21-analyzer-implementation-parity-result.md`
|
|
136
|
-
- Performance and budget behavior result: `docs/validation/2026-06-21-performance-budget-behavior-result.md`
|
|
137
|
-
- Agent repair outcomes result: `docs/validation/2026-06-21-agent-repair-outcomes-result.md`
|
|
138
|
-
- Locality analyzer validation result: `docs/validation/2026-06-21-locality-analyzer-validation-result.md`
|
|
139
|
-
- Direct small analyzer verdicts result: `docs/validation/2026-06-21-direct-small-analyzer-verdicts-result.md`
|
|
140
|
-
- Direct remaining verdicts result: `docs/validation/2026-06-21-direct-remaining-verdicts-result.md`
|
|
141
|
-
- Direct deletion-family closure result: `docs/validation/2026-06-21-direct-deletion-family-closure-result.md`
|
|
142
|
-
- Contextual signal closure result: `docs/validation/2026-06-21-contextual-signal-closure-result.md`
|
|
143
|
-
- Score calibration finalization result: `docs/validation/2026-06-21-score-calibration-finalization-result.md`
|
|
144
|
-
- Output/schema quality finalization result: `docs/validation/2026-06-21-output-schema-quality-finalization-result.md`
|
|
145
|
-
- Raw output root: `/tmp/scip-query-validation/2026-06-21-pilot`
|
|
146
|
-
|
|
147
|
-
### Batch 1: Corpus Baseline
|
|
148
|
-
|
|
149
|
-
- Repositories: `scip-query`, `Stable_Management`, `Vega_2.0`, `SynthRunnerRust`.
|
|
150
|
-
- Commands:
|
|
151
|
-
- `git rev-parse HEAD`
|
|
152
|
-
- `scip-query reindex`
|
|
153
|
-
- `scip-query health --full --json`
|
|
154
|
-
- `scip-query diff-gate --json`
|
|
155
|
-
- `scip-query capability-matrix`
|
|
156
|
-
- Outputs:
|
|
157
|
-
- Raw JSON outside the repo unless intentionally promoted.
|
|
158
|
-
- Plain text output when a command does not expose `--json`.
|
|
159
|
-
- Summary in `docs/validation/YYYY-MM-DD-corpus-baseline.md`.
|
|
160
|
-
|
|
161
|
-
### Batch 2: Direct Repair Families
|
|
162
|
-
|
|
163
|
-
- Commands:
|
|
164
|
-
- `scip-query cleanup-plan --json`
|
|
165
|
-
- `scip-query dead --only-dead --json`
|
|
166
|
-
- `scip-query isolated --json`
|
|
167
|
-
- `scip-query unused-params --json`
|
|
168
|
-
- `scip-query redundant-reexports`
|
|
169
|
-
- `scip-query passthrough-candidates --json`
|
|
170
|
-
- `scip-query cycles --json`
|
|
171
|
-
- `scip-query doc-drift --json`
|
|
172
|
-
- Review:
|
|
173
|
-
- Top 10 findings, 5 threshold-edge findings, and 5 false-negative probes where possible.
|
|
174
|
-
- Classify as `tp`, `fp`, `accepted_design`, `needs_judgment`, or `fn`.
|
|
175
|
-
|
|
176
|
-
### Batch 3: Contextual Signal Families
|
|
177
|
-
|
|
178
|
-
- Commands:
|
|
179
|
-
- `scip-query similar --json`
|
|
180
|
-
- `scip-query similar-files --json`
|
|
181
|
-
- `scip-query similar-chains --json`
|
|
182
|
-
- `scip-query similar-signatures --json`
|
|
183
|
-
- `scip-query recent-duplicates --json`
|
|
184
|
-
- `scip-query extract-candidates --json`
|
|
185
|
-
- `scip-query wrapper-candidates --json`
|
|
186
|
-
- `scip-query stale-abstractions --json`
|
|
187
|
-
- `scip-query co-change --json`
|
|
188
|
-
- `scip-query bottlenecks --json`
|
|
189
|
-
- `scip-query coupling --json`
|
|
190
|
-
- `scip-query deep-chains --json`
|
|
191
|
-
- `scip-query drift --json`
|
|
192
|
-
- Review:
|
|
193
|
-
- Separate "true signal" from "direct repair."
|
|
194
|
-
- Record what product or architecture judgment was needed.
|
|
195
|
-
|
|
196
|
-
### Batch 4: Frontend-Specific Families
|
|
197
|
-
|
|
198
|
-
- React corpus: `Vega_2.0`.
|
|
199
|
-
- Vue corpus: `Stable_Management`.
|
|
200
|
-
- Commands:
|
|
201
|
-
- `scip-query react-component-duplicates --full --json`
|
|
202
|
-
- `scip-query react-hook-candidates --full --json`
|
|
203
|
-
- `scip-query react-large-component-pressure --full --json`
|
|
204
|
-
- `scip-query vue-component-duplicates --full --json`
|
|
205
|
-
- `scip-query vue-composable-candidates --full --json`
|
|
206
|
-
- `scip-query vue-large-view-pressure --full --json`
|
|
207
|
-
- Review:
|
|
208
|
-
- Validate whether findings imply component extraction, hook/composable extraction, locality repair, or only investigation.
|
|
209
|
-
|
|
210
|
-
### Batch 5: Evidence Providers and Agent Outcomes
|
|
211
|
-
|
|
212
|
-
- Commands:
|
|
213
|
-
- `scip-query plan-context <target> --full --json`
|
|
214
|
-
- `scip-query change-surface <file> --json`
|
|
215
|
-
- `scip-query affected <symbol> --json`
|
|
216
|
-
- `scip-query refs <symbol> --json`
|
|
217
|
-
- `scip-query imports <file> --json`
|
|
218
|
-
- `scip-query rdeps <file>`
|
|
219
|
-
- `scip-query self-audit --samples 100 --json`
|
|
220
|
-
- Review:
|
|
221
|
-
- Confirm reference accuracy.
|
|
222
|
-
- Pick a small number of analyzer findings and record whether an agent could repair them cleanly.
|
|
223
|
-
|
|
224
|
-
## Verdict Record Template
|
|
225
|
-
|
|
226
|
-
```json
|
|
227
|
-
{
|
|
228
|
-
"ledgerId": "AVL-002",
|
|
229
|
-
"repo": "scip-query",
|
|
230
|
-
"revision": "COMMIT",
|
|
231
|
-
"command": "dead --only-dead --json",
|
|
232
|
-
"findingId": "stable id or pasted summary",
|
|
233
|
-
"location": "src/path/file.ts:10",
|
|
234
|
-
"verdict": "tp | fp | accepted_design | needs_judgment | fn",
|
|
235
|
-
"actionTier": "direct | signal | support",
|
|
236
|
-
"evidence": ["facts that support the verdict"],
|
|
237
|
-
"counterevidence": ["facts that weaken the analyzer claim"],
|
|
238
|
-
"repairOutcome": "not_attempted | improved | churn | bad_abstraction | blocked",
|
|
239
|
-
"precisionAction": "none | parser | root_detection | threshold | score_weight | output_schema | docs | tests",
|
|
240
|
-
"notes": "short reviewer note"
|
|
241
|
-
}
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
## Update Rules
|
|
245
|
-
|
|
246
|
-
When a run batch completes:
|
|
247
|
-
|
|
248
|
-
1. Update the relevant `AVL-*` rows from `ready` or `running` to `complete`, `blocked`, or `deferred`.
|
|
249
|
-
2. Add a dated summary under `docs/validation/` when the result is worth retaining.
|
|
250
|
-
3. Keep raw JSON out of the repo unless it is small and useful as a fixture.
|
|
251
|
-
4. Turn precision actions into implementation issues or a concrete implementation plan.
|
|
252
|
-
5. If a finding changes an action tier or score-weight recommendation, update `docs/analyzer-inventory.md` and `docs/analyzer-validation-protocol.md`.
|
|
253
|
-
|
|
254
|
-
## Initial End-to-End Slice
|
|
255
|
-
|
|
256
|
-
The first concrete run was intentionally narrow:
|
|
257
|
-
|
|
258
|
-
1. Run Batch 1 on `scip-query` and `Stable_Management`.
|
|
259
|
-
2. Run Batch 2 only for `dead`, `unused-params`, `passthrough-candidates`, and `doc-drift`.
|
|
260
|
-
3. Run Batch 3 only for `similar`, `wrapper-candidates`, and `co-change`.
|
|
261
|
-
4. Run Batch 4 only for Vue on `Stable_Management`.
|
|
262
|
-
5. Record at least 30 reviewed verdicts.
|
|
263
|
-
6. Produce one calibration memo that says whether the current direct/signal/support split still holds.
|
|
264
|
-
|
|
265
|
-
That slice tested the ledger, the protocol, the review burden, and the score model before the later completion passes covered the remaining analyzer families.
|
|
266
|
-
|
|
267
|
-
## 2026-06-23 Citation Refresh
|
|
268
|
-
|
|
269
|
-
The maintainability-register completion slice rechecked the ledger's command-surface and diff-gate citations. `queryCommandOrder` remains the canonical public query order, and `orderedQueryCommandDescriptors` is now derived from that list for CLI registration. `diffGate()` still runs the same check families recorded in the ledger; finding construction now goes through a local recorder that derives the suppression hint consistently.
|
|
270
|
-
|
|
271
|
-
## 2026-06-23 Current Sweep Citation Refresh
|
|
272
|
-
|
|
273
|
-
The current maintainability sweep rechecked the `diff-gate.ts` citation again after doc-reference and baseline policy helpers moved into private query modules. The ledger remains accurate because `diffGate()` and `DIFF_GATE_CHECKS` still live in `src/queries/impact/diff-gate.ts`; the baseline policy body remains behind the same entry point, but the repo-wide baseline ratchet is explicit rather than part of default diff-gate execution.
|
|
274
|
-
|
|
275
|
-
## 2026-06-28 Diff-Gate Echo Follow-Up
|
|
276
|
-
|
|
277
|
-
The `diffGate()` citation remains accurate: default diff-gate execution still
|
|
278
|
-
runs echo, incomplete migration, co-change partner, doc-reference,
|
|
279
|
-
unused-params, and new-dead checks through `src/queries/impact/diff-gate.ts`.
|
|
280
|
-
The performance follow-up only skips non-callable changed symbols before echo
|
|
281
|
-
similarity scoring; baseline ratchet behavior and check configuration remain
|
|
282
|
-
unchanged.
|
|
283
|
-
|
|
284
|
-
## 2026-06-28 Health Drift Performance Follow-Up
|
|
285
|
-
|
|
286
|
-
The `src/queries/health/health.ts` reference remains accurate after the health
|
|
287
|
-
drift optimization. Health and the baseline ratchet now ask `drift()` to skip
|
|
288
|
-
advisory `pattern-deviation` rows they already exclude from visible output and
|
|
289
|
-
stable finding identities; the repo-wide health score contract is unchanged.
|
|
290
|
-
|
|
291
|
-
## 2026-06-28 Diff-Gate Co-Change Follow-Up
|
|
292
|
-
|
|
293
|
-
The `diffGate()` citation remains accurate. Default diff-gate still runs the
|
|
294
|
-
same check family; the co-change partner check now uses the raw git changed
|
|
295
|
-
paths when deciding whether a historical partner is already present in the
|
|
296
|
-
diff.
|
|
297
|
-
|
|
298
|
-
## 2026-06-28 Focused Co-Change History Follow-Up
|
|
299
|
-
|
|
300
|
-
The `diffGate()` citation remains accurate after the focused co-change history
|
|
301
|
-
optimization. Default diff-gate still runs the same check family; the
|
|
302
|
-
co-change partner check now reads only changed-file commits from the same
|
|
303
|
-
bounded git-history window instead of parsing the whole name-only history
|
|
304
|
-
payload.
|
|
305
|
-
|
|
306
|
-
## 2026-06-30 Git Evidence Product Follow-Up
|
|
307
|
-
|
|
308
|
-
The `diffGate()` and health citations remain accurate after the Git evidence
|
|
309
|
-
product migration. Default diff-gate still runs the same check family, and
|
|
310
|
-
health still reports the same Git evidence summary; both paths now read Git
|
|
311
|
-
history through `gitEvidenceProduct()`.
|
|
312
|
-
|
|
313
|
-
2026-07-01 round-2 remediation note: the `src/queries/health/health.ts`
|
|
314
|
-
configuration example remains current after the health command added
|
|
315
|
-
validation-basis disclosure and parser-unavailable reporting. The validation
|
|
316
|
-
ledger's health examples still cite the command surface that computes and
|
|
317
|
-
renders those analyzer signals.
|
|
318
|
-
|
|
319
|
-
## 2026-07-01 Remediation Plan 3 Follow-Up
|
|
320
|
-
|
|
321
|
-
The `diffGate()` and health citations remain accurate after remediation plan 3
|
|
322
|
-
(detection primitives). Default diff-gate now also runs `twin-partner`
|
|
323
|
-
(advisory) and `coverage-contract`; `src/runtime/commands/query-command-specs.ts`
|
|
324
|
-
still owns the public query order. Health gained a `coverage-contracts` phase
|
|
325
|
-
and a `detectorPrecision` field (per-check finding-outcome stats from the new
|
|
326
|
-
finding-outcome ledger) — both paths still compute and render through the same
|
|
327
|
-
command surfaces cited above.
|
|
328
|
-
|
|
329
|
-
## 2026-07-08 Rust Semantic Parity Follow-Up
|
|
330
|
-
|
|
331
|
-
The `src/queries/health/health.ts` citation remains accurate after the Rust
|
|
332
|
-
semantic parity slice. Health still owns the composite phase inventory and
|
|
333
|
-
score assembly; the health budget now also carries whether a run should enrich
|
|
334
|
-
detectors with semantic facts. Full/default health keeps semantic enrichment
|
|
335
|
-
enabled, while bounded large-index health records the explicit semantic-off
|
|
336
|
-
budget choice.
|
|
337
|
-
|
|
338
|
-
## 2026-07-02 Doc-Reference Hub-Cascade Follow-Up
|
|
339
|
-
|
|
340
|
-
The `diffGate()` and `DIFF_GATE_CHECKS` citations were refreshed after
|
|
341
|
-
followup #8 added hub-file cascade damping to the doc-reference check: when
|
|
342
|
-
more than 3 docs cite the same changed hub file in one gate run, their
|
|
343
|
-
findings collapse into one clustered finding carrying `citationCount`, up to
|
|
344
|
-
3 `citationExemplars`, and an explicit `suppressedCount`. Slice 23 removed the
|
|
345
|
-
historical line numbers from these source anchors because the exported symbol
|
|
346
|
-
identities are stable while repeated additive checks made the numbers stale.
|
|
347
|
-
The current table names every default check; per-doc findings under the
|
|
348
|
-
threshold are unchanged.
|
|
349
|
-
|
|
350
|
-
## 2026-07-10 TypeScript Dead-Code Certification Follow-Up
|
|
351
|
-
|
|
352
|
-
The direct-repair `dead` row now has a detector-language certificate rather
|
|
353
|
-
than relying on the earlier mixed-family calibration. The pinned four-repo
|
|
354
|
-
baseline produced 25 valid and 53 invalid TypeScript findings. Shared fixes
|
|
355
|
-
made test references count as repository usage, propagated declared package
|
|
356
|
-
surfaces through re-exports, recognized framework entry files, and excluded
|
|
357
|
-
interface, constructor, React lifecycle, and implemented-protocol contracts.
|
|
358
|
-
|
|
359
|
-
The final fixed-seed review contained 43 valid findings and zero invalid
|
|
360
|
-
findings across Vega_2.0, openwork, Stable_Management, and traceroot. Observed
|
|
361
|
-
precision was 100%, the 95% Wilson lower bound was 91.8%, and three positive
|
|
362
|
-
fixtures continued to detect ordinary unreferenced definitions. The retained
|
|
363
|
-
claim is narrowly scoped: TypeScript `dead-code` rows are certified
|
|
364
|
-
repository-dead candidates, while `file-internal`, other detector families,
|
|
365
|
-
Rust, Python, and the aggregate health score retain independent status. The
|
|
366
|
-
full evidence is in
|
|
367
|
-
`docs/validation/2026-07-10-typescript-dead-certification.md`.
|
|
368
|
-
|
|
369
|
-
## 2026-07-23 Architecture Coherence Follow-Up
|
|
370
|
-
|
|
371
|
-
`src/runtime/commands/query-command-specs.ts` remains the canonical public
|
|
372
|
-
query order after adding `architecture` to the graph family. (The file moved to
|
|
373
|
-
`src/runtime/query-commands/` in the 2026-07-24 boundary-resolution pass; the
|
|
374
|
-
public query order itself is unchanged.) The enforcement
|
|
375
|
-
follow-up replaced drift's repository-specific policy with project-owned
|
|
376
|
-
configuration and added stable boundary-pair identities to the shared health
|
|
377
|
-
baseline. The default diff gate now blocks only new configured forbidden edges
|
|
378
|
-
or explicitly forbidden cycles; accepted existing identities remain ratcheted.
|
|
379
|
-
Reciprocal pairs, unmapped files, undeclared edges, and undeclared cycles remain
|
|
380
|
-
contextual signals until external calibration.
|
|
381
|
-
|
|
382
|
-
## 2026-07-24 Boundary Resolution and Coarse-Boundary Detection
|
|
383
|
-
|
|
384
|
-
`architecture` gained a second enforceable rule, `requireResolvedBoundaries`,
|
|
385
|
-
and a corresponding finding class `architecture:coarse-boundary:<boundary>`
|
|
386
|
-
carried through the same health-baseline ratchet as forbidden edges and cycles.
|
|
387
|
-
|
|
388
|
-
The rule exists because `requireAcyclic` had a structural blind spot rather than
|
|
389
|
-
a precision problem. `analyzeArchitectureGraph` discards every dependency whose
|
|
390
|
-
endpoints share a boundary before running SCC, so a boundary coarse enough to
|
|
391
|
-
contain both sides of a cycle passes while asserting nothing about the code it
|
|
392
|
-
holds. This repository was the demonstrating case: 14 declared boundaries with
|
|
393
|
-
`requireAcyclic: true` reported zero cycles while six of them — holding 295 of
|
|
394
|
-
348 files — each contained an internal cycle.
|
|
395
|
-
|
|
396
|
-
**Validation.** The detector was run against the pre-change tree in an isolated
|
|
397
|
-
worktree, using the original 14-boundary configuration. `requireAcyclic`
|
|
398
|
-
reported 0 cycles; `detectCoarseBoundaries` reported exactly the 6 boundaries
|
|
399
|
-
identified by manual analysis (`queries`, `runtime`, `semantic`, `source`,
|
|
400
|
-
`reindex`, `symbols`), and its `narrowestEdges` named the precise imports the
|
|
401
|
-
repair pass then removed. On the repaired tree it reports 0. Both directions are
|
|
402
|
-
covered, so the result is not an artifact of a permanently-firing check.
|
|
403
|
-
|
|
404
|
-
**Precision decision.** Module-hierarchy suppression is content-aware, not
|
|
405
|
-
path-based. `classifyFile` decides "barrel" from the filename, which labels
|
|
406
|
-
every `index.ts` bookkeeping — including `src/language-parsers/index.ts`, a
|
|
407
|
-
130-line cache module that was the _target_ of the narrowest real back edge in
|
|
408
|
-
the repository. A path-based rule therefore produced a false negative on the
|
|
409
|
-
single most important finding. A barrel is now excluded only when the index
|
|
410
|
-
records no definitions of its own inside it.
|
|
411
|
-
|
|
412
|
-
Directory nesting alone is deliberately not a suppression signal. An earlier
|
|
413
|
-
draft suppressed any component whose sub-units shared an ancestor directory,
|
|
414
|
-
which silently hid the `queries` and `semantic` findings — a boundary's root
|
|
415
|
-
files depending on one of its own sub-directories is the most common real
|
|
416
|
-
intra-boundary cycle, not module bookkeeping.
|
|
417
|
-
|
|
418
|
-
**Known limits, not yet calibrated.** Sub-units are one directory level, so a
|
|
419
|
-
layer inversion _inside_ a single directory is invisible; the `src/source`
|
|
420
|
-
primitives/facts/products tangle had to be derived by hand and was fixed by
|
|
421
|
-
splitting the directory. Test files are not SCIP-indexed and are therefore
|
|
422
|
-
outside boundary enforcement entirely. `requireCompletePolicy` checks that a
|
|
423
|
-
dependency row exists, not that it is minimal, so an allowance can outlive the
|
|
424
|
-
edge that justified it.
|
|
425
|
-
|
|
426
|
-
## 2026-07-24 Boundary Enforcement Gap Closure
|
|
427
|
-
|
|
428
|
-
Five rules were added to `architecture` after auditing what boundary
|
|
429
|
-
enforcement still could not see. Each is opt-in and defaults to off, so
|
|
430
|
-
upgrading tightens no existing project's gate.
|
|
431
|
-
|
|
432
|
-
| Rule | Closes | Finding identity |
|
|
433
|
-
| ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
|
|
434
|
-
| `requireMinimalPolicy` | A declared allowance outliving the edge that justified it. `requireCompletePolicy` checks a row _exists_, never that it is _minimal_, so policy widens silently. | `architecture:stale-allowance:<from>:<to>` |
|
|
435
|
-
| `maxBoundaryFanOut` / global `maxBoundaryFiles` / per-boundary `maxFiles` | A boundary growing until it is coupled to most of the system. A local file ceiling overrides the global default only for its reviewed boundary. Coarseness was previously caught only when it _hid a cycle_, never when it merely got large. | `architecture:boundary-limit:<kind>:<boundary>` |
|
|
436
|
-
| `testPaths` | Test files are excluded from the compiler project and therefore from the index, leaving them outside every boundary rule. | `architecture:test-boundary:<test>:<boundary>` |
|
|
437
|
-
| `subUnits: 'file'` | A layer inversion _inside_ one directory, invisible when sub-units are directories. | (reuses `coarse-boundary`) |
|
|
438
|
-
| `fragileEdges` (report-only) | No signal distinguishing a load-bearing dependency from one resting on a single import. 60 of 251 edges here are single-import. | none — advisory |
|
|
439
|
-
|
|
440
|
-
**Test-boundary calibration.** The first rule shape — "a test may import only what
|
|
441
|
-
its subject's boundary may import" — produced 91 findings, nearly all
|
|
442
|
-
legitimate: a test for `analysis/git-history` drives it _through_
|
|
443
|
-
`queries/cleanup/co-change`, which is composition, not coupling. The shipped
|
|
444
|
-
rule allows the subject's **transitive** reach plus any boundary that reaches
|
|
445
|
-
the subject (a consumer is the natural driver). That yields 0 findings here,
|
|
446
|
-
and a planted violation (`source-vue` test importing `reindex-vue`, which is
|
|
447
|
-
unrelated in both directions) is caught. Subject resolution requires the
|
|
448
|
-
mirrored path to be a **real file**: boundary globs match paths that do not
|
|
449
|
-
exist, so trusting them attributed cross-cutting tests to whichever directory
|
|
450
|
-
they sat in and produced 4 false positives.
|
|
451
|
-
|
|
452
|
-
**One audited gap was not real.** "Dynamic `import()` counts as a static edge"
|
|
453
|
-
was measured with `scip-query deps`, which builds its graph with
|
|
454
|
-
`scipEdges: 'all-references'`. `architecture` builds with
|
|
455
|
-
`scipEdges: 'imports-only'`, which never includes dynamic import edges — zero
|
|
456
|
-
boundary edges in this repository are backed by the file whose only
|
|
457
|
-
`query-commands` reference is an `await import()`. The dynamic-import detector
|
|
458
|
-
written against that premise was removed rather than shipped, since it guarded
|
|
459
|
-
a case the code path cannot produce and cost a source scan per file. Recorded
|
|
460
|
-
here because the two graph configurations are easy to conflate when reasoning
|
|
461
|
-
about architecture from `deps` output.
|
|
462
|
-
|
|
463
|
-
## 2026-07-24 Review Remediation (boundary resolution)
|
|
464
|
-
|
|
465
|
-
Seven review findings against the boundary work were resolved. Recorded because
|
|
466
|
-
three changed a decision rather than a line.
|
|
467
|
-
|
|
468
|
-
**The `source` / `language-parsers` split was reverted.** The target
|
|
469
|
-
architecture forbids re-splitting them "merely to force a layer direction," and
|
|
470
|
-
that is exactly what the split did once the underlying cycle was repaired. The
|
|
471
|
-
merged `source` boundary is now internally acyclic and is verified as such by
|
|
472
|
-
`requireResolvedBoundaries`, so the enforcement goal is met without
|
|
473
|
-
contradicting the normative decision. This is the better outcome: the rule and
|
|
474
|
-
the enforcement now agree instead of competing. `docs/architecture/scip-query-target-architecture.md`
|
|
475
|
-
records the 14-boundary configuration as superseded, with current counts.
|
|
476
|
-
|
|
477
|
-
**`subUnits` was unvalidated — the highest-risk defect.** Detection treats every
|
|
478
|
-
value other than `'file'` as directory granularity, so `subUnits: "files"`
|
|
479
|
-
passed validation and silently disabled the same-directory enforcement the
|
|
480
|
-
option exists to turn on. A config option whose typo mode is "quietly do
|
|
481
|
-
nothing" is worse than no option. Now validated as a closed set, with a
|
|
482
|
-
regression test, alongside tests for the growth limits and `testPaths`.
|
|
483
|
-
|
|
484
|
-
**The coarse-boundary identity encoded its members.** The identity is the
|
|
485
|
-
persistent baseline comparison key, so including the current SCC membership
|
|
486
|
-
meant adding one file to a tangle read as the old finding being fixed plus a
|
|
487
|
-
new one appearing — ratchet churn on a problem that never went away. Now keyed
|
|
488
|
-
by boundary alone.
|
|
489
|
-
|
|
490
|
-
**Plan step B1.6 was completed rather than abandoned.** The plan called for
|
|
491
|
-
moving the baseline checks into `queries/internal`; the literal move is
|
|
492
|
-
impossible, because `checkHealthBaseline` runs every health detector and would
|
|
493
|
-
create `internal -> cleanup` against the existing `cleanup -> internal`. The
|
|
494
|
-
shared parts — file format, path resolution, identity normalization, and the
|
|
495
|
-
new-versus-fixed comparison — moved to `queries/internal/baseline-file.ts`, and
|
|
496
|
-
`checkArchitectureBaseline` moved to `queries/graph/architecture-baseline.ts`
|
|
497
|
-
beside the report it reads. `checkHealthBaseline` stays in health because
|
|
498
|
-
collecting findings is intrinsically a detector-layer concern. The relocation
|
|
499
|
-
immediately produced the `requireMinimalPolicy` rule's first real finding: a
|
|
500
|
-
`queries-health -> symbols-core` allowance left stale by the moved import.
|
|
501
|
-
|
|
502
|
-
**Two smaller corrections.** `detectCoarseBoundaries` defaulted its classifier
|
|
503
|
-
to `() => false`, so a direct caller reported barrel and entry bookkeeping; it
|
|
504
|
-
now defaults to the path-based `classifyFile` test, with `architecture(db)`
|
|
505
|
-
still overriding it with the content-aware version. And the report described a
|
|
506
|
-
single-import edge as "incidental rather than load-bearing" — the graph
|
|
507
|
-
establishes edge breadth, not importance, so it now reports the measurement and
|
|
508
|
-
says explicitly that breadth alone settles nothing.
|
|
509
|
-
|
|
510
|
-
## 2026-07-26 Diff-Gate Progress Follow-Up
|
|
511
|
-
|
|
512
|
-
The change-time gate and check-list citations remain accurate. Progress
|
|
513
|
-
instrumentation does not add, remove, or reorder any `DIFF_GATE_CHECKS` entry:
|
|
514
|
-
`diffGate()` emits process-local start and completion notifications around
|
|
515
|
-
each check, while isolated CLI execution turns those notifications into
|
|
516
|
-
diagnostic progress and active-detector timeout evidence.
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://unpkg.com/scip-query/docs/schemas/outcome-event-record.schema.json",
|
|
4
|
-
"title": "scip-query outcome event record v1",
|
|
5
|
-
"description": "One immutable repository-owned finding transition stored under .scipquery/events/.",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"required": ["kind", "schemaVersion", "eventIdentity", "writer", "ts", "check", "findingId", "event", "commit"],
|
|
8
|
-
"properties": {
|
|
9
|
-
"kind": { "const": "scip-query-outcome-event" },
|
|
10
|
-
"schemaVersion": { "const": 1 },
|
|
11
|
-
"eventIdentity": { "type": "string", "minLength": 1 },
|
|
12
|
-
"writer": {
|
|
13
|
-
"type": "object",
|
|
14
|
-
"required": ["tool", "version"],
|
|
15
|
-
"properties": {
|
|
16
|
-
"tool": { "const": "scip-query" },
|
|
17
|
-
"version": { "type": "string", "minLength": 1 }
|
|
18
|
-
},
|
|
19
|
-
"additionalProperties": true
|
|
20
|
-
},
|
|
21
|
-
"ts": { "type": "number" },
|
|
22
|
-
"check": { "type": "string", "minLength": 1 },
|
|
23
|
-
"findingId": { "type": "string", "minLength": 1 },
|
|
24
|
-
"event": { "enum": ["caught", "resolved", "suppressed", "reopened"] },
|
|
25
|
-
"commit": {
|
|
26
|
-
"oneOf": [{ "type": "string" }, { "type": "null" }]
|
|
27
|
-
},
|
|
28
|
-
"comparisonBaseCommit": { "type": "string" },
|
|
29
|
-
"verifiedAgainstCommit": { "type": "string" },
|
|
30
|
-
"symbol": { "type": "string" },
|
|
31
|
-
"gateRunId": { "type": "string", "minLength": 1, "maxLength": 256 },
|
|
32
|
-
"observer": {
|
|
33
|
-
"type": "object",
|
|
34
|
-
"required": ["kind", "authority"],
|
|
35
|
-
"properties": {
|
|
36
|
-
"kind": { "enum": ["local-agent", "local-human", "protected-ci"] },
|
|
37
|
-
"authority": { "enum": ["repository-writable", "protected-external"] },
|
|
38
|
-
"source": { "type": "string", "minLength": 1, "maxLength": 256 }
|
|
39
|
-
},
|
|
40
|
-
"allOf": [
|
|
41
|
-
{
|
|
42
|
-
"if": { "properties": { "authority": { "const": "protected-external" } }, "required": ["authority"] },
|
|
43
|
-
"then": { "properties": { "kind": { "const": "protected-ci" } } }
|
|
44
|
-
}
|
|
45
|
-
],
|
|
46
|
-
"additionalProperties": true
|
|
47
|
-
},
|
|
48
|
-
"observation": {
|
|
49
|
-
"type": "object",
|
|
50
|
-
"required": ["schemaVersion", "authorityKind", "observedAt", "projectIdentity"],
|
|
51
|
-
"properties": {
|
|
52
|
-
"schemaVersion": { "const": 1 },
|
|
53
|
-
"authorityKind": {
|
|
54
|
-
"enum": ["index-worktree", "index-only", "worktree-only", "process-local"]
|
|
55
|
-
},
|
|
56
|
-
"observedAt": { "type": "string", "format": "date-time" },
|
|
57
|
-
"projectIdentity": { "type": "string", "minLength": 1 },
|
|
58
|
-
"index": {
|
|
59
|
-
"type": "object",
|
|
60
|
-
"required": ["generationIdentity", "source", "alignment"],
|
|
61
|
-
"properties": {
|
|
62
|
-
"generationIdentity": { "type": "string", "minLength": 1 },
|
|
63
|
-
"source": { "enum": ["immutable", "legacy"] },
|
|
64
|
-
"alignment": { "enum": ["not-certified", "leased"] }
|
|
65
|
-
},
|
|
66
|
-
"additionalProperties": true
|
|
67
|
-
},
|
|
68
|
-
"worktree": {
|
|
69
|
-
"type": "object",
|
|
70
|
-
"required": ["identity", "clean"],
|
|
71
|
-
"properties": {
|
|
72
|
-
"identity": { "type": "string", "minLength": 1 },
|
|
73
|
-
"clean": { "type": "boolean" },
|
|
74
|
-
"headCommit": { "type": "string", "minLength": 1 },
|
|
75
|
-
"treeOid": { "type": "string", "minLength": 1 }
|
|
76
|
-
},
|
|
77
|
-
"additionalProperties": true
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
"additionalProperties": true
|
|
81
|
-
},
|
|
82
|
-
"suppressionPolicyVersion": { "type": "integer", "minimum": 1 }
|
|
83
|
-
},
|
|
84
|
-
"allOf": [
|
|
85
|
-
{
|
|
86
|
-
"if": { "required": ["verifiedAgainstCommit"] },
|
|
87
|
-
"then": { "properties": { "event": { "const": "resolved" } } }
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
"if": { "required": ["suppressionPolicyVersion"] },
|
|
91
|
-
"then": { "properties": { "event": { "const": "suppressed" } } }
|
|
92
|
-
}
|
|
93
|
-
],
|
|
94
|
-
"additionalProperties": true
|
|
95
|
-
}
|