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
|
@@ -1,130 +1,114 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: scip-query
|
|
3
|
-
description:
|
|
3
|
+
description: Route codebase work in scip-query-indexed projects. Use when exploring, planning, implementing, refactoring, debugging, verifying, cleaning up, reconciling docs, improving health, or when unsure which scip-* skill should own the workflow.
|
|
4
|
+
commands:
|
|
5
|
+
- template: "scip-query status --capabilities"
|
|
6
|
+
when: "Before routing: confirm the index is fresh."
|
|
7
|
+
- template: "scip-query plan-context <target>"
|
|
8
|
+
when: "Default loop: anchor a plan for the routed skill."
|
|
9
|
+
- template: "scip-query diff-gate --json"
|
|
10
|
+
when: "Default loop: the loop is complete only when this passes or is explained."
|
|
4
11
|
---
|
|
5
12
|
|
|
6
13
|
# scip-query Router
|
|
7
14
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
| Audit
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
- `scip-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
- `scip-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
|
99
|
-
|
|
|
100
|
-
|
|
|
101
|
-
|
|
|
102
|
-
|
|
|
103
|
-
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
type-level. `recent-duplicates` = similarity + git age (which copy is the
|
|
109
|
-
echo); `incomplete-migration` = the inverse (the new helper is canonical, the
|
|
110
|
-
old inline copies must go).
|
|
111
|
-
|
|
112
|
-
**Before declaring any change done** — run `scip-query diff-gate --json`. Exit 1
|
|
113
|
-
means findings, each with a remediation. Fix them or knowingly accept them
|
|
114
|
-
with a stated reason; never ignore them silently.
|
|
115
|
-
|
|
116
|
-
## One-time project setup
|
|
117
|
-
|
|
118
|
-
If this project has not been bootstrapped yet, run `scip-query setup`. It
|
|
119
|
-
installs bundled skills, checks indexer readiness, refreshes the index, runs
|
|
120
|
-
capability and health checks, writes the health dossier, and seeds agent
|
|
121
|
-
guidance. Use `scip-query setup-agent` only when you specifically need to
|
|
122
|
-
refresh AGENTS.md/CLAUDE.md guidance without the full setup pass.
|
|
123
|
-
Use `scip-query setup-hooks --json` to repair the current repository's
|
|
124
|
-
project-local Codex/Claude Code lifecycle hooks.
|
|
125
|
-
After setup, use `scip-health-audit` to confirm and rank raw health signals, or
|
|
126
|
-
`scip-health-improve` when the user wants the agent to raise the score as high
|
|
127
|
-
as reasonably possible with minimal interaction.
|
|
128
|
-
|
|
129
|
-
Do not use `scip-query setup-ci` as part of first-run setup. The CI workflow is
|
|
130
|
-
intentionally separate until its validation story is mature.
|
|
15
|
+
Use this skill only to route. A scip-query workflow is a codebase task whose claims should be grounded in the SCIP index: the compiler-derived map of files, symbols, references, calls, dependencies, and consumers.
|
|
16
|
+
|
|
17
|
+
Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md) when you need freshness, lookup, postcheck, or subagent rules.
|
|
18
|
+
|
|
19
|
+
<!-- BEGIN GENERATED SKILL COMMANDS -->
|
|
20
|
+
## Commands for this skill
|
|
21
|
+
|
|
22
|
+
| Command | Purpose | When |
|
|
23
|
+
| --- | --- | --- |
|
|
24
|
+
| `scip-query status --capabilities` | Show index status for this project | Before routing: confirm the index is fresh. |
|
|
25
|
+
| `scip-query plan-context <target>` | Pre-edit planning context for a symbol, file, or module | Default loop: anchor a plan for the routed skill. |
|
|
26
|
+
| `scip-query diff-gate --json` | 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 | Default loop: the loop is complete only when this passes or is explained. |
|
|
27
|
+
|
|
28
|
+
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
29
|
+
<!-- END GENERATED SKILL COMMANDS -->
|
|
30
|
+
|
|
31
|
+
## Default Loop
|
|
32
|
+
|
|
33
|
+
For non-trivial code changes:
|
|
34
|
+
|
|
35
|
+
1. Invoke `scip-concrete-plan`; the plan starts from `scip-query plan-context <target>` and designs for testability.
|
|
36
|
+
2. Implement the plan in the smallest coherent slice.
|
|
37
|
+
3. Invoke `scip-verify`.
|
|
38
|
+
|
|
39
|
+
The loop is complete only when `scip-verify` passes or each remaining finding has a specific reason.
|
|
40
|
+
|
|
41
|
+
## Routes
|
|
42
|
+
|
|
43
|
+
| Work | Skill | Anchor |
|
|
44
|
+
| --- | --- | --- |
|
|
45
|
+
| Understand a system before answering or editing | `scip-explore` | `system`, `trace`, `call-graph`, `dataflow` |
|
|
46
|
+
| Root-cause a bug or regression | `scip-debug` | `trace`, `dataflow`, `change-surface` |
|
|
47
|
+
| Turn a report into a fix packet | `scip-triage-issue` | `files`, `trace`, `affected` |
|
|
48
|
+
| Create a code flow, dependency, or blast-radius diagram | `scip-diagram` | `call-graph`, `dataflow`, `affected` |
|
|
49
|
+
| Plan a feature, fix, or refactor | `scip-concrete-plan` | `plan-context` |
|
|
50
|
+
| Run a multi-phase program: plan, delegate, verify handoffs, close | `scip-conductor` | `plan-context`, `diff-gate`, `health` |
|
|
51
|
+
| Assess public API, route, config, schema, CLI, or export changes | `scip-api-impact` | `surface`, `affected`, `co-change` |
|
|
52
|
+
| Pick language-specific high-signal commands | `scip-language-playbook` | language row |
|
|
53
|
+
| Benchmark and optimize a command, workflow, or hot path | `scip-hyper-optimization` | `bench`, `plan-context`, profiles |
|
|
54
|
+
| Adopt or repair scip-query setup in a repo | `scip-setup` | `setup`, `doctor`, `capabilities` |
|
|
55
|
+
| Verify any finished change | `scip-verify` | `status`, `diff-impact`, final gate |
|
|
56
|
+
| Audit, rank, or confirm cleanup findings | `scip-cleanup-audit` | `health`, `cleanup-plan`, cleanup detectors |
|
|
57
|
+
| Autonomously fix confirmed cleanup findings | `scip-cleanup-improve` | `health`, `cleanup-plan`, verified batches |
|
|
58
|
+
| Find or resolve same-name twins that have diverged | `scip-twin-drift` | `twin-drift`, `duplicate-bodies`, `refs` |
|
|
59
|
+
| Faked or half-implemented features, checkers that never fail, dead paths behind fallbacks, lying metrics | `scip-integrity-audit` |
|
|
60
|
+
| Audit whether a status claim is derived, hedged, or merely asserted | `scip-claim-audit` | `refs`, `code`, `trace` |
|
|
61
|
+
| Prove whether a parser/AST branch is actually reachable | `scip-probe-reachability` | `outline --signatures`, `code`, scratch probes |
|
|
62
|
+
| Reconcile living docs with code | `scip-doc-reconcile` | `doc-drift` |
|
|
63
|
+
| Review or migrate folder ownership | `scip-directory-architecture` | `locality-candidates`, `similar-files` |
|
|
64
|
+
| Review deeper maintainability and system compression | `scip-maintainability` | `bottlenecks`, `similar-chains`, `change-surface` |
|
|
65
|
+
| Review React reuse and component/hook pressure | `scip-react-maintainability` | React duplicate and pressure commands |
|
|
66
|
+
| Review Vue reuse and SFC/composable pressure | `scip-vue-maintainability` | Vue duplicate and pressure commands |
|
|
67
|
+
| Model a TypeScript system with TLA+ | `scip-tla-model-system` | `plan-context`, `tla verify` |
|
|
68
|
+
|
|
69
|
+
Routing is complete only when one owning skill is selected or the task is small enough for the default loop alone.
|
|
70
|
+
|
|
71
|
+
## Tie-Breaks
|
|
72
|
+
|
|
73
|
+
- "Is this implementation real / does it actually work" → `scip-integrity-audit`; "is this well-organized" → `scip-maintainability`; same-name drifted twins specifically → `scip-twin-drift`.
|
|
74
|
+
- One change → `scip-concrete-plan`; a program of changes with delegation → `scip-conductor`.
|
|
75
|
+
|
|
76
|
+
- Use `scip-cleanup-audit` for reports, ranking, confirmation, or recent AI-residue triage without edits.
|
|
77
|
+
- Use `scip-cleanup-improve` when the user asks to fix, improve, continue cleaning, or raise health autonomously.
|
|
78
|
+
- Use `scip-maintainability`, `scip-directory-architecture`, or `scip-hyper-optimization` only when the target is architecture, file ownership, or measured speed/cost rather than cleanup.
|
|
79
|
+
- Use `scip-twin-drift` for same-name/near-name consolidation questions (a specific concept copied and drifted); use `scip-cleanup-audit`/`scip-cleanup-improve` for general bloat, echoes, and duplication sweeps that are not centered on one drifted twin family.
|
|
80
|
+
|
|
81
|
+
## Setup
|
|
82
|
+
|
|
83
|
+
If a repository has not been bootstrapped, invoke `scip-setup`. Use `scip-query setup-agent` only to refresh agent guidance, `scip-query setup-hooks --json` only to repair project-local hooks, and `scip-query setup-ci` only when the user explicitly asks for CI setup.
|
|
84
|
+
|
|
85
|
+
<!-- BEGIN GENERATED ROUTER COMMAND PREVIEW -->
|
|
86
|
+
## Command Preview
|
|
87
|
+
|
|
88
|
+
Top commands per routed skill, generated from each skill's own `commands:` frontmatter.
|
|
89
|
+
|
|
90
|
+
| Skill | Top commands |
|
|
91
|
+
| --- | --- |
|
|
92
|
+
| `scip-api-impact` | `scip-query surface <module-or-package>`, `scip-query refs <symbol>`, `scip-query affected <symbol> --json` |
|
|
93
|
+
| `scip-claim-audit` | `scip-query files <pattern>`, `scip-query refs <symbol>`, `scip-query code <symbol>` |
|
|
94
|
+
| `scip-cleanup-audit` | `scip-query health --json`, `scip-query cleanup-plan --verify --json`, `scip-query duplicate-bodies --json --full` |
|
|
95
|
+
| `scip-cleanup-improve` | `scip-query health --json`, `scip-query cleanup-plan --verify --json`, `scip-query cleanup-apply --verified --batch <n>` |
|
|
96
|
+
| `scip-concrete-plan` | `scip-query status --capabilities`, `scip-query plan-context <target>`, `scip-query refs <symbol>` |
|
|
97
|
+
| `scip-conductor` | `scip-query plan-context <target>`, `scip-query diff-gate --json`, `scip-query health --json` |
|
|
98
|
+
| `scip-debug` | `scip-query files <feature-or-error-term>`, `scip-query trace <candidate-symbol>`, `scip-query call-graph <entry-symbol>` |
|
|
99
|
+
| `scip-diagram` | `scip-query system <module>`, `scip-query trace <symbol>`, `scip-query call-graph <symbol>` |
|
|
100
|
+
| `scip-directory-architecture` | `scip-query system <scope>`, `scip-query locality-candidates --json --full`, `scip-query similar-files --full --json` |
|
|
101
|
+
| `scip-doc-reconcile` | `scip-query doc-drift --json --full`, `scip-query doc-drift <doc>`, `scip-query outline <subject-file>` |
|
|
102
|
+
| `scip-explore` | `scip-query stats`, `scip-query system <module-or-scope>`, `scip-query trace <entry-symbol>` |
|
|
103
|
+
| `scip-hyper-optimization` | `scip-query bench --json`, `scip-query bench --json --cold-index --include-heavy --timeout-ms 600000`, `scip-query plan-context <entry-symbol-or-file>` |
|
|
104
|
+
| `scip-language-playbook` | `scip-query stats`, `scip-query files <feature-or-module-name>`, `scip-query outline <file>` |
|
|
105
|
+
| `scip-maintainability` | `scip-query stats`, `scip-query system <scope>`, `scip-query surface <scope>` |
|
|
106
|
+
| `scip-probe-reachability` | `scip-query outline <file> --signatures`, `scip-query code <symbol>`, `scip-query trace <symbol>` |
|
|
107
|
+
| `scip-react-maintainability` | `scip-query react-component-duplicates --scope <scope> --full --json`, `scip-query react-hook-candidates --scope <scope> --full --json`, `scip-query react-large-component-pressure --scope <scope> --full --json` |
|
|
108
|
+
| `scip-setup` | `scip-query setup --json`, `scip-query doctor`, `scip-query status --json` |
|
|
109
|
+
| `scip-tla-model-system` | `scip-query tla scaffold <file>`, `scip-query tla verify <spec>`, `scip-query tla instrument <spec>` |
|
|
110
|
+
| `scip-triage-issue` | `scip-query files <issue-term>`, `scip-query trace <entry-or-error-symbol>`, `scip-query code <entry-or-error-symbol>` |
|
|
111
|
+
| `scip-twin-drift` | `scip-query twin-drift --json --full`, `scip-query duplicate-bodies --json --full`, `scip-query code <symbol>` |
|
|
112
|
+
| `scip-verify` | `scip-query doctor`, `scip-query status --capabilities`, `scip-query diff-impact --json` |
|
|
113
|
+
| `scip-vue-maintainability` | `scip-query augment-vue --project <path-to-tsconfig>`, `scip-query vue-component-duplicates --scope <scope> --full --json`, `scip-query vue-composable-candidates --scope <scope> --full --json` |
|
|
114
|
+
<!-- END GENERATED ROUTER COMMAND PREVIEW -->
|
|
@@ -1,119 +1,101 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: scip-react-maintainability
|
|
3
|
-
description: React
|
|
3
|
+
description: Review React maintainability with scip-query. Use for React, TSX, JSX, Next.js, duplicated components, hook candidates, large components, frontend health pressure, or verifying reuse after refactors.
|
|
4
|
+
commands:
|
|
5
|
+
- template: "scip-query react-component-duplicates --scope <scope> --full --json"
|
|
6
|
+
when: "Bound and scan: duplicated JSX structure candidates."
|
|
7
|
+
- template: "scip-query react-hook-candidates --scope <scope> --full --json"
|
|
8
|
+
when: "Bound and scan: shared state/effect/request extraction candidates."
|
|
9
|
+
- template: "scip-query react-large-component-pressure --scope <scope> --full --json"
|
|
10
|
+
when: "Bound and scan: components carrying several reasons to change."
|
|
11
|
+
- template: "scip-query recent-duplicates --scope <scope> --full --json"
|
|
12
|
+
when: "Bound and scan: recent code re-implementing established components."
|
|
13
|
+
- template: "scip-query similar <closest-existing-component-or-hook>"
|
|
14
|
+
when: "Cross-check candidates: existing component or hook to reuse instead."
|
|
15
|
+
- template: "scip-query health --scope <scope> --json"
|
|
16
|
+
when: "Bound and scan: frontend health pressure for the scope."
|
|
4
17
|
---
|
|
5
18
|
|
|
6
|
-
#
|
|
19
|
+
# scip-react-maintainability
|
|
7
20
|
|
|
8
|
-
|
|
21
|
+
Use this skill to review React frontends as maintainable systems of components, hooks, JSX structure, and behavior lifecycles.
|
|
9
22
|
|
|
10
|
-
|
|
23
|
+
Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
|
|
11
24
|
|
|
12
|
-
|
|
25
|
+
<!-- BEGIN GENERATED SKILL COMMANDS -->
|
|
26
|
+
## Commands for this skill
|
|
13
27
|
|
|
14
|
-
|
|
28
|
+
| Command | Purpose | When |
|
|
29
|
+
| --- | --- | --- |
|
|
30
|
+
| `scip-query react-component-duplicates --scope <scope> --full --json` | Find heuristic duplicated React component structure candidates from JSX tags, props, events, and bindings | Bound and scan: duplicated JSX structure candidates. |
|
|
31
|
+
| `scip-query react-hook-candidates --scope <scope> --full --json` | Find heuristic React hook extraction candidates from shared state, effects, requests, and handlers | Bound and scan: shared state/effect/request extraction candidates. |
|
|
32
|
+
| `scip-query react-large-component-pressure --scope <scope> --full --json` | Find heuristic large React component pressure candidates from component lines, JSX structure, and hook behavior | Bound and scan: components carrying several reasons to change. |
|
|
33
|
+
| `scip-query recent-duplicates --scope <scope> --full --json` | Directional duplicate candidates: recent code that re-implements established callable, React, or Vue code | Bound and scan: recent code re-implementing established components. |
|
|
34
|
+
| `scip-query similar <closest-existing-component-or-hook>` | Find heuristic function similarity candidates from callee fingerprints | Cross-check candidates: existing component or hook to reuse instead. |
|
|
35
|
+
| `scip-query health --scope <scope> --json` | Composite codebase health report with prioritized action list | Bound and scan: frontend health pressure for the scope. |
|
|
15
36
|
|
|
16
|
-
|
|
37
|
+
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
38
|
+
<!-- END GENERATED SKILL COMMANDS -->
|
|
17
39
|
|
|
18
|
-
##
|
|
40
|
+
## Terms
|
|
19
41
|
|
|
20
|
-
|
|
42
|
+
A React component duplicate candidate is a pair or group of rendered structures that repeat the same user-facing arrangement, controls, states, props, or data-presentation shape enough that a shared component may reduce drift.
|
|
21
43
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
44
|
+
A React hook candidate is a pair or group of component behaviors that repeat the same state lifecycle, effects, requests, validation, persistence, callback policy, or derived-data rule enough that a shared hook may preserve behavior better.
|
|
45
|
+
|
|
46
|
+
Large component pressure means one component or file contains several kinds of knowledge that change for different reasons.
|
|
47
|
+
|
|
48
|
+
## Workflow
|
|
49
|
+
|
|
50
|
+
### 1. Bound and scan
|
|
28
51
|
|
|
29
|
-
|
|
52
|
+
Pick the narrowest React source root, feature area, or changed-file scope that still includes likely reuse partners. Run uncapped commands:
|
|
30
53
|
|
|
31
54
|
```bash
|
|
32
|
-
scip-query react-component-duplicates --scope <
|
|
33
|
-
scip-query react-hook-candidates --scope <
|
|
34
|
-
scip-query react-large-component-pressure --scope <
|
|
35
|
-
scip-query recent-duplicates --scope <
|
|
36
|
-
scip-query health --scope <
|
|
55
|
+
scip-query react-component-duplicates --scope <scope> --full --json
|
|
56
|
+
scip-query react-hook-candidates --scope <scope> --full --json
|
|
57
|
+
scip-query react-large-component-pressure --scope <scope> --full --json
|
|
58
|
+
scip-query recent-duplicates --scope <scope> --full --json
|
|
59
|
+
scip-query health --scope <scope> --json
|
|
37
60
|
```
|
|
38
61
|
|
|
39
|
-
|
|
62
|
+
This step is complete only when command scope, counts, and uncapped/full status are recorded.
|
|
63
|
+
|
|
64
|
+
### 2. Cross-check candidates
|
|
40
65
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
- Both component and hook candidate: inspect for a feature-level concept that may need both a component boundary and a hook boundary.
|
|
48
|
-
- Large component only: split by reason to change, not by line count alone.
|
|
49
|
-
5. Open the source files for the top candidates. Similarity is evidence to inspect, not a verdict.
|
|
50
|
-
6. Check existing exports, imports, and call sites before proposing anything new:
|
|
66
|
+
- Component duplicate only: inspect for shared presentational component or existing component reuse.
|
|
67
|
+
- Hook candidate only: inspect for shared behavior, lifecycle, request, validation, persistence, or derived-state policy.
|
|
68
|
+
- Both: inspect for a feature-level concept needing both component and hook boundaries.
|
|
69
|
+
- Large component only: split by reason to change, not by line count.
|
|
70
|
+
|
|
71
|
+
Use:
|
|
51
72
|
|
|
52
73
|
```bash
|
|
53
74
|
scip-query outline <file>
|
|
54
75
|
scip-query deps <file>
|
|
55
76
|
scip-query rdeps <file>
|
|
56
|
-
scip-query similar-files --scope <
|
|
77
|
+
scip-query similar-files --scope <scope>
|
|
57
78
|
scip-query similar <closest-existing-component-or-hook>
|
|
58
79
|
```
|
|
59
80
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
Prefer reuse before extraction. If an existing component or hook already names the concept, migrate callers to it instead of creating another one.
|
|
81
|
+
This step is complete only when each top candidate is reuse, extract, split, skip, or blocked.
|
|
63
82
|
|
|
64
|
-
|
|
83
|
+
### 3. Act on findings
|
|
65
84
|
|
|
66
|
-
|
|
67
|
-
- Extract a hook when the repeated knowledge is state, effects, requests, subscriptions, memoized derivations, callbacks, or persistence policy.
|
|
68
|
-
- Split a large component by reason to change: data loading, permission/policy, layout shell, table/list rendering, form state, and action handling are different reasons.
|
|
69
|
-
- Keep domain-specific variation at the call site when the variation is essential. Do not hide different product rules behind a boolean soup API.
|
|
85
|
+
Prefer reuse before extraction. Extract components for repeated UI structure, states, props, slots/children, or design-system composition. Extract hooks for repeated state, effects, requests, subscriptions, memoized derivations, callbacks, or persistence. Keep domain-specific variation at call sites when essential.
|
|
70
86
|
|
|
71
|
-
|
|
87
|
+
This step is complete only when the chosen action reduces future drift without creating boolean-soup APIs or wrapper components with no policy.
|
|
72
88
|
|
|
73
|
-
|
|
89
|
+
### 4. Verify
|
|
74
90
|
|
|
75
|
-
Run the checks
|
|
91
|
+
Run routed postchecks from the shared reference, including React commands, `incomplete-migration`, `recent-duplicates`, `unused-params`, and wrapper/passthrough/stale checks, then invoke `scip-verify`.
|
|
76
92
|
|
|
77
|
-
|
|
78
|
-
scip-query diff-impact --json
|
|
79
|
-
scip-query react-component-duplicates --scope <react-source-scope> --full --json
|
|
80
|
-
scip-query react-hook-candidates --scope <react-source-scope> --full --json
|
|
81
|
-
scip-query react-large-component-pressure --scope <react-source-scope> --full --json
|
|
82
|
-
scip-query recent-duplicates --scope <react-source-scope> --full --json
|
|
83
|
-
scip-query incomplete-migration
|
|
84
|
-
scip-query unused-params
|
|
85
|
-
scip-query wrapper-candidates --scope <react-source-scope> --full --json
|
|
86
|
-
scip-query passthrough-candidates --scope <react-source-scope> --full --json
|
|
87
|
-
scip-query stale-abstractions --scope <react-source-scope> --include-low-confidence --full --json
|
|
88
|
-
scip-query status --capabilities
|
|
89
|
-
# If freshness is stale, missing, or unknown:
|
|
90
|
-
# scip-query reindex
|
|
91
|
-
scip-query diff-gate --json
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
Use the results this way:
|
|
95
|
-
|
|
96
|
-
- `incomplete-migration`: if a new hook/helper was created and wired somewhere, migrate every unchanged site that still contains the same logic or document why it is not the same behavior.
|
|
97
|
-
- `recent-duplicates`: if the new component/hook is still an echo of established code, delete the echo or reuse the established concept.
|
|
98
|
-
- React duplicate commands: the specific candidate pair you acted on should disappear, weaken materially, or be explicitly accepted as essential variation.
|
|
99
|
-
- `unused-params`: remove speculative props/options introduced "for later."
|
|
100
|
-
- wrapper/pass-through/stale checks: remove local wrapper components, hook aliases, or type abstractions that do not enforce a real policy.
|
|
101
|
-
- `diff-gate`: treat every finding as unfinished work unless there is a written reason to accept it.
|
|
93
|
+
The work is complete only when acted-on candidate pairs disappear, weaken materially, or are explicitly accepted as essential variation.
|
|
102
94
|
|
|
103
95
|
## False Positive Checks
|
|
104
96
|
|
|
105
|
-
|
|
106
|
-
- Similar JSX with different domain lifecycles may justify a presentational component but not a hook.
|
|
107
|
-
- Shared hook usage may mean the right concept is already extracted; look for drift around the shared call, not another extraction.
|
|
108
|
-
- A large file creates review pressure, but it is not proof that behavior is duplicated.
|
|
109
|
-
- A local wrapper is justified only when it names a real product concept, enforces a policy, or prevents drift across callers.
|
|
110
|
-
|
|
111
|
-
## Reporting Shape
|
|
97
|
+
Shared design-system primitives, icons, labels, route names, or test IDs are not enough. Similar JSX with different domain lifecycles may justify a presentational component but not a hook. A large file is review pressure, not proof of duplication.
|
|
112
98
|
|
|
113
|
-
Report
|
|
99
|
+
## Report
|
|
114
100
|
|
|
115
|
-
|
|
116
|
-
- Command evidence: exact commands, scope, counts, and whether results were uncapped.
|
|
117
|
-
- Candidate groups: files/components, repeated UI structure, repeated behavior, and large-component pressure.
|
|
118
|
-
- Recommended action: reuse existing API, extract component, extract hook, split view, delete wrapper, or no action.
|
|
119
|
-
- Post-change proof: commands rerun, candidate pairs resolved or accepted, migration completeness checked, and `diff-gate` result.
|
|
101
|
+
Report executive read, command evidence, candidate groups, recommended action, post-change proof, and remaining accepted variation.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scip-setup
|
|
3
|
+
description: Set up or repair scip-query in a repository. Use for bootstrapping, onboarding, refreshing indexes, project-local hooks, agent guidance, capability diagnostics, health dossiers, .scipquery.json, or setup cleanup handoff.
|
|
4
|
+
commands:
|
|
5
|
+
- template: "scip-query setup --json"
|
|
6
|
+
when: "Run setup: install skills, refresh the index, report health."
|
|
7
|
+
- template: "scip-query doctor"
|
|
8
|
+
when: "Resolve blockers: human diagnostic for config, index, and dependencies."
|
|
9
|
+
- template: "scip-query status --json"
|
|
10
|
+
when: "Resolve blockers: machine surface for freshness and config."
|
|
11
|
+
- template: "scip-query capabilities --matrix"
|
|
12
|
+
when: "Resolve blockers: which evidence/verification capabilities are available."
|
|
13
|
+
- template: "scip-query config-validate --json"
|
|
14
|
+
when: "Resolve blockers: validate .scipquery.json."
|
|
15
|
+
- template: "scip-query init"
|
|
16
|
+
when: "Calibrate config: create .scipquery.json only when absent and needed."
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# scip-setup
|
|
20
|
+
|
|
21
|
+
Use this skill to make a repository a reliable scip-query workspace: indexed, diagnosed, documented for agents, and honest about unavailable capabilities.
|
|
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 setup --json` | Bootstrap this project: install agent skills, refresh the index, verify capabilities, and report health | Run setup: install skills, refresh the index, report health. |
|
|
31
|
+
| `scip-query doctor` | Diagnose config, index freshness, dependency readiness, and project capabilities | Resolve blockers: human diagnostic for config, index, and dependencies. |
|
|
32
|
+
| `scip-query status --json` | Show index status for this project | Resolve blockers: machine surface for freshness and config. |
|
|
33
|
+
| `scip-query capabilities --matrix` | Report which evidence and verification capabilities are available in this project | Resolve blockers: which evidence/verification capabilities are available. |
|
|
34
|
+
| `scip-query config-validate --json` | Validate .scipquery.json, including structured suppressions and declared coupling groups | Resolve blockers: validate .scipquery.json. |
|
|
35
|
+
| `scip-query init` | Create a .scipquery.json config file for this project | Calibrate config: create .scipquery.json only when absent and needed. |
|
|
36
|
+
|
|
37
|
+
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
38
|
+
<!-- END GENERATED SKILL COMMANDS -->
|
|
39
|
+
|
|
40
|
+
## Per-Repo Triage (once, after setup)
|
|
41
|
+
|
|
42
|
+
New repos surface standing findings that are intentional. Encode them once so
|
|
43
|
+
every later gate run is precise:
|
|
44
|
+
|
|
45
|
+
1. Sweep initial findings (`health --json`, `diff-gate --json`) and, for each accepted one, `suppress <id> --reason <why>` — reasons are required and audited.
|
|
46
|
+
2. Declare files that legitimately change together in `.scipquery.json` `declaredCouplings`.
|
|
47
|
+
3. List dated snapshot docs (benchmarks, validation ledgers, historical plans/reviews) in `docs.snapshotPaths` so doc checks skip them with a labeled exclusion instead of recurring findings.
|
|
48
|
+
4. Seed `coverageContracts` for every hand-maintained enumeration (policy maps, capability tables, registry lists) so enumeration rot fails the gate the day it happens.
|
|
49
|
+
5. Set a hygiene cadence: run `scip-twin-drift` and `scip-claim-audit` after large refactor campaigns or quarterly — the gate only sees diffs; these lenses see accumulated state.
|
|
50
|
+
|
|
51
|
+
This step is complete only when a clean working tree produces a finding-free `diff-gate` and every suppression carries a reason a reviewer would accept.
|
|
52
|
+
|
|
53
|
+
## Rules
|
|
54
|
+
|
|
55
|
+
1. Prefer the single setup command over hand-running its internals.
|
|
56
|
+
2. Do not run `scip-query setup-ci` unless the user explicitly asks for CI setup.
|
|
57
|
+
3. Treat unavailable capabilities as unproven, not clean.
|
|
58
|
+
4. Keep `.scipquery.json` minimal and evidence-backed.
|
|
59
|
+
|
|
60
|
+
## Workflow
|
|
61
|
+
|
|
62
|
+
### 1. Confirm the root
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
pwd
|
|
66
|
+
git rev-parse --show-toplevel
|
|
67
|
+
scip-query --version
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
This step is complete only when the repository root and runnable `scip-query` command are known, or the install/link blocker is reported.
|
|
71
|
+
|
|
72
|
+
### 2. Run setup
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
scip-query setup --json
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Use `scip-query setup --no-hooks --json` when project-local Codex or Claude Code lifecycle hooks should not be written. Use `scip-query setup --git-hook --json` only when the user wants the local pre-commit diff gate.
|
|
79
|
+
|
|
80
|
+
This step is complete only when setup reports ready, partial, or blocked and names every written, skipped, or blocked artifact.
|
|
81
|
+
|
|
82
|
+
### 3. Resolve blockers
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
scip-query doctor
|
|
86
|
+
scip-query status --json
|
|
87
|
+
scip-query capabilities --matrix
|
|
88
|
+
scip-query config-validate --json
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
`doctor` is the human diagnostic surface. `status --json` is the machine surface for freshness and config. Fix missing indexers, stale indexes, invalid config, or unavailable verification only when the fix is safe; otherwise record the exact external action.
|
|
92
|
+
|
|
93
|
+
This step is complete only when each blocker is fixed, unavailable with reason, or waiting on a named external action.
|
|
94
|
+
|
|
95
|
+
### 4. Calibrate config only when needed
|
|
96
|
+
|
|
97
|
+
Run `scip-query init` only when `.scipquery.json` is absent and the project needs config. Add settings only for observed repo facts: explicit languages, indexer projects, entry roots, declared couplings, locality boundaries, or accepted suppressions.
|
|
98
|
+
|
|
99
|
+
For TypeScript monorepos, prefer `indexer.typescript.projectMode: "workspace"` when multiple project shards are real. Add `indexerConcurrency` only when measured cold-index timing or memory pressure justifies it.
|
|
100
|
+
|
|
101
|
+
This step is complete only when config validates and every setting has a reason.
|
|
102
|
+
|
|
103
|
+
### 5. Hand off cleanup
|
|
104
|
+
|
|
105
|
+
After setup, invoke `scip-cleanup-audit` when the user wants a report or `scip-cleanup-improve` when the user wants autonomous cleanup.
|
|
106
|
+
|
|
107
|
+
Report:
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
Setup: ready/partial/blocked
|
|
111
|
+
Capabilities:
|
|
112
|
+
- available:
|
|
113
|
+
- unavailable:
|
|
114
|
+
Health:
|
|
115
|
+
- score:
|
|
116
|
+
- dossier:
|
|
117
|
+
Written or changed:
|
|
118
|
+
- files:
|
|
119
|
+
Next:
|
|
120
|
+
- cleanup audit/improve, CI setup, or external blocker
|
|
121
|
+
```
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "scip-query setup"
|
|
3
|
+
short_description: "Bootstrap or repair scip-query indexing, diagnostics, hooks, guidance, and health dossiers"
|
|
4
|
+
default_prompt: "Set up or repair scip-query in this repository, report readiness and blockers, and hand off the next cleanup step."
|