scip-query 0.10.12 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/{vendor/scip/LICENSE.scip → LICENSE} +1 -0
- package/README.md +164 -49
- package/dist/augment-vue-worker.js +1 -1
- package/dist/{chunk-RUV5IY25.js → chunk-2LQWMYG4.js} +2 -2
- package/dist/{chunk-KZ4MG5NY.js → chunk-2QGE5AEP.js} +2 -2
- package/dist/chunk-4D54JIU3.js +2 -0
- package/dist/{chunk-2GLNBCHB.js → chunk-52Q4JFDW.js} +2 -2
- package/dist/chunk-5AAAEZ2Z.js +2 -0
- package/dist/chunk-64PRNLKP.js +2 -0
- package/dist/chunk-6XA4LDHY.js +2 -0
- package/dist/chunk-72MFTCU5.js +38 -0
- package/dist/chunk-75X52JTA.js +2 -0
- package/dist/{chunk-LEHVP4DY.js → chunk-7ITCOJGD.js} +2 -2
- package/dist/chunk-7JZRFDCU.js +2 -0
- package/dist/{chunk-XRUGSM76.js → chunk-AZLKLZ5S.js} +2 -2
- package/dist/chunk-B4VYXRCQ.js +26 -0
- package/dist/chunk-BCNT6ODA.js +5 -0
- package/dist/chunk-BP2NAIAZ.js +2 -0
- package/dist/chunk-BVNO67DB.js +2 -0
- package/dist/{chunk-XHMVZFA6.js → chunk-CW3KZ7UF.js} +2 -2
- package/dist/{chunk-6BN3EHQE.js → chunk-D64L53WX.js} +2 -2
- package/dist/{chunk-T3AEVJBG.js → chunk-D7J6GZAG.js} +2 -2
- package/dist/chunk-ECVXWZ4Q.js +3 -0
- package/dist/chunk-EDB7Y442.js +2 -0
- package/dist/{chunk-4ISHQ7UW.js → chunk-ETU2I5JM.js} +4 -4
- package/dist/chunk-EXKLAEB4.js +18 -0
- package/dist/chunk-EZ5WDZ2Q.js +3 -0
- package/dist/{chunk-S2MRVIJ5.js → chunk-F5BJSNU5.js} +6 -6
- package/dist/chunk-FBCOFKEC.js +2 -0
- package/dist/chunk-FERAXG6Y.js +72 -0
- package/dist/chunk-FXG3PHVW.js +9 -0
- package/dist/{chunk-XUCZ3RQ5.js → chunk-G2UBOONK.js} +4 -4
- package/dist/chunk-GNG622H3.js +3 -0
- package/dist/{chunk-JS6B76AQ.js → chunk-H2NMIZFD.js} +2 -2
- package/dist/chunk-H7NSJ7L2.js +5 -0
- package/dist/chunk-HSU3M25J.js +21 -0
- package/dist/chunk-HXXMPYEF.js +2 -0
- package/dist/chunk-IRJDYTNZ.js +3 -0
- package/dist/chunk-ISLWJ4PY.js +10 -0
- package/dist/chunk-J5WVNZ6O.js +2 -0
- package/dist/{chunk-UVPY3RUZ.js → chunk-K6UI6EBZ.js} +2 -2
- package/dist/{chunk-MNCQPMCH.js → chunk-KJCDEDQW.js} +2 -2
- package/dist/{chunk-ELC77ZDE.js → chunk-KMVGRIO2.js} +2 -2
- package/dist/chunk-KSUZS77X.js +16 -0
- package/dist/{chunk-A4UTLKHU.js → chunk-L2CX5GHZ.js} +2 -2
- package/dist/chunk-LFM3O5KX.js +2 -0
- package/dist/{chunk-ZUUNREKS.js → chunk-M72ZFN6E.js} +5 -5
- package/dist/chunk-MBKJ7GHT.js +102 -0
- package/dist/chunk-MJKJMWIM.js +2 -0
- package/dist/chunk-MKM7NBZK.js +43 -0
- package/dist/chunk-MTDBHTSF.js +2 -0
- package/dist/chunk-NAH5EAZS.js +6 -0
- package/dist/chunk-NJJ7AS4F.js +2 -0
- package/dist/{chunk-EOLGSSDR.js → chunk-NKT5EMEX.js} +2 -2
- package/dist/{chunk-ANUEY5WV.js → chunk-NLMRJ7SI.js} +2 -2
- package/dist/chunk-NQ75OVUU.js +40 -0
- package/dist/{chunk-TBCHRDAC.js → chunk-O3WDE26W.js} +2 -2
- package/dist/{chunk-VB2EZZPA.js → chunk-OPE5YXFE.js} +2 -2
- package/dist/chunk-ORBRX2QJ.js +2 -0
- package/dist/{chunk-OFXN2BCT.js → chunk-OSWF3HSF.js} +2 -2
- package/dist/{chunk-JJ5SAWBT.js → chunk-OVMUVXKQ.js} +2 -2
- package/dist/{chunk-NTSR6SRP.js → chunk-PH7ZFK6L.js} +2 -2
- package/dist/chunk-PXHPCWX5.js +2 -0
- package/dist/chunk-Q3B3FNCU.js +3 -0
- package/dist/{chunk-SQNHOOJ5.js → chunk-Q7S2DADC.js} +2 -2
- package/dist/{chunk-3XSNW5XB.js → chunk-QARYU7R3.js} +2 -2
- package/dist/chunk-QZ4JVECJ.js +2 -0
- package/dist/{chunk-FX6ULETZ.js → chunk-R5336VHZ.js} +2 -2
- package/dist/chunk-RA5MTIOO.js +2 -0
- package/dist/{chunk-RXINFVBN.js → chunk-RIQED5OU.js} +2 -2
- package/dist/chunk-T2FQ4GHD.js +9 -0
- package/dist/chunk-T6NGEV5I.js +2 -0
- package/dist/chunk-T7VQG55Q.js +2 -0
- package/dist/chunk-TFWDJDGO.js +2 -0
- package/dist/chunk-TG7QSYCJ.js +2 -0
- package/dist/{chunk-DQ6433ZG.js → chunk-TTMKELT7.js} +17 -8
- package/dist/{chunk-DDQONX6B.js → chunk-U7I373V4.js} +2 -2
- package/dist/chunk-UAHZ57BR.js +2 -0
- package/dist/chunk-URSSPS5H.js +2 -0
- package/dist/chunk-V3Z3IOWO.js +2 -0
- package/dist/{chunk-7C6JBBE4.js → chunk-V7CVBPWX.js} +2 -2
- package/dist/{chunk-PWAK75BU.js → chunk-VYF5HA76.js} +2 -2
- package/dist/chunk-WIBFXSYB.js +6 -0
- package/dist/chunk-WS3Z6W3M.js +65 -0
- package/dist/chunk-WXVGNFAO.js +2 -0
- package/dist/chunk-XEMQUN3Z.js +20 -0
- package/dist/chunk-YCPASUCX.js +2 -0
- package/dist/chunk-YDDGCJJG.js +3 -0
- package/dist/{chunk-2UVCH7CQ.js → chunk-YPKBZ77R.js} +2 -2
- package/dist/chunk-YZXV3CU3.js +60 -0
- package/dist/chunk-Z3IPJKJP.js +4 -0
- package/dist/chunk-ZMGBWSFZ.js +2 -0
- package/dist/{chunk-GKB4JJDU.js → chunk-ZOIPAYRP.js} +2 -2
- package/dist/chunk-ZRIOGL7F.js +8 -0
- package/dist/cli.js +446 -280
- package/dist/{config-types-dvHOz0zU.d.ts → config-types-BrHl3Bge.d.ts} +57 -0
- package/dist/{db-rMZO5JFK.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-CtTIGh6H.d.ts → health-BEZ1Rt0S.d.ts} +54 -2
- package/dist/index.d.ts +4 -68
- package/dist/index.js +1 -1
- 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 +4 -2
- package/dist/queries/self-audit.js +1 -1
- package/dist/queries/similar-chains.d.ts +2 -2
- package/dist/queries/similar-chains.js +1 -1
- package/dist/queries/similar-files.d.ts +2 -2
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.d.ts +17 -10
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +42 -3
- 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 +23 -4
- package/dist/reindex.js +19 -19
- package/dist/runtime.d.ts +11 -6
- package/dist/runtime.js +2 -2
- package/dist/{scip-cli-trnNvymv.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 +40 -3
- package/docs/analyzer-validation-ledger.md +34 -6
- package/package.json +39 -7
- package/scripts/build-scip-windows.mjs +10 -7
- 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 +150 -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-2DOW7QCA.js +0 -71
- package/dist/chunk-2FMFF4RI.js +0 -2
- package/dist/chunk-5GXTUANY.js +0 -2
- package/dist/chunk-5JHEN5VN.js +0 -25
- package/dist/chunk-62ULXMQ7.js +0 -18
- package/dist/chunk-63CI3IXR.js +0 -102
- package/dist/chunk-7EK7OSWS.js +0 -2
- package/dist/chunk-7IWIMNHI.js +0 -2
- package/dist/chunk-7XTO4YXB.js +0 -8
- package/dist/chunk-AOWFUGDL.js +0 -2
- package/dist/chunk-AREANYIA.js +0 -3
- package/dist/chunk-AZBELWZQ.js +0 -7
- package/dist/chunk-B32FX5KB.js +0 -2
- package/dist/chunk-B6MJ5VQV.js +0 -2
- package/dist/chunk-CXWCLVYL.js +0 -2
- package/dist/chunk-CYHIKTJN.js +0 -3
- package/dist/chunk-DFSEARAU.js +0 -2
- package/dist/chunk-DVFP6PZI.js +0 -2
- package/dist/chunk-E3ADDB43.js +0 -2
- package/dist/chunk-F6IXELII.js +0 -20
- package/dist/chunk-FMGVZBS2.js +0 -2
- package/dist/chunk-GG5LHT27.js +0 -2
- package/dist/chunk-H7JF2CKK.js +0 -2
- package/dist/chunk-HHOMJCP5.js +0 -4
- package/dist/chunk-HRDSU5FN.js +0 -9
- package/dist/chunk-HWVYTJOV.js +0 -2
- package/dist/chunk-JNMLBL36.js +0 -2
- package/dist/chunk-L446VQYQ.js +0 -2
- package/dist/chunk-LDJUB7XW.js +0 -2
- package/dist/chunk-MYTUWXHK.js +0 -4
- package/dist/chunk-N25HPUOK.js +0 -2
- package/dist/chunk-NABVR6B7.js +0 -2
- package/dist/chunk-NBNEVLRC.js +0 -3
- package/dist/chunk-ONPCQ2PM.js +0 -6
- package/dist/chunk-Q5P7NOVM.js +0 -2
- package/dist/chunk-RGKRYO22.js +0 -4
- package/dist/chunk-RM2WQ75T.js +0 -2
- package/dist/chunk-ROGZXWN2.js +0 -2
- package/dist/chunk-RSSXKJ6J.js +0 -38
- package/dist/chunk-RVGEZYMQ.js +0 -2
- package/dist/chunk-SA3DPTHT.js +0 -7
- package/dist/chunk-SGTKURU6.js +0 -52
- package/dist/chunk-T4N2ZRVY.js +0 -21
- package/dist/chunk-THB6AM3V.js +0 -11
- package/dist/chunk-ULHLDOD6.js +0 -4
- package/dist/chunk-UQ73QF5D.js +0 -43
- package/dist/chunk-UUBMFL3F.js +0 -59
- package/dist/chunk-V5FGK3DZ.js +0 -2
- package/dist/chunk-WTY5FERW.js +0 -2
- package/dist/chunk-WUOB4DHH.js +0 -6
- package/dist/chunk-YFQIKYOP.js +0 -2
- package/dist/chunk-Z2LDWIJV.js +0 -5
- package/dist/chunk-ZNWWVYQL.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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "scip-query",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Evidence and verification for AI coding agents: map code, reuse concepts, finish migrations, and gate diffs.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -9,15 +9,15 @@
|
|
|
9
9
|
"scip-query": "dist/cli.js"
|
|
10
10
|
},
|
|
11
11
|
"files": [
|
|
12
|
+
"CHANGELOG.md",
|
|
12
13
|
"dist/**/*.js",
|
|
13
14
|
"dist/**/*.d.ts",
|
|
14
15
|
"docs/assets/**/*",
|
|
15
16
|
"docs/*.md",
|
|
16
17
|
"scripts/build-scip-windows.mjs",
|
|
17
18
|
"scripts/evidence-product-contract.mjs",
|
|
18
|
-
"skills
|
|
19
|
-
"skills/**/agents/*.yaml"
|
|
20
|
-
"vendor/scip/**/*"
|
|
19
|
+
"skills/**/*.md",
|
|
20
|
+
"skills/**/agents/*.yaml"
|
|
21
21
|
],
|
|
22
22
|
"sideEffects": false,
|
|
23
23
|
"exports": {
|
|
@@ -109,6 +109,10 @@
|
|
|
109
109
|
"import": "./dist/queries/doc-drift.js",
|
|
110
110
|
"types": "./dist/queries/doc-drift.d.ts"
|
|
111
111
|
},
|
|
112
|
+
"./queries/duplicate-bodies": {
|
|
113
|
+
"import": "./dist/queries/duplicate-bodies.js",
|
|
114
|
+
"types": "./dist/queries/duplicate-bodies.d.ts"
|
|
115
|
+
},
|
|
112
116
|
"./queries/drift": {
|
|
113
117
|
"import": "./dist/queries/drift.js",
|
|
114
118
|
"types": "./dist/queries/drift.d.ts"
|
|
@@ -261,6 +265,14 @@
|
|
|
261
265
|
"import": "./dist/queries/trace.js",
|
|
262
266
|
"types": "./dist/queries/trace.d.ts"
|
|
263
267
|
},
|
|
268
|
+
"./queries/twin-ab": {
|
|
269
|
+
"import": "./dist/queries/twin-ab.js",
|
|
270
|
+
"types": "./dist/queries/twin-ab.d.ts"
|
|
271
|
+
},
|
|
272
|
+
"./queries/twin-drift": {
|
|
273
|
+
"import": "./dist/queries/twin-drift.js",
|
|
274
|
+
"types": "./dist/queries/twin-drift.d.ts"
|
|
275
|
+
},
|
|
264
276
|
"./queries/unused-params": {
|
|
265
277
|
"import": "./dist/queries/unused-params.js",
|
|
266
278
|
"types": "./dist/queries/unused-params.d.ts"
|
|
@@ -290,13 +302,14 @@
|
|
|
290
302
|
"test": "vitest run",
|
|
291
303
|
"test:watch": "vitest",
|
|
292
304
|
"typecheck": "tsc --noEmit",
|
|
293
|
-
"lint": "npm run format:check && eslint src tests tsup.config.ts",
|
|
305
|
+
"lint": "npm run format:check && eslint src tests tsup.config.ts && node scripts/check-skill-links.mjs",
|
|
294
306
|
"build:scip-windows": "node scripts/build-scip-windows.mjs",
|
|
295
307
|
"bench:evidence-products": "node scripts/evidence-product-contract.mjs",
|
|
296
308
|
"calibrate": "node scripts/accuracy-calibration.mjs",
|
|
297
309
|
"docs:commands": "vite-node scripts/render-command-reference.ts --write",
|
|
298
|
-
"prepublishOnly": "npm run
|
|
299
|
-
"postinstall": "node dist/postinstall.js || true"
|
|
310
|
+
"prepublishOnly": "npm run publish:scip-windows && npm run build",
|
|
311
|
+
"postinstall": "node dist/postinstall.js || true",
|
|
312
|
+
"publish:scip-windows": "vite-node scripts/publish-scip-windows.ts"
|
|
300
313
|
},
|
|
301
314
|
"keywords": [
|
|
302
315
|
"scip",
|
|
@@ -333,6 +346,7 @@
|
|
|
333
346
|
"optionalDependencies": {
|
|
334
347
|
"@sourcegraph/scip-typescript": "^0.4.0",
|
|
335
348
|
"scip-python-plus": "^0.7.4",
|
|
349
|
+
"scip-query-scip-windows": "0.12.0",
|
|
336
350
|
"tree-sitter": "0.21.1",
|
|
337
351
|
"tree-sitter-c": "0.23.2",
|
|
338
352
|
"tree-sitter-c-sharp": "0.23.1",
|
|
@@ -358,5 +372,23 @@
|
|
|
358
372
|
"typescript": "^5.7.0",
|
|
359
373
|
"typescript-eslint": "^8.58.1",
|
|
360
374
|
"vitest": "^3.0.0"
|
|
375
|
+
},
|
|
376
|
+
"allowScripts": {
|
|
377
|
+
"better-sqlite3@12.9.0": true,
|
|
378
|
+
"esbuild@0.27.7": true,
|
|
379
|
+
"fsevents@2.3.3": true,
|
|
380
|
+
"tree-sitter@0.21.1": true,
|
|
381
|
+
"tree-sitter-c@0.23.2": true,
|
|
382
|
+
"tree-sitter-c-sharp@0.23.1": true,
|
|
383
|
+
"tree-sitter-cpp@0.23.4": true,
|
|
384
|
+
"tree-sitter-java@0.23.5": true,
|
|
385
|
+
"tree-sitter-javascript@0.23.1": true,
|
|
386
|
+
"tree-sitter-kotlin@0.3.8": true,
|
|
387
|
+
"tree-sitter-php@0.23.12": true,
|
|
388
|
+
"tree-sitter-python@0.23.4": true,
|
|
389
|
+
"tree-sitter-ruby@0.23.1": true,
|
|
390
|
+
"tree-sitter-rust@0.23.1": true,
|
|
391
|
+
"tree-sitter-scala@0.24.0": true,
|
|
392
|
+
"tree-sitter-typescript@0.23.2": true
|
|
361
393
|
}
|
|
362
394
|
}
|
|
@@ -8,7 +8,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
8
8
|
const SCIP_VERSION = process.env.SCIP_VERSION ?? 'v0.8.1';
|
|
9
9
|
const SCIP_REPO_URL = process.env.SCIP_REPO_URL ?? 'https://github.com/scip-code/scip.git';
|
|
10
10
|
const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..');
|
|
11
|
-
const VENDOR_DIR = join(ROOT, '
|
|
11
|
+
const VENDOR_DIR = join(ROOT, 'packages', 'scip-windows');
|
|
12
12
|
|
|
13
13
|
const TARGETS = [
|
|
14
14
|
{ goarch: 'amd64', packageArch: 'x64' },
|
|
@@ -45,20 +45,23 @@ try {
|
|
|
45
45
|
writeFileSync(
|
|
46
46
|
join(VENDOR_DIR, 'README.md'),
|
|
47
47
|
[
|
|
48
|
-
'#
|
|
48
|
+
'# scip.exe release assets',
|
|
49
49
|
'',
|
|
50
50
|
`These binaries are built from ${SCIP_REPO_URL} at ${SCIP_VERSION}.`,
|
|
51
|
-
'They are
|
|
51
|
+
'They are NOT bundled into the npm package. Upload each as a GitHub release',
|
|
52
|
+
'asset (scip-win32-<arch>.exe) and pin url + sha256 in',
|
|
53
|
+
'src/runtime/scip-windows-assets.ts before publishing — scip-query downloads',
|
|
54
|
+
'and checksum-verifies them on demand so Windows `reindex` works without',
|
|
55
|
+
'requiring Go or WSL.',
|
|
52
56
|
'',
|
|
53
|
-
'Run `npm run build:scip-windows`
|
|
57
|
+
'Run `npm run build:scip-windows` to (re)build these before publishing.',
|
|
54
58
|
'',
|
|
55
59
|
].join('\n'),
|
|
56
60
|
);
|
|
57
61
|
|
|
58
62
|
for (const target of TARGETS) {
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
mkdirSync(outputDir, { recursive: true });
|
|
63
|
+
const outputPath = join(VENDOR_DIR, `scip-win32-${target.packageArch}.exe`);
|
|
64
|
+
mkdirSync(VENDOR_DIR, { recursive: true });
|
|
62
65
|
|
|
63
66
|
run('go', ['build', '-trimpath', '-ldflags=-s -w', '-o', outputPath, './cmd/scip'], {
|
|
64
67
|
cwd: checkoutDir,
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: _shared
|
|
3
|
+
description: Shared scip-query reference for bundled skills.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# scip-query Shared Reference
|
|
8
|
+
|
|
9
|
+
This is shared reference for scip-query skills. Load it when another skill says to use the shared evidence, lookup, postcheck, or subagent rules.
|
|
10
|
+
|
|
11
|
+
## Evidence Contract
|
|
12
|
+
|
|
13
|
+
A SCIP index is the compiler-derived map of a repository's source files, symbols, references, imports, calls, and dependencies. What makes it different from text search is that it records what the language toolchain can identify, so code claims can point to definitions and consumers rather than matching strings.
|
|
14
|
+
|
|
15
|
+
A graph fact is a claim produced from that index, such as a definition line, reference site, caller, callee, dependency, reverse dependency, or affected consumer. Use graph facts for code behavior, ownership, and blast-radius claims.
|
|
16
|
+
|
|
17
|
+
Before trusting graph facts, run:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
scip-query status --capabilities
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
If freshness is `fresh`, continue. If it is `stale`, `missing`, or `unknown`, run:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
scip-query reindex
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Every file path, line number, symbol relationship, and behavior claim in a plan, report, or review must cite the command that produced it. If `scip-query` cannot answer a question because the target is not indexed, say so and use the narrowest other evidence available.
|
|
30
|
+
|
|
31
|
+
## Lookup
|
|
32
|
+
|
|
33
|
+
Use partial symbol names without parentheses:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
scip-query code parseConfig
|
|
37
|
+
scip-query call-graph runCommand
|
|
38
|
+
scip-query trace loadSettings
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
If lookup is ambiguous or missing:
|
|
42
|
+
|
|
43
|
+
1. Try a shorter symbol name.
|
|
44
|
+
2. Run `scip-query outline <file>`.
|
|
45
|
+
3. Run `scip-query trace <name>`.
|
|
46
|
+
4. Use `scip-query code 'path/to/file.ts:START-END'` when you know the file range.
|
|
47
|
+
|
|
48
|
+
## Command Families
|
|
49
|
+
|
|
50
|
+
<!-- BEGIN GENERATED COMMAND FAMILIES -->
|
|
51
|
+
|
|
52
|
+
This syntax catalog is generated from the CLI command descriptors.
|
|
53
|
+
|
|
54
|
+
### Indexing
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
scip-query reindex # Index the codebase and convert to SQLite
|
|
58
|
+
scip-query augment-sources # Add source files skipped by upstream SCIP indexers to the SQLite documents table
|
|
59
|
+
scip-query augment-vue # Add compiler-resolved Vue SFC references to the SQLite index using Volar
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Core
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
scip-query stats # Show index statistics
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Navigation
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
scip-query files <pattern> # Find files matching a pattern
|
|
72
|
+
scip-query methods <className> # List methods of a class (with line ranges)
|
|
73
|
+
scip-query refs <symbol> # Find all files referencing a symbol
|
|
74
|
+
scip-query trace <symbol> # Trace a symbol: definition + all references
|
|
75
|
+
scip-query deps <file> # Files this file depends on (internal)
|
|
76
|
+
scip-query rdeps <file> # Files that depend on this file/module
|
|
77
|
+
scip-query system <module> # Full module map: files, symbols, deps in/out
|
|
78
|
+
scip-query surface <module> # What symbols consumers actually use from this module
|
|
79
|
+
scip-query imports <file> # What symbols does this file import?
|
|
80
|
+
scip-query imported-by <symbol> # Which files import this symbol?
|
|
81
|
+
scip-query outline <file> # Tree view of symbols in a file, with line ranges
|
|
82
|
+
scip-query members <symbol> # All children of a symbol (methods, fields, nested types)
|
|
83
|
+
scip-query by-kind <kind> # Find symbols by SCIP kind (class, interface, enum, function, etc.)
|
|
84
|
+
scip-query kind-counts # Histogram of symbol kinds in the codebase
|
|
85
|
+
scip-query hierarchy <symbol> # Show a symbol's ancestry chain (method → class → module)
|
|
86
|
+
scip-query code <symbol> # Read the source code for a symbol (bounded to its definition range)
|
|
87
|
+
scip-query dataflow <symbol> # Reference-level dataflow: definition sites, usage sites, producers, consumers
|
|
88
|
+
scip-query slice <symbol> # Reference-level program slice: what affects this (backward) or what this affects (forward)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Cleanup
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
scip-query dead [scope] # Find dead code and file-internal symbols (no cross-file consumers)
|
|
95
|
+
scip-query unused-imports <file> # Find imports not referenced in the same file
|
|
96
|
+
scip-query isolated # Find completely orphaned symbols (no references at all)
|
|
97
|
+
scip-query similar [symbol] [other] # Find heuristic function similarity candidates from callee fingerprints
|
|
98
|
+
scip-query similar-files [file] # Find heuristic similar-file candidates from dependency profiles
|
|
99
|
+
scip-query react-component-duplicates [file] # Find heuristic duplicated React component structure candidates from JSX tags, props, events, and bindings
|
|
100
|
+
scip-query react-hook-candidates [file] # Find heuristic React hook extraction candidates from shared state, effects, requests, and handlers
|
|
101
|
+
scip-query react-large-component-pressure [file] # Find heuristic large React component pressure candidates from component lines, JSX structure, and hook behavior
|
|
102
|
+
scip-query vue-component-duplicates [file] # Find heuristic duplicated Vue component structure candidates from template tags, bindings, slots, and directives
|
|
103
|
+
scip-query vue-composable-candidates [file] # Find heuristic Vue composable extraction candidates from shared state, effects, requests, and template bindings
|
|
104
|
+
scip-query vue-large-view-pressure [file] # Find heuristic large Vue view pressure candidates from template, script, style, and external script line counts
|
|
105
|
+
scip-query similar-chains # Find heuristic similar-chain candidates from dependency flows
|
|
106
|
+
scip-query extract-candidates # Find heuristic extraction candidates from isolated callee clusters
|
|
107
|
+
scip-query locality-candidates [symbol-or-file] # Find directory-locality and ancestry candidates from consumer ownership
|
|
108
|
+
scip-query cleanup-plan # Ordered, batched deletion plan: graph-fact dead code plus the cascade candidates it unlocks
|
|
109
|
+
scip-query cleanup-apply # Apply a compiler-verified cleanup-plan batch to the working tree
|
|
110
|
+
scip-query recent-duplicates # Directional duplicate candidates: recent code that re-implements established callable, React, or Vue code
|
|
111
|
+
scip-query doc-drift [doc] # Stale-doc candidates: code the doc references or co-changed with kept changing after the doc stopped
|
|
112
|
+
scip-query unused-params # Speculative-generality candidates: trailing parameters no body ever uses (TS/JS)
|
|
113
|
+
scip-query drift [module] # Detect heuristic drift candidates: unused imports and layer violations by default; pass --patterns for pattern deviations too
|
|
114
|
+
scip-query 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)
|
|
115
|
+
scip-query passthrough-candidates # Find heuristic passthrough candidates that forward to one callee
|
|
116
|
+
scip-query stale-abstractions # Find heuristic stale abstraction candidates with 0-1 consumers (high false-positive rate on codebases with intentional layering/ambient types — treat as exploration, not findings)
|
|
117
|
+
scip-query complexity-hotspots # Find heuristic complexity hotspot candidates from LOC x fan-in x fan-out
|
|
118
|
+
scip-query convergence <symbol1> <symbol2> # Deprecated alias for similar <symbol1> <symbol2> --plan
|
|
119
|
+
scip-query redundant-reexports # Find barrel re-exports that nobody imports through
|
|
120
|
+
scip-query duplicate-bodies # Find exact duplicate small-body candidates across files
|
|
121
|
+
scip-query twin-drift # Twin drift candidates: same-name (or near-name) functions across files with diverged bodies
|
|
122
|
+
scip-query twin-ab <symbolA> <symbolB> # Generate a behavioral A/B scaffold comparing two same-concept twins (scip-integrity-audit drill 5) — a ready-to-fill vitest file, not an auto-executor
|
|
123
|
+
scip-query similar-signatures # Find functions with near-identical type signatures (same shape)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Graph
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
scip-query hotspots # Most-referenced symbols in the codebase (choke points)
|
|
130
|
+
scip-query fan-in [symbol] # How many files reference a symbol (or top fan-in across codebase)
|
|
131
|
+
scip-query fan-out [file] # How many external symbols a file uses (or top fan-out across codebase)
|
|
132
|
+
scip-query coupling [file1] [file2] # Coupling between two files, or top coupled pairs in codebase
|
|
133
|
+
scip-query cycles # Detect circular dependency chains between files
|
|
134
|
+
scip-query bottlenecks # Find coupling hubs: high fan-in AND high fan-out
|
|
135
|
+
scip-query deep-chains # Find the longest transitive dependency chains
|
|
136
|
+
scip-query call-graph <symbol> # Show incoming callers and outgoing callees for a symbol
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Impact
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
scip-query affected <symbol> # Transitive closure of symbols that could break if this symbol changes
|
|
143
|
+
scip-query change-surface <file> # Pre-change briefing: exports, consumers, and blast-radius risk
|
|
144
|
+
scip-query co-change [file] # Files that change together in git history without a dependency edge — hidden coupling candidates
|
|
145
|
+
scip-query diff-gate # Gate the current diff: echo candidates, incomplete migrations, missing co-change partners, unedited twin partners (advisory), uncited doc updates, unused params, new dead symbols; exit 1 on blocking findings
|
|
146
|
+
scip-query incomplete-migration # Partially-completed extraction candidates: new helpers in the diff wired into some sites while similar un-migrated sites remain
|
|
147
|
+
scip-query diff-impact # Compute changed symbols and downstream consumers from current git diff
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Formal Models
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
scip-query 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
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Planning
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
scip-query plan-context <target> # Pre-edit planning context for a symbol, file, or module
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Health
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
scip-query self-audit # Score cheap evidence paths against the best available semantic/source oracle on sampled symbols
|
|
166
|
+
scip-query health # Composite codebase health report with prioritized action list
|
|
167
|
+
scip-query complexity <symbol> # Per-symbol complexity: branches, cyclomatic estimate, fan-in/out, callees
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Maintenance
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
scip-query bench # Benchmark indexing and command runtimes for this repository
|
|
174
|
+
scip-query install-skills # Install skills (_shared, scip-query, scip-setup, scip-cleanup-audit, scip-cleanup-improve, scip-integrity-audit, scip-twin-drift, scip-claim-audit, scip-probe-reachability, scip-hyper-optimization, scip-api-impact, scip-concrete-plan, scip-conductor, scip-debug, scip-explore, scip-triage-issue, scip-diagram, scip-doc-reconcile, scip-directory-architecture, scip-maintainability, scip-react-maintainability, scip-vue-maintainability, scip-verify, scip-language-playbook, scip-tla-model-system) into Claude Code, Codex, and shared agent roots
|
|
175
|
+
scip-query setup-hooks # Install or refresh project-local Codex and Claude Code lifecycle hooks
|
|
176
|
+
scip-query check-deps # Check whether scip-query and the detected language indexers are actually runnable
|
|
177
|
+
scip-query capabilities # Report which evidence and verification capabilities are available in this project
|
|
178
|
+
scip-query capability-matrix # Deprecated alias for capabilities --matrix
|
|
179
|
+
scip-query init # Create a .scipquery.json config file for this project
|
|
180
|
+
scip-query config-validate # Validate .scipquery.json, including structured suppressions and declared coupling groups
|
|
181
|
+
scip-query suppress <id> # Record an accepted finding in .scipquery.json with a required reason
|
|
182
|
+
scip-query doctor # Diagnose config, index freshness, dependency readiness, and project capabilities
|
|
183
|
+
scip-query setup # Bootstrap this project: install agent skills, refresh the index, verify capabilities, and report health
|
|
184
|
+
scip-query setup-agent # Seed agent guidance for this project: AGENTS.md/CLAUDE.md block pointing agents at the scip-query skills and diff gate, plus an optional git pre-commit backstop
|
|
185
|
+
scip-query setup-ci # Write a GitHub Actions workflow that runs scip-query reindex and diff-gate on pull requests
|
|
186
|
+
scip-query uninstall # Remove scip-query-owned skill links, project hooks, and managed agent setup blocks
|
|
187
|
+
scip-query watch # Watch for file changes in the foreground and reindex automatically
|
|
188
|
+
scip-query status # Show index status for this project
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
<!-- END GENERATED COMMAND FAMILIES -->
|
|
192
|
+
|
|
193
|
+
## Detector Reliability
|
|
194
|
+
|
|
195
|
+
Calibrated against two external production repos on 2026-07-01
|
|
196
|
+
(docs/validation/2026-07-01-external-calibration-*.md). Weight findings by
|
|
197
|
+
measured precision, not by volume:
|
|
198
|
+
|
|
199
|
+
- **Strong signal** — `complexity-hotspots` (~90%), `recent-duplicates` (~75%), graph facts (`refs`, `trace`, `deps`), compiler-verified `cleanup-plan --verify`.
|
|
200
|
+
- **Good with review** — `duplicate-bodies`, `similar`, `co-change`, `doc-drift`, `twin-drift` (post-retune defaults).
|
|
201
|
+
- **Exploration only** — `wrapper-candidates`, `stale-abstractions`, `drift --patterns`: near-zero precision on codebases with intentional layering or ambient types. Never file their findings without reading the cited code.
|
|
202
|
+
- **Advisory gate findings** (marked `(advisory)`) never block; they are context, not obligations.
|
|
203
|
+
- **False-dead archetypes (2026-07-02 remediation, docs/plans/2026-07-02-followups.md items 1-3)**: `import type`-only consumers (incl. tsconfig `paths`-aliased specifiers) and pnpm/npm/yarn workspace cross-package consumers (incl. unbuilt `dist/` exports maps) are now resolved by the shared reference-counting layer that `dead`/`isolated`/`new-dead`/`stale-abstractions`/`production-callables` all consume; Vue `<script setup>` composable consumers were already correctly resolved (verified live, no code change needed). One narrow residual gap remains: a symbol with an **ambiguous leaf name** (a same-named definition exists elsewhere in the project) reached only through a **re-exporting barrel file** in a workspace package can still misattribute — `new-dead` labels that specific shape `unconfirmed (cross-package ambiguous-name resolution gap)` with `evidence: "heuristic"` and lowered confidence instead of asserting `dead`; treat those as "verify manually," not as a fact. Everything else in this class is a normal graph-fact `dead` claim again — confirm with `refs` when in doubt, same as any other finding.
|
|
204
|
+
- **Ledger nudges**: when `diff-gate --hook` reports "this check is rarely acted on in this repo", either tune that check's config, suppress the standing findings with reasons, or consciously accept the noise — do not let unresolved findings accumulate as wallpaper.
|
|
205
|
+
|
|
206
|
+
## Diff Gate Checks
|
|
207
|
+
|
|
208
|
+
`diff-gate` runs nine checks (`--skip <check>` accepts any of these): `echo` (recent-duplicate-style echoes in the diff), `incomplete-migration`, `co-change-partner` (missing historically-paired file), `twin-partner` (advisory — unedited same-name twin), `coverage-contract` (a configured `coverageContracts` enumeration drifted from its ground truth — see `scip-setup`), `doc-reference` (uncited or stale doc claim), `unused-params`, `new-dead` (dead code introduced by this diff), and `baseline` (only with `--baseline`: compares against the committed `.scipquery-baseline.json`, distinct from `health --baseline`). Findings print grouped under a `Root-cause groups (N):` header before the flat list — a group's remediation usually clears every finding under it, and the same remediation may then repeat in the flat list below; that repetition is expected, not a separate issue. `--baseline` findings additionally carry an `actionTier`: `direct` (act on this finding alone), `signal` (corroborating evidence — read before acting), `support` (context only).
|
|
209
|
+
|
|
210
|
+
## Postchecks
|
|
211
|
+
|
|
212
|
+
Run the rows that match the actual edit:
|
|
213
|
+
|
|
214
|
+
| Change made | Check |
|
|
215
|
+
| --- | --- |
|
|
216
|
+
| Extracted a helper or abstraction | `scip-query incomplete-migration --json --full` |
|
|
217
|
+
| Added a helper, module, component, hook, composable, or adapter | `scip-query similar <symbol> --json --full` and `scip-query recent-duplicates --json --full` |
|
|
218
|
+
| Added parameters, options, props, config flags, or broad option objects | `scip-query unused-params --json --full` |
|
|
219
|
+
| Added a wrapper, facade, forwarding layer, alias, or re-export | `scip-query wrapper-candidates --json --full`, `scip-query passthrough-candidates --json --full`, and `scip-query redundant-reexports` when exports changed |
|
|
220
|
+
| Added an interface, base class, adapter contract, or type alias | `scip-query stale-abstractions --json --full` |
|
|
221
|
+
| Changed schema, config, generated files, public contracts, command descriptors, or docs-backed behavior | `scip-query co-change <file> --json --full` and `scip-query doc-drift --json --full` |
|
|
222
|
+
| Deleted code | `scip-query cleanup-plan --verify --json` |
|
|
223
|
+
| Changed React components or hooks | the React frontend commands above |
|
|
224
|
+
| Changed Vue SFCs or composables | the Vue frontend commands above |
|
|
225
|
+
|
|
226
|
+
Every implemented change ends with:
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
scip-query status --capabilities
|
|
230
|
+
scip-query diff-gate --json
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Fix findings or record a specific acceptance reason. Do not report success while a diff-gate finding is unexplained.
|
|
234
|
+
|
|
235
|
+
## Subagents
|
|
236
|
+
|
|
237
|
+
When a subagent is used for scip-query evidence, include these rules in its prompt:
|
|
238
|
+
|
|
239
|
+
```text
|
|
240
|
+
Use scip-query for all code references. Do not use grep, rg, cat, or file reads as evidence for code behavior. Every file path, line number, and behavioral claim must cite the exact scip-query command that produced it. If scip-query cannot verify a claim, say so.
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Reject subagent findings that cite text search or raw file reads as code evidence when graph facts were required.
|
|
@@ -1,18 +1,48 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: scip-api-impact
|
|
3
|
-
description: Assess
|
|
3
|
+
description: Assess API impact with scip-query evidence. Use before changing public exports, module boundaries, schemas, routes, CLI commands, config fields, generated artifacts, signatures, docs-backed behavior, or consumer migrations.
|
|
4
|
+
commands:
|
|
5
|
+
- template: "scip-query surface <module-or-package>"
|
|
6
|
+
when: "Identify the surface: what consumers actually use from the module."
|
|
7
|
+
- template: "scip-query refs <symbol>"
|
|
8
|
+
when: "Find consumers: every direct reference to the surface symbol."
|
|
9
|
+
- template: "scip-query affected <symbol> --json"
|
|
10
|
+
when: "Find consumers: transitive blast radius of the change."
|
|
11
|
+
- template: "scip-query co-change <file> --json --full"
|
|
12
|
+
when: "Find hidden partners: historically coupled files without a dependency edge."
|
|
13
|
+
- template: "scip-query doc-drift --json --full"
|
|
14
|
+
when: "Find hidden partners: docs that describe the surface and may need an update."
|
|
15
|
+
- template: "scip-query unused-params --json --full"
|
|
16
|
+
when: "Choose migration shape: reject speculative new parameters."
|
|
4
17
|
---
|
|
5
18
|
|
|
6
|
-
#
|
|
19
|
+
# scip-api-impact
|
|
7
20
|
|
|
8
|
-
Use this skill before changing a public surface. A public surface is a callable, export, route, schema, config field, CLI command, generated artifact, or documented behavior that other code or users can depend on. Its defining trait is that a local edit can require coordinated consumer, docs,
|
|
21
|
+
Use this skill before changing a public surface. A public surface is a callable, export, route, schema, config field, CLI command, generated artifact, or documented behavior that other code or users can depend on. Its defining trait is that a local edit can require coordinated consumer, docs, tests, or migration changes outside the implementation file.
|
|
22
|
+
|
|
23
|
+
Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
|
|
24
|
+
|
|
25
|
+
<!-- BEGIN GENERATED SKILL COMMANDS -->
|
|
26
|
+
## Commands for this skill
|
|
27
|
+
|
|
28
|
+
| Command | Purpose | When |
|
|
29
|
+
| --- | --- | --- |
|
|
30
|
+
| `scip-query surface <module-or-package>` | What symbols consumers actually use from this module | Identify the surface: what consumers actually use from the module. |
|
|
31
|
+
| `scip-query refs <symbol>` | Find all files referencing a symbol | Find consumers: every direct reference to the surface symbol. |
|
|
32
|
+
| `scip-query affected <symbol> --json` | Transitive closure of symbols that could break if this symbol changes | Find consumers: transitive blast radius of the change. |
|
|
33
|
+
| `scip-query co-change <file> --json --full` | Files that change together in git history without a dependency edge — hidden coupling candidates | Find hidden partners: historically coupled files without a dependency edge. |
|
|
34
|
+
| `scip-query doc-drift --json --full` | Stale-doc candidates: code the doc references or co-changed with kept changing after the doc stopped | Find hidden partners: docs that describe the surface and may need an update. |
|
|
35
|
+
| `scip-query unused-params --json --full` | Speculative-generality candidates: trailing parameters no body ever uses (TS/JS) | Choose migration shape: reject speculative new parameters. |
|
|
36
|
+
|
|
37
|
+
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
38
|
+
<!-- END GENERATED SKILL COMMANDS -->
|
|
9
39
|
|
|
10
40
|
## Rules
|
|
11
41
|
|
|
12
|
-
1. Identify the actual surface before planning
|
|
13
|
-
2.
|
|
42
|
+
1. Identify the actual surface before planning.
|
|
43
|
+
2. Find direct consumers, reverse dependencies, transitive blast radius, and historical co-change partners.
|
|
14
44
|
3. Treat docs, generated files, tests, and config as part of the API when they describe or enforce the surface.
|
|
15
|
-
4. Prefer backward-compatible
|
|
45
|
+
4. Prefer backward-compatible migrations when consumers are broad or external.
|
|
16
46
|
5. Run `scip-verify` after implementation.
|
|
17
47
|
|
|
18
48
|
## Workflow
|
|
@@ -20,19 +50,16 @@ Use this skill before changing a public surface. A public surface is a callable,
|
|
|
20
50
|
### 1. Identify the surface
|
|
21
51
|
|
|
22
52
|
```bash
|
|
23
|
-
scip-query status --capabilities
|
|
24
|
-
scip-query status --capabilities
|
|
25
|
-
# If freshness is stale, missing, or unknown:
|
|
26
|
-
# scip-query reindex
|
|
27
53
|
scip-query surface <module-or-package>
|
|
28
54
|
scip-query outline <file>
|
|
29
55
|
scip-query trace <symbol-or-command>
|
|
30
56
|
scip-query code <symbol-or-command>
|
|
57
|
+
scip-query hierarchy <symbol> --json
|
|
31
58
|
```
|
|
32
59
|
|
|
33
|
-
|
|
60
|
+
This step is complete only when the real surface is named: member, class, module, package, route, schema, command, or config field.
|
|
34
61
|
|
|
35
|
-
### 2. Find consumers
|
|
62
|
+
### 2. Find consumers
|
|
36
63
|
|
|
37
64
|
```bash
|
|
38
65
|
scip-query refs <symbol>
|
|
@@ -42,7 +69,9 @@ scip-query affected <symbol> --json
|
|
|
42
69
|
scip-query change-surface <file> --json --full
|
|
43
70
|
```
|
|
44
71
|
|
|
45
|
-
Record direct consumers separately from transitive consumers.
|
|
72
|
+
Record direct consumers separately from transitive consumers.
|
|
73
|
+
|
|
74
|
+
This step is complete only when direct breakage and regression blast radius are known.
|
|
46
75
|
|
|
47
76
|
### 3. Find hidden partners
|
|
48
77
|
|
|
@@ -53,18 +82,18 @@ scip-query similar <symbol> --json --full
|
|
|
53
82
|
scip-query similar-files <file> --json --full
|
|
54
83
|
```
|
|
55
84
|
|
|
56
|
-
|
|
85
|
+
This step is complete only when docs, generated files, fixtures, sibling APIs, and hand-synchronized partners are accounted for or ruled out.
|
|
57
86
|
|
|
58
|
-
### 4. Choose
|
|
87
|
+
### 4. Choose migration shape
|
|
59
88
|
|
|
60
89
|
Pick one:
|
|
61
90
|
|
|
62
|
-
- Compatible extension
|
|
63
|
-
- Two-step migration
|
|
64
|
-
- Breaking
|
|
65
|
-
- Adapter shim
|
|
91
|
+
- Compatible extension.
|
|
92
|
+
- Two-step migration.
|
|
93
|
+
- Breaking coordinated change.
|
|
94
|
+
- Adapter shim for external consumers or compatibility windows.
|
|
66
95
|
|
|
67
|
-
Reject speculative
|
|
96
|
+
Reject speculative inputs and empty wrappers with:
|
|
68
97
|
|
|
69
98
|
```bash
|
|
70
99
|
scip-query unused-params --json --full
|
|
@@ -72,80 +101,35 @@ scip-query wrapper-candidates --json --full
|
|
|
72
101
|
scip-query passthrough-candidates --json --full
|
|
73
102
|
```
|
|
74
103
|
|
|
75
|
-
|
|
104
|
+
This step is complete only when the migration shape explains deploy order, rollback, and compatibility risk.
|
|
76
105
|
|
|
77
|
-
|
|
106
|
+
### 5. Build and verify the plan
|
|
78
107
|
|
|
79
108
|
```markdown
|
|
80
109
|
Surface:
|
|
81
|
-
- <symbol/file/command/schema>
|
|
82
|
-
|
|
83
110
|
Consumers:
|
|
84
|
-
- direct: <count and important files>
|
|
85
|
-
- transitive: <count or affected clusters>
|
|
86
|
-
|
|
87
111
|
Required co-changes:
|
|
88
|
-
- code
|
|
89
|
-
- tests
|
|
90
|
-
- docs
|
|
91
|
-
- generated files
|
|
92
|
-
- config or schema partners
|
|
93
|
-
|
|
94
112
|
Migration:
|
|
95
|
-
- compatible extension / two-step / breaking / shim
|
|
96
|
-
|
|
97
113
|
Verification:
|
|
98
114
|
- targeted tests
|
|
99
115
|
- `scip-query diff-impact --json`
|
|
100
|
-
- `scip-
|
|
116
|
+
- invoke `scip-verify`
|
|
101
117
|
- `scip-query doc-drift --json --full` when docs changed
|
|
102
118
|
- `scip-query config-validate` when config changed
|
|
103
119
|
```
|
|
104
120
|
|
|
105
|
-
|
|
121
|
+
After editing, run routed checks from the shared reference and invoke `scip-verify`.
|
|
106
122
|
|
|
107
|
-
|
|
108
|
-
scip-query status --capabilities
|
|
109
|
-
# If freshness is stale, missing, or unknown:
|
|
110
|
-
# scip-query reindex
|
|
111
|
-
scip-query diff-impact --json
|
|
112
|
-
scip-query diff-gate --json
|
|
113
|
-
```
|
|
123
|
+
The work is complete only when direct consumers, docs/config partners, and `scip-verify` have been checked.
|
|
114
124
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
scip-query unused-params --json --full
|
|
119
|
-
scip-query incomplete-migration --json --full
|
|
120
|
-
scip-query co-change <changed-file> --json --full
|
|
121
|
-
scip-query doc-drift --json --full
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
Invoke `scip-verify` before declaring the API change ready.
|
|
125
|
-
|
|
126
|
-
## Report Format
|
|
125
|
+
## Report
|
|
127
126
|
|
|
128
127
|
```markdown
|
|
129
128
|
API impact: low/medium/high
|
|
130
|
-
|
|
131
129
|
Surface changed:
|
|
132
|
-
- <surface>
|
|
133
|
-
|
|
134
130
|
Consumers:
|
|
135
|
-
- <direct consumers>
|
|
136
|
-
- <transitive blast radius>
|
|
137
|
-
|
|
138
131
|
Migration plan:
|
|
139
|
-
- <chosen shape and why>
|
|
140
|
-
|
|
141
132
|
Co-changes:
|
|
142
|
-
- <docs/tests/generated/config partners>
|
|
143
|
-
|
|
144
133
|
Verification:
|
|
145
|
-
- <commands run and results>
|
|
146
|
-
|
|
147
134
|
Remaining risk:
|
|
148
|
-
- <external consumers, unavailable capabilities, or accepted compatibility shims>
|
|
149
135
|
```
|
|
150
|
-
|
|
151
|
-
Do not call a public-surface change safe until direct consumers, docs/config partners, and `scip-query diff-gate --json` have been checked.
|