scip-query 0.23.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +491 -2
- package/README.md +111 -122
- package/dist/augment-vue-worker.js +1 -1
- package/dist/by-kind-PRVFAGTQ.js +2 -0
- package/dist/call-graph-DVPAQV2F.js +2 -0
- package/dist/call-graph-evidence-CUtj8V2I.d.ts +19 -0
- package/dist/chunk-2FSBGL5P.js +2 -0
- package/dist/chunk-2HLAFUCY.js +2 -0
- package/dist/chunk-2IWUT6CJ.js +3 -0
- package/dist/chunk-2KNN7GTQ.js +2 -0
- package/dist/chunk-2LHXRE2B.js +8 -0
- package/dist/{chunk-EG2CPZMJ.js → chunk-2YXE77TJ.js} +2 -2
- package/dist/chunk-36SGVCGX.js +2 -0
- package/dist/chunk-3ABBFPTP.js +2 -0
- package/dist/chunk-3IVFU4FD.js +3 -0
- package/dist/chunk-3JIQS44J.js +7 -0
- package/dist/chunk-3ZRB6DNK.js +7 -0
- package/dist/{chunk-6YTSKJJ3.js → chunk-42EOW5VI.js} +1 -1
- package/dist/{chunk-6I6L7Z62.js → chunk-4BHGBMNO.js} +2 -2
- package/dist/chunk-4BP3UBDG.js +2 -0
- package/dist/chunk-4D6RO7G4.js +2 -0
- package/dist/chunk-4FEWQ6RH.js +2 -0
- package/dist/chunk-4IGEOBG7.js +2 -0
- package/dist/chunk-4QZXBUKC.js +2 -0
- package/dist/chunk-4WBDEVX2.js +4 -0
- package/dist/chunk-4WCUBZU3.js +8 -0
- package/dist/chunk-4WTUBQ36.js +40 -0
- package/dist/chunk-4XQ4O6IM.js +3 -0
- package/dist/chunk-55UQAMZO.js +4 -0
- package/dist/chunk-5D2LVK7O.js +125 -0
- package/dist/chunk-5IYJ56TT.js +2 -0
- package/dist/chunk-5PLMJC7Q.js +2 -0
- package/dist/chunk-5TNQJUR2.js +5 -0
- package/dist/chunk-62BDNPMI.js +2 -0
- package/dist/chunk-64DZ5TXR.js +7 -0
- package/dist/chunk-65245JCM.js +2 -0
- package/dist/chunk-6FFVZZL4.js +2 -0
- package/dist/chunk-6KO5JHAR.js +2 -0
- package/dist/chunk-6LRXOOSX.js +2 -0
- package/dist/chunk-6LSEIIF7.js +2 -0
- package/dist/chunk-6YMNWD3H.js +6 -0
- package/dist/chunk-72AD6ZRR.js +5 -0
- package/dist/chunk-73AAKPUC.js +4 -0
- package/dist/chunk-76CZ77DF.js +2 -0
- package/dist/chunk-7VPEEAAG.js +2 -0
- package/dist/chunk-7WTPQ4NX.js +14 -0
- package/dist/chunk-7Y5T6XDP.js +2 -0
- package/dist/chunk-A2IIGFMJ.js +5 -0
- package/dist/chunk-AB5KCTEV.js +2 -0
- package/dist/chunk-AC566WBP.js +6 -0
- package/dist/chunk-AGWFSTXC.js +3 -0
- package/dist/chunk-AOSIYPTA.js +2 -0
- package/dist/chunk-AUVEWPIF.js +2 -0
- package/dist/chunk-B56T42J3.js +25 -0
- package/dist/chunk-BIQEF5NE.js +2 -0
- package/dist/chunk-BL6XJKTA.js +3 -0
- package/dist/chunk-BMKOQJRI.js +2 -0
- package/dist/chunk-BOZ4EXBB.js +3 -0
- package/dist/chunk-BUTWYEPH.js +2 -0
- package/dist/chunk-BZB4QPIP.js +2 -0
- package/dist/{chunk-ILTDAWEF.js → chunk-CE357GEE.js} +4 -4
- package/dist/chunk-CFN45HFP.js +2 -0
- package/dist/chunk-CFYMZFXT.js +368 -0
- package/dist/chunk-CN5EH7O3.js +2 -0
- package/dist/chunk-D254DNNQ.js +4 -0
- package/dist/chunk-D3FDISIC.js +2 -0
- package/dist/chunk-D3NX5XIE.js +3 -0
- package/dist/chunk-DA7RPPDF.js +3 -0
- package/dist/chunk-DDMC3FON.js +3 -0
- package/dist/chunk-DIO3FUSG.js +2 -0
- package/dist/chunk-DJ2NNSUK.js +3 -0
- package/dist/chunk-DKYQIM3C.js +18 -0
- package/dist/{chunk-JTQVMR42.js → chunk-DOOEL2IV.js} +2 -2
- package/dist/chunk-DVFP6PZI.js +2 -0
- package/dist/chunk-E3FDPXZK.js +2 -0
- package/dist/chunk-E7YNJLCB.js +2 -0
- package/dist/chunk-EFGW5JPH.js +2 -0
- package/dist/chunk-EJVTR244.js +13 -0
- package/dist/chunk-EOV7RTRZ.js +2 -0
- package/dist/chunk-ETOIKRHO.js +2 -0
- package/dist/chunk-EYK3ZAO2.js +3 -0
- package/dist/chunk-F2V2LPET.js +52 -0
- package/dist/chunk-F4LUHJTF.js +2 -0
- package/dist/chunk-F4PUT6IT.js +2 -0
- package/dist/chunk-F56GCXXS.js +5 -0
- package/dist/chunk-FC2EVQRM.js +2 -0
- package/dist/chunk-FL7NBMHP.js +3 -0
- package/dist/chunk-FMRN2TRL.js +3 -0
- package/dist/chunk-FVULPZDF.js +20 -0
- package/dist/chunk-GCKCF5FL.js +43 -0
- package/dist/chunk-GH2PYF46.js +2 -0
- package/dist/chunk-GHJAGXIP.js +2 -0
- package/dist/{chunk-WIWY3CRX.js → chunk-GMVSHUKZ.js} +2 -2
- package/dist/chunk-GS6KDO4R.js +2 -0
- package/dist/chunk-GUUBXNN7.js +2 -0
- package/dist/chunk-GVWX5T43.js +80 -0
- package/dist/chunk-GZKFETP5.js +2 -0
- package/dist/chunk-H4EQHO6J.js +9 -0
- package/dist/chunk-H73WY2RM.js +2 -0
- package/dist/chunk-H75GSPRV.js +60 -0
- package/dist/chunk-HDR3AHSV.js +61 -0
- package/dist/chunk-HQBSL74Y.js +2 -0
- package/dist/chunk-HRRFKWPZ.js +2 -0
- package/dist/chunk-HXENDJC6.js +2 -0
- package/dist/chunk-IIBAZNSW.js +21 -0
- package/dist/chunk-INLMWEUU.js +12 -0
- package/dist/chunk-IWQPAF4F.js +2 -0
- package/dist/chunk-IZJ6YUKP.js +35 -0
- package/dist/chunk-J2TMAIN5.js +60 -0
- package/dist/chunk-J5FJMODQ.js +142 -0
- package/dist/chunk-J7HZPIO3.js +2 -0
- package/dist/chunk-JEVRKFRL.js +2 -0
- package/dist/chunk-JFXSGAEB.js +30 -0
- package/dist/chunk-JVRTHGFS.js +3 -0
- package/dist/chunk-JYWEX7RR.js +360 -0
- package/dist/chunk-K3YL22N6.js +2 -0
- package/dist/chunk-K4CN7GXK.js +12 -0
- package/dist/chunk-K5TBVXU4.js +30 -0
- package/dist/chunk-KDDIE2DP.js +9 -0
- package/dist/chunk-KHWRRPV4.js +2 -0
- package/dist/chunk-KI6NBKDY.js +14 -0
- package/dist/chunk-KU3QRSTH.js +2 -0
- package/dist/chunk-KZBJWZJB.js +2 -0
- package/dist/chunk-L7GFM3NP.js +3 -0
- package/dist/chunk-LMO6PK3V.js +35 -0
- package/dist/chunk-LN4YXJJU.js +2 -0
- package/dist/chunk-LOVIZBJ4.js +43 -0
- package/dist/chunk-LPCRK4A2.js +11 -0
- package/dist/chunk-MMHZKBFA.js +2 -0
- package/dist/{chunk-M2O5NY6W.js → chunk-MOQQBQRD.js} +2 -2
- package/dist/chunk-N2WN6I3L.js +2 -0
- package/dist/chunk-N3ORQT7L.js +2 -0
- package/dist/chunk-NAZ3RAIW.js +2 -0
- package/dist/chunk-NDUNO5JQ.js +2 -0
- package/dist/chunk-NEIWRNAZ.js +4 -0
- package/dist/chunk-NJJMVD65.js +2 -0
- package/dist/chunk-NLOQOBXI.js +20 -0
- package/dist/chunk-NOLZOVCU.js +2 -0
- package/dist/chunk-NOWINRRN.js +2 -0
- package/dist/chunk-NZAXKGRL.js +16 -0
- package/dist/chunk-O2C4UILI.js +2 -0
- package/dist/chunk-O3RHA6ZT.js +3 -0
- package/dist/chunk-O4UZSPPI.js +3 -0
- package/dist/chunk-OGFV2BUX.js +2 -0
- package/dist/chunk-OZCJXZK6.js +499 -0
- package/dist/chunk-P6ODM7BY.js +2 -0
- package/dist/{chunk-XBGWL66K.js → chunk-PAVGPRHJ.js} +2 -2
- package/dist/chunk-PH52RA7D.js +2 -0
- package/dist/chunk-PKN354TH.js +3 -0
- package/dist/chunk-PWOASWEG.js +11 -0
- package/dist/chunk-QIWXRW72.js +2 -0
- package/dist/chunk-QJRMOK5N.js +2 -0
- package/dist/{chunk-YXPUP5G2.js → chunk-QOIXNWQR.js} +2 -2
- package/dist/chunk-QXEUDXBT.js +3 -0
- package/dist/chunk-QYUVVBMR.js +6 -0
- package/dist/chunk-QZ7KQZRN.js +2 -0
- package/dist/chunk-R6LQBUDH.js +2 -0
- package/dist/chunk-RBS42E55.js +20 -0
- package/dist/chunk-RSJKPCFX.js +26 -0
- package/dist/chunk-S6CZA3MV.js +2 -0
- package/dist/chunk-STMVAHJP.js +2 -0
- package/dist/chunk-SYVPTTVW.js +2 -0
- package/dist/chunk-T3I6NHBH.js +2 -0
- package/dist/chunk-T6DK3ZP7.js +2 -0
- package/dist/chunk-TKD34PHN.js +4 -0
- package/dist/chunk-TNNQFH7W.js +2 -0
- package/dist/chunk-TNV7SSUF.js +2 -0
- package/dist/chunk-TO7ZR3EH.js +8 -0
- package/dist/chunk-TOU3CHK4.js +2 -0
- package/dist/chunk-TRBI4UKT.js +2 -0
- package/dist/chunk-TZCVNCAN.js +4 -0
- package/dist/chunk-U4LZA5LL.js +3 -0
- package/dist/chunk-U5RIG3JP.js +3 -0
- package/dist/chunk-UP5KXN2I.js +2 -0
- package/dist/chunk-UQFR3NDH.js +5 -0
- package/dist/chunk-UXYXF7GV.js +2 -0
- package/dist/chunk-VB3GOKOS.js +2 -0
- package/dist/chunk-VF5JZICY.js +2 -0
- package/dist/chunk-VTY3VK6E.js +2 -0
- package/dist/chunk-VX2O4RIS.js +2 -0
- package/dist/chunk-WKPV2TDZ.js +2 -0
- package/dist/chunk-WOFQ5DTB.js +2 -0
- package/dist/chunk-WS4C6TCK.js +2 -0
- package/dist/chunk-WXU3DGPU.js +2 -0
- package/dist/chunk-X6RMKHJQ.js +81 -0
- package/dist/{chunk-4ILJCCXV.js → chunk-XHMN6ZX7.js} +2 -2
- package/dist/chunk-XHTVFLWW.js +2 -0
- package/dist/chunk-XKIDJCIK.js +2 -0
- package/dist/chunk-XTYTYZPT.js +2 -0
- package/dist/chunk-Y2JHHTTA.js +2 -0
- package/dist/chunk-YGVRMGYN.js +4 -0
- package/dist/chunk-YNQCGEQE.js +2 -0
- package/dist/chunk-YOQVEXVE.js +14 -0
- package/dist/chunk-YRT2WLYY.js +2 -0
- package/dist/chunk-YTAP5Y2G.js +2 -0
- package/dist/chunk-YTYWI7VB.js +2 -0
- package/dist/chunk-YULZRALL.js +2 -0
- package/dist/chunk-Z33WQG4Q.js +2 -0
- package/dist/chunk-ZGTYGDMF.js +16 -0
- package/dist/chunk-ZHMRSZFD.js +43 -0
- package/dist/chunk-ZHSP366W.js +10 -0
- package/dist/chunk-ZIBYCYKK.js +7 -0
- package/dist/{chunk-GAS2LJMP.js → chunk-ZLADLUE6.js} +3 -3
- package/dist/chunk-ZO4YXUT6.js +4 -0
- package/dist/{chunk-HYO3NP5Q.js → chunk-ZR4HBC2H.js} +2 -2
- package/dist/cli-main.js +6 -6
- package/dist/cli.js +1 -1
- package/dist/{code-B17qEMbt.d.ts → code-BNyrCF3_.d.ts} +3 -2
- package/dist/code-IL5WH3NZ.js +2 -0
- package/dist/code-result-json-ANTBEDFP.js +4 -0
- package/dist/command-descriptors-HEEMDHTU.js +222 -0
- package/dist/deps-EOWFC6FD.js +2 -0
- package/dist/direct-navigation-Y5B6OSIQ.js +3 -0
- package/dist/{exploration-topology-BG4v30HZ.d.ts → exploration-topology-CSgEyAz-.d.ts} +3 -1
- package/dist/files-K4AI3JUM.js +2 -0
- package/dist/frontend-profile-roles-D7eCum8P.d.ts +10 -0
- package/dist/{health-CPp2Jf1Z.d.ts → health-BtfmNrfa.d.ts} +58 -74
- package/dist/hierarchy-6W5NDIFI.js +2 -0
- package/dist/imports-WH365QY4.js +2 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.js +1 -1
- package/dist/members-K3PHMF5S.js +2 -0
- package/dist/methods-E7KVMBX4.js +2 -0
- package/dist/output-continuation-command-BJSY67SN.js +3 -0
- package/dist/output-pagination-UZJ5ACIX.js +24 -0
- package/dist/postinstall.js +1 -1
- package/dist/project-reindex-EP24WT4X.js +3 -0
- package/dist/queries/affected.js +1 -1
- package/dist/queries/architecture.d.ts +15 -4
- package/dist/queries/architecture.js +1 -1
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.d.ts +3 -1
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.d.ts +1 -0
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.d.ts +3 -3
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.d.ts +20 -2
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.d.ts +1 -1
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity.d.ts +6 -3
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/context.d.ts +1 -7
- package/dist/queries/context.js +1 -1
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dead.d.ts +2 -0
- package/dist/queries/dead.js +1 -1
- package/dist/queries/decorative-checkers.js +1 -1
- package/dist/queries/dependence-slice.d.ts +46 -22
- package/dist/queries/dependence-slice.js +1 -1
- package/dist/queries/dependency-depth.d.ts +1 -7
- package/dist/queries/dependency-depth.js +1 -1
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-impact.d.ts +3 -1
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +1 -1
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +29 -2
- package/dist/queries/duplicate-bodies.js +1 -1
- package/dist/queries/entry-map.d.ts +2 -4
- package/dist/queries/entry-map.js +1 -1
- package/dist/queries/evidence.d.ts +121 -61
- package/dist/queries/evidence.js +1 -1
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.d.ts +1 -1
- package/dist/queries/health.js +1 -1
- package/dist/queries/hierarchy.d.ts +2 -2
- package/dist/queries/hierarchy.js +1 -1
- package/dist/queries/hotspots.d.ts +1 -1
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.d.ts +1 -0
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.d.ts +3 -3
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +17 -65
- package/dist/queries/index.js +1 -1
- package/dist/queries/locality-candidates.d.ts +4 -4
- 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.js +1 -1
- package/dist/queries/not-implemented.d.ts +2 -6
- package/dist/queries/not-implemented.js +1 -1
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.d.ts +9 -1
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/react-component-duplicates.d.ts +19 -3
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +22 -3
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.d.ts +17 -3
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.d.ts +4 -14
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/refs.d.ts +4 -1
- package/dist/queries/refs.js +1 -1
- package/dist/queries/review.d.ts +188 -0
- package/dist/queries/review.js +2 -0
- package/dist/queries/similar-files.d.ts +7 -10
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +19 -1
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice-cohesion.d.ts +205 -0
- package/dist/queries/slice-cohesion.js +2 -0
- package/dist/queries/source-inspection.d.ts +6 -202
- package/dist/queries/source-inspection.js +1 -1
- package/dist/queries/source-search.d.ts +2 -3
- package/dist/queries/source-search.js +1 -1
- package/dist/queries/stats.d.ts +1 -0
- package/dist/queries/stats.js +1 -1
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system.d.ts +4 -2
- package/dist/queries/system.js +1 -1
- package/dist/queries/test-quality.d.ts +1 -1
- package/dist/queries/test-quality.js +1 -1
- package/dist/queries/twin-drift.d.ts +23 -7
- package/dist/queries/twin-drift.js +1 -1
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.d.ts +3 -15
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/query-service-fastpath.js +5 -5
- package/dist/query-service-server.js +4 -4
- package/dist/refs-CCBJG7WK.js +2 -0
- package/dist/refs-pagination-DRNLVU4S.js +2 -0
- package/dist/reindex-worker.js +79 -29
- package/dist/reindex.js +45 -45
- package/dist/repository-cache-worker.js +2 -0
- package/dist/runtime.d.ts +8 -8
- package/dist/runtime.js +3 -4
- 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/service-queries-2WAJI7R6.js +6 -0
- package/dist/source-inspection-91U9zdO3.d.ts +341 -0
- package/dist/{source-search-types-Dwz8KeuW.d.ts → source-search-types-DWGYNg8M.d.ts} +15 -2
- package/dist/stats-G7DIV6VU.js +2 -0
- package/dist/surface-IO55UALI.js +2 -0
- package/dist/system-ZBMSHJXU.js +2 -0
- package/dist/{queries/trace.d.ts → trace-BMjw3prn.d.ts} +1 -18
- package/dist/typescript-indexer.js +2 -0
- package/dist/typescript-mailbox-worker.js +1 -1
- package/dist/watch-server.js +3 -3
- package/docs/AGENT_GUIDE.md +19 -128
- package/docs/CLI_JSON_OUTPUT.md +21 -17
- package/docs/COMMAND_REFERENCE.md +34 -49
- package/docs/CURRENT_COMMANDS.md +123 -0
- package/docs/DETECTOR_EVIDENCE_CONTRACTS.md +0 -40
- package/docs/DETECTOR_GUIDE.md +55 -12
- package/docs/PRODUCT_VISION.md +135 -0
- package/docs/PROPERTY_TESTING.md +73 -0
- package/docs/REVIEW.md +76 -0
- package/docs/SKILLS.md +51 -0
- package/docs/WINDOWS_SIDECAR_RELEASE.md +12 -3
- package/docs/accuracy-audit-checklist.md +70 -13
- package/docs/analyzer-inventory.md +2 -2
- package/docs/locality-analyzer-design.md +9 -9
- package/package.json +18 -80
- package/scripts/evidence-product-contract.mjs +7 -3
- package/scripts/record-review-coverage.mjs +118 -0
- package/scripts/scip-windows-provenance.mjs +29 -19
- package/skills/scip-architecture-review/SKILL.md +57 -0
- package/skills/scip-architecture-review/agents/openai.yaml +4 -0
- package/skills/scip-architecture-review/references/design-checks.md +17 -0
- package/skills/scip-explore/SKILL.md +15 -59
- package/skills/scip-explore/agents/openai.yaml +3 -3
- package/skills/scip-explore/references/external-evidence.md +2 -2
- package/skills/scip-explore/references/information-model.md +26 -29
- package/skills/scip-explore/scripts/capture-evidence.mjs +68 -34
- package/skills/scip-integrity-audit/SKILL.md +53 -181
- package/skills/scip-integrity-audit/agents/openai.yaml +3 -3
- package/skills/scip-integrity-audit/references/integrity-probes.md +27 -0
- package/skills/scip-plan/SKILL.md +39 -65
- package/skills/scip-plan/agents/openai.yaml +2 -2
- package/skills/scip-query/SKILL.md +28 -81
- package/skills/scip-query/agents/openai.yaml +2 -2
- package/skills/scip-query/references/command-guide.md +169 -0
- package/skills/scip-setup/SKILL.md +4 -2
- package/skills/scip-setup/agents/openai.yaml +3 -3
- package/dist/by-kind-XI2CSWEY.js +0 -2
- package/dist/call-graph-UONR6JR5.js +0 -2
- package/dist/call-graph-evidence-lZa2dwQA.d.ts +0 -11
- package/dist/chunk-26CT72HM.js +0 -2
- package/dist/chunk-2E7CX53V.js +0 -2
- package/dist/chunk-2GRUZAQF.js +0 -43
- package/dist/chunk-2LDBDR6J.js +0 -29
- package/dist/chunk-2OOY75BW.js +0 -2
- package/dist/chunk-2R3V3PSD.js +0 -4
- package/dist/chunk-2WC2OEDO.js +0 -4
- package/dist/chunk-35NLDRZC.js +0 -2
- package/dist/chunk-3AF4TUFK.js +0 -3
- package/dist/chunk-3D3QG236.js +0 -2
- package/dist/chunk-3FHOF22C.js +0 -21
- package/dist/chunk-3JKSW6LJ.js +0 -2
- package/dist/chunk-3L2ZBPEX.js +0 -133
- package/dist/chunk-3PJABJSU.js +0 -2
- package/dist/chunk-3SVF22I5.js +0 -2
- package/dist/chunk-3WR4E3A3.js +0 -3
- package/dist/chunk-4FTZ4P5G.js +0 -2
- package/dist/chunk-4UX2F3JX.js +0 -2
- package/dist/chunk-4WNW27SX.js +0 -2
- package/dist/chunk-5ENOG4VP.js +0 -61
- package/dist/chunk-64BFSI5I.js +0 -2
- package/dist/chunk-66DVSJQG.js +0 -455
- package/dist/chunk-6HFCYNYE.js +0 -9
- package/dist/chunk-6PQNKL3G.js +0 -3
- package/dist/chunk-6V5CNXL6.js +0 -2
- package/dist/chunk-6VVV4WRR.js +0 -4
- package/dist/chunk-7BWFZPPZ.js +0 -2
- package/dist/chunk-7CYG22FH.js +0 -2
- package/dist/chunk-7F45LJKI.js +0 -2
- package/dist/chunk-7IWV2EG3.js +0 -3
- package/dist/chunk-7KCZELVM.js +0 -2
- package/dist/chunk-AFHTBORT.js +0 -2
- package/dist/chunk-AVRYW5OZ.js +0 -2
- package/dist/chunk-B3X6KU75.js +0 -2
- package/dist/chunk-B5D7QPBE.js +0 -4
- package/dist/chunk-BBCIS4DX.js +0 -16
- package/dist/chunk-BDUVI7TO.js +0 -3
- package/dist/chunk-BE7ZZTMC.js +0 -2
- package/dist/chunk-BHVUJOCQ.js +0 -3
- package/dist/chunk-BJT7LSPK.js +0 -3
- package/dist/chunk-BKVWUP7Y.js +0 -2
- package/dist/chunk-BQGB4HBD.js +0 -2
- package/dist/chunk-BRV7PIFF.js +0 -2
- package/dist/chunk-CEEZJXEF.js +0 -2
- package/dist/chunk-CIYLO6SI.js +0 -7
- package/dist/chunk-CJZXN4NU.js +0 -2
- package/dist/chunk-CNO7TOKL.js +0 -2
- package/dist/chunk-COF23M5F.js +0 -2
- package/dist/chunk-CWFP7GM5.js +0 -2
- package/dist/chunk-D2DHWI3D.js +0 -2
- package/dist/chunk-D4N5SQ2M.js +0 -4
- package/dist/chunk-DBRSYFXR.js +0 -2
- package/dist/chunk-DHUIOLDT.js +0 -2
- package/dist/chunk-DIRJWYBM.js +0 -6
- package/dist/chunk-DIUFNHRJ.js +0 -35
- package/dist/chunk-DRENNWRG.js +0 -2
- package/dist/chunk-DTZCKZEU.js +0 -4
- package/dist/chunk-DULC3QFP.js +0 -5
- package/dist/chunk-DYGHBZ2N.js +0 -16
- package/dist/chunk-E5R6AQ73.js +0 -40
- package/dist/chunk-E73UNJTF.js +0 -38
- package/dist/chunk-EKV5HX33.js +0 -2
- package/dist/chunk-EQHFIL6T.js +0 -3
- package/dist/chunk-ESIQ66Z7.js +0 -2
- package/dist/chunk-EVFUMY4R.js +0 -3
- package/dist/chunk-F7DY272B.js +0 -2
- package/dist/chunk-FBN2FGXG.js +0 -2
- package/dist/chunk-FDLOBR6P.js +0 -4
- package/dist/chunk-FESCRNVV.js +0 -5
- package/dist/chunk-FFRKR4EQ.js +0 -2
- package/dist/chunk-FGA2U4OR.js +0 -8
- package/dist/chunk-FIQRSHVM.js +0 -2
- package/dist/chunk-FPYLNQPT.js +0 -2
- package/dist/chunk-FRUSVINH.js +0 -2
- package/dist/chunk-GSP44ENC.js +0 -2
- package/dist/chunk-GUFSG5TX.js +0 -2
- package/dist/chunk-GYIZ4NXB.js +0 -2
- package/dist/chunk-GZIUDL6G.js +0 -2
- package/dist/chunk-H5EXS3HM.js +0 -2
- package/dist/chunk-HCXEQRFF.js +0 -18
- package/dist/chunk-HEHOQQKH.js +0 -2
- package/dist/chunk-HKGFPJ4T.js +0 -4
- package/dist/chunk-HLZTEXRA.js +0 -2
- package/dist/chunk-HOENASQM.js +0 -3
- package/dist/chunk-HVF5VBG6.js +0 -2
- package/dist/chunk-I55I7XXP.js +0 -2
- package/dist/chunk-IDFEUFKS.js +0 -2
- package/dist/chunk-IHGQTTVW.js +0 -2
- package/dist/chunk-IICPE7B2.js +0 -20
- package/dist/chunk-IL676XCC.js +0 -18
- package/dist/chunk-IW5XQG5G.js +0 -2
- package/dist/chunk-IZDPJ2QI.js +0 -2
- package/dist/chunk-J66VOFW6.js +0 -5
- package/dist/chunk-JFMEXGFE.js +0 -2
- package/dist/chunk-JGKUET5J.js +0 -3
- package/dist/chunk-JS4PGXMV.js +0 -3
- package/dist/chunk-JWTGMPIT.js +0 -80
- package/dist/chunk-JYR66JN5.js +0 -5
- package/dist/chunk-KFOYCQAJ.js +0 -9
- package/dist/chunk-KLFEXGQA.js +0 -2
- package/dist/chunk-KMVGRIO2.js +0 -2
- package/dist/chunk-KYSDI3GE.js +0 -5
- package/dist/chunk-L6PJPETJ.js +0 -29
- package/dist/chunk-LDVT66YM.js +0 -2
- package/dist/chunk-LEECKFCJ.js +0 -2
- package/dist/chunk-LMZ5PRUV.js +0 -2
- package/dist/chunk-LQRQN2XA.js +0 -2
- package/dist/chunk-LXABEJX3.js +0 -2
- package/dist/chunk-MNV5FSBW.js +0 -3
- package/dist/chunk-MPQ4OTBM.js +0 -2
- package/dist/chunk-MTDBHTSF.js +0 -2
- package/dist/chunk-MV3CDXPI.js +0 -38
- package/dist/chunk-MWN53KRN.js +0 -60
- package/dist/chunk-MXNGIEPU.js +0 -3
- package/dist/chunk-N2ZSIIGR.js +0 -117
- package/dist/chunk-N5B2NILC.js +0 -5
- package/dist/chunk-NJITK2GP.js +0 -2
- package/dist/chunk-NOGJXYFO.js +0 -2
- package/dist/chunk-NOYBFVJA.js +0 -554
- package/dist/chunk-NWQXSFFU.js +0 -3
- package/dist/chunk-ODDUPDP7.js +0 -13
- package/dist/chunk-OLIWTZI3.js +0 -3
- package/dist/chunk-OLNV6I6U.js +0 -2
- package/dist/chunk-OR2E3AGZ.js +0 -2
- package/dist/chunk-OSR2GEHQ.js +0 -2
- package/dist/chunk-OSSESPDX.js +0 -3
- package/dist/chunk-OWOOWNJ5.js +0 -7
- package/dist/chunk-P42EIXTA.js +0 -2
- package/dist/chunk-PJFGPYTU.js +0 -2
- package/dist/chunk-PP7KNN7L.js +0 -2
- package/dist/chunk-PU7T5QYQ.js +0 -2
- package/dist/chunk-PWWAJSKV.js +0 -74
- package/dist/chunk-PZL5T7SU.js +0 -73
- package/dist/chunk-QBE3YX64.js +0 -23
- package/dist/chunk-QGVTFRY2.js +0 -7
- package/dist/chunk-QOJONDS7.js +0 -2
- package/dist/chunk-QU5XRYB5.js +0 -4
- package/dist/chunk-QUU5OBVK.js +0 -11
- package/dist/chunk-RBLQNW26.js +0 -20
- package/dist/chunk-RTQ7NEKG.js +0 -81
- package/dist/chunk-SQXRS7BG.js +0 -4
- package/dist/chunk-SSK6LDPC.js +0 -2
- package/dist/chunk-SZHGTCPP.js +0 -7
- package/dist/chunk-T4N4P2K5.js +0 -16
- package/dist/chunk-TA3QKLLU.js +0 -2
- package/dist/chunk-TEBQMNVI.js +0 -43
- package/dist/chunk-TPFHAQ2G.js +0 -2
- package/dist/chunk-TQPCBMWT.js +0 -5
- package/dist/chunk-TQZV7KV4.js +0 -2
- package/dist/chunk-TRNAEQ6P.js +0 -3
- package/dist/chunk-TY7CRN3Z.js +0 -2
- package/dist/chunk-UHFYCMZO.js +0 -35
- package/dist/chunk-UICY4GTQ.js +0 -7
- package/dist/chunk-UVGEWT4Y.js +0 -26
- package/dist/chunk-UXW33INU.js +0 -29
- package/dist/chunk-VMPRET3I.js +0 -5
- package/dist/chunk-VNLGKHS6.js +0 -6
- package/dist/chunk-VQILFTEH.js +0 -2
- package/dist/chunk-VUPHCS7Y.js +0 -57
- package/dist/chunk-VVZSBTSU.js +0 -23
- package/dist/chunk-VZRNID6A.js +0 -2
- package/dist/chunk-W5OXRYGE.js +0 -7
- package/dist/chunk-W6STWDQI.js +0 -57
- package/dist/chunk-W7CXK74K.js +0 -2
- package/dist/chunk-WB3WYIRE.js +0 -4
- package/dist/chunk-WDNVY4E7.js +0 -20
- package/dist/chunk-WK46TNUM.js +0 -3
- package/dist/chunk-WNTFFKAX.js +0 -12
- package/dist/chunk-WOIKCX6A.js +0 -2
- package/dist/chunk-WUN6KBHV.js +0 -2
- package/dist/chunk-WYCTJDVR.js +0 -2
- package/dist/chunk-WYPL7GF7.js +0 -2
- package/dist/chunk-XDAUYDFT.js +0 -2
- package/dist/chunk-XDQMU3BT.js +0 -2
- package/dist/chunk-XFA4SSO3.js +0 -3
- package/dist/chunk-XGZEP6GR.js +0 -8
- package/dist/chunk-XPDPNWTQ.js +0 -368
- package/dist/chunk-XRYABF57.js +0 -8
- package/dist/chunk-YBGKCQIS.js +0 -2
- package/dist/chunk-YEN6CYC7.js +0 -16
- package/dist/chunk-YF5IB2LF.js +0 -2
- package/dist/chunk-YI2AWIHC.js +0 -3
- package/dist/chunk-YPWBKGFU.js +0 -2
- package/dist/chunk-YPWHBBIS.js +0 -2
- package/dist/chunk-YSH6U3L4.js +0 -3
- package/dist/chunk-YU5DZUZI.js +0 -10
- package/dist/chunk-YWO5DDRC.js +0 -16
- package/dist/chunk-Z4CDXYNQ.js +0 -2
- package/dist/chunk-ZF5KHH7C.js +0 -2
- package/dist/chunk-ZOHS7AQV.js +0 -21
- package/dist/chunk-ZTI4SBFV.js +0 -3
- package/dist/code-MI6F2TTU.js +0 -2
- package/dist/code-result-json-FXALY4HE.js +0 -2
- package/dist/command-descriptors-P34VABY5.js +0 -343
- package/dist/dataflow-4KEMJPC6.js +0 -2
- package/dist/dependence-slice-R7FPWD5M.js +0 -2
- package/dist/deps-7EMQUYUT.js +0 -2
- package/dist/direct-navigation-6YO234F2.js +0 -3
- package/dist/entry-map-KOOLR26E.js +0 -2
- package/dist/files-OPIPJIGZ.js +0 -2
- package/dist/graph-evidence-Bjyky2V4.d.ts +0 -126
- package/dist/hierarchy-QPD2CAER.js +0 -2
- package/dist/imports-M6HUXRXC.js +0 -2
- package/dist/members-I5MEFOCT.js +0 -2
- package/dist/methods-5JYGGHXA.js +0 -2
- package/dist/next-anchor-candidates-BwMczMvX.d.ts +0 -90
- package/dist/output-continuation-command-UPQAAKBP.js +0 -3
- package/dist/output-pagination-3OFL2MJV.js +0 -19
- package/dist/project-reindex-UKKQ5PLS.js +0 -3
- package/dist/queries/anchors.d.ts +0 -123
- package/dist/queries/anchors.js +0 -2
- package/dist/queries/complexity-hotspots.d.ts +0 -40
- package/dist/queries/complexity-hotspots.js +0 -2
- package/dist/queries/convergence.d.ts +0 -33
- package/dist/queries/convergence.js +0 -2
- package/dist/queries/dataflow.d.ts +0 -77
- package/dist/queries/dataflow.js +0 -2
- package/dist/queries/deep-chains.d.ts +0 -5
- package/dist/queries/deep-chains.js +0 -2
- package/dist/queries/extract-candidates.d.ts +0 -52
- package/dist/queries/extract-candidates.js +0 -2
- package/dist/queries/isolated.d.ts +0 -24
- package/dist/queries/isolated.js +0 -2
- package/dist/queries/plan-context.d.ts +0 -33
- package/dist/queries/plan-context.js +0 -2
- package/dist/queries/reference-neighborhood.d.ts +0 -4
- package/dist/queries/reference-neighborhood.js +0 -2
- package/dist/queries/reference-reachability.d.ts +0 -48
- package/dist/queries/reference-reachability.js +0 -2
- package/dist/queries/self-audit.d.ts +0 -63
- package/dist/queries/self-audit.js +0 -2
- package/dist/queries/similar-chains.d.ts +0 -48
- package/dist/queries/similar-chains.js +0 -2
- package/dist/queries/slice.d.ts +0 -4
- package/dist/queries/slice.js +0 -2
- package/dist/queries/stale-abstractions.d.ts +0 -72
- package/dist/queries/stale-abstractions.js +0 -2
- package/dist/queries/system-map.d.ts +0 -449
- package/dist/queries/system-map.js +0 -2
- package/dist/queries/trace.js +0 -2
- package/dist/queries/twin-ab.d.ts +0 -66
- package/dist/queries/twin-ab.js +0 -2
- package/dist/queries/value-flow.d.ts +0 -43
- package/dist/queries/value-flow.js +0 -2
- package/dist/queries/wrapper-candidates.d.ts +0 -34
- package/dist/queries/wrapper-candidates.js +0 -2
- package/dist/refs-PSU4JZZW.js +0 -2
- package/dist/refs-pagination-JG6CJMRC.js +0 -2
- package/dist/slice-HYRATV64.js +0 -2
- package/dist/source-snippet-_wrcgmZc.d.ts +0 -15
- package/dist/stats-OOJ74B32.js +0 -2
- package/dist/surface-VTGDYWF5.js +0 -2
- package/dist/symbol-resolution-WD5EU5JE.js +0 -2
- package/dist/system-LRQNFOR2.js +0 -2
- package/dist/trace-F4B6OLL4.js +0 -2
- package/dist/value-flow-VRPZY72V.js +0 -2
- package/skills/concrete-plan/SKILL.md +0 -8
- package/skills/concrete-plan/agents/openai.yaml +0 -4
|
@@ -12,7 +12,7 @@ This syntax summary is generated from the CLI command descriptors. Keep workflow
|
|
|
12
12
|
|
|
13
13
|
Commands with `--json` share three structured modes: plain `--json` emits the stable public envelope, `--json --result-only` emits only the command payload, and `--json --compact` minifies either form for a program. Agents should prefer ordinary human output. See [CLI output modes](CLI_JSON_OUTPUT.md).
|
|
14
14
|
|
|
15
|
-
Every command accepts `--output-page-size <characters>` and `--output-cursor <cursor>`. Run normally without choosing a page size: oversized human output
|
|
15
|
+
Every command accepts `--output-page-size <characters>` and `--output-cursor <cursor>`. Run normally without choosing a page size: oversized human output prints a short preview and a complete temporary result file to read selectively. Pagination is opt-in; oversized JSON prints the exact command that opts into versioned JSON page envelopes.
|
|
16
16
|
Cross-command evidence citations are off by default. With an explicit `SCIP_QUERY_SESSION`, a complete source unit, a byte-identical exact subset of a prior exact source read, or a graph unit/edge may be replaced by a visible receipt from the same index generation. Preview coverage never suppresses an exact unit; changed bytes, changed graph content, a new generation, or global `--reemit` force full evidence.
|
|
17
17
|
|
|
18
18
|
### Exploration control manual
|
|
@@ -23,10 +23,10 @@ The operator chooses the material question and deliberately selects a control. T
|
|
|
23
23
|
|---|---|---|---|---|---|---|---|---|---|
|
|
24
24
|
| locate | `search <exact-text>` | Where does this exact text occur in current project text, and which aligned compiler symbol owns each line? | One exact text literal or deliberately bounded regular expression; insert \`--\` before a literal that starts with a dash. | exact cardinality, bounded identities and source, and scope commands that recover withheld matches | Exact current-text cardinality and locations within reported text coverage; compiler ownership only where aligned. | Structural source ranking orders exact matches but does not establish task relevance. A literal co-occurrence does not establish a graph relationship. | `small` | outline: search locates exact text across files; outline enumerates compiler-owned constructs in one known file. | `evidence`, `inspect`, `code` |
|
|
25
25
|
| locate | `outline <file>` | What symbols and nesting exist in this file? | One exact current project file path. | symbol names, nesting, and line ranges | Exact compiler-owned constructs and ranges when the file is indexed; no invented semantic overlay. | File ownership and nesting do not establish execution or task relevance. | `small` | search: outline enumerates constructs in one known file; search locates exact text across current project text. code: outline returns identities and ranges; code materializes exact source for selected identities. | `evidence`, `inspect`, `code` |
|
|
26
|
-
| locate | `entrypoints [text]` | Which detected external roots or entry-surface candidates match this text? | Optional exact text to filter candidates; otherwise the current indexed repository. | entry symbols with files, confidence, evidence, and
|
|
27
|
-
| project | `evidence` | Which exact execution, runtime, data, state, temporal, contract, identity, ownership, or dependency relationships surround these referents? Which related source must be read only when graph evidence leaves a named implementation gap? | One or more exact symbol, file:line, or literal roots plus explicit family, direction, depth, and output bound. | batched exact selectors and typed graph relationships; compact endpoints with exact locations and follow-up commands; coverage and recoverable omissions; exact source-recovery command when source was requested with a graph projection; explicit ambiguity failure with exact rerun commands | Typed edges only to each registered provider ceiling within the explicitly selected projection and reported coverage. | The projection does not infer which relationships are relevant to the user task. Reference, dependency, data, state, temporal, contract, and identity edges do not become execution claims. | `bounded` | refs: refs enumerates direct reference sites; evidence traverses explicitly selected typed relationships. call-graph: call-graph specializes in static calls; evidence can combine execution with other selected families.
|
|
26
|
+
| locate | `entrypoints [text]` | Which detected external roots or entry-surface candidates match this text? | Optional exact text to filter candidates; otherwise the current indexed repository. | entry symbols with files, confidence, evidence, and observed static caller counts | Source/compiler-grounded entry evidence and observed static caller counts; exported-only candidates remain candidates. | A package-public export or zero indexed callers is an entry candidate, not proof of runtime ingress. Entry classification does not establish that the callable executes. | `bounded` | entry-map: entrypoints locates possible external roots; entry-map traverses static calls from one selected root. search: entrypoints classifies callable roots; search only locates exact text and ownership. | `evidence`, `inspect`, `code` |
|
|
27
|
+
| project | `evidence` | Which exact execution, runtime, data, state, temporal, contract, identity, ownership, or dependency relationships surround these referents? Which related source must be read only when graph evidence leaves a named implementation gap? | One or more exact symbol, file:line, or literal roots plus explicit family, direction, depth, and output bound. | batched exact selectors and typed graph relationships; compact endpoints with exact locations and follow-up commands; coverage and recoverable omissions; exact source-recovery command when source was requested with a graph projection; explicit ambiguity failure with exact rerun commands | Typed edges only to each registered provider ceiling within the explicitly selected projection and reported coverage. | The projection does not infer which relationships are relevant to the user task. Reference, dependency, data, state, temporal, contract, and identity edges do not become execution claims. | `bounded` | refs: refs enumerates direct reference sites; evidence traverses explicitly selected typed relationships. call-graph: call-graph specializes in static calls; evidence can combine execution with other selected families. dependence-slice: dependence-slice computes a program-dependence slice; evidence performs bounded graph projection. | `inspect`, `code` |
|
|
28
28
|
| read | `inspect` | Which related source units across several known text, symbol, or location anchors should be read together? | One or more exact text, symbol, or file:line selectors naming the unresolved behavior. | one ranked, deduplicated semantic packet plus exact selector cardinality and explicit expansion coverage | Complete current source for every materialized syntax unit; bounded selector and packet coverage remain explicit. | A source packet does not choose which implementation details are relevant to the user task. A reference mention does not establish executable reachability. | `potentially-large` | code: inspect batches bounded behavior or source gaps; code materializes complete exact source. evidence: inspect reads implementation units; evidence projects typed relationships without source. | - |
|
|
29
|
-
| read | `code <selectors...>` | What exact source defines these symbols, ranges, or file surfaces? | One or more exact symbols, file:line ranges, or file paths. | per-selector resolution, complete definition source, exact ranges
|
|
29
|
+
| read | `code <selectors...>` | What exact source defines these symbols, ranges, or file surfaces? | One or more exact symbols, file:line ranges, or file paths. | per-selector resolution, complete definition source, exact ranges, optional same-file call closure, file export surfaces, and omitted-local ledgers | Exact current source bytes for every resolved selector, with omitted file-local constructs disclosed. | Source materialization does not establish callers, runtime reachability, or task relevance by itself. | `potentially-large` | inspect: code materializes complete exact source; inspect batches bounded behavior or source gaps. outline: code reads selected implementations; outline enumerates file structure without reading every body. | - |
|
|
30
30
|
|
|
31
31
|
### Relationship question manual
|
|
32
32
|
|
|
@@ -61,8 +61,8 @@ The operator chooses the material question and deliberately selects a control. T
|
|
|
61
61
|
| Locate exact roots | `search <exact-text>`, `outline <file>`, `fan-in [symbol]`, `entrypoints [text]` |
|
|
62
62
|
| Project typed relationships | `evidence`, `entry-map <entry>` |
|
|
63
63
|
| Read selected behavior/source | `inspect`, `code <selectors...>` |
|
|
64
|
-
| Analyze declared result units | `stats`, `files <pattern>`, `methods <className>`, `refs <symbol>`, `
|
|
65
|
-
| Maintain repository/tool state | `reindex`, `augment-sources`, `augment-vue`, `session`, `
|
|
64
|
+
| Analyze declared result units | `review`, `stats`, `files <pattern>`, `methods <className>`, `refs <symbol>`, `deps <file>`, `rdeps <file>`, `system [module]`, `surface <module>`, `dead [scope]`, `hotspots`, `imports <file>`, `imported-by <symbol>`, `unused-imports <file>`, `members <symbol>`, `fan-out [file]`, `coupling [file1] [file2]`, `cycles`, `architecture`, `bottlenecks`, `by-kind <kind>`, `kind-counts`, `dependency-depth`, `hierarchy <symbol>`, `call-graph <symbol>`, `similar [symbol] [other]`, `similar-files [file]`, `react-component-duplicates [file]`, `react-hook-candidates [file]`, `react-large-component-pressure [file]`, `vue-component-duplicates [file]`, `vue-composable-candidates [file]`, `vue-large-view-pressure [file]`, `locality-candidates [symbol-or-file]`, `affected <symbol>`, `change-surface <file>`, `cleanup-plan`, `co-change [file]`, `recent-duplicates`, `doc-drift [doc]`, `unused-params`, `incomplete-migration`, `context <target>`, `drift [module]`, `passthrough-candidates`, `slice-cohesion [symbol]`, `complexity <symbol>`, `dependence-slice <file:line>`, `redundant-reexports`, `duplicate-bodies`, `twin-drift`, `not-implemented`, `decorative-checkers`, `test-quality`, `similar-signatures`, `diff-impact`, `check-deps`, `capabilities`, `config-validate`, `doctor`, `status` |
|
|
65
|
+
| Maintain repository/tool state | `reindex`, `augment-sources`, `augment-vue`, `session`, `health`, `install-skills`, `init`, `suppress <id>`, `setup`, `setup-agent`, `uninstall`, `watch` |
|
|
66
66
|
|
|
67
67
|
### Typed relationship meanings
|
|
68
68
|
|
|
@@ -82,7 +82,7 @@ The operator chooses the material question and deliberately selects a control. T
|
|
|
82
82
|
|
|
83
83
|
| Provider | Family / subtype | Directions | Support ceiling | Establishes | Does not establish |
|
|
84
84
|
|---|---|---|---|---|---|
|
|
85
|
-
| `indexed-program-identity` | `execution/call` | `incoming`, `outgoing`, `both` | `partial` | The source construct may call the resolved target. | Static may-call reachability does not prove that an invocation occurred at runtime. |
|
|
85
|
+
| `indexed-program-identity` | `execution/call` | `incoming`, `outgoing`, `both` | `partial` | The source construct may call the resolved target. | Static may-call reachability does not prove that an invocation occurred at runtime. Compiler declaration identity does not resolve virtual dispatch, cross-file callable replacement, or runtime receiver identity. Candidate call edges preserve declaration leads; consult the invocation frontier for implementation resolution. A declaration reference is not an established implementation target. |
|
|
86
86
|
| `indexed-program-identity` | `execution/result-callback` | `incoming`, `outgoing`, `both` | `partial` | The referenced callable can produce the result consumed by this path. | A callback relationship does not prove invocation order or runtime selection. |
|
|
87
87
|
| `indexed-program-identity` | `contract/uses-contract-symbol` | `incoming`, `outgoing`, `both` | `exact` | The source construct refers to the identified contract symbol. | Contract identity does not prove runtime invocation or behavioral conformance. |
|
|
88
88
|
| `indexed-program-identity` | `identity/references` | `incoming`, `outgoing`, `both` | `exact` | The occurrence resolves to the identified compiler-owned symbol. | A reference does not establish execution or value transfer. |
|
|
@@ -145,15 +145,24 @@ An unavailable frontier is a relationship class for which no registered analyzer
|
|
|
145
145
|
| `general-interprocedural-value-flow` | `dataflow` | Whole-program definition-use flow through arbitrary calls and returns is unavailable. | Missing dataflow edges cannot establish that a value never crosses an unmodeled call. | `value-flow`, `dependence-slice`, `inspect`, `code` |
|
|
146
146
|
| `heap-aliasing` | `dataflow`, `state` | Heap points-to and cross-instance alias analysis are unavailable. | Missing field or state edges cannot establish that two references never reach the same object. | `value-flow`, `dependence-slice`, `inspect`, `code` |
|
|
147
147
|
| `exceptional-flow` | `execution`, `dataflow`, `temporal` | Interprocedural exception propagation and finally completion flow are unavailable. | Normal-path reachability and ordering do not establish behavior after a throw or rejection. | `dependence-slice`, `inspect`, `code` |
|
|
148
|
+
| `dynamic-callable-dispatch` | `execution`, `dataflow` | General virtual dispatch and interprocedural replacement of callable values are unavailable. | A static declaration target does not establish a unique runtime implementation or all possible overrides. | `hierarchy`, `inspect`, `code` |
|
|
148
149
|
| `reflection` | `execution`, `runtime`, `identity`, `dependencies` | Reflective lookup, dynamic loading, and name-computed invocation are unavailable without exact evidence. | Missing static edges cannot establish that a construct is unreachable through reflection. | `search`, `inspect`, `code` |
|
|
149
150
|
| `generated-dispatch` | `execution`, `runtime`, `identity` | Dispatch tables or names created only by generated or unavailable source are unavailable. | Missing dispatch edges cannot establish that no generated consumer exists. | `search`, `inspect`, `code` |
|
|
150
151
|
| `unsupported-framework-adapters` | `runtime`, `dataflow`, `state`, `temporal` | Framework runtime crossings without a registered source adapter are unavailable. | Missing boundary edges cannot establish that no producer, consumer, state effect, or ordering exists. | `search`, `inspect`, `code` |
|
|
151
152
|
|
|
153
|
+
### Health
|
|
154
|
+
|
|
155
|
+
| Command | Description | Cost | Closes disclosed gaps with | Options |
|
|
156
|
+
|---|---|---|---|---|
|
|
157
|
+
| `review` | Review current TS/JS changes against a Git commit, including new and untracked functions | variable | `inspect`, `code` | `--base <ref>`<br>`--coverage <path>`<br>`-s, --scope <path>`<br>`--include-tests`<br>`--include-references`<br>`--include-generated`<br>`--max-files <n>`<br>`--limit <n>`<br>`--full`<br>`--check`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
158
|
+
| `complexity <symbol>` | Per-symbol complexity: branches, cyclomatic estimate, fan-in/out, callees | variable | `inspect`, `code` | `--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
159
|
+
| `health` | Find concrete TS/JS complexity, duplication, and dependency issues without an index | variable | - | `-s, --scope <path>`<br>`--full`<br>`--indexed`<br>`--coverage <path>`<br>`--include-tests`<br>`--include-references`<br>`--include-generated`<br>`--max-files <n>`<br>`--limit <n>`<br>`--check`<br>`--baseline`<br>`--write-baseline`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
160
|
+
|
|
152
161
|
### Indexing
|
|
153
162
|
|
|
154
163
|
| Command | Description | Cost | Closes disclosed gaps with | Options |
|
|
155
164
|
|---|---|---|---|---|
|
|
156
|
-
| `reindex` | Index the codebase and convert to SQLite | variable | - | `-l, --language <lang>`<br>`--
|
|
165
|
+
| `reindex` | Index the codebase and convert to SQLite | variable | - | `-l, --language <lang>`<br>`--force`<br>`--allow-partial`<br>`--allow-expensive-rebuild`<br>`--trust-project-tools`<br>`--install-missing`<br>`--indexer-concurrency <n>`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
157
166
|
| `augment-sources` | Add source files skipped by upstream SCIP indexers to the SQLite documents table | variable | - | - |
|
|
158
167
|
| `augment-vue` | Add compiler-resolved Vue SFC references to the SQLite index using Volar | variable | - | `--project <tsconfig>` |
|
|
159
168
|
|
|
@@ -169,28 +178,24 @@ An unavailable frontier is a relationship class for which no registered analyzer
|
|
|
169
178
|
|---|---|---|---|---|
|
|
170
179
|
| `files <pattern>` | Find current project files matching a path pattern | bounded | `inspect`, `code` | `--json`<br>`--result-only`<br>`--compact` |
|
|
171
180
|
| `session` | Show evidence already delivered in this agent exploration session | variable | - | `--reset` |
|
|
172
|
-
| `inspect` | Batch related searches, symbols, and source locations into one deduplicated source packet | potentially-large | - | `--search <text>`<br>`--symbol <symbol>`<br>`--at <file:line>`<br>`-s, --scope <path>`<br>`-C, --context <n>`<br>`-n, --limit <n>`<br>`--max-units <n>`<br>`--max-characters <n>`<br>`--view <view>`<br>`--allow-large-source`<br>`--allow-large-behavior`<br>`--unit-lines <n>`<br>`--total-lines <n>`<br>`--include <part>`<br>`--evidence-budget <channel=n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
173
|
-
| `search <exact-text>` |
|
|
181
|
+
| `inspect` | Batch related searches, symbols, and source locations into one deduplicated source packet | potentially-large | - | `--bindings`<br>`--search <text>`<br>`--symbol <symbol>`<br>`--at <file:line>`<br>`-s, --scope <path>`<br>`-C, --context <n>`<br>`-n, --limit <n>`<br>`--max-units <n>`<br>`--max-characters <n>`<br>`--view <view>`<br>`--allow-large-source`<br>`--allow-large-behavior`<br>`--unit-lines <n>`<br>`--total-lines <n>`<br>`--include <part>`<br>`--evidence-budget <channel=n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
182
|
+
| `search <exact-text>` | Find current text matches with exact locations and optional compiler owners | small | `evidence`, `inspect`, `code` | `-s, --scope <path>`<br>`-C, --context <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--regexp`<br>`-i, --ignore-case`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
174
183
|
| `methods <className>` | List methods of one exactly resolved class; ambiguity and missing targets fail explicitly | bounded | `inspect`, `code` | `--json`<br>`--result-only`<br>`--compact` |
|
|
175
184
|
| `refs <symbol>` | Find all files referencing a symbol | bounded | `inspect`, `code` | `--full`<br>`-n, --limit <n>`<br>`--cursor <cursor>`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
176
|
-
| `
|
|
177
|
-
| `evidence` | Traverse selected typed relationships around exact referents; recover source separately when needed | bounded | `inspect`, `code` | `--symbol <symbol>`<br>`--at <file:line>`<br>`--search <literal>`<br>`--view <view>`<br>`--edge <family>`<br>`--direction <direction>`<br>`--subtype <subtype>`<br>`--connecting`<br>`--inventory-only`<br>`--fold <id>`<br>`--depth <n>`<br>`--max-edges <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
185
|
+
| `evidence` | Traverse selected typed relationships around exact referents; recover source separately when needed | bounded | `inspect`, `code` | `--symbol <symbol>`<br>`--at <file:line>`<br>`--search <literal>`<br>`--view <view>`<br>`--edge <family>`<br>`--direction <direction>`<br>`--subtype <subtype>`<br>`--connecting`<br>`--detail`<br>`--inventory-only`<br>`--fold <id>`<br>`--depth <n>`<br>`--max-edges <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
178
186
|
| `deps <file>` | Files this file depends on (internal) | bounded | `inspect`, `code` | `--json`<br>`--result-only`<br>`--compact` |
|
|
179
187
|
| `rdeps <file>` | Files that depend on this file/module | bounded | `inspect`, `code` | `--json`<br>`--result-only`<br>`--compact` |
|
|
180
|
-
| `system
|
|
188
|
+
| `system [module]` | Module files and dependencies; --source adds a first-use inventory, exports, policy and findings without an index | bounded | `inspect`, `code` | `--source`<br>`--include-tests`<br>`--include-references`<br>`--include-generated`<br>`--max-files <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
181
189
|
| `surface <module>` | What symbols consumers actually use from this module | bounded | `inspect`, `code` | `--json`<br>`--result-only`<br>`--compact` |
|
|
182
190
|
| `imports <file>` | What symbols does this file import? | variable | `inspect`, `code` | `--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
183
|
-
| `imported-by <symbol>` | Which files import this symbol? |
|
|
191
|
+
| `imported-by <symbol>` | Which files import this symbol? | variable | `inspect`, `code` | `--json`<br>`--result-only`<br>`--compact` |
|
|
184
192
|
| `outline <file>` | Tree view of symbols in a file, with line ranges | small | `evidence`, `inspect`, `code` | `--signatures`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
185
193
|
| `members <symbol>` | All children of a symbol (methods, fields, nested types) | bounded | `inspect`, `code` | `--json`<br>`--result-only`<br>`--compact` |
|
|
186
194
|
| `by-kind <kind>` | Find symbols by SCIP kind (class, interface, enum, function, etc.) | variable | `inspect`, `code` | `-s, --scope <path>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
187
195
|
| `kind-counts` | Histogram of symbol kinds in the codebase | bounded | `inspect`, `code` | `-s, --scope <path>`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
188
|
-
| `hierarchy <symbol>` | Show a symbol
|
|
189
|
-
| `code <selectors...>` | Read exact definitions, ranges
|
|
190
|
-
| `
|
|
191
|
-
| `value-flow <symbol>` | Show only proved argument/parameter and bounded static-value transfers around a symbol | variable | `inspect`, `code` | `--depth <n>`<br>`--max-edges <n>`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
192
|
-
| `dependence-slice <symbol-or-location>` | Directional slice over proved data/control dependencies with explicit supporting call edges | variable | `inspect`, `code` | `--forward`<br>`--depth <n>`<br>`--max-edges <n>`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
193
|
-
| `reference-reachability <symbol>` | Traverse legacy callee or reference-owner reachability without calling it a program slice | variable | `inspect`, `code` | `--forward`<br>`--depth <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
196
|
+
| `hierarchy <symbol>` | Show indexed lexical owners of a symbol (method → class → module) | bounded | `inspect`, `code` | `--json`<br>`--result-only`<br>`--compact` |
|
|
197
|
+
| `code <selectors...>` | Read exact definitions, line ranges, or file export surfaces | potentially-large | - | `-C, --context <n>`<br>`--bindings`<br>`--local-calls`<br>`--members <exported|all>`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
198
|
+
| `dependence-slice <file:line>` | Slice one variable occurrence through function-local value and control dependencies | variable | `inspect`, `code` | `--forward`<br>`--variable <name>`<br>`--column <n>`<br>`--depth <n>`<br>`--max-edges <n>`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
194
199
|
|
|
195
200
|
### Cleanup
|
|
196
201
|
|
|
@@ -198,7 +203,6 @@ An unavailable frontier is a relationship class for which no registered analyzer
|
|
|
198
203
|
|---|---|---|---|---|
|
|
199
204
|
| `dead [scope]` | Find repository-dead code, file-internal symbols, and implicit-usage signals | variable | `inspect`, `code` | `--min-loc <n>`<br>`--include-tests`<br>`--skip-barrels`<br>`--include-members`<br>`--only-dead`<br>`--only-internal`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
200
205
|
| `unused-imports <file>` | Find imports not referenced in the same file | variable | `inspect`, `code` | `--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
201
|
-
| `isolated` | Find completely orphaned symbols (no references at all) | variable | `inspect`, `code` | `-s, --scope <path>`<br>`--min-loc <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
202
206
|
| `similar [symbol] [other]` | Find heuristic function similarity candidates from callee fingerprints | variable | `inspect`, `code` | `--min-similarity <n>`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--min-callees <n>`<br>`--cross-file-only`<br>`--plan`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
203
207
|
| `similar-files [file]` | Find heuristic similar-file candidates from dependency profiles | variable | `inspect`, `code` | `--min-similarity <n>`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--min-deps <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
204
208
|
| `react-component-duplicates [file]` | Find heuristic duplicated React component structure candidates from JSX tags, props, events, and bindings | variable | `inspect`, `code` | `--min-similarity <n>`<br>`--min-tokens <n>`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
@@ -207,32 +211,27 @@ An unavailable frontier is a relationship class for which no registered analyzer
|
|
|
207
211
|
| `vue-component-duplicates [file]` | Find heuristic duplicated Vue component structure candidates from template tags, bindings, slots, and directives | variable | `inspect`, `code` | `--min-similarity <n>`<br>`--min-tokens <n>`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
208
212
|
| `vue-composable-candidates [file]` | Find heuristic Vue composable extraction candidates from shared state, effects, requests, and template bindings | variable | `inspect`, `code` | `--min-similarity <n>`<br>`--min-shared-behaviors <n>`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
209
213
|
| `vue-large-view-pressure [file]` | Find heuristic large Vue view pressure candidates from template, script, style, and external script line counts | variable | `inspect`, `code` | `--min-total-lines <n>`<br>`--min-template-lines <n>`<br>`--min-script-lines <n>`<br>`--min-style-lines <n>`<br>`--review-thresholds`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
210
|
-
| `similar-chains` | Find heuristic similar-chain candidates from dependency flows | variable | `inspect`, `code` | `--min-similarity <n>`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--min-length <n>`<br>`--max-length <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
211
|
-
| `extract-candidates` | Find heuristic extraction candidates from isolated callee clusters | variable | `inspect`, `code` | `-s, --scope <path>`<br>`--min-loc <n>`<br>`--min-callees <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
212
214
|
| `locality-candidates [symbol-or-file]` | Find directory-locality and ancestry candidates from consumer ownership | variable | `inspect`, `code` | `-s, --scope <path>`<br>`--min-consumers <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
213
215
|
| `cleanup-plan` | Ordered, batched deletion plan: graph-fact dead code plus the cascade candidates it unlocks | variable | `inspect`, `code` | `-s, --scope <path>`<br>`--min-loc <n>`<br>`--max-depth <n>`<br>`--verify`<br>`--patch`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
214
|
-
| `recent-duplicates` |
|
|
216
|
+
| `recent-duplicates` | Similarity candidates in recently added files, oriented by file age; function creation time is not known | variable | `inspect`, `code` | `--window <n>`<br>`--min-similarity <n>`<br>`-n, --limit <n>`<br>`-s, --scope <path>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
215
217
|
| `doc-drift [doc]` | Stale-doc candidates: code the doc references or co-changed with kept changing after the doc stopped | variable | `inspect`, `code` | `-n, --limit <n>`<br>`--min-coupling <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
216
218
|
| `unused-params` | Speculative-generality candidates: trailing parameters no body ever uses (TS/JS) | variable | `inspect`, `code` | `-s, --scope <path>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
217
219
|
| `drift [module]` | Detect drift candidates: unused imports and declared architecture violations; pass --architecture for boundary context | variable | `inspect`, `code` | `--min-deviation <n>`<br>`--patterns`<br>`--architecture`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
218
|
-
| `wrapper-candidates` | Find heuristic wrapper candidates only called by one consumer (high false-positive rate on codebases with intentional layering/ambient types — treat as exploration, not findings) | variable | `inspect`, `code` | `-s, --scope <path>`<br>`--max-loc <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
219
220
|
| `passthrough-candidates` | Find heuristic passthrough candidates that forward to one callee | variable | `inspect`, `code` | `-s, --scope <path>`<br>`--max-loc <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
220
|
-
| `
|
|
221
|
-
| `
|
|
222
|
-
| `redundant-reexports` | Find barrel re-exports that nobody imports through | variable | `inspect`, `code` | `-s, --scope <path>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
221
|
+
| `slice-cohesion [symbol]` | Find low-cohesion candidates from backward slices: outputs whose statements never meet are separate local computations | variable | `inspect`, `code` | `-s, --scope <path>`<br>`--min-loc <n>`<br>`--min-statements <n>`<br>`--min-cluster <n>`<br>`-n, --limit <n>`<br>`--scan-limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
222
|
+
| `redundant-reexports` | Find re-export candidates with no resolved local source imports or re-exports; external use is unknown | variable | `inspect`, `code` | `-s, --scope <path>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
223
223
|
| `duplicate-bodies` | Find exact duplicate small-body candidates across files | variable | `inspect`, `code` | `-s, --scope <path>`<br>`--max-loc <n>`<br>`--min-loc <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
224
224
|
| `twin-drift` | Twin drift candidates: same-name (or near-name) functions across files with diverged bodies | variable | `inspect`, `code` | `-s, --scope <path>`<br>`--min-similarity <n>`<br>`--include-homonyms`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
225
|
-
| `
|
|
226
|
-
| `
|
|
227
|
-
| `decorative-checkers` | Decorative checker candidates: validate*/verify*/check*/assert*/is*/has* callables with no reachable failure exit anywhere in their body | variable | `inspect`, `code` | `-s, --scope <path>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
225
|
+
| `not-implemented` | Placeholder candidates with observed consumer or entry-surface evidence: throw-stub, TODO plus default return, or empty body | variable | `inspect`, `code` | `-s, --scope <path>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
226
|
+
| `decorative-checkers` | Checker candidates lacking detected explicit failure syntax; implicit exceptions and property effects are not proved absent | variable | `inspect`, `code` | `-s, --scope <path>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
228
227
|
| `test-quality` | Test-quality candidates: assertion-free it/test bodies, a skipped-test ledger with git-blame age, and mock-echo tests that assert the same literal they stubbed into a mock | variable | `inspect`, `code` | `-s, --scope <path>`<br>`-n, --limit <n>`<br>`--rot-days <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
229
|
-
| `similar-signatures` |
|
|
228
|
+
| `similar-signatures` | Group functions by normalized signature text; shared type identity or responsibility is not established | variable | `inspect`, `code` | `-s, --scope <path>`<br>`--min-loc <n>`<br>`--max-shape-frequency <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
230
229
|
|
|
231
230
|
### Graph
|
|
232
231
|
|
|
233
232
|
| Command | Description | Cost | Closes disclosed gaps with | Options |
|
|
234
233
|
|---|---|---|---|---|
|
|
235
|
-
| `hotspots` | Rank symbols by
|
|
234
|
+
| `hotspots` | Rank symbols by referencing chunks, or incoming evidence rows when SCIP mentions are unavailable | variable | `inspect`, `code` | `-n, --limit <n>`<br>`-s, --scope <path>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
236
235
|
| `fan-in [symbol]` | Count files referencing an exact symbol; top JSON rows include exact symbol identity | small | `evidence`, `inspect`, `code` | `-n, --limit <n>`<br>`-s, --scope <path>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
237
236
|
| `fan-out [file]` | How many external symbols a file uses (or top fan-out across codebase) | variable | `inspect`, `code` | `-n, --limit <n>`<br>`-s, --scope <path>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
238
237
|
| `coupling [file1] [file2]` | Count shared-symbol coupling between two files, or rank file pairs by that metric | variable | `inspect`, `code` | `-n, --limit <n>`<br>`-s, --scope <path>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
@@ -254,31 +253,17 @@ An unavailable frontier is a relationship class for which no registered analyzer
|
|
|
254
253
|
| `incomplete-migration` | Partially-completed extraction candidates: new helpers in the diff wired into some sites while similar un-migrated sites remain | variable | `inspect`, `code` | `--base <ref>`<br>`--min-containment <n>`<br>`--max-helpers <n>`<br>`-n, --limit <n>`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
255
254
|
| `diff-impact` | Map changed symbols and downstream consumers from the current git diff | variable | `inspect`, `code` | `--base <ref>`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
256
255
|
|
|
257
|
-
### Formal Models
|
|
258
|
-
|
|
259
|
-
| Command | Description | Cost | Closes disclosed gaps with | Options |
|
|
260
|
-
|---|---|---|---|---|
|
|
261
|
-
| `tla <operation> [spec]` | TLA+ model workflow: verify a model and mapping contract, scaffold a draft model from indexed code, generate a trace recorder, or check a recorded trace against the next-state relation | variable | - | `--map <file>`<br>`--config <file>`<br>`--checker <mode>`<br>`--tla-tools <jar>`<br>`--apalache <binary>`<br>`--length <n>`<br>`--timeout-ms <n>`<br>`--trace <file>`<br>`--next <operator>`<br>`--coverage`<br>`--allow-unknown`<br>`--out <path>`<br>`--module-name <name>`<br>`--force`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
262
|
-
|
|
263
256
|
### Exploration
|
|
264
257
|
|
|
265
258
|
| Command | Description | Cost | Closes disclosed gaps with | Options |
|
|
266
259
|
|---|---|---|---|---|
|
|
267
|
-
| `context <target>` | Compiler-backed context for a symbol, file, or module | bounded | `inspect`, `code` | `--impact-depth <n>`<br
|
|
268
|
-
|
|
269
|
-
### Health
|
|
270
|
-
|
|
271
|
-
| Command | Description | Cost | Closes disclosed gaps with | Options |
|
|
272
|
-
|---|---|---|---|---|
|
|
273
|
-
| `self-audit` | Score cheap evidence paths against the best available semantic/source oracle on sampled symbols | variable | `inspect`, `code` | `--samples <n>`<br>`-s, --scope <path>`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
274
|
-
| `complexity <symbol>` | Per-symbol complexity: branches, cyclomatic estimate, fan-in/out, callees | variable | `inspect`, `code` | `--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
275
|
-
| `health` | Composite repository health report with React, Vue, and general cleanup findings | variable | - | `-s, --scope <path>`<br>`--full`<br>`--baseline`<br>`--write-baseline`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
260
|
+
| `context <target>` | Compiler-backed context for a symbol, file, or module | bounded | `inspect`, `code` | `--impact-depth <n>`<br>`-s, --scope <path>`<br>`-n, --limit <n>`<br>`--detail`<br>`--full`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
276
261
|
|
|
277
262
|
### Maintenance
|
|
278
263
|
|
|
279
264
|
| Command | Description | Cost | Closes disclosed gaps with | Options |
|
|
280
265
|
|---|---|---|---|---|
|
|
281
|
-
| `install-skills` | Install
|
|
266
|
+
| `install-skills` | Install the six agent workflows into Claude Code, Codex, and shared agent roots | variable | - | `--all` |
|
|
282
267
|
| `check-deps` | Check whether scip-query and the detected language indexers are runnable | bounded | `inspect`, `code` | - |
|
|
283
268
|
| `capabilities` | Report which mapping and analysis capabilities are available in this project | bounded | `inspect`, `code` | `--matrix`<br>`--json`<br>`--result-only`<br>`--compact` |
|
|
284
269
|
| `init` | Create a .scipquery.json configuration file for this project | variable | - | - |
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Current command inventory
|
|
2
|
+
|
|
3
|
+
The current registry contains **86 commands: 81 public controls and 5 internal transport/worker controls**. Eleven commands were retired from the 97-control inventory used at the start of this sweep. TLA and older removals predate that inventory.
|
|
4
|
+
|
|
5
|
+
A command is a named CLI operation that accepts selectors or options and returns repository observations or performs a defined maintenance action. An observed relationship records evidence connecting concrete files or symbols. A candidate is a possible cleanup or design issue inferred from a stated pattern; its existence does not prove that refactoring will preserve behavior or improve the design.
|
|
6
|
+
|
|
7
|
+
For first-use architecture assessment, use `system --source`; for current-source issue scanning, use `health`. Use `search`/`outline`/`code`/`inspect`/`evidence` for the facts a task needs, and `review`, `diff-impact` and applicable architecture checks after changes. The [command decision guide](../skills/scip-query/references/command-guide.md) maps every public control to a question, index requirement and limit. Full flags and examples are in [COMMAND_REFERENCE.md](COMMAND_REFERENCE.md); per-command decisions and test scope are in the [audit ledger](../benchmarks/command-contracts/2026-09-05/ledger.json).
|
|
8
|
+
|
|
9
|
+
The audit reviews contracts and tests known counterexamples. It does not establish universal accuracy across every language, framework or runtime convention. In particular, directory proximity and shared names do not prove conceptual ownership, candidate duplication does not prove interchangeability, and static relationships do not prove runtime reachability. CRAP requires source-matched test coverage; absent coverage is reported as unavailable.
|
|
10
|
+
|
|
11
|
+
## Public controls
|
|
12
|
+
|
|
13
|
+
| Command | Purpose |
|
|
14
|
+
| --- | --- |
|
|
15
|
+
| `review` | Review current TS/JS changes against a Git commit, including new and untracked functions |
|
|
16
|
+
| `reindex` | Index the codebase and convert to SQLite |
|
|
17
|
+
| `augment-sources` | Add source files skipped by upstream SCIP indexers to the SQLite documents table |
|
|
18
|
+
| `augment-vue` | Add compiler-resolved Vue SFC references to the SQLite index using Volar |
|
|
19
|
+
| `stats` | Show index statistics |
|
|
20
|
+
| `files` | Find current project files matching a path pattern |
|
|
21
|
+
| `session` | Show evidence already delivered in this agent exploration session |
|
|
22
|
+
| `inspect` | Batch related searches, symbols, and source locations into one deduplicated source packet |
|
|
23
|
+
| `search` | Count current project text matches and preview a bounded, recoverable identity and source manifest |
|
|
24
|
+
| `methods` | List methods of one exactly resolved class; ambiguity and missing targets fail explicitly |
|
|
25
|
+
| `refs` | Find all files referencing a symbol |
|
|
26
|
+
| `evidence` | Traverse selected typed relationships around exact referents; recover source separately when needed |
|
|
27
|
+
| `deps` | Files this file depends on (internal) |
|
|
28
|
+
| `rdeps` | Files that depend on this file/module |
|
|
29
|
+
| `system` | Indexed module summary; `--source` adds a current TS/JS module inventory, export declarations, imports, consumers, policy and findings without an index |
|
|
30
|
+
| `surface` | What symbols consumers actually use from this module |
|
|
31
|
+
| `dead` | Find repository-dead code, file-internal symbols, and implicit-usage signals |
|
|
32
|
+
| `hotspots` | Rank symbols by referencing chunks, or incoming evidence rows when SCIP mentions are unavailable |
|
|
33
|
+
| `imports` | What symbols does this file import? |
|
|
34
|
+
| `imported-by` | Which files import this symbol? |
|
|
35
|
+
| `unused-imports` | Find imports not referenced in the same file |
|
|
36
|
+
| `outline` | Tree view of symbols in a file, with line ranges |
|
|
37
|
+
| `members` | All children of a symbol (methods, fields, nested types) |
|
|
38
|
+
| `fan-in` | Count files referencing an exact symbol; top JSON rows include exact symbol identity |
|
|
39
|
+
| `fan-out` | How many external symbols a file uses (or top fan-out across codebase) |
|
|
40
|
+
| `coupling` | Count shared-symbol coupling between two files, or rank file pairs by that metric |
|
|
41
|
+
| `cycles` | Find every cyclic file-dependency component and show one deterministic witness for each |
|
|
42
|
+
| `architecture` | Evaluate project-owned architectural boundaries and dependency rules |
|
|
43
|
+
| `bottlenecks` | Rank coordination hubs by incoming evidence files × outgoing cross-file callable targets |
|
|
44
|
+
| `by-kind` | Find symbols by SCIP kind (class, interface, enum, function, etc.) |
|
|
45
|
+
| `kind-counts` | Histogram of symbol kinds in the codebase |
|
|
46
|
+
| `dependency-depth` | Find longest paths through the SCC-condensed file dependency graph |
|
|
47
|
+
| `hierarchy` | Show indexed lexical owners of a symbol (method → class → module) |
|
|
48
|
+
| `entrypoints` | Find callables where control may enter from outside the indexed call graph |
|
|
49
|
+
| `entry-map` | Map the complete indexed call graph from one detected entry point, collapsed by file |
|
|
50
|
+
| `call-graph` | Show static may-call edges with exact/candidate evidence and explicit blind spots |
|
|
51
|
+
| `similar` | Find heuristic function similarity candidates from callee fingerprints |
|
|
52
|
+
| `similar-files` | Find heuristic similar-file candidates from dependency profiles |
|
|
53
|
+
| `react-component-duplicates` | Find heuristic duplicated React component structure candidates from JSX tags, props, events, and bindings |
|
|
54
|
+
| `react-hook-candidates` | Find heuristic React hook extraction candidates from shared state, effects, requests, and handlers |
|
|
55
|
+
| `react-large-component-pressure` | Find heuristic large React component pressure candidates from component lines, JSX structure, and hook behavior |
|
|
56
|
+
| `vue-component-duplicates` | Find heuristic duplicated Vue component structure candidates from template tags, bindings, slots, and directives |
|
|
57
|
+
| `vue-composable-candidates` | Find heuristic Vue composable extraction candidates from shared state, effects, requests, and template bindings |
|
|
58
|
+
| `vue-large-view-pressure` | Find heuristic large Vue view pressure candidates from template, script, style, and external script line counts |
|
|
59
|
+
| `locality-candidates` | Find directory-locality and ancestry candidates from consumer ownership |
|
|
60
|
+
| `affected` | Conservative reverse caller/reference closure of symbols that may be impacted by a change |
|
|
61
|
+
| `change-surface` | Pre-change briefing: consumers, published API, operational roots, and explained change risk |
|
|
62
|
+
| `cleanup-plan` | Ordered, batched deletion plan: graph-fact dead code plus the cascade candidates it unlocks |
|
|
63
|
+
| `co-change` | Files that change together in git history without a dependency edge — hidden coupling candidates |
|
|
64
|
+
| `recent-duplicates` | Similarity candidates in recently added files, oriented by file age; function creation time is not known |
|
|
65
|
+
| `doc-drift` | Stale-doc candidates: code the doc references or co-changed with kept changing after the doc stopped |
|
|
66
|
+
| `unused-params` | Speculative-generality candidates: trailing parameters no body ever uses (TS/JS) |
|
|
67
|
+
| `incomplete-migration` | Partially-completed extraction candidates: new helpers in the diff wired into some sites while similar un-migrated sites remain |
|
|
68
|
+
| `context` | Compiler-backed context for a symbol, file, or module |
|
|
69
|
+
| `drift` | Detect drift candidates: unused imports and declared architecture violations; pass --architecture for boundary context |
|
|
70
|
+
| `passthrough-candidates` | Find heuristic passthrough candidates that forward to one callee |
|
|
71
|
+
| `slice-cohesion` | Find low-cohesion candidates from backward slices: outputs whose statements never meet are separate local computations |
|
|
72
|
+
| `code` | Read exact definitions, line ranges, or file export surfaces |
|
|
73
|
+
| `complexity` | Per-symbol complexity: branches, cyclomatic estimate, fan-in/out, callees |
|
|
74
|
+
| `dependence-slice` | Slice one variable occurrence through function-local value and control dependencies |
|
|
75
|
+
| `redundant-reexports` | Find re-export candidates with no resolved local source imports or re-exports; external use is unknown |
|
|
76
|
+
| `duplicate-bodies` | Find exact duplicate small-body candidates across files |
|
|
77
|
+
| `twin-drift` | Twin drift candidates: same-name (or near-name) functions across files with diverged bodies |
|
|
78
|
+
| `not-implemented` | Placeholder candidates with observed consumer or entry-surface evidence: throw-stub, TODO plus default return, or empty body |
|
|
79
|
+
| `decorative-checkers` | Checker candidates lacking detected explicit failure syntax; implicit exceptions and property effects are not proved absent |
|
|
80
|
+
| `test-quality` | Test-quality candidates: assertion-free it/test bodies, a skipped-test ledger with git-blame age, and mock-echo tests that assert the same literal they stubbed into a mock |
|
|
81
|
+
| `similar-signatures` | Group functions by normalized signature text; shared type identity or responsibility is not established |
|
|
82
|
+
| `diff-impact` | Map changed symbols and downstream consumers from the current git diff |
|
|
83
|
+
| `health` | Find concrete TS/JS complexity, duplication, and dependency issues without an index |
|
|
84
|
+
| `install-skills` | Install the six agent workflows into Claude Code, Codex, and shared agent roots |
|
|
85
|
+
| `check-deps` | Check whether scip-query and the detected language indexers are runnable |
|
|
86
|
+
| `capabilities` | Report which mapping and analysis capabilities are available in this project |
|
|
87
|
+
| `init` | Create a .scipquery.json configuration file for this project |
|
|
88
|
+
| `config-validate` | Validate .scipquery.json, structured suppressions, architecture, and coupling groups |
|
|
89
|
+
| `suppress` | Record an accepted finding under .scipquery/suppressions with a required reason |
|
|
90
|
+
| `doctor` | Diagnose configuration, index freshness, dependencies, and project capabilities |
|
|
91
|
+
| `setup` | Install skills, write agent guidance, refresh the index, and report readiness |
|
|
92
|
+
| `setup-agent` | Write concise scip-query mapping and cleanup guidance to AGENTS.md and CLAUDE.md |
|
|
93
|
+
| `uninstall` | Remove selected scip-query-owned skills or project guidance |
|
|
94
|
+
| `watch` | Watch in the foreground or manage the project refresh service |
|
|
95
|
+
| `status` | Show index status for this project |
|
|
96
|
+
|
|
97
|
+
## Internal controls
|
|
98
|
+
|
|
99
|
+
These serve continuation or worker protocols, rather than additional exploration questions.
|
|
100
|
+
|
|
101
|
+
| Command | Purpose |
|
|
102
|
+
| --- | --- |
|
|
103
|
+
| `continue` | Continue an immutable output snapshot |
|
|
104
|
+
| `hook-architecture-stop` | Internal architecture-only Stop hook |
|
|
105
|
+
| `__diff-impact-batch` | Internal diff-impact batch worker |
|
|
106
|
+
| `__health-phase` | Internal health phase worker |
|
|
107
|
+
| `__health-semantic-prewarm` | Internal health semantic prewarm worker |
|
|
108
|
+
|
|
109
|
+
## Retired in this sweep
|
|
110
|
+
|
|
111
|
+
- `trace`: Retire overlapping definition/reference CLI and service fast path; refs/code/inspect/evidence cover its work without the unsupported all-call predicate guarantee. Internal source assembly remains for context/inspect, ineligible for absence and universal callsite claims.
|
|
112
|
+
- `reference-neighborhood`: remove
|
|
113
|
+
- `value-flow`: Remove redundant dataflow projection wrapper. Its only-proved description contradicts candidate edges passed through from graphEvidence. Retain evidence --edge dataflow with explicit direction/depth and dependence-slice.
|
|
114
|
+
- `reference-reachability`: remove
|
|
115
|
+
- `isolated`: Remove: unused-code subset with no distinct action; overlapping health counts, and missing same-file strict callers. Use dead and explicit evidence projections.
|
|
116
|
+
- `similar-chains`: Scores filtered dependency paths but renders original paths/divergence offsets; undisclosed 500-chain and limit*10 pair enumeration. Explicit dependency evidence and dependency-depth provide actual structural facts.
|
|
117
|
+
- `extract-candidates`: Occurrence-range regionLocalFlow cannot prove extraction inputs/outputs across branches, scopes and aliases; recommendations assert exact parameter counts. Use dependence-slice and slice-cohesion within their disclosed local model.
|
|
118
|
+
- `wrapper-candidates`: remove
|
|
119
|
+
- `stale-abstractions`: remove
|
|
120
|
+
- `complexity-hotspots`: remove
|
|
121
|
+
- `self-audit`: Measures file-set agreement between overlapping evidence providers, not symbol correctness; two wrong targets in the same file can agree. Independent known-answer tests replace the accuracy claim.
|
|
122
|
+
|
|
123
|
+
Use ordinary invocation to check that a command exists. Commander may display root help for an unknown name followed by `--help`; that exit is not command validation. Every retirement is checked with an ordinary invocation.
|
|
@@ -12,26 +12,6 @@ The symbol has no visible repository reference after entry, framework, and roote
|
|
|
12
12
|
- Does not establish: Absence of visible references does not prove absence of reflection, generated dispatch, or external use.
|
|
13
13
|
- Recover with: `scip-query evidence --symbol <symbol> --edge execution --edge runtime --edge identity --direction both --depth 2 --max-edges 100`
|
|
14
14
|
|
|
15
|
-
## isolated
|
|
16
|
-
|
|
17
|
-
The callable has no visible non-self caller or callee after entry, framework, and rooted-symbol exclusions.
|
|
18
|
-
|
|
19
|
-
- Calibration: `mixed`; provider coverage: `partial`.
|
|
20
|
-
- Relations: `execution/call` (exact), `identity/references` (exact).
|
|
21
|
-
- Structural evidence: entry-surface exclusions; framework contract exclusions; source fallback callers.
|
|
22
|
-
- Does not establish: Visible graph isolation does not establish runtime unreachability through reflection or generated dispatch.
|
|
23
|
-
- Recover with: `scip-query evidence --symbol <symbol> --edge execution --edge runtime --edge identity --direction both --depth 2 --max-edges 100`
|
|
24
|
-
|
|
25
|
-
## wrapper-candidates
|
|
26
|
-
|
|
27
|
-
A small callable has one visible consumer and wrapper-shaped delegation, after boundary evidence is disclosed.
|
|
28
|
-
|
|
29
|
-
- Calibration: `candidate`; provider coverage: `partial`.
|
|
30
|
-
- Relations: `execution/call` (exact), `ownership/contains` (exact).
|
|
31
|
-
- Structural evidence: callable body shape; public and runtime-boundary signals; consumer fan-in.
|
|
32
|
-
- Does not establish: Wrapper shape does not prove that an API, ownership, observability, or compatibility boundary is unnecessary.
|
|
33
|
-
- Recover with: `scip-query inspect --symbol <symbol> --view behavior`
|
|
34
|
-
|
|
35
15
|
## passthrough-candidates
|
|
36
16
|
|
|
37
17
|
A small callable visibly forwards to one callee, with public-facade and boundary signals disclosed.
|
|
@@ -42,26 +22,6 @@ A small callable visibly forwards to one callee, with public-facade and boundary
|
|
|
42
22
|
- Does not establish: Literal forwarding does not prove the callable has no contract, naming, policy, or compatibility role.
|
|
43
23
|
- Recover with: `scip-query inspect --symbol <symbol> --view behavior`
|
|
44
24
|
|
|
45
|
-
## stale-abstractions
|
|
46
|
-
|
|
47
|
-
A type-like abstraction has zero or one visible real consumer after re-export and ownership distinctions.
|
|
48
|
-
|
|
49
|
-
- Calibration: `mixed`; provider coverage: `partial`.
|
|
50
|
-
- Relations: `identity/references` (exact), `ownership/contains` (exact).
|
|
51
|
-
- Structural evidence: definition kind; barrel-only consumer distinction; defining-file usage.
|
|
52
|
-
- Does not establish: Low visible consumer count does not prove a public contract or runtime-registered type is obsolete.
|
|
53
|
-
- Recover with: `scip-query evidence --symbol <symbol> --edge identity --edge ownership --edge contract --direction both --depth 2 --max-edges 100`
|
|
54
|
-
|
|
55
|
-
## complexity-hotspots
|
|
56
|
-
|
|
57
|
-
A callable concentrates local branch/control pressure and graph fan-in or fan-out.
|
|
58
|
-
|
|
59
|
-
- Calibration: `mixed`; provider coverage: `partial`.
|
|
60
|
-
- Relations: `execution/predicate-consequence` (exact), `execution/call` (exact).
|
|
61
|
-
- Structural evidence: AST branch count or disclosed regex fallback; call fan-in; callee count.
|
|
62
|
-
- Does not establish: Structural complexity does not establish runtime frequency, latency, defect density, or a required refactor.
|
|
63
|
-
- Recover with: `scip-query inspect --symbol <symbol> --view behavior`
|
|
64
|
-
|
|
65
25
|
## decorative-checkers
|
|
66
26
|
|
|
67
27
|
A checker-shaped callable lacks a visible failure terminal directly or through one resolved delegate.
|
package/docs/DETECTOR_GUIDE.md
CHANGED
|
@@ -13,21 +13,27 @@ scip-query health --full
|
|
|
13
13
|
|
|
14
14
|
The health report combines graph structure, duplication, drift, complexity,
|
|
15
15
|
history, suppressions, coverage contracts, and React and Vue analyses. Its
|
|
16
|
-
score is a summary, not proof of correctness.
|
|
16
|
+
score is a summary, not proof of correctness. The `Input:` line under the
|
|
17
|
+
file and symbol counts names the index generation and the git commit,
|
|
18
|
+
branch, and uncommitted-path count the report was computed from
|
|
19
|
+
(`provenance` in `health --json`); compare two reports only when that line
|
|
20
|
+
matches, because a repository change and a detector change move the same
|
|
21
|
+
numbers.
|
|
17
22
|
|
|
18
23
|
## Focused detector families
|
|
19
24
|
|
|
20
|
-
| Concern
|
|
21
|
-
|
|
|
22
|
-
| Exact or near duplication
|
|
23
|
-
| Parallel implementations
|
|
24
|
-
| Unused or disconnected code | `dead`, `isolated`, `unused-params`
|
|
25
|
-
| Excess indirection
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
25
|
+
| Concern | Commands |
|
|
26
|
+
| --------------------------- | ------------------------------------------------------------------------------------------- |
|
|
27
|
+
| Exact or near duplication | `duplicate-bodies`, `similar`, `recent-duplicates` |
|
|
28
|
+
| Parallel implementations | `twin-drift`, `incomplete-migration`, `drift` |
|
|
29
|
+
| Unused or disconnected code | `dead`, `isolated`, `unused-params` |
|
|
30
|
+
| Excess indirection | `wrapper-candidates`, `passthrough-candidates`, `stale-abstractions`, `redundant-reexports` |
|
|
31
|
+
| Extraction seams | `extract-candidates`, `slice-cohesion` |
|
|
32
|
+
| Change pressure | `complexity-hotspots`, `co-change`, `cycles` |
|
|
33
|
+
| Documentation | `doc-drift` |
|
|
34
|
+
| React | `react-component-duplicates`, `react-hook-candidates`, `react-large-component-pressure` |
|
|
35
|
+
| Vue | `vue-component-duplicates`, `vue-composable-candidates`, `vue-large-view-pressure` |
|
|
36
|
+
| Team structure policy | `architecture` |
|
|
31
37
|
|
|
32
38
|
Run focused commands through the `scip-query` CLI. Add `--full` only when that
|
|
33
39
|
command supports it and exhaustive command coverage can change the decision.
|
|
@@ -44,3 +50,40 @@ command supports it and exhaustive command coverage can change the decision.
|
|
|
44
50
|
Suppress a false or accepted finding with `scip-query suppress <id>` and a
|
|
45
51
|
specific reason. A suppression addresses one finding; it must not disable an
|
|
46
52
|
unrelated detector family.
|
|
53
|
+
|
|
54
|
+
## Policy exclusions
|
|
55
|
+
|
|
56
|
+
Some rows match a detector's pattern because a convention demands the
|
|
57
|
+
match, not because anyone copied or wrapped anything. Detectors remove those
|
|
58
|
+
rows from the counts `health` scores and disclose the removal instead of
|
|
59
|
+
hiding it, under `Policy exclusions` in the text report and `policyExclusions`
|
|
60
|
+
in `health --json`. An excluded row is still listed by its focused command
|
|
61
|
+
(often at support tier), so a reviewer who disagrees with the policy can
|
|
62
|
+
still find it.
|
|
63
|
+
|
|
64
|
+
| Detector | Excluded by policy |
|
|
65
|
+
| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
66
|
+
| `react-component-duplicates`, `react-hook-candidates`, `react-large-component-pressure` | components in test files; pairs of vendored UI-kit primitives (the shadcn `components.json` `aliases.ui` directory or a `components/ui` directory); hook-versus-component pairs; loading placeholders that share only a skeleton primitive |
|
|
67
|
+
| `react-component-duplicates` | two framework route entries whose JSX overlaps (support tier: routing scaffolding); shared _behavior_ between route entries still counts |
|
|
68
|
+
| `react-component-duplicates`, `react-hook-candidates` | an intercepting route and its target are kept, with the recommendation to render one shared view |
|
|
69
|
+
| `react-hook-candidates` | pairs whose overlap is only generic React or data-fetching mechanics (`useState`, `useMutation`, `.mutate()`, `useRouter`) |
|
|
70
|
+
| `wrapper-candidates` | constructors; single-consumer callables whose body is not exactly one call with plain-value arguments (a preparatory statement, a callback, a nested call, or a literal the body builds makes it `bodyShape: helper`, signal tier) |
|
|
71
|
+
| `duplicate-bodies` | duplicate members that are constructors, test-file bodies, route-file verb exports, or vendored UI-kit bodies; a group must keep two product files to count |
|
|
72
|
+
| `dead` | zero-reference symbols in framework entry surfaces (route handlers, pages, Trigger.dev task directories from `trigger.config.*`, live barrels) and in generated artifacts (`drizzle-kit pull` dumps, migration snapshots, codegen output) |
|
|
73
|
+
| `dead` | exports of source files a root configuration names by path (`next.config.js` `images.loaderFile`, `package.json` scripts) |
|
|
74
|
+
| `twin-drift` | route-file convention names (`handler`, `handleGet`, `*Page`, `generateMetadata`) inside framework entry files |
|
|
75
|
+
| `twin-drift` | CRUD and lifecycle method names (`create`, `delete`, `getById`, `shutdown`, ...) declared directly on unrelated classes; free functions with those names keep the ordinary rules |
|
|
76
|
+
| `twin-drift` | a member that calls its same-name counterpart, directly or under an import alias (an operations function over its use-case, a component over the function it renders): a layer, not a parallel implementation |
|
|
77
|
+
| `twin-drift` | a thin forwarder whose single call is named differently from itself (a web API client, a vendor adapter) is a stub over its peer's concept; overrides of one abstract member; key-qualified lookup members (`getBySlug`, `findByEmail`) on unrelated classes |
|
|
78
|
+
| `passthrough-candidates` | a file with three or more methods forwarding to the same collaborator is a facade; its forwards become boundary signals instead of direct inline advice |
|
|
79
|
+
| `wrapper-candidates`, `passthrough-candidates` | boundary terms are read from leaf names, and a term both sides carry (`toBaseRate` forwarding to `parseBaseRate`; a wrapper and its caller both under `lib/auth/`) is shared vocabulary, not a boundary; only asymmetric terms demote a finding to signal tier |
|
|
80
|
+
| `passthrough-candidates` | a class whose methods forward to members of three or more collaborators is a composed-service facade; a curried handler (`return jsonHandler(async () => {...})(req, res, next)`) is not a literal forward |
|
|
81
|
+
| `wrapper-candidates` | a forward through a module-private variable (`return loadedLanguages.has(lang)`) is a boundary signal because inlining would export the state |
|
|
82
|
+
| `co-change` (hidden coupling) | documentation that changes alongside the code it describes (`doc-drift` owns stale docs); generated artifacts such as migration journals, snapshots, and codegen output |
|
|
83
|
+
| `co-change` | pairs whose shared commits were only broad sweeps, stale pairs with at most two focused co-changes, and configuration or schema partners (signal tier; listed by co-change) |
|
|
84
|
+
| `co-change` | a `<Name>.script.ts` companion is a component script block, not a maintenance script: a view script changing with its model is model-view coupling |
|
|
85
|
+
| `similar` | two functions in one file sharing four or more callees at similarity 0.5 or more are direct whatever the vocabulary class; a cross-file pair whose shared evidence mixes domain behavior with scaffolding is direct from similarity 0.6; other scaffolding-only pairs stay signal |
|
|
86
|
+
| `cycles` (health axis) | components that cycle through type or symbol references but not through imports; health counts import cycles and lists the rest as a disclosure, while the `cycles` command keeps its symbol-reference default and names the basis |
|
|
87
|
+
| `complexity-hotspots` (extreme count) | callables above the extreme score only through fan-in, with fewer than 10 branches |
|
|
88
|
+
| `extract-candidates` | regions whose extraction would take more than five locals in or hand more than two back (support tier: wide interface); only regions with a narrow or unknown interface count |
|
|
89
|
+
| `extract-candidates` | a selected region that is one statement (an awaited call with callback arguments, a resource or form declaration, a nested function) is support tier: extracting it would only wrap that statement; loop and branch bodies and rendered element subtrees keep their tier |
|