scip-query 0.10.11 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/{vendor/scip/LICENSE.scip → LICENSE} +1 -0
- package/README.md +168 -55
- package/dist/augment-vue-worker.js +1 -1
- package/dist/chunk-2VSDXOG5.js +2 -0
- package/dist/chunk-343O6EVV.js +2 -0
- package/dist/chunk-3KDUITBE.js +7 -0
- package/dist/chunk-3T2FNHIU.js +2 -0
- package/dist/chunk-3V6JQQM5.js +2 -0
- package/dist/chunk-5AAAEZ2Z.js +2 -0
- package/dist/chunk-6Q6OFLFQ.js +8 -0
- package/dist/chunk-6XA4LDHY.js +2 -0
- package/dist/chunk-75X52JTA.js +2 -0
- package/dist/{chunk-54KGX7EX.js → chunk-7HB3CZFD.js} +2 -2
- package/dist/chunk-7JZRFDCU.js +2 -0
- package/dist/chunk-7XL7J7PT.js +3 -0
- package/dist/chunk-ALHNAPS2.js +2 -0
- package/dist/{chunk-JATUZIEH.js → chunk-BDRBPG7Y.js} +2 -2
- package/dist/chunk-BN5SXXQS.js +40 -0
- package/dist/chunk-C4ICAIJ4.js +3 -0
- package/dist/{chunk-LSET2TXH.js → chunk-CMHYBXJB.js} +2 -2
- package/dist/{chunk-YWYFU2V3.js → chunk-DRPAQAFM.js} +6 -6
- package/dist/chunk-FERAXG6Y.js +72 -0
- package/dist/chunk-FLJJLSGB.js +2 -0
- package/dist/chunk-FXG3PHVW.js +9 -0
- package/dist/chunk-GCN2P4EJ.js +2 -0
- package/dist/chunk-GHXRVCIY.js +21 -0
- package/dist/chunk-GNG622H3.js +3 -0
- package/dist/chunk-H4LUPLEJ.js +2 -0
- package/dist/{chunk-BASVXNY3.js → chunk-H56MGERE.js} +4 -4
- package/dist/chunk-H7NSJ7L2.js +5 -0
- package/dist/chunk-HINMXZ6J.js +2 -0
- package/dist/chunk-HXXMPYEF.js +2 -0
- package/dist/{chunk-Z3YYR4OS.js → chunk-HZKMEXA3.js} +2 -2
- package/dist/chunk-IFSX6YVU.js +4 -0
- package/dist/chunk-ISLWJ4PY.js +10 -0
- package/dist/chunk-J5WVNZ6O.js +2 -0
- package/dist/chunk-K2HYR5A7.js +3 -0
- package/dist/chunk-K6UI6EBZ.js +2 -0
- package/dist/chunk-KJCDEDQW.js +2 -0
- package/dist/{chunk-Z4HICZGY.js → chunk-KKMOB3OJ.js} +2 -2
- package/dist/{chunk-YWOOQ4FF.js → chunk-KMVGRIO2.js} +2 -2
- package/dist/chunk-LWOOTRHC.js +2 -0
- package/dist/{chunk-EY43NV4M.js → chunk-LZNLRE4X.js} +17 -8
- package/dist/chunk-M2YXL62V.js +23 -0
- package/dist/chunk-MNEJYEHW.js +3 -0
- package/dist/chunk-MTDBHTSF.js +2 -0
- package/dist/{chunk-ZQDIXAF5.js → chunk-N2Z3CU7X.js} +2 -2
- package/dist/chunk-N7PNFLGY.js +2 -0
- package/dist/chunk-NAH5EAZS.js +6 -0
- package/dist/chunk-NBXK32I6.js +2 -0
- package/dist/chunk-NJJ7AS4F.js +2 -0
- package/dist/{chunk-FDEQIPPK.js → chunk-NLMRJ7SI.js} +2 -2
- package/dist/chunk-ODVITBYU.js +26 -0
- package/dist/chunk-ORBRX2QJ.js +2 -0
- package/dist/chunk-P36UR5II.js +2 -0
- package/dist/chunk-PYZZBIEU.js +3 -0
- package/dist/chunk-PZS6J5YG.js +16 -0
- package/dist/{chunk-LM5SHAN4.js → chunk-QARYU7R3.js} +2 -2
- package/dist/chunk-QJ3FK4TB.js +38 -0
- package/dist/chunk-QXGTGE2C.js +35 -0
- package/dist/chunk-QZ4JVECJ.js +2 -0
- package/dist/chunk-R3JY4EZ4.js +102 -0
- package/dist/{chunk-VOYOYC5T.js → chunk-R5336VHZ.js} +2 -2
- package/dist/chunk-RJMXSHKM.js +2 -0
- package/dist/chunk-STBXCPKY.js +5 -0
- package/dist/chunk-T2FQ4GHD.js +9 -0
- package/dist/chunk-TFWDJDGO.js +2 -0
- package/dist/chunk-TG7QSYCJ.js +2 -0
- package/dist/{chunk-FKCGBZAC.js → chunk-TTS75UF2.js} +5 -5
- package/dist/{chunk-BVRS7RKQ.js → chunk-U7I373V4.js} +2 -2
- package/dist/chunk-UIKLA3F5.js +2 -0
- package/dist/{chunk-P753MDDE.js → chunk-UMPNL7T6.js} +2 -2
- package/dist/chunk-URSSPS5H.js +2 -0
- package/dist/chunk-VGMUFW3J.js +2 -0
- package/dist/chunk-VXTNADIW.js +18 -0
- package/dist/chunk-VYF5HA76.js +2 -0
- package/dist/chunk-WFGOH2UI.js +43 -0
- package/dist/chunk-WGA5BBTA.js +4 -0
- package/dist/chunk-WIBFXSYB.js +6 -0
- package/dist/chunk-WPSS37EW.js +2 -0
- package/dist/chunk-WQHWIVA7.js +3 -0
- package/dist/chunk-WS3Z6W3M.js +65 -0
- package/dist/chunk-WXVGNFAO.js +2 -0
- package/dist/{chunk-6LJHXREW.js → chunk-WZLPXFZU.js} +2 -2
- package/dist/chunk-X4O6K47U.js +2 -0
- package/dist/chunk-X6OGDTQH.js +2 -0
- package/dist/chunk-XEMQUN3Z.js +20 -0
- package/dist/{chunk-7B6LP46R.js → chunk-XHWLNQVZ.js} +2 -2
- package/dist/chunk-XMR747CP.js +2 -0
- package/dist/chunk-Y6L4LXPG.js +2 -0
- package/dist/chunk-YCPASUCX.js +2 -0
- package/dist/chunk-YZXV3CU3.js +60 -0
- package/dist/chunk-ZEKBR4OK.js +10 -0
- package/dist/chunk-ZMGBWSFZ.js +2 -0
- package/dist/cli.js +462 -274
- package/dist/{config-types-BDIWAYzr.d.ts → config-types-BrHl3Bge.d.ts} +61 -1
- package/dist/{db-Djj3Nqrb.d.ts → db-_Bdx0E1W.d.ts} +1 -1
- package/dist/diff-gate-types-CG2YQ_ei.d.ts +4 -0
- package/dist/{frontend-behavior-evidence-BxKpKWUu.d.ts → frontend-behavior-evidence-EfM4_9bc.d.ts} +1 -1
- package/dist/{health-D5J42g4D.d.ts → health-BEZ1Rt0S.d.ts} +54 -2
- package/dist/index.d.ts +10 -70
- package/dist/index.js +2 -2
- package/dist/postinstall.js +1 -4
- package/dist/queries/affected.d.ts +2 -2
- package/dist/queries/affected.js +1 -1
- package/dist/queries/bottlenecks.d.ts +2 -2
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.d.ts +2 -2
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.d.ts +2 -2
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.d.ts +2 -2
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.d.ts +2 -2
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.d.ts +12 -2
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.d.ts +2 -2
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity-hotspots.d.ts +7 -3
- package/dist/queries/complexity-hotspots.js +1 -1
- package/dist/queries/complexity.d.ts +42 -4
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/convergence.d.ts +2 -2
- package/dist/queries/convergence.js +1 -1
- package/dist/queries/coupling.d.ts +2 -2
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.d.ts +12 -3
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dataflow.d.ts +2 -2
- package/dist/queries/dataflow.js +1 -1
- package/dist/queries/dead.d.ts +3 -3
- package/dist/queries/dead.js +1 -1
- package/dist/queries/deep-chains.d.ts +2 -2
- package/dist/queries/deep-chains.js +1 -1
- package/dist/queries/deps.d.ts +2 -2
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-gate.d.ts +65 -8
- package/dist/queries/diff-gate.js +1 -1
- package/dist/queries/diff-impact.d.ts +21 -3
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.d.ts +29 -2
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +15 -3
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +55 -0
- package/dist/queries/duplicate-bodies.js +2 -0
- package/dist/queries/extract-candidates.d.ts +2 -2
- package/dist/queries/extract-candidates.js +1 -1
- package/dist/queries/fan.d.ts +2 -2
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.d.ts +4 -3
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.d.ts +3 -3
- 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 +2 -2
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.d.ts +2 -2
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.d.ts +3 -2
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +12 -7
- package/dist/queries/index.js +1 -1
- package/dist/queries/isolated.d.ts +2 -2
- package/dist/queries/isolated.js +1 -1
- package/dist/queries/locality-candidates.d.ts +2 -2
- package/dist/queries/locality-candidates.js +1 -1
- package/dist/queries/members.d.ts +2 -2
- package/dist/queries/members.js +1 -1
- package/dist/queries/methods.d.ts +2 -2
- package/dist/queries/methods.js +1 -1
- package/dist/queries/outline.d.ts +2 -2
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.d.ts +11 -3
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/plan-context.d.ts +3 -2
- package/dist/queries/plan-context.js +1 -1
- package/dist/queries/react-component-duplicates.d.ts +7 -2
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +3 -3
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.d.ts +2 -2
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.d.ts +2 -2
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.d.ts +2 -2
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/refs.d.ts +2 -2
- package/dist/queries/refs.js +1 -1
- package/dist/queries/self-audit.d.ts +9 -4
- package/dist/queries/self-audit.js +1 -1
- package/dist/queries/similar-chains.d.ts +2 -2
- package/dist/queries/similar-chains.js +1 -1
- package/dist/queries/similar-files.d.ts +2 -2
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.d.ts +17 -10
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +85 -17
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice.d.ts +2 -2
- package/dist/queries/slice.js +1 -1
- package/dist/queries/stale-abstractions.d.ts +2 -2
- package/dist/queries/stale-abstractions.js +1 -1
- package/dist/queries/stats.d.ts +2 -2
- package/dist/queries/surface.d.ts +2 -2
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.d.ts +2 -2
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system.d.ts +2 -2
- package/dist/queries/system.js +1 -1
- package/dist/queries/trace.d.ts +2 -2
- package/dist/queries/trace.js +1 -1
- package/dist/queries/twin-ab.d.ts +55 -0
- package/dist/queries/twin-ab.js +2 -0
- package/dist/queries/twin-drift.d.ts +97 -0
- package/dist/queries/twin-drift.js +2 -0
- package/dist/queries/unused-imports.d.ts +2 -2
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.d.ts +2 -2
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/vue-component-duplicates.d.ts +7 -2
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.d.ts +3 -3
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.d.ts +6 -2
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/queries/wrapper-candidates.d.ts +2 -2
- package/dist/queries/wrapper-candidates.js +1 -1
- package/dist/reindex-worker.js +9 -9
- package/dist/reindex.d.ts +30 -4
- package/dist/reindex.js +19 -19
- package/dist/runtime.d.ts +12 -6
- package/dist/runtime.js +2 -2
- package/dist/{scip-cli-CnK9Va4O.d.ts → scip-cli-C7cg4ZHR.d.ts} +1 -1
- package/dist/symbol-types-DaoeXKUt.d.ts +66 -0
- package/docs/AGENT_GUIDE.md +20 -18
- package/docs/AI_FAILURE_MODES.md +36 -13
- package/docs/API.md +1 -1
- package/docs/COMMAND_REFERENCE.md +57 -14
- package/docs/DETECTOR_GUIDE.md +20 -3
- package/docs/REGEX_POLICY.md +34 -0
- package/docs/analyzer-inventory.md +48 -3
- package/docs/analyzer-validation-ledger.md +41 -6
- package/package.json +23 -7
- package/scripts/build-scip-windows.mjs +10 -7
- package/scripts/evidence-product-contract.mjs +197 -0
- package/skills/_shared/SKILL.md +243 -0
- package/skills/_shared/agents/openai.yaml +4 -0
- package/skills/scip-api-impact/SKILL.md +55 -71
- package/skills/scip-claim-audit/SKILL.md +105 -0
- package/skills/scip-claim-audit/agents/openai.yaml +4 -0
- package/skills/scip-cleanup-audit/SKILL.md +122 -0
- package/skills/scip-cleanup-audit/agents/openai.yaml +4 -0
- package/skills/scip-cleanup-improve/SKILL.md +84 -0
- package/skills/scip-cleanup-improve/agents/openai.yaml +4 -0
- package/skills/scip-concrete-plan/SKILL.md +181 -0
- package/skills/scip-concrete-plan/agents/openai.yaml +4 -0
- package/skills/scip-conductor/SKILL.md +133 -0
- package/skills/scip-conductor/agents/openai.yaml +4 -0
- package/skills/scip-debug/SKILL.md +60 -58
- package/skills/scip-diagram/SKILL.md +64 -94
- package/skills/scip-directory-architecture/SKILL.md +65 -107
- package/skills/scip-doc-reconcile/SKILL.md +56 -67
- package/skills/scip-explore/SKILL.md +78 -210
- package/skills/scip-hyper-optimization/SKILL.md +124 -198
- package/skills/scip-integrity-audit/SKILL.md +103 -0
- package/skills/scip-integrity-audit/agents/openai.yaml +4 -0
- package/skills/scip-language-playbook/SKILL.md +56 -326
- package/skills/scip-maintainability/SKILL.md +80 -219
- package/skills/scip-probe-reachability/SKILL.md +92 -0
- package/skills/scip-probe-reachability/agents/openai.yaml +4 -0
- package/skills/scip-query/SKILL.md +108 -124
- package/skills/scip-react-maintainability/SKILL.md +64 -82
- package/skills/scip-setup/SKILL.md +121 -0
- package/skills/scip-setup/agents/openai.yaml +4 -0
- package/skills/scip-tla-model-system/SKILL.md +138 -0
- package/skills/scip-tla-model-system/agents/openai.yaml +4 -0
- package/skills/scip-triage-issue/SKILL.md +53 -41
- package/skills/scip-twin-drift/SKILL.md +107 -0
- package/skills/scip-twin-drift/agents/openai.yaml +4 -0
- package/skills/scip-verify/SKILL.md +70 -88
- package/skills/scip-vue-maintainability/SKILL.md +67 -94
- package/dist/chunk-2KHTSEIL.js +0 -102
- package/dist/chunk-3VD3JMK2.js +0 -2
- package/dist/chunk-4UZO3XCV.js +0 -35
- package/dist/chunk-5GOLFJEO.js +0 -8
- package/dist/chunk-5OST6GYB.js +0 -2
- package/dist/chunk-65AU3HFZ.js +0 -2
- package/dist/chunk-6GN7FXCH.js +0 -2
- package/dist/chunk-6IR2AOBM.js +0 -7
- package/dist/chunk-6JRV4MY2.js +0 -23
- package/dist/chunk-6QSOCTZT.js +0 -18
- package/dist/chunk-72KY2ZFO.js +0 -2
- package/dist/chunk-7GO4EQF5.js +0 -2
- package/dist/chunk-7IVSJJZU.js +0 -7
- package/dist/chunk-7TWLSZK5.js +0 -2
- package/dist/chunk-A536TEU4.js +0 -3
- package/dist/chunk-AVWPHM2Q.js +0 -4
- package/dist/chunk-B32FX5KB.js +0 -2
- package/dist/chunk-B6MJ5VQV.js +0 -2
- package/dist/chunk-BFXPG2VN.js +0 -2
- package/dist/chunk-BSN22NRK.js +0 -9
- package/dist/chunk-BZ53S4ZN.js +0 -2
- package/dist/chunk-C5CTSJ6X.js +0 -6
- package/dist/chunk-CO5GJRP7.js +0 -2
- package/dist/chunk-CW5YFOCP.js +0 -5
- package/dist/chunk-DS6QEB3G.js +0 -5
- package/dist/chunk-E35O7UCB.js +0 -2
- package/dist/chunk-EXDQ35NN.js +0 -2
- package/dist/chunk-FAYI6KZ5.js +0 -2
- package/dist/chunk-FFVIFETB.js +0 -2
- package/dist/chunk-FG4NT6VY.js +0 -2
- package/dist/chunk-FXNWFMKW.js +0 -25
- package/dist/chunk-G5UPYQGL.js +0 -4
- package/dist/chunk-GQBMH2TQ.js +0 -2
- package/dist/chunk-GRJY65YT.js +0 -2
- package/dist/chunk-HF25DFSC.js +0 -3
- package/dist/chunk-HHN2B5KA.js +0 -2
- package/dist/chunk-IHUETYFW.js +0 -2
- package/dist/chunk-JCLDUKT6.js +0 -38
- package/dist/chunk-JGN2ZFJR.js +0 -2
- package/dist/chunk-JM72FNGA.js +0 -2
- package/dist/chunk-JME7OWD3.js +0 -2
- package/dist/chunk-KDFONWTW.js +0 -40
- package/dist/chunk-LPL4MA6R.js +0 -2
- package/dist/chunk-LZHUWKGD.js +0 -2
- package/dist/chunk-M4COR2H6.js +0 -2
- package/dist/chunk-NOJAM5ZV.js +0 -21
- package/dist/chunk-O6ZH6C6Y.js +0 -2
- package/dist/chunk-OBGRLXWF.js +0 -3
- package/dist/chunk-OLTESY4K.js +0 -3
- package/dist/chunk-ONPCQ2PM.js +0 -6
- package/dist/chunk-P4KYUPBD.js +0 -4
- package/dist/chunk-P5RYBRIO.js +0 -4
- package/dist/chunk-P7AL7Y37.js +0 -2
- package/dist/chunk-PFOCOG57.js +0 -2
- package/dist/chunk-QLAUCRDJ.js +0 -2
- package/dist/chunk-QPU7EXAW.js +0 -2
- package/dist/chunk-QYB5P7GL.js +0 -2
- package/dist/chunk-RNM6LMCF.js +0 -2
- package/dist/chunk-RVWSAMTT.js +0 -2
- package/dist/chunk-TK7O5ER5.js +0 -3
- package/dist/chunk-TQ5W2H3S.js +0 -4
- package/dist/chunk-USPV3T5K.js +0 -2
- package/dist/chunk-UUBMFL3F.js +0 -59
- package/dist/chunk-VCQYSG2M.js +0 -10
- package/dist/chunk-VUKC6F77.js +0 -20
- package/dist/chunk-W2CBNBEL.js +0 -71
- package/dist/chunk-W6BVEKYC.js +0 -3
- package/dist/chunk-WUCEKFQC.js +0 -3
- package/dist/chunk-XUGQU7PM.js +0 -41
- package/dist/chunk-Y5NBHMQX.js +0 -2
- package/dist/chunk-YCOFCT4B.js +0 -2
- package/dist/chunk-YZA6PPZL.js +0 -3
- package/skills/concrete-plan/SKILL.md +0 -372
- package/skills/concrete-plan/agents/openai.yaml +0 -4
- package/skills/scip-adoption/SKILL.md +0 -122
- package/skills/scip-adoption/agents/openai.yaml +0 -4
- package/skills/scip-ai-cleanup/SKILL.md +0 -153
- package/skills/scip-ai-cleanup/agents/openai.yaml +0 -4
- package/skills/scip-debloat/SKILL.md +0 -439
- package/skills/scip-debloat/agents/openai.yaml +0 -4
- package/skills/scip-health-audit/SKILL.md +0 -162
- package/skills/scip-health-audit/agents/openai.yaml +0 -4
- package/skills/scip-health-improve/SKILL.md +0 -155
- package/skills/scip-health-improve/agents/openai.yaml +0 -4
- package/skills/scip-query-setup/SKILL.md +0 -170
- package/skills/scip-query-setup/agents/openai.yaml +0 -3
- package/vendor/scip/README.md +0 -6
- package/vendor/scip/win32-arm64/scip.exe +0 -0
- package/vendor/scip/win32-x64/scip.exe +0 -0
|
@@ -1,252 +1,120 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: scip-explore
|
|
3
|
-
description:
|
|
3
|
+
description: Explore codebases with scip-query evidence. Use to explain how a system, feature, module, call path, dependency graph, data flow, architecture, or change risk works before answering or editing.
|
|
4
|
+
commands:
|
|
5
|
+
- template: "scip-query stats"
|
|
6
|
+
when: "Orient: repo-wide size and shape before naming a scope."
|
|
7
|
+
- template: "scip-query system <module-or-scope>"
|
|
8
|
+
when: "Orient: map files, symbols, deps in/out for the scope."
|
|
9
|
+
- template: "scip-query trace <entry-symbol>"
|
|
10
|
+
when: "Trace entry points: definition plus every reference."
|
|
11
|
+
- template: "scip-query call-graph <entry-symbol>"
|
|
12
|
+
when: "Trace entry points: callers and callees for the path."
|
|
13
|
+
- template: "scip-query dataflow <symbol-or-variable>"
|
|
14
|
+
when: "Follow data and state through producers and consumers."
|
|
15
|
+
- template: "scip-query affected <symbol> --json"
|
|
16
|
+
when: "Map dependencies and consumers: downstream blast radius."
|
|
4
17
|
---
|
|
5
18
|
|
|
6
|
-
#
|
|
19
|
+
# scip-explore
|
|
7
20
|
|
|
8
|
-
|
|
21
|
+
Use this skill to produce verified understanding. Exploration is the evidence pass that traces code from entry points to effects using the SCIP index rather than memory or folder guesses.
|
|
9
22
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
## When to Use This Skill
|
|
13
|
-
|
|
14
|
-
- "How does X work?"
|
|
15
|
-
- "What happens when a user does Y?"
|
|
16
|
-
- "Walk me through the flow from A to B"
|
|
17
|
-
- "What depends on this module?"
|
|
18
|
-
- "Is it safe to change this?"
|
|
19
|
-
- "Help me understand this codebase"
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Hard Rules
|
|
24
|
-
|
|
25
|
-
1. **Use a current index.** Before exploration, run `scip-query status` when available and check whether the index is missing, stale, or built for a different project root. If the codebase has changed, the status is uncertain, or the user asks for current facts, run `scip-query reindex` before trusting results. If reindexing fails, report that the index may be stale and mark affected claims as unverified.
|
|
26
|
-
|
|
27
|
-
2. **Every claim must come from scip-query.** If you say "function X calls function Y," you must have run `scip-query call-graph X` or `scip-query code X` to verify it. No memory. No assumptions.
|
|
28
|
-
|
|
29
|
-
3. **Read the code.** Don't describe what a function "probably does" — run `scip-query code <symbol>` and describe what it actually does.
|
|
30
|
-
|
|
31
|
-
4. **Follow the graph, not the folder structure.** File organization can be misleading. Use `scip-query deps`, `scip-query rdeps`, `scip-query call-graph`, and `scip-query dataflow` to trace actual execution paths.
|
|
32
|
-
|
|
33
|
-
5. **Start wide, then narrow.** Begin with `scip-query system` for the module map, then drill into specific symbols with `scip-query call-graph`, `scip-query code`, and `scip-query dataflow`.
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Symbol Lookup Tips
|
|
38
|
-
|
|
39
|
-
`scip-query` accepts partial symbol names — you don't need the full SCIP symbol path. These all work:
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
scip-query code processVegaMention # just the function name
|
|
43
|
-
scip-query call-graph ChatService # just the class name
|
|
44
|
-
scip-query trace getActiveInferenceConfig # any unique substring
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
**Avoid parentheses** — `()` causes shell parse errors in zsh/bash:
|
|
48
|
-
```bash
|
|
49
|
-
# BAD — shell tries to execute a subshell
|
|
50
|
-
scip-query code processVegaMention()
|
|
51
|
-
|
|
52
|
-
# GOOD — no parens needed, scip-query strips them internally
|
|
53
|
-
scip-query code processVegaMention
|
|
54
|
-
|
|
55
|
-
# ALSO GOOD — single quotes protect special characters
|
|
56
|
-
scip-query code 'processVegaMention'
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
**Read source by file + line range** when the symbol name is ambiguous:
|
|
60
|
-
```bash
|
|
61
|
-
scip-query code 'src/modules/chat/chat.service.ts:100-200'
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
**If "Symbol not found":**
|
|
65
|
-
1. Try a shorter/simpler name — `login` instead of `AuthService:login`
|
|
66
|
-
2. Try `scip-query outline <file>` to see what symbols exist in the file
|
|
67
|
-
3. Try `scip-query trace <name>` which uses a different lookup path
|
|
68
|
-
4. Use the `file:line-line` syntax for `code` if you know the location
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Exploration Workflow
|
|
73
|
-
|
|
74
|
-
### Step 0: Verify the index
|
|
23
|
+
Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
|
|
75
24
|
|
|
76
|
-
|
|
25
|
+
<!-- BEGIN GENERATED SKILL COMMANDS -->
|
|
26
|
+
## Commands for this skill
|
|
77
27
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
scip-query
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
28
|
+
| Command | Purpose | When |
|
|
29
|
+
| --- | --- | --- |
|
|
30
|
+
| `scip-query stats` | Show index statistics | Orient: repo-wide size and shape before naming a scope. |
|
|
31
|
+
| `scip-query system <module-or-scope>` | Full module map: files, symbols, deps in/out | Orient: map files, symbols, deps in/out for the scope. |
|
|
32
|
+
| `scip-query trace <entry-symbol>` | Trace a symbol: definition + all references | Trace entry points: definition plus every reference. |
|
|
33
|
+
| `scip-query call-graph <entry-symbol>` | Show incoming callers and outgoing callees for a symbol | Trace entry points: callers and callees for the path. |
|
|
34
|
+
| `scip-query dataflow <symbol-or-variable>` | Reference-level dataflow: definition sites, usage sites, producers, consumers | Follow data and state through producers and consumers. |
|
|
35
|
+
| `scip-query affected <symbol> --json` | Transitive closure of symbols that could break if this symbol changes | Map dependencies and consumers: downstream blast radius. |
|
|
86
36
|
|
|
87
|
-
|
|
37
|
+
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
38
|
+
<!-- END GENERATED SKILL COMMANDS -->
|
|
88
39
|
|
|
89
|
-
|
|
90
|
-
scip-query stats # How big is this codebase?
|
|
91
|
-
scip-query kind-counts # What symbol kinds dominate?
|
|
92
|
-
scip-query system <module> # Full module map: files, symbols, deps
|
|
93
|
-
scip-query outline <entry-file> # What's in the entry point?
|
|
94
|
-
scip-query by-kind function --scope <module> # Inventory one kind in scope
|
|
95
|
-
```
|
|
40
|
+
## Rules
|
|
96
41
|
|
|
97
|
-
|
|
42
|
+
1. Use a current index before trusting graph facts.
|
|
43
|
+
2. Every behavior, path, consumer, and risk claim cites a scip-query command.
|
|
44
|
+
3. Read source with `scip-query code`; do not describe what a function probably does.
|
|
45
|
+
4. Follow the graph before trusting folder structure.
|
|
46
|
+
5. Start wide, then narrow.
|
|
98
47
|
|
|
99
|
-
|
|
48
|
+
## Workflow
|
|
100
49
|
|
|
101
|
-
|
|
50
|
+
### 1. Orient
|
|
102
51
|
|
|
103
52
|
```bash
|
|
104
|
-
scip-query
|
|
105
|
-
scip-query
|
|
106
|
-
scip-query
|
|
53
|
+
scip-query stats
|
|
54
|
+
scip-query kind-counts
|
|
55
|
+
scip-query system <module-or-scope>
|
|
56
|
+
scip-query outline <entry-file>
|
|
57
|
+
scip-query by-kind function --scope <scope>
|
|
107
58
|
```
|
|
108
59
|
|
|
109
|
-
|
|
60
|
+
This step is complete only when the module files, key symbols, dependencies, and reverse dependencies are mapped.
|
|
110
61
|
|
|
111
|
-
###
|
|
112
|
-
|
|
113
|
-
Understand what the system depends on and who depends on it:
|
|
62
|
+
### 2. Trace entry points
|
|
114
63
|
|
|
115
64
|
```bash
|
|
116
|
-
scip-query
|
|
117
|
-
scip-query
|
|
118
|
-
scip-query
|
|
119
|
-
scip-query
|
|
120
|
-
scip-query affected <symbol> # Full transitive blast radius
|
|
65
|
+
scip-query trace <entry-symbol>
|
|
66
|
+
scip-query call-graph <entry-symbol>
|
|
67
|
+
scip-query code <entry-symbol>
|
|
68
|
+
scip-query dataflow <entry-symbol>
|
|
121
69
|
```
|
|
122
70
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
For each key symbol, trace how data moves through the system:
|
|
71
|
+
Repeat for important callees until the path reaches side effects, returned values, or terminal outputs.
|
|
126
72
|
|
|
127
|
-
|
|
128
|
-
scip-query dataflow <symbol> # Definition sites, usage sites, producers, consumers
|
|
129
|
-
scip-query slice <symbol> # Backward: what feeds into this?
|
|
130
|
-
scip-query slice <symbol> --forward # Forward: what does this feed into?
|
|
131
|
-
```
|
|
73
|
+
This step is complete only when the explored path connects entry point to observable effect.
|
|
132
74
|
|
|
133
|
-
###
|
|
134
|
-
|
|
135
|
-
Identify the riskiest parts of the system:
|
|
75
|
+
### 3. Map dependencies and consumers
|
|
136
76
|
|
|
137
77
|
```bash
|
|
138
|
-
scip-query
|
|
139
|
-
scip-query
|
|
140
|
-
scip-query
|
|
141
|
-
scip-query
|
|
78
|
+
scip-query deps <file>
|
|
79
|
+
scip-query rdeps <file>
|
|
80
|
+
scip-query fan-out <file>
|
|
81
|
+
scip-query surface <module>
|
|
82
|
+
scip-query affected <symbol>
|
|
142
83
|
```
|
|
143
84
|
|
|
144
|
-
|
|
85
|
+
This step is complete only when direct dependencies, public surface, and downstream blast radius are named.
|
|
145
86
|
|
|
146
|
-
|
|
87
|
+
### 4. Follow data and state
|
|
147
88
|
|
|
148
89
|
```bash
|
|
149
|
-
scip-query
|
|
150
|
-
scip-query
|
|
151
|
-
scip-query
|
|
90
|
+
scip-query dataflow <symbol-or-variable>
|
|
91
|
+
scip-query slice <symbol-or-variable>
|
|
92
|
+
scip-query slice <symbol-or-variable> --forward
|
|
152
93
|
```
|
|
153
94
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
## Answering Specific Questions
|
|
95
|
+
This step is complete only when producers, transformations, storage, and consumers are identified or marked unavailable.
|
|
157
96
|
|
|
158
|
-
###
|
|
97
|
+
### 5. Assess risk
|
|
159
98
|
|
|
160
99
|
```bash
|
|
161
|
-
scip-query
|
|
162
|
-
scip-query
|
|
163
|
-
scip-query
|
|
164
|
-
scip-query
|
|
165
|
-
scip-query
|
|
100
|
+
scip-query complexity <symbol>
|
|
101
|
+
scip-query complexity-hotspots
|
|
102
|
+
scip-query bottlenecks
|
|
103
|
+
scip-query change-surface <file>
|
|
104
|
+
scip-query cycles
|
|
105
|
+
scip-query deep-chains --min-depth 5
|
|
166
106
|
```
|
|
167
107
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
1. Find the entry point: `scip-query files <handler-pattern>` or `scip-query outline <route-file>`
|
|
171
|
-
2. Read the handler: `scip-query code <handler>`
|
|
172
|
-
3. Follow each call: `scip-query call-graph <callee>` → `scip-query code <callee>` → repeat
|
|
173
|
-
4. Trace the data: `scip-query dataflow <key-variable>` at each step
|
|
174
|
-
5. Map the end state: What gets written to DB? What gets sent to the client?
|
|
108
|
+
This step is complete only when the explanation includes the risky symbols or states that no relevant risks appeared.
|
|
175
109
|
|
|
176
|
-
|
|
110
|
+
## Question Recipes
|
|
177
111
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
112
|
+
- Function behavior: `code`, `hierarchy`, `call-graph`, `dataflow`, `complexity`.
|
|
113
|
+
- User action flow: `files` or `outline` for the handler, then `code` and `call-graph` down the path.
|
|
114
|
+
- Safety to change: `change-surface`, `affected`, `similar`.
|
|
115
|
+
- Module architecture: `system`, `surface`, `deep-chains`, `bottlenecks`, `cycles`, `hotspots`.
|
|
116
|
+
- Relationship between units: `coupling`, `similar --plan`, `similar-chains`.
|
|
183
117
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
```bash
|
|
187
|
-
scip-query system X # Files, symbols, deps in/out
|
|
188
|
-
scip-query deep-chains --scope X # Dependency depth within the module
|
|
189
|
-
scip-query bottlenecks --scope X # Coupling hotspots
|
|
190
|
-
scip-query cycles --scope X # Any circular deps?
|
|
191
|
-
scip-query hotspots --scope X # Most-referenced symbols
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### "How are these two things related?"
|
|
195
|
-
|
|
196
|
-
```bash
|
|
197
|
-
scip-query coupling <file1> <file2> # Shared symbols between files
|
|
198
|
-
scip-query convergence <sym1> <sym2> # How similar are two functions?
|
|
199
|
-
scip-query similar-chains # Do they share dependency paths?
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
---
|
|
203
|
-
|
|
204
|
-
## Output Format
|
|
205
|
-
|
|
206
|
-
When reporting exploration results, structure them as:
|
|
207
|
-
|
|
208
|
-
1. **Overview** — What the system is and what it does (1-3 sentences)
|
|
209
|
-
2. **Entry points** — Where execution begins (files + symbols + line numbers)
|
|
210
|
-
3. **Call flow** — Step-by-step trace from entry to leaf, with source citations
|
|
211
|
-
4. **Data flow** — What data enters, how it transforms, where it ends up
|
|
212
|
-
5. **Dependencies** — What the system depends on (with `deps` citations)
|
|
213
|
-
6. **Consumers** — What depends on this system (with `rdeps`/`surface` citations)
|
|
214
|
-
7. **Risk areas** — Complex symbols, high fan-in, high-consumer surfaces, or broad blast radius (with `complexity`/`change-surface` citations)
|
|
215
|
-
|
|
216
|
-
Every file path, line number, and behavioral claim includes the scip-query command that verified it.
|
|
217
|
-
|
|
218
|
-
---
|
|
118
|
+
## Report
|
|
219
119
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
| Purpose | Command |
|
|
223
|
-
|---|---|
|
|
224
|
-
| Read source code | `scip-query code <symbol> [-C N]` |
|
|
225
|
-
| All symbols in a file | `scip-query outline <file>` |
|
|
226
|
-
| Find files | `scip-query files <pattern>` |
|
|
227
|
-
| Symbol kind histogram | `scip-query kind-counts` |
|
|
228
|
-
| Symbols by kind | `scip-query by-kind <kind>` |
|
|
229
|
-
| Full module map | `scip-query system <module>` |
|
|
230
|
-
| True public API | `scip-query surface <module>` |
|
|
231
|
-
| Symbol ancestry | `scip-query hierarchy <symbol>` |
|
|
232
|
-
| Callers + callees | `scip-query call-graph <symbol>` |
|
|
233
|
-
| Every reference | `scip-query refs <symbol>` |
|
|
234
|
-
| Definition + references | `scip-query trace <symbol>` |
|
|
235
|
-
| Forward dependencies | `scip-query deps <file>` |
|
|
236
|
-
| Reverse dependencies | `scip-query rdeps <file>` |
|
|
237
|
-
| External symbol reach | `scip-query fan-out [file]` |
|
|
238
|
-
| Transitive blast radius | `scip-query affected <symbol>` |
|
|
239
|
-
| Pre-change risk briefing | `scip-query change-surface <file>` |
|
|
240
|
-
| Dataflow analysis | `scip-query dataflow <symbol>` |
|
|
241
|
-
| Backward slice | `scip-query slice <symbol>` |
|
|
242
|
-
| Forward slice | `scip-query slice <symbol> --forward` |
|
|
243
|
-
| Complexity per symbol | `scip-query complexity <symbol>` |
|
|
244
|
-
| Top complexity | `scip-query complexity-hotspots` |
|
|
245
|
-
| Coupling pressure | `scip-query bottlenecks` |
|
|
246
|
-
| Coupling between files | `scip-query coupling <file1> <file2>` |
|
|
247
|
-
| Circular dependencies | `scip-query cycles` |
|
|
248
|
-
| Dependency depth | `scip-query deep-chains` |
|
|
249
|
-
| Similar functions | `scip-query similar <symbol>` |
|
|
250
|
-
| Same-shape functions | `scip-query similar-signatures` |
|
|
251
|
-
|
|
252
|
-
Full documentation: Run `scip-query --help` or read the README at the scip-query repo.
|
|
120
|
+
Report overview, entry points, call flow, data flow, dependencies, consumers, risk areas, and the command citations that prove each claim. Exploration is complete only when the user can see what was proven and what remains unverified.
|