scip-query 0.10.11 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/{vendor/scip/LICENSE.scip → LICENSE} +1 -0
- package/README.md +168 -55
- package/dist/augment-vue-worker.js +1 -1
- package/dist/chunk-2VSDXOG5.js +2 -0
- package/dist/chunk-343O6EVV.js +2 -0
- package/dist/chunk-3KDUITBE.js +7 -0
- package/dist/chunk-3T2FNHIU.js +2 -0
- package/dist/chunk-3V6JQQM5.js +2 -0
- package/dist/chunk-5AAAEZ2Z.js +2 -0
- package/dist/chunk-6Q6OFLFQ.js +8 -0
- package/dist/chunk-6XA4LDHY.js +2 -0
- package/dist/chunk-75X52JTA.js +2 -0
- package/dist/{chunk-54KGX7EX.js → chunk-7HB3CZFD.js} +2 -2
- package/dist/chunk-7JZRFDCU.js +2 -0
- package/dist/chunk-7XL7J7PT.js +3 -0
- package/dist/chunk-ALHNAPS2.js +2 -0
- package/dist/{chunk-JATUZIEH.js → chunk-BDRBPG7Y.js} +2 -2
- package/dist/chunk-BN5SXXQS.js +40 -0
- package/dist/chunk-C4ICAIJ4.js +3 -0
- package/dist/{chunk-LSET2TXH.js → chunk-CMHYBXJB.js} +2 -2
- package/dist/{chunk-YWYFU2V3.js → chunk-DRPAQAFM.js} +6 -6
- package/dist/chunk-FERAXG6Y.js +72 -0
- package/dist/chunk-FLJJLSGB.js +2 -0
- package/dist/chunk-FXG3PHVW.js +9 -0
- package/dist/chunk-GCN2P4EJ.js +2 -0
- package/dist/chunk-GHXRVCIY.js +21 -0
- package/dist/chunk-GNG622H3.js +3 -0
- package/dist/chunk-H4LUPLEJ.js +2 -0
- package/dist/{chunk-BASVXNY3.js → chunk-H56MGERE.js} +4 -4
- package/dist/chunk-H7NSJ7L2.js +5 -0
- package/dist/chunk-HINMXZ6J.js +2 -0
- package/dist/chunk-HXXMPYEF.js +2 -0
- package/dist/{chunk-Z3YYR4OS.js → chunk-HZKMEXA3.js} +2 -2
- package/dist/chunk-IFSX6YVU.js +4 -0
- package/dist/chunk-ISLWJ4PY.js +10 -0
- package/dist/chunk-J5WVNZ6O.js +2 -0
- package/dist/chunk-K2HYR5A7.js +3 -0
- package/dist/chunk-K6UI6EBZ.js +2 -0
- package/dist/chunk-KJCDEDQW.js +2 -0
- package/dist/{chunk-Z4HICZGY.js → chunk-KKMOB3OJ.js} +2 -2
- package/dist/{chunk-YWOOQ4FF.js → chunk-KMVGRIO2.js} +2 -2
- package/dist/chunk-LWOOTRHC.js +2 -0
- package/dist/{chunk-EY43NV4M.js → chunk-LZNLRE4X.js} +17 -8
- package/dist/chunk-M2YXL62V.js +23 -0
- package/dist/chunk-MNEJYEHW.js +3 -0
- package/dist/chunk-MTDBHTSF.js +2 -0
- package/dist/{chunk-ZQDIXAF5.js → chunk-N2Z3CU7X.js} +2 -2
- package/dist/chunk-N7PNFLGY.js +2 -0
- package/dist/chunk-NAH5EAZS.js +6 -0
- package/dist/chunk-NBXK32I6.js +2 -0
- package/dist/chunk-NJJ7AS4F.js +2 -0
- package/dist/{chunk-FDEQIPPK.js → chunk-NLMRJ7SI.js} +2 -2
- package/dist/chunk-ODVITBYU.js +26 -0
- package/dist/chunk-ORBRX2QJ.js +2 -0
- package/dist/chunk-P36UR5II.js +2 -0
- package/dist/chunk-PYZZBIEU.js +3 -0
- package/dist/chunk-PZS6J5YG.js +16 -0
- package/dist/{chunk-LM5SHAN4.js → chunk-QARYU7R3.js} +2 -2
- package/dist/chunk-QJ3FK4TB.js +38 -0
- package/dist/chunk-QXGTGE2C.js +35 -0
- package/dist/chunk-QZ4JVECJ.js +2 -0
- package/dist/chunk-R3JY4EZ4.js +102 -0
- package/dist/{chunk-VOYOYC5T.js → chunk-R5336VHZ.js} +2 -2
- package/dist/chunk-RJMXSHKM.js +2 -0
- package/dist/chunk-STBXCPKY.js +5 -0
- package/dist/chunk-T2FQ4GHD.js +9 -0
- package/dist/chunk-TFWDJDGO.js +2 -0
- package/dist/chunk-TG7QSYCJ.js +2 -0
- package/dist/{chunk-FKCGBZAC.js → chunk-TTS75UF2.js} +5 -5
- package/dist/{chunk-BVRS7RKQ.js → chunk-U7I373V4.js} +2 -2
- package/dist/chunk-UIKLA3F5.js +2 -0
- package/dist/{chunk-P753MDDE.js → chunk-UMPNL7T6.js} +2 -2
- package/dist/chunk-URSSPS5H.js +2 -0
- package/dist/chunk-VGMUFW3J.js +2 -0
- package/dist/chunk-VXTNADIW.js +18 -0
- package/dist/chunk-VYF5HA76.js +2 -0
- package/dist/chunk-WFGOH2UI.js +43 -0
- package/dist/chunk-WGA5BBTA.js +4 -0
- package/dist/chunk-WIBFXSYB.js +6 -0
- package/dist/chunk-WPSS37EW.js +2 -0
- package/dist/chunk-WQHWIVA7.js +3 -0
- package/dist/chunk-WS3Z6W3M.js +65 -0
- package/dist/chunk-WXVGNFAO.js +2 -0
- package/dist/{chunk-6LJHXREW.js → chunk-WZLPXFZU.js} +2 -2
- package/dist/chunk-X4O6K47U.js +2 -0
- package/dist/chunk-X6OGDTQH.js +2 -0
- package/dist/chunk-XEMQUN3Z.js +20 -0
- package/dist/{chunk-7B6LP46R.js → chunk-XHWLNQVZ.js} +2 -2
- package/dist/chunk-XMR747CP.js +2 -0
- package/dist/chunk-Y6L4LXPG.js +2 -0
- package/dist/chunk-YCPASUCX.js +2 -0
- package/dist/chunk-YZXV3CU3.js +60 -0
- package/dist/chunk-ZEKBR4OK.js +10 -0
- package/dist/chunk-ZMGBWSFZ.js +2 -0
- package/dist/cli.js +462 -274
- package/dist/{config-types-BDIWAYzr.d.ts → config-types-BrHl3Bge.d.ts} +61 -1
- package/dist/{db-Djj3Nqrb.d.ts → db-_Bdx0E1W.d.ts} +1 -1
- package/dist/diff-gate-types-CG2YQ_ei.d.ts +4 -0
- package/dist/{frontend-behavior-evidence-BxKpKWUu.d.ts → frontend-behavior-evidence-EfM4_9bc.d.ts} +1 -1
- package/dist/{health-D5J42g4D.d.ts → health-BEZ1Rt0S.d.ts} +54 -2
- package/dist/index.d.ts +10 -70
- package/dist/index.js +2 -2
- package/dist/postinstall.js +1 -4
- package/dist/queries/affected.d.ts +2 -2
- package/dist/queries/affected.js +1 -1
- package/dist/queries/bottlenecks.d.ts +2 -2
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.d.ts +2 -2
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.d.ts +2 -2
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.d.ts +2 -2
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.d.ts +2 -2
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.d.ts +12 -2
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.d.ts +2 -2
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity-hotspots.d.ts +7 -3
- package/dist/queries/complexity-hotspots.js +1 -1
- package/dist/queries/complexity.d.ts +42 -4
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/convergence.d.ts +2 -2
- package/dist/queries/convergence.js +1 -1
- package/dist/queries/coupling.d.ts +2 -2
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.d.ts +12 -3
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dataflow.d.ts +2 -2
- package/dist/queries/dataflow.js +1 -1
- package/dist/queries/dead.d.ts +3 -3
- package/dist/queries/dead.js +1 -1
- package/dist/queries/deep-chains.d.ts +2 -2
- package/dist/queries/deep-chains.js +1 -1
- package/dist/queries/deps.d.ts +2 -2
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-gate.d.ts +65 -8
- package/dist/queries/diff-gate.js +1 -1
- package/dist/queries/diff-impact.d.ts +21 -3
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.d.ts +29 -2
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +15 -3
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +55 -0
- package/dist/queries/duplicate-bodies.js +2 -0
- package/dist/queries/extract-candidates.d.ts +2 -2
- package/dist/queries/extract-candidates.js +1 -1
- package/dist/queries/fan.d.ts +2 -2
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.d.ts +4 -3
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.d.ts +3 -3
- package/dist/queries/health.js +1 -1
- package/dist/queries/hierarchy.d.ts +2 -2
- package/dist/queries/hierarchy.js +1 -1
- package/dist/queries/hotspots.d.ts +2 -2
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.d.ts +2 -2
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.d.ts +3 -2
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +12 -7
- package/dist/queries/index.js +1 -1
- package/dist/queries/isolated.d.ts +2 -2
- package/dist/queries/isolated.js +1 -1
- package/dist/queries/locality-candidates.d.ts +2 -2
- package/dist/queries/locality-candidates.js +1 -1
- package/dist/queries/members.d.ts +2 -2
- package/dist/queries/members.js +1 -1
- package/dist/queries/methods.d.ts +2 -2
- package/dist/queries/methods.js +1 -1
- package/dist/queries/outline.d.ts +2 -2
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.d.ts +11 -3
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/plan-context.d.ts +3 -2
- package/dist/queries/plan-context.js +1 -1
- package/dist/queries/react-component-duplicates.d.ts +7 -2
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +3 -3
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.d.ts +2 -2
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.d.ts +2 -2
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.d.ts +2 -2
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/refs.d.ts +2 -2
- package/dist/queries/refs.js +1 -1
- package/dist/queries/self-audit.d.ts +9 -4
- package/dist/queries/self-audit.js +1 -1
- package/dist/queries/similar-chains.d.ts +2 -2
- package/dist/queries/similar-chains.js +1 -1
- package/dist/queries/similar-files.d.ts +2 -2
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.d.ts +17 -10
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +85 -17
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice.d.ts +2 -2
- package/dist/queries/slice.js +1 -1
- package/dist/queries/stale-abstractions.d.ts +2 -2
- package/dist/queries/stale-abstractions.js +1 -1
- package/dist/queries/stats.d.ts +2 -2
- package/dist/queries/surface.d.ts +2 -2
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.d.ts +2 -2
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system.d.ts +2 -2
- package/dist/queries/system.js +1 -1
- package/dist/queries/trace.d.ts +2 -2
- package/dist/queries/trace.js +1 -1
- package/dist/queries/twin-ab.d.ts +55 -0
- package/dist/queries/twin-ab.js +2 -0
- package/dist/queries/twin-drift.d.ts +97 -0
- package/dist/queries/twin-drift.js +2 -0
- package/dist/queries/unused-imports.d.ts +2 -2
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.d.ts +2 -2
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/vue-component-duplicates.d.ts +7 -2
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.d.ts +3 -3
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.d.ts +6 -2
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/queries/wrapper-candidates.d.ts +2 -2
- package/dist/queries/wrapper-candidates.js +1 -1
- package/dist/reindex-worker.js +9 -9
- package/dist/reindex.d.ts +30 -4
- package/dist/reindex.js +19 -19
- package/dist/runtime.d.ts +12 -6
- package/dist/runtime.js +2 -2
- package/dist/{scip-cli-CnK9Va4O.d.ts → scip-cli-C7cg4ZHR.d.ts} +1 -1
- package/dist/symbol-types-DaoeXKUt.d.ts +66 -0
- package/docs/AGENT_GUIDE.md +20 -18
- package/docs/AI_FAILURE_MODES.md +36 -13
- package/docs/API.md +1 -1
- package/docs/COMMAND_REFERENCE.md +57 -14
- package/docs/DETECTOR_GUIDE.md +20 -3
- package/docs/REGEX_POLICY.md +34 -0
- package/docs/analyzer-inventory.md +48 -3
- package/docs/analyzer-validation-ledger.md +41 -6
- package/package.json +23 -7
- package/scripts/build-scip-windows.mjs +10 -7
- package/scripts/evidence-product-contract.mjs +197 -0
- package/skills/_shared/SKILL.md +243 -0
- package/skills/_shared/agents/openai.yaml +4 -0
- package/skills/scip-api-impact/SKILL.md +55 -71
- package/skills/scip-claim-audit/SKILL.md +105 -0
- package/skills/scip-claim-audit/agents/openai.yaml +4 -0
- package/skills/scip-cleanup-audit/SKILL.md +122 -0
- package/skills/scip-cleanup-audit/agents/openai.yaml +4 -0
- package/skills/scip-cleanup-improve/SKILL.md +84 -0
- package/skills/scip-cleanup-improve/agents/openai.yaml +4 -0
- package/skills/scip-concrete-plan/SKILL.md +181 -0
- package/skills/scip-concrete-plan/agents/openai.yaml +4 -0
- package/skills/scip-conductor/SKILL.md +133 -0
- package/skills/scip-conductor/agents/openai.yaml +4 -0
- package/skills/scip-debug/SKILL.md +60 -58
- package/skills/scip-diagram/SKILL.md +64 -94
- package/skills/scip-directory-architecture/SKILL.md +65 -107
- package/skills/scip-doc-reconcile/SKILL.md +56 -67
- package/skills/scip-explore/SKILL.md +78 -210
- package/skills/scip-hyper-optimization/SKILL.md +124 -198
- package/skills/scip-integrity-audit/SKILL.md +103 -0
- package/skills/scip-integrity-audit/agents/openai.yaml +4 -0
- package/skills/scip-language-playbook/SKILL.md +56 -326
- package/skills/scip-maintainability/SKILL.md +80 -219
- package/skills/scip-probe-reachability/SKILL.md +92 -0
- package/skills/scip-probe-reachability/agents/openai.yaml +4 -0
- package/skills/scip-query/SKILL.md +108 -124
- package/skills/scip-react-maintainability/SKILL.md +64 -82
- package/skills/scip-setup/SKILL.md +121 -0
- package/skills/scip-setup/agents/openai.yaml +4 -0
- package/skills/scip-tla-model-system/SKILL.md +138 -0
- package/skills/scip-tla-model-system/agents/openai.yaml +4 -0
- package/skills/scip-triage-issue/SKILL.md +53 -41
- package/skills/scip-twin-drift/SKILL.md +107 -0
- package/skills/scip-twin-drift/agents/openai.yaml +4 -0
- package/skills/scip-verify/SKILL.md +70 -88
- package/skills/scip-vue-maintainability/SKILL.md +67 -94
- package/dist/chunk-2KHTSEIL.js +0 -102
- package/dist/chunk-3VD3JMK2.js +0 -2
- package/dist/chunk-4UZO3XCV.js +0 -35
- package/dist/chunk-5GOLFJEO.js +0 -8
- package/dist/chunk-5OST6GYB.js +0 -2
- package/dist/chunk-65AU3HFZ.js +0 -2
- package/dist/chunk-6GN7FXCH.js +0 -2
- package/dist/chunk-6IR2AOBM.js +0 -7
- package/dist/chunk-6JRV4MY2.js +0 -23
- package/dist/chunk-6QSOCTZT.js +0 -18
- package/dist/chunk-72KY2ZFO.js +0 -2
- package/dist/chunk-7GO4EQF5.js +0 -2
- package/dist/chunk-7IVSJJZU.js +0 -7
- package/dist/chunk-7TWLSZK5.js +0 -2
- package/dist/chunk-A536TEU4.js +0 -3
- package/dist/chunk-AVWPHM2Q.js +0 -4
- package/dist/chunk-B32FX5KB.js +0 -2
- package/dist/chunk-B6MJ5VQV.js +0 -2
- package/dist/chunk-BFXPG2VN.js +0 -2
- package/dist/chunk-BSN22NRK.js +0 -9
- package/dist/chunk-BZ53S4ZN.js +0 -2
- package/dist/chunk-C5CTSJ6X.js +0 -6
- package/dist/chunk-CO5GJRP7.js +0 -2
- package/dist/chunk-CW5YFOCP.js +0 -5
- package/dist/chunk-DS6QEB3G.js +0 -5
- package/dist/chunk-E35O7UCB.js +0 -2
- package/dist/chunk-EXDQ35NN.js +0 -2
- package/dist/chunk-FAYI6KZ5.js +0 -2
- package/dist/chunk-FFVIFETB.js +0 -2
- package/dist/chunk-FG4NT6VY.js +0 -2
- package/dist/chunk-FXNWFMKW.js +0 -25
- package/dist/chunk-G5UPYQGL.js +0 -4
- package/dist/chunk-GQBMH2TQ.js +0 -2
- package/dist/chunk-GRJY65YT.js +0 -2
- package/dist/chunk-HF25DFSC.js +0 -3
- package/dist/chunk-HHN2B5KA.js +0 -2
- package/dist/chunk-IHUETYFW.js +0 -2
- package/dist/chunk-JCLDUKT6.js +0 -38
- package/dist/chunk-JGN2ZFJR.js +0 -2
- package/dist/chunk-JM72FNGA.js +0 -2
- package/dist/chunk-JME7OWD3.js +0 -2
- package/dist/chunk-KDFONWTW.js +0 -40
- package/dist/chunk-LPL4MA6R.js +0 -2
- package/dist/chunk-LZHUWKGD.js +0 -2
- package/dist/chunk-M4COR2H6.js +0 -2
- package/dist/chunk-NOJAM5ZV.js +0 -21
- package/dist/chunk-O6ZH6C6Y.js +0 -2
- package/dist/chunk-OBGRLXWF.js +0 -3
- package/dist/chunk-OLTESY4K.js +0 -3
- package/dist/chunk-ONPCQ2PM.js +0 -6
- package/dist/chunk-P4KYUPBD.js +0 -4
- package/dist/chunk-P5RYBRIO.js +0 -4
- package/dist/chunk-P7AL7Y37.js +0 -2
- package/dist/chunk-PFOCOG57.js +0 -2
- package/dist/chunk-QLAUCRDJ.js +0 -2
- package/dist/chunk-QPU7EXAW.js +0 -2
- package/dist/chunk-QYB5P7GL.js +0 -2
- package/dist/chunk-RNM6LMCF.js +0 -2
- package/dist/chunk-RVWSAMTT.js +0 -2
- package/dist/chunk-TK7O5ER5.js +0 -3
- package/dist/chunk-TQ5W2H3S.js +0 -4
- package/dist/chunk-USPV3T5K.js +0 -2
- package/dist/chunk-UUBMFL3F.js +0 -59
- package/dist/chunk-VCQYSG2M.js +0 -10
- package/dist/chunk-VUKC6F77.js +0 -20
- package/dist/chunk-W2CBNBEL.js +0 -71
- package/dist/chunk-W6BVEKYC.js +0 -3
- package/dist/chunk-WUCEKFQC.js +0 -3
- package/dist/chunk-XUGQU7PM.js +0 -41
- package/dist/chunk-Y5NBHMQX.js +0 -2
- package/dist/chunk-YCOFCT4B.js +0 -2
- package/dist/chunk-YZA6PPZL.js +0 -3
- package/skills/concrete-plan/SKILL.md +0 -372
- package/skills/concrete-plan/agents/openai.yaml +0 -4
- package/skills/scip-adoption/SKILL.md +0 -122
- package/skills/scip-adoption/agents/openai.yaml +0 -4
- package/skills/scip-ai-cleanup/SKILL.md +0 -153
- package/skills/scip-ai-cleanup/agents/openai.yaml +0 -4
- package/skills/scip-debloat/SKILL.md +0 -439
- package/skills/scip-debloat/agents/openai.yaml +0 -4
- package/skills/scip-health-audit/SKILL.md +0 -162
- package/skills/scip-health-audit/agents/openai.yaml +0 -4
- package/skills/scip-health-improve/SKILL.md +0 -155
- package/skills/scip-health-improve/agents/openai.yaml +0 -4
- package/skills/scip-query-setup/SKILL.md +0 -170
- package/skills/scip-query-setup/agents/openai.yaml +0 -3
- package/vendor/scip/README.md +0 -6
- package/vendor/scip/win32-arm64/scip.exe +0 -0
- package/vendor/scip/win32-x64/scip.exe +0 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scip-concrete-plan
|
|
3
|
+
description: Plan code changes with scip-query evidence and testable design. Use for non-trivial implementation, refactor, migration, API, or bug-fix plans before editing code; require source citations, reuse audit, test seams, side-effect boundaries, contracts, and verification.
|
|
4
|
+
commands:
|
|
5
|
+
- template: "scip-query status --capabilities"
|
|
6
|
+
when: "Discover: confirm the index is fresh before citing graph facts."
|
|
7
|
+
- template: "scip-query plan-context <target>"
|
|
8
|
+
when: "Discover: anchor the plan with pre-edit context for the target."
|
|
9
|
+
- template: "scip-query refs <symbol>"
|
|
10
|
+
when: "Reuse audit: find existing consumers before proposing a new unit."
|
|
11
|
+
- template: "scip-query code <symbol>"
|
|
12
|
+
when: "Reuse audit: read source before citing a behavior claim."
|
|
13
|
+
- template: "scip-query trace <symbol>"
|
|
14
|
+
when: "Verify the plan: rerun source-producing context for cited targets."
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Concrete Plan
|
|
18
|
+
|
|
19
|
+
Use this skill to write an implementation plan that another agent can execute without guessing. A concrete plan is a dated Markdown checklist whose code claims come from scip-query evidence and whose design makes the intended behavior easy to test before it is easy to ship.
|
|
20
|
+
|
|
21
|
+
Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md) when you need lookup tips, command families, postchecks, or subagent rules.
|
|
22
|
+
|
|
23
|
+
<!-- BEGIN GENERATED SKILL COMMANDS -->
|
|
24
|
+
## Commands for this skill
|
|
25
|
+
|
|
26
|
+
| Command | Purpose | When |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| `scip-query status --capabilities` | Show index status for this project | Discover: confirm the index is fresh before citing graph facts. |
|
|
29
|
+
| `scip-query plan-context <target>` | Pre-edit planning context for a symbol, file, or module | Discover: anchor the plan with pre-edit context for the target. |
|
|
30
|
+
| `scip-query refs <symbol>` | Find all files referencing a symbol | Reuse audit: find existing consumers before proposing a new unit. |
|
|
31
|
+
| `scip-query code <symbol>` | Read the source code for a symbol (bounded to its definition range) | Reuse audit: read source before citing a behavior claim. |
|
|
32
|
+
| `scip-query trace <symbol>` | Trace a symbol: definition + all references | Verify the plan: rerun source-producing context for cited targets. |
|
|
33
|
+
|
|
34
|
+
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
35
|
+
<!-- END GENERATED SKILL COMMANDS -->
|
|
36
|
+
|
|
37
|
+
## Rules
|
|
38
|
+
|
|
39
|
+
1. Start with `scip-query status --capabilities`; reindex only when freshness is `stale`, `missing`, or `unknown`.
|
|
40
|
+
2. Anchor the plan with `scip-query plan-context <target>`. If the target is not indexed, record that fact and use scip-query for every code-adjacent claim it can answer.
|
|
41
|
+
3. Put the plan in `docs/plans/YYYY-MM-DD-<short-name>.md`.
|
|
42
|
+
4. Every code step includes a `Source` field naming the scip-query command that produced the path, line range, and behavior claim.
|
|
43
|
+
5. Every behavior-changing step includes a testability design: test seam, injected dependencies, pure core, side-effect boundary, and validation.
|
|
44
|
+
6. Do not propose a new helper, wrapper, type, parameter, config flag, component, hook, or module until the reuse audit proves reuse or extension is not the better move.
|
|
45
|
+
|
|
46
|
+
## Planning Terms
|
|
47
|
+
|
|
48
|
+
A reuse audit is the part of a plan that proves a proposed new symbol, file, option, wrapper, or contract is needed; what makes it useful is that it ties the new shape to existing definitions, consumers, and rejected extension points.
|
|
49
|
+
|
|
50
|
+
A test seam is the entry point a test can call to prove a behavior without replaying the whole product path; what makes it valuable in a plan is that it names the exact unit or boundary where correctness will be observed.
|
|
51
|
+
|
|
52
|
+
A side-effect boundary is the edge where deterministic program decisions meet files, processes, clocks, networks, databases, or other external capabilities; what makes it important is that failures and fakes can be isolated there while core decisions stay easy to test.
|
|
53
|
+
|
|
54
|
+
A contract is the stable promise one code unit exposes to another, including accepted inputs, returned outputs, errors, timing expectations, and side effects that callers may rely on.
|
|
55
|
+
|
|
56
|
+
## Workflow
|
|
57
|
+
|
|
58
|
+
### 1. Discover
|
|
59
|
+
|
|
60
|
+
Run:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
scip-query status --capabilities
|
|
64
|
+
scip-query plan-context <target>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Use the shared reference for follow-up commands. Fill three gates before designing:
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
## Goal
|
|
71
|
+
What the user is trying to accomplish and what done looks like for them.
|
|
72
|
+
|
|
73
|
+
## Current State
|
|
74
|
+
The affected end-to-end flow, with scip-query citations for entry points, callers, data flow, dependencies, downstream impact, and non-obvious invariants.
|
|
75
|
+
|
|
76
|
+
## Reuse Audit
|
|
77
|
+
For every new symbol or file being considered: reuse target, extension target, or evidence-backed reason new code is justified.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
This step is complete only when the plan can explain the current flow, its consumers, and every proposed new unit's reuse decision with citations.
|
|
81
|
+
|
|
82
|
+
### 2. Shape for Tests
|
|
83
|
+
|
|
84
|
+
Before writing implementation phases, add:
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
## Testability Design
|
|
88
|
+
|
|
89
|
+
| Behavior | Test seam | Dependencies to inject | Pure core | Side-effect shell | Contract |
|
|
90
|
+
| --- | --- | --- | --- | --- | --- |
|
|
91
|
+
| <behavior> | <test entry point> | <clock/db/http/logger/etc.> | <calculation/decision function> | <I/O wrapper> | <small interface or call shape> |
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Plan the code so tests can call the pure core directly and exercise the side-effect shell with injected replacements. Prefer this shape:
|
|
95
|
+
|
|
96
|
+
1. Parse and validate at the boundary.
|
|
97
|
+
2. Pass domain data and injected dependencies into a small orchestrator.
|
|
98
|
+
3. Put calculations, filtering, selection, formatting decisions, and state transitions in pure functions.
|
|
99
|
+
4. Keep database, network, filesystem, clock, randomness, logging, email, and payment calls in thin side-effect shells.
|
|
100
|
+
5. Depend on small contracts at boundaries; avoid broad option objects, booleans that hide behavior, and wrappers that merely forward.
|
|
101
|
+
|
|
102
|
+
This step is complete only when every changed behavior has a named test seam and the plan makes clear which logic can be tested without real external services.
|
|
103
|
+
|
|
104
|
+
### 3. Design the Checklist
|
|
105
|
+
|
|
106
|
+
Write phases in execution order. Keep each phase deployable or explicitly mark why it is not. Use this step format:
|
|
107
|
+
|
|
108
|
+
```markdown
|
|
109
|
+
### N.M - Imperative title
|
|
110
|
+
|
|
111
|
+
- [ ] **File**: `path/to/file.ts:LINE-LINE`
|
|
112
|
+
- **Source**: `scip-query <command>`
|
|
113
|
+
- **What**: Current behavior verified from source.
|
|
114
|
+
- **Change**: Exact edit to make.
|
|
115
|
+
- **Testability**:
|
|
116
|
+
- Test seam:
|
|
117
|
+
- Injected dependencies:
|
|
118
|
+
- Pure core:
|
|
119
|
+
- Side-effect shell:
|
|
120
|
+
- Contract:
|
|
121
|
+
- **Validation**: Targeted test, smoke command, or manual check that proves the behavior.
|
|
122
|
+
- **Why**: Why this step is needed and why this order is safe.
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
This step is complete only when no checklist item says "update this file" without exact current behavior, target behavior, and validation.
|
|
126
|
+
|
|
127
|
+
### 4. Stress-Test
|
|
128
|
+
|
|
129
|
+
Apply these lenses to every phase. Add or change steps until each answer is concrete:
|
|
130
|
+
|
|
131
|
+
| Lens | Plan must answer |
|
|
132
|
+
| --- | --- |
|
|
133
|
+
| Purpose | Why does the current code exist, and what invariant must survive? |
|
|
134
|
+
| Blast radius | Which direct and transitive consumers move with this change? |
|
|
135
|
+
| Valid intermediate state | Would the project still work after only this phase? |
|
|
136
|
+
| Reversibility | Is this a one-way or two-way door, and what rollback exists? |
|
|
137
|
+
| Failure | What happens when I/O, external APIs, malformed data, retries, or crashes occur? |
|
|
138
|
+
| Concurrency | What shared state can be touched twice or out of order? |
|
|
139
|
+
| Boundaries | Who can call this entry point, and where is input validated? |
|
|
140
|
+
| Data integrity | What existing data, generated artifacts, or persisted contracts are affected? |
|
|
141
|
+
| Observability | Can a maintainer diagnose failures from logs/errors without rereading the source? |
|
|
142
|
+
| Human experience | What would surprise, confuse, or block a real user? |
|
|
143
|
+
| Reuse | Does existing code already solve this problem or most of it? |
|
|
144
|
+
| Testability | Are dependencies injectable, logic pure where practical, concerns separated, and contracts small? |
|
|
145
|
+
|
|
146
|
+
This step is complete only when every discovered gap has either a new plan step or a written reason it is accepted.
|
|
147
|
+
|
|
148
|
+
### 5. Verify the Plan
|
|
149
|
+
|
|
150
|
+
Run or delegate phase-by-phase reference checks. Each verifier confirms:
|
|
151
|
+
|
|
152
|
+
- every path exists;
|
|
153
|
+
- every line range is still within about five lines;
|
|
154
|
+
- every behavior claim matches source;
|
|
155
|
+
- every new unit has reuse evidence;
|
|
156
|
+
- every behavior-changing step has a validation command and testability design.
|
|
157
|
+
|
|
158
|
+
Then rerun the source-producing context for the cited targets:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
scip-query plan-context <target>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Use the shared reference for subagent briefing text when delegating.
|
|
165
|
+
|
|
166
|
+
This step is complete only when stale references are fixed and every phase has a validation path.
|
|
167
|
+
|
|
168
|
+
## Output Shape
|
|
169
|
+
|
|
170
|
+
The plan file contains:
|
|
171
|
+
|
|
172
|
+
1. Title and date.
|
|
173
|
+
2. Goal.
|
|
174
|
+
3. Current State.
|
|
175
|
+
4. Reuse Audit.
|
|
176
|
+
5. Testability Design.
|
|
177
|
+
6. Design Phases.
|
|
178
|
+
7. Stress-Test Findings.
|
|
179
|
+
8. Execution Order and deployable phase notes.
|
|
180
|
+
9. Ship Order with one-way doors flagged.
|
|
181
|
+
10. Summary of files to create, edit, delete, and verify.
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scip-conductor
|
|
3
|
+
description: Plan and conduct multi-step engineering programs like a skeptical principal engineer. Use for writing executable multi-phase plans, delegating implementation, reviewing another agent's work, or carrying a large change end to end with verification at every handoff.
|
|
4
|
+
commands:
|
|
5
|
+
- template: "scip-query plan-context <target>"
|
|
6
|
+
when: "Anchor each phase's step before delegating it."
|
|
7
|
+
- template: "scip-query diff-gate --json"
|
|
8
|
+
when: "Verify a handoff before accepting it and before closing the program."
|
|
9
|
+
- template: "scip-query health --json"
|
|
10
|
+
when: "Pre-register or check a program-level health benchmark."
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# scip-conductor
|
|
14
|
+
|
|
15
|
+
This skill is how to run a *program* of work — planning, delegation, review,
|
|
16
|
+
and closure — not how to write one change plan (use a dedicated planning
|
|
17
|
+
skill such as `scip-concrete-plan` for individual changes when one is available).
|
|
18
|
+
|
|
19
|
+
Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
|
|
20
|
+
|
|
21
|
+
<!-- BEGIN GENERATED SKILL COMMANDS -->
|
|
22
|
+
## Commands for this skill
|
|
23
|
+
|
|
24
|
+
| Command | Purpose | When |
|
|
25
|
+
| --- | --- | --- |
|
|
26
|
+
| `scip-query plan-context <target>` | Pre-edit planning context for a symbol, file, or module | Anchor each phase's step before delegating it. |
|
|
27
|
+
| `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 | Verify a handoff before accepting it and before closing the program. |
|
|
28
|
+
| `scip-query health --json` | Composite codebase health report with prioritized action list | Pre-register or check a program-level health benchmark. |
|
|
29
|
+
|
|
30
|
+
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
31
|
+
<!-- END GENERATED SKILL COMMANDS -->
|
|
32
|
+
|
|
33
|
+
## The Three Laws
|
|
34
|
+
|
|
35
|
+
1. **A green result you have never seen fail is unverified.** Applies to
|
|
36
|
+
tests, gates, reports from other agents, and your own checks. (Where
|
|
37
|
+
available, `scip-integrity-audit` is the same law aimed at code.)
|
|
38
|
+
2. **A plan is a contract for a less-capable executor, not a note to self.**
|
|
39
|
+
If a competent-but-uninspired agent could not execute a step without
|
|
40
|
+
guessing, the step is not finished being written.
|
|
41
|
+
3. **Nothing is silent.** Every finding, deviation, and shortcut is either
|
|
42
|
+
fixed or written down with a reason someone else would accept. 0%
|
|
43
|
+
silent is the invariant; "fixed everything" is not.
|
|
44
|
+
|
|
45
|
+
## Writing the Plan
|
|
46
|
+
|
|
47
|
+
- **Goal states what DONE MEANS falsifiably** — a command someone can run
|
|
48
|
+
and a result they can check, not an aspiration.
|
|
49
|
+
- **Pre-register acceptance benchmarks.** Before any work: measure the
|
|
50
|
+
current number (test count, timing, finding count, proof line), write it
|
|
51
|
+
in the plan, and state the target number. Work that cannot move a
|
|
52
|
+
pre-registered number is scope to question.
|
|
53
|
+
- **Every step carries five fields**: file anchor with verified current
|
|
54
|
+
behavior (cite how you know); the exact change; the validation command
|
|
55
|
+
with expected output; testability design (pure core, injected effects);
|
|
56
|
+
why this step is safe *in this order*. "Update X" with no current/target
|
|
57
|
+
behavior is a wish, not a step.
|
|
58
|
+
- **Order phases by information gain and risk**: blockers and
|
|
59
|
+
evidence-integrity first; cheap discriminating probes before expensive
|
|
60
|
+
builds; measurement before optimization; anything not yet decided by the
|
|
61
|
+
human is a GATED phase the executor must not start. Infrastructure the
|
|
62
|
+
later steps inherit (a labeling choke point, a shared helper layer)
|
|
63
|
+
lands before the features that need it.
|
|
64
|
+
- **Flag one-way doors** with their migration path, and keep an explicit
|
|
65
|
+
DEFER list so cut scope is visible instead of forgotten.
|
|
66
|
+
- **Include the working agreement**: ONE COMMIT PER STEP (bisectability is
|
|
67
|
+
non-negotiable; phase-level commits hide which step broke), the exact
|
|
68
|
+
gate commands — the FULL gate set the repo defines per phase: tests,
|
|
69
|
+
typecheck, lint/format, and build, not just focused tests (focused tests
|
|
70
|
+
hide cross-phase regressions; omitting the linter is how red mains ship),
|
|
71
|
+
regeneration duties,
|
|
72
|
+
and the deviation protocol —
|
|
73
|
+
"if source contradicts an anchor, BLOCKED-note it and continue; never
|
|
74
|
+
improvise silently."
|
|
75
|
+
|
|
76
|
+
## Conducting the Work
|
|
77
|
+
|
|
78
|
+
- **Delegate breadth, keep judgment.** Fan out mechanical/scoped work;
|
|
79
|
+
personally own anything requiring taste, cross-cutting context, or the
|
|
80
|
+
final word on "is this real."
|
|
81
|
+
- **Concurrent agents get disjoint write scopes**, named in their briefs.
|
|
82
|
+
If a collision happens anyway: stop racing, apply-verify-commit
|
|
83
|
+
atomically in one action, and re-sequence to a single writer.
|
|
84
|
+
- **Never accept a report — reproduce its evidence.** On every handoff,
|
|
85
|
+
choose the *minimal discriminating probe*: the one command most likely to
|
|
86
|
+
expose the report being wrong (a mutation input, a hand count, the
|
|
87
|
+
benchmark number), and run it yourself. A report verified by reading it
|
|
88
|
+
is not verified.
|
|
89
|
+
- **Loop until the gate is quiet**: fix → re-run the discriminating probe →
|
|
90
|
+
re-run the gate → only then move on. After the program: fold what was
|
|
91
|
+
learned back into the durable layer (docs, skills, followups) — insight
|
|
92
|
+
that lives only in the conversation is lost.
|
|
93
|
+
- **Escalate only genuine decision points** — one-way doors, scope changes,
|
|
94
|
+
taste, spending. Everything else: decide, act, disclose.
|
|
95
|
+
|
|
96
|
+
## Scar Rules (each bought with a real failure)
|
|
97
|
+
|
|
98
|
+
- **Verify your verifier.** A gate check that cannot fail is no gate: a
|
|
99
|
+
lint grep that only matches one linter's output, a diff-gate run on a
|
|
100
|
+
clean tree, a test suite that skips the new path. Prove the check catches
|
|
101
|
+
a planted failure once before trusting its green.
|
|
102
|
+
- **Never `git checkout`/`restore`/`stash` on a tree with uncommitted
|
|
103
|
+
work** — yours or anyone's. Revert probe edits by targeted deletion.
|
|
104
|
+
If source is lost, check `dist/*.map` sourcesContent before panicking.
|
|
105
|
+
- **Commit working states early and surgically** (explicit paths, never
|
|
106
|
+
`add -A` on a shared tree); an unbisectable pile of work is a liability.
|
|
107
|
+
- **Make the commit cadence mechanical, not aspirational.** At every step
|
|
108
|
+
boundary run the arithmetic check: steps completed == commits made. If
|
|
109
|
+
they differ, stop and commit before touching anything new. "I'll commit
|
|
110
|
+
when it's all done" is the signature decay of a long or low-effort run —
|
|
111
|
+
two real executions finished an entire plan with zero or one commit, and
|
|
112
|
+
both times the deviation was rationalized mid-run, not decided. A
|
|
113
|
+
self-check that is a count cannot be rationalized.
|
|
114
|
+
- **Watch for your own gate holes**: after any "all green," ask what that
|
|
115
|
+
check does NOT cover (eslint vs prettier; unit vs integration; clean-tree
|
|
116
|
+
vacuity).
|
|
117
|
+
|
|
118
|
+
## Self-Report (required output)
|
|
119
|
+
|
|
120
|
+
End every conducted program — and every plan written under this skill —
|
|
121
|
+
with a checklist mapping each section above to concrete evidence:
|
|
122
|
+
the pre-registered benchmarks and their before/after values; each handoff's
|
|
123
|
+
discriminating probe and its OBSERVED result (a probe listed but not run
|
|
124
|
+
counts as not run); the deviation ledger; the DEFER list;
|
|
125
|
+
which learnings were folded back and where. A reviewer must be able to
|
|
126
|
+
audit the *conduct*, not just the artifact.
|
|
127
|
+
|
|
128
|
+
## Completion
|
|
129
|
+
|
|
130
|
+
The program is complete only when: every pre-registered benchmark met or
|
|
131
|
+
its miss explained; every handoff probe run and recorded; the gate quiet on
|
|
132
|
+
the final state; nothing silent — every finding fixed or ledgered; and the
|
|
133
|
+
self-report written.
|
|
@@ -1,49 +1,73 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: scip-debug
|
|
3
|
-
description:
|
|
3
|
+
description: Debug bugs and regressions with scip-query evidence. Use for failing behavior, wrong data flow, confusing runtime paths, broken tests, root-cause analysis, reproduction, tracing, or minimal fixes.
|
|
4
|
+
commands:
|
|
5
|
+
- template: "scip-query files <feature-or-error-term>"
|
|
6
|
+
when: "Find the entry point from a feature name or error term."
|
|
7
|
+
- template: "scip-query trace <candidate-symbol>"
|
|
8
|
+
when: "Find the entry point: definition plus every reference."
|
|
9
|
+
- template: "scip-query call-graph <entry-symbol>"
|
|
10
|
+
when: "Follow execution: callers and callees along the failing path."
|
|
11
|
+
- template: "scip-query dataflow <symbol-or-variable>"
|
|
12
|
+
when: "Follow data: producers, consumers, and usage sites."
|
|
13
|
+
- template: "scip-query similar <suspect-symbol> --json --full"
|
|
14
|
+
when: "Compare nearby implementations for missing guards or handling."
|
|
15
|
+
- template: "scip-query change-surface <suspect-file> --json --full"
|
|
16
|
+
when: "Bound the fix: exports, consumers, and blast-radius risk."
|
|
4
17
|
---
|
|
5
18
|
|
|
6
|
-
#
|
|
19
|
+
# scip-debug
|
|
7
20
|
|
|
8
|
-
Use this skill to move from a reported failure to a minimal verified fix. A bug is a mismatch between expected behavior and observed behavior in a concrete execution path. A root cause is the earliest code fact in that path that explains the mismatch
|
|
21
|
+
Use this skill to move from a reported failure to a minimal verified fix. A bug is a mismatch between expected behavior and observed behavior in a concrete execution path. A root cause is the earliest code fact in that path that explains the mismatch.
|
|
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 files <feature-or-error-term>` | Find files matching a pattern | Find the entry point from a feature name or error term. |
|
|
31
|
+
| `scip-query trace <candidate-symbol>` | Trace a symbol: definition + all references | Find the entry point: definition plus every reference. |
|
|
32
|
+
| `scip-query call-graph <entry-symbol>` | Show incoming callers and outgoing callees for a symbol | Follow execution: callers and callees along the failing path. |
|
|
33
|
+
| `scip-query dataflow <symbol-or-variable>` | Reference-level dataflow: definition sites, usage sites, producers, consumers | Follow data: producers, consumers, and usage sites. |
|
|
34
|
+
| `scip-query similar <suspect-symbol> --json --full` | Find heuristic function similarity candidates from callee fingerprints | Compare nearby implementations for missing guards or handling. |
|
|
35
|
+
| `scip-query change-surface <suspect-file> --json --full` | Pre-change briefing: exports, consumers, and blast-radius risk | Bound the fix: exports, consumers, and blast-radius risk. |
|
|
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. Reproduce or restate the failure before
|
|
13
|
-
2. Use scip-query to
|
|
14
|
-
3. Prefer one narrow fix over broad cleanup.
|
|
15
|
-
4. Verify
|
|
42
|
+
1. Reproduce or restate the failure before editing.
|
|
43
|
+
2. Use scip-query to find entry points, call paths, data flow, and blast radius.
|
|
44
|
+
3. Prefer one narrow fix over broad cleanup.
|
|
45
|
+
4. Verify with the narrowest repo test or smoke command, then invoke `scip-verify`.
|
|
16
46
|
|
|
17
47
|
## Workflow
|
|
18
48
|
|
|
19
49
|
### 1. Pin the failure
|
|
20
50
|
|
|
21
|
-
Record
|
|
51
|
+
Record observed behavior, expected behavior, reproducing command/route/UI action/test/job/file, error text or wrong output, and regression window if known.
|
|
22
52
|
|
|
23
|
-
|
|
24
|
-
- expected behavior;
|
|
25
|
-
- command, route, UI action, test, job, or file that exposes it;
|
|
26
|
-
- error text or wrong output;
|
|
27
|
-
- suspected time window if it is a regression.
|
|
53
|
+
If no reproduction is provided, build the smallest runnable reproduction from existing tests, scripts, CLI, or app entry points.
|
|
28
54
|
|
|
29
|
-
|
|
55
|
+
This step is complete only when the mismatch is concrete enough to test or the missing external fact is named.
|
|
30
56
|
|
|
31
57
|
### 2. Find the entry point
|
|
32
58
|
|
|
33
59
|
```bash
|
|
34
|
-
scip-query status --capabilities
|
|
35
|
-
scip-query status --capabilities
|
|
36
|
-
# If freshness is stale, missing, or unknown:
|
|
37
|
-
# scip-query reindex
|
|
38
60
|
scip-query files <feature-or-error-term>
|
|
39
61
|
scip-query outline <candidate-file>
|
|
40
62
|
scip-query trace <candidate-symbol>
|
|
41
63
|
scip-query code <candidate-symbol>
|
|
42
64
|
```
|
|
43
65
|
|
|
44
|
-
Use `
|
|
66
|
+
Use `kind-counts` or `by-kind` when the codebase is unfamiliar.
|
|
67
|
+
|
|
68
|
+
This step is complete only when the failing path has a plausible entry point with source evidence.
|
|
45
69
|
|
|
46
|
-
### 3. Follow execution
|
|
70
|
+
### 3. Follow execution and data
|
|
47
71
|
|
|
48
72
|
```bash
|
|
49
73
|
scip-query call-graph <entry-symbol>
|
|
@@ -51,73 +75,51 @@ scip-query code <callee-symbol>
|
|
|
51
75
|
scip-query refs <state-or-api-symbol>
|
|
52
76
|
scip-query fan-in <suspect-symbol>
|
|
53
77
|
scip-query fan-out <suspect-file>
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
Build the smallest path that explains the observed behavior. Stop expanding once the path reaches the first code fact that can cause the symptom.
|
|
57
|
-
|
|
58
|
-
### 4. Follow data and state
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
78
|
scip-query dataflow <symbol-or-variable>
|
|
62
79
|
scip-query slice <symbol-or-variable>
|
|
63
80
|
scip-query slice <symbol-or-variable> --forward
|
|
64
81
|
```
|
|
65
82
|
|
|
66
|
-
|
|
83
|
+
Stop expanding when the first code fact that can cause the symptom is found.
|
|
67
84
|
|
|
68
|
-
|
|
85
|
+
This step is complete only when the path explains the symptom or the missing evidence is explicit.
|
|
86
|
+
|
|
87
|
+
### 4. Compare nearby implementations
|
|
69
88
|
|
|
70
89
|
```bash
|
|
71
90
|
scip-query similar <suspect-symbol> --json --full
|
|
72
|
-
scip-query
|
|
91
|
+
scip-query similar <suspect-symbol> <similar-symbol> --plan
|
|
73
92
|
scip-query similar-files <suspect-file> --json --full
|
|
74
93
|
```
|
|
75
94
|
|
|
76
|
-
|
|
95
|
+
Use comparisons to find missing guards, conversions, lifecycle steps, or error handling. Preserve essential differences.
|
|
96
|
+
|
|
97
|
+
This step is complete only when comparisons either support the fix or are rejected with a reason.
|
|
77
98
|
|
|
78
|
-
###
|
|
99
|
+
### 5. Bound and fix
|
|
79
100
|
|
|
80
101
|
```bash
|
|
81
102
|
scip-query change-surface <suspect-file> --json --full
|
|
82
103
|
scip-query affected <suspect-symbol> --json
|
|
83
|
-
scip-query diff-impact --json
|
|
84
104
|
```
|
|
85
105
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
### 7. Fix and verify
|
|
106
|
+
Make the smallest code change that fixes the root cause.
|
|
89
107
|
|
|
90
|
-
|
|
108
|
+
This step is complete only when the changed symbol/file is justified by blast-radius evidence.
|
|
91
109
|
|
|
92
|
-
|
|
93
|
-
scip-query status --capabilities
|
|
94
|
-
# If freshness is stale, missing, or unknown:
|
|
95
|
-
# scip-query reindex
|
|
96
|
-
scip-query diff-gate --json
|
|
97
|
-
```
|
|
110
|
+
### 6. Verify
|
|
98
111
|
|
|
99
|
-
|
|
112
|
+
Run the reproduction, narrow test or smoke command, and invoke `scip-verify`.
|
|
100
113
|
|
|
101
|
-
## Report
|
|
114
|
+
## Report
|
|
102
115
|
|
|
103
116
|
```markdown
|
|
104
|
-
Bug:
|
|
105
|
-
|
|
117
|
+
Bug:
|
|
106
118
|
Entry point:
|
|
107
|
-
- <file/symbol> from <command>
|
|
108
|
-
|
|
109
119
|
Root cause:
|
|
110
|
-
- <code fact> from <command>
|
|
111
|
-
|
|
112
120
|
Fix:
|
|
113
|
-
- <minimal change>
|
|
114
|
-
|
|
115
121
|
Verification:
|
|
116
|
-
- <repo test or smoke command>
|
|
117
|
-
- `scip-query diff-gate --json`
|
|
118
|
-
|
|
119
122
|
Remaining risk:
|
|
120
|
-
- <blast radius, unavailable capability, or follow-up cleanup>
|
|
121
123
|
```
|
|
122
124
|
|
|
123
|
-
|
|
125
|
+
Do not present a guess as a root cause. If no root cause is proven, report the missing evidence.
|