scip-query 0.19.5 → 0.19.8
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 +85 -1
- package/README.md +259 -53
- package/dist/augment-vue-worker.js +1 -1
- package/dist/chunk-2465DLHK.js +3 -0
- package/dist/{chunk-7GXM52MI.js → chunk-24GTWJ3N.js} +2 -2
- package/dist/{chunk-NH5ALKPW.js → chunk-2SNGN6U4.js} +2 -2
- package/dist/{chunk-3SVWW4PN.js → chunk-2U3OLUNJ.js} +2 -2
- package/dist/{chunk-XLTP42QA.js → chunk-33KUO7CG.js} +2 -2
- package/dist/{chunk-54HA4ZXH.js → chunk-33XTHFKR.js} +2 -2
- package/dist/{chunk-ZGZUZ7XE.js → chunk-3EDFLQ6A.js} +2 -2
- package/dist/chunk-3ZSJ3PWF.js +16 -0
- package/dist/{chunk-F6O7AAC3.js → chunk-43KC6EQZ.js} +2 -2
- package/dist/{chunk-I5RJM53C.js → chunk-464PLI5O.js} +2 -2
- package/dist/chunk-46XGSFNI.js +2 -0
- package/dist/{chunk-M7AIS73L.js → chunk-47BU5Z4T.js} +2 -2
- package/dist/chunk-4BV4QAZJ.js +5 -0
- package/dist/chunk-4YTUWQ6M.js +18 -0
- package/dist/{chunk-RV2FQIX3.js → chunk-5ML2BNRH.js} +2 -2
- package/dist/{chunk-6NSFJYRC.js → chunk-5YLUDDAF.js} +2 -2
- package/dist/chunk-67QRR5YC.js +6 -0
- package/dist/{chunk-GPBBJ5Y4.js → chunk-6GXYN7YA.js} +3 -3
- package/dist/{chunk-4333ETTV.js → chunk-6M7RONVB.js} +2 -2
- package/dist/chunk-6YTSKJJ3.js +2 -0
- package/dist/{chunk-QDV6RDCP.js → chunk-7FT5Y65S.js} +2 -2
- package/dist/{chunk-XTX6QHOF.js → chunk-7KYNAMMH.js} +2 -2
- package/dist/{chunk-DZ74OMG6.js → chunk-7LSVMFX7.js} +2 -2
- package/dist/{chunk-VTKGCT3V.js → chunk-7QHY3H7P.js} +2 -2
- package/dist/{chunk-MITTUCEH.js → chunk-7RAG65VK.js} +2 -2
- package/dist/{chunk-25LPM4DG.js → chunk-7SWJEWJF.js} +2 -2
- package/dist/{chunk-52ZYCAEO.js → chunk-7VCOXZH3.js} +2 -2
- package/dist/chunk-A2TNXAXO.js +8 -0
- package/dist/{chunk-IUFDSKGG.js → chunk-A3QXWFBK.js} +2 -2
- package/dist/{chunk-4T3LTWUS.js → chunk-AA4UWRNL.js} +2 -2
- package/dist/{chunk-4SALD7RU.js → chunk-ACAM6O5R.js} +2 -2
- package/dist/chunk-APMMR5Y2.js +2 -0
- package/dist/chunk-AQOFWNQJ.js +1 -0
- package/dist/chunk-AZFUMCQB.js +2 -0
- package/dist/{chunk-M7MTH5NR.js → chunk-BDOIKGDI.js} +2 -2
- package/dist/{chunk-BTEE5NZQ.js → chunk-BNXICU42.js} +2 -2
- package/dist/chunk-C5Q44Q5D.js +3 -0
- package/dist/{chunk-EOOJGLDU.js → chunk-CTF2GDEX.js} +2 -2
- package/dist/chunk-DHEQMPLW.js +2 -0
- package/dist/{chunk-IZKFSVBV.js → chunk-DQBCO2UY.js} +2 -2
- package/dist/{chunk-7B3UPBVA.js → chunk-DQGSM7RZ.js} +2 -2
- package/dist/chunk-E2LAW7SL.js +30 -0
- package/dist/chunk-E3HYEQO7.js +2 -0
- package/dist/chunk-E4NFOAD4.js +6 -0
- package/dist/chunk-E5HNT4X2.js +3 -0
- package/dist/{chunk-J77UIT3I.js → chunk-ELLMY7XJ.js} +2 -2
- package/dist/chunk-FD3HFKXR.js +5 -0
- package/dist/{chunk-SOAT6NLA.js → chunk-FIJCV235.js} +2 -2
- package/dist/{chunk-H7UKLTWJ.js → chunk-FJ5UDTQF.js} +2 -2
- package/dist/{chunk-HEXVUYFQ.js → chunk-GHKEJTCE.js} +2 -2
- package/dist/{chunk-LBMJEAEW.js → chunk-GLZTVKAB.js} +3 -3
- package/dist/{chunk-FWUUZTIO.js → chunk-GNC4JVAN.js} +2 -2
- package/dist/chunk-HIB452NU.js +949 -0
- package/dist/{chunk-NRCXJDHL.js → chunk-HZYDQPNY.js} +2 -2
- package/dist/chunk-IF6FP6B2.js +66 -0
- package/dist/{chunk-4RSI5EMG.js → chunk-JAY7YWS3.js} +2 -2
- package/dist/{chunk-STOL2BTL.js → chunk-JHF3E4YM.js} +2 -2
- package/dist/chunk-JORHF5AL.js +108 -0
- package/dist/{chunk-A2EZV2UM.js → chunk-K2WO7XY7.js} +2 -2
- package/dist/chunk-KFZNKUNT.js +2 -0
- package/dist/{chunk-YVVCVR2L.js → chunk-KJ2IIBZN.js} +2 -2
- package/dist/{chunk-QGXBRIM5.js → chunk-KKME5ZAI.js} +2 -2
- package/dist/chunk-KSGTULOS.js +9 -0
- package/dist/{chunk-UOAV44HR.js → chunk-KXDJAG4N.js} +3 -3
- package/dist/{chunk-UKZBVX4U.js → chunk-L4S2A7BV.js} +2 -2
- package/dist/chunk-LP3ARJKF.js +8 -0
- package/dist/chunk-LSOR3LQG.js +3 -0
- package/dist/{chunk-Q4IIEGXJ.js → chunk-MLFZP76A.js} +2 -2
- package/dist/{chunk-WQTAC523.js → chunk-MNSTUIDD.js} +2 -2
- package/dist/{chunk-VXQNNXJE.js → chunk-MSBDMFER.js} +2 -2
- package/dist/{chunk-X6D5IC6I.js → chunk-MZZBAITE.js} +5 -5
- package/dist/{chunk-I5AWSI2G.js → chunk-NE3TZUCI.js} +2 -2
- package/dist/{chunk-6E7UTQY7.js → chunk-NTUMF2X3.js} +2 -2
- package/dist/{chunk-S44IULR6.js → chunk-O23I56NA.js} +2 -2
- package/dist/{chunk-CFMXJPHH.js → chunk-O3O4XXO6.js} +2 -2
- package/dist/{chunk-IG7N5ZIK.js → chunk-OUBAF226.js} +2 -2
- package/dist/chunk-P3UO3EH3.js +2 -0
- package/dist/{chunk-YNRNA5LK.js → chunk-QGGLL3UH.js} +2 -2
- package/dist/chunk-QIQ63BHW.js +16 -0
- package/dist/{chunk-VGRICIQI.js → chunk-QJIVBYEK.js} +2 -2
- package/dist/chunk-QOXBSI6G.js +20 -0
- package/dist/chunk-QXK6UUSM.js +2 -0
- package/dist/{chunk-XYADIZHU.js → chunk-RA3AYNWP.js} +2 -2
- package/dist/chunk-RJMDJR3A.js +2 -0
- package/dist/{chunk-NSS46APD.js → chunk-RLH5VUMG.js} +2 -2
- package/dist/{chunk-GBQ5NYPR.js → chunk-S4S2WOIX.js} +6 -6
- package/dist/{chunk-YIJ7ZAA4.js → chunk-SERUIGV5.js} +2 -2
- package/dist/{chunk-FECYOO5O.js → chunk-SMQWE25B.js} +2 -2
- package/dist/{chunk-R4FQGQ4X.js → chunk-TAVELHYR.js} +2 -2
- package/dist/{chunk-U6WNH5GC.js → chunk-TWMJ3Y3G.js} +2 -2
- package/dist/chunk-VAXNI5NE.js +146 -0
- package/dist/chunk-VVY2G5ET.js +2 -0
- package/dist/{chunk-WER3B7MI.js → chunk-W3DBTGL4.js} +2 -2
- package/dist/{chunk-CNKAGUPL.js → chunk-WANA4KAQ.js} +2 -2
- package/dist/chunk-WJL2L6MV.js +60 -0
- package/dist/chunk-WUW7YUAH.js +11 -0
- package/dist/{chunk-QVWS2VWZ.js → chunk-WWKWUPSU.js} +2 -2
- package/dist/{chunk-ABMYA4TN.js → chunk-WY45BHKQ.js} +2 -2
- package/dist/chunk-X4FR5BZF.js +9 -0
- package/dist/chunk-X6RKPDY7.js +2 -0
- package/dist/{chunk-ZXJYMGD3.js → chunk-YLFORA5G.js} +2 -2
- package/dist/{chunk-KP6XRY5Z.js → chunk-YTVWB7YJ.js} +2 -2
- package/dist/{chunk-4XTA5OMB.js → chunk-ZCEJ63SP.js} +2 -2
- package/dist/{chunk-HKEHS2AS.js → chunk-ZJ5CBXK3.js} +2 -2
- package/dist/chunk-ZL2OGDCD.js +2 -0
- package/dist/cli.js +8 -3
- package/dist/command-descriptors-ZW5J4ZEM.js +631 -0
- package/dist/{config-types-D20KuvvZ.d.ts → config-types-B6MEoRNy.d.ts} +8 -0
- package/dist/{db-G_II8yXU.d.ts → db-DYLKr9Wn.d.ts} +18 -1
- package/dist/direct-navigation-42YHQPOI.js +3 -0
- package/dist/{health-oblXYgkF.d.ts → health-DgxIDXJC.d.ts} +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/postinstall.js +1 -1
- package/dist/queries/affected.d.ts +2 -2
- package/dist/queries/affected.js +1 -1
- package/dist/queries/architecture.d.ts +2 -2
- package/dist/queries/architecture.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 +2 -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 +2 -2
- package/dist/queries/complexity-hotspots.js +1 -1
- package/dist/queries/complexity.d.ts +2 -2
- 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 +2 -2
- 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 +2 -2
- package/dist/queries/dead.js +1 -1
- package/dist/queries/decorative-checkers.d.ts +3 -3
- package/dist/queries/decorative-checkers.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 +30 -2
- package/dist/queries/diff-gate.js +1 -1
- package/dist/queries/diff-impact.d.ts +2 -2
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.d.ts +2 -2
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +2 -2
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +2 -2
- package/dist/queries/duplicate-bodies.js +1 -1
- 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 +2 -2
- 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 +2 -2
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +17 -3
- 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/not-implemented.d.ts +3 -3
- package/dist/queries/not-implemented.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 +2 -2
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/plan-context.d.ts +2 -2
- package/dist/queries/plan-context.js +1 -1
- package/dist/queries/react-component-duplicates.d.ts +2 -2
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +2 -2
- 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 +2 -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 +2 -2
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +2 -2
- 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/stats.js +1 -1
- 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/test-quality.d.ts +2 -2
- package/dist/queries/test-quality.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 +3 -3
- package/dist/queries/twin-ab.js +1 -1
- package/dist/queries/twin-drift.d.ts +2 -2
- package/dist/queries/twin-drift.js +1 -1
- 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 +2 -2
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.d.ts +2 -2
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.d.ts +2 -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 +26 -26
- package/dist/reindex.d.ts +14 -4
- package/dist/reindex.js +34 -38
- package/dist/runtime.d.ts +167 -18
- package/dist/runtime.js +3 -2
- package/dist/rust-semantic-session-server.js +1 -1
- package/dist/rust-semantic-session-worker.js +1 -1
- package/dist/rust-semantic-worker.js +1 -1
- package/dist/{scip-cli-kRpaexVJ.d.ts → scip-cli-Cc6c00-a.d.ts} +6 -2
- package/dist/watch-server.js +5 -5
- package/docs/AGENT_GUIDE.md +20 -4
- package/docs/AI_FAILURE_MODES.md +17 -17
- package/docs/API_EVOLUTION.md +71 -0
- package/docs/CLI_JSON_OUTPUT.md +168 -0
- package/docs/COMMAND_REFERENCE.md +10 -6
- package/docs/COMMITTED_RECORD_COMPATIBILITY.md +117 -0
- package/docs/CONFIGURATION_WRITE_SAFETY.md +130 -0
- package/docs/DETECTOR_GUIDE.md +46 -46
- package/docs/DURABILITY.md +103 -0
- package/docs/INDEX_GENERATIONS.md +121 -0
- package/docs/LOCK_PROTOCOL.md +133 -0
- package/docs/MAILBOX_LIFECYCLE.md +197 -0
- package/docs/REINDEX_METADATA_COMPATIBILITY.md +84 -0
- package/docs/RUST_DURABLE_SESSION_PROTOCOL.md +126 -0
- package/docs/SECURITY_MODEL.md +129 -0
- package/docs/TELEMETRY_RETENTION.md +77 -0
- package/docs/TIME_SEMANTICS.md +77 -0
- package/docs/WATCH_REFRESH_REQUESTS.md +110 -0
- package/docs/WINDOWS_SIDECAR_RELEASE.md +298 -0
- package/docs/analyzer-validation-ledger.md +24 -23
- package/docs/schemas/cli-json-envelope.schema.json +53 -0
- package/docs/schemas/cli-output-page.schema.json +104 -0
- package/docs/schemas/npm-release-state.schema.json +146 -0
- package/docs/schemas/outcome-event-record.schema.json +39 -0
- package/docs/schemas/project-config.schema.json +247 -0
- package/docs/schemas/suppression-record.schema.json +31 -0
- package/docs/schemas/windows-sidecar-provenance.schema.json +137 -0
- package/package.json +21 -10
- package/scripts/build-scip-windows.mjs +180 -61
- package/scripts/scip-windows-provenance.mjs +364 -0
- package/scripts/verify-scip-windows.mjs +29 -0
- package/skills/_shared/SKILL.md +90 -229
- package/skills/_shared/agents/openai.yaml +1 -1
- package/skills/_shared/references/agent-contract-catalog.md +105 -0
- package/skills/_shared/references/command-catalog.md +118 -0
- package/skills/_shared/references/detector-precision-and-diffgate.md +59 -0
- package/skills/_shared/references/evidence-and-dead-code.md +25 -0
- package/skills/scip-audit/SKILL.md +77 -0
- package/skills/scip-audit/agents/openai.yaml +4 -0
- package/skills/scip-audit/references/claims.md +98 -0
- package/skills/scip-audit/references/cleanup.md +101 -0
- package/skills/scip-audit/references/directory.md +222 -0
- package/skills/scip-audit/references/frontend.md +130 -0
- package/skills/scip-audit/references/integrity.md +154 -0
- package/skills/scip-audit/references/maintainability.md +162 -0
- package/skills/scip-audit/references/twin-drift.md +104 -0
- package/skills/scip-diagnose/SKILL.md +52 -0
- package/skills/scip-diagnose/agents/openai.yaml +4 -0
- package/skills/scip-diagnose/references/debug.md +117 -0
- package/skills/{scip-probe-reachability/SKILL.md → scip-diagnose/references/probe-reachability.md} +11 -27
- package/skills/scip-diagnose/references/root-cause.md +145 -0
- package/skills/scip-diagnose/references/triage.md +119 -0
- package/skills/scip-explore/SKILL.md +54 -85
- package/skills/scip-explore/agents/openai.yaml +2 -2
- package/skills/scip-explore/references/diagrams.md +40 -0
- package/skills/scip-explore/references/language-playbook.md +49 -0
- package/skills/scip-improve/SKILL.md +56 -0
- package/skills/scip-improve/agents/openai.yaml +4 -0
- package/skills/scip-improve/references/cleanup-batches.md +53 -0
- package/skills/scip-improve/references/directory-moves.md +53 -0
- package/skills/scip-improve/references/doc-reconcile.md +30 -0
- package/skills/scip-improve/references/frontend-extraction.md +39 -0
- package/skills/scip-improve/references/maintainability-mechanism.md +43 -0
- package/skills/scip-improve/references/twin-drift.md +35 -0
- package/skills/scip-plan/SKILL.md +68 -0
- package/skills/scip-plan/agents/openai.yaml +4 -0
- package/skills/scip-plan/references/api-impact.md +19 -0
- package/skills/scip-plan/references/conductor.md +41 -0
- package/skills/scip-plan/references/high-assurance.md +43 -0
- package/skills/scip-plan/references/hyper-optimization.md +50 -0
- package/skills/scip-plan/references/tla-model.md +88 -0
- package/skills/scip-query/SKILL.md +53 -98
- package/skills/scip-query/agents/openai.yaml +2 -2
- package/skills/scip-setup/SKILL.md +69 -181
- package/skills/scip-setup/agents/openai.yaml +3 -3
- package/skills/scip-setup/references/bootstrap-workflow.md +120 -0
- package/skills/scip-setup/references/language-verification.md +61 -0
- package/skills/scip-setup/references/lifecycle-commands.md +119 -0
- package/skills/scip-setup/references/per-repo-triage.md +24 -0
- package/skills/scip-verify/SKILL.md +126 -84
- package/skills/scip-verify/agents/openai.yaml +2 -2
- package/skills/scip-verify/references/calibrate-detectors.md +170 -0
- package/dist/chunk-2CTX5CMX.js +0 -4
- package/dist/chunk-2Y373BDD.js +0 -2
- package/dist/chunk-2YU7I3QO.js +0 -2
- package/dist/chunk-3MJ5YA4Y.js +0 -16
- package/dist/chunk-64RFXJT5.js +0 -16
- package/dist/chunk-7UY7SD7D.js +0 -927
- package/dist/chunk-B5NLK2B3.js +0 -6
- package/dist/chunk-C2QSK7E7.js +0 -2
- package/dist/chunk-C7NIYIQ4.js +0 -67
- package/dist/chunk-D4U5Q3FT.js +0 -7
- package/dist/chunk-DGAGY7RJ.js +0 -60
- package/dist/chunk-DLWR3NUU.js +0 -5
- package/dist/chunk-K2ERX4UT.js +0 -3
- package/dist/chunk-KHE7J5ZN.js +0 -3
- package/dist/chunk-L7SPDE73.js +0 -84
- package/dist/chunk-LHMNRHGV.js +0 -3
- package/dist/chunk-LM72NQ7T.js +0 -3
- package/dist/chunk-MSWVMDAH.js +0 -122
- package/dist/chunk-NH7WNNQC.js +0 -20
- package/dist/chunk-NPKYOIFM.js +0 -18
- package/dist/chunk-NZL2DBT7.js +0 -2
- package/dist/chunk-OMPZHGHO.js +0 -2
- package/dist/chunk-P2PC2WGR.js +0 -2
- package/dist/chunk-Q3AFUTGB.js +0 -8
- package/dist/chunk-QRGV2F7L.js +0 -2
- package/dist/chunk-TW4OG5FC.js +0 -4
- package/dist/chunk-U7DSEKOM.js +0 -30
- package/dist/chunk-V27BEQJN.js +0 -7
- package/dist/chunk-XAGAZSFE.js +0 -6
- package/dist/chunk-XBN5VO53.js +0 -2
- package/dist/chunk-YGAGTIDK.js +0 -11
- package/dist/command-descriptors-N2TL4XM2.js +0 -613
- package/dist/direct-navigation-DUCZCTOE.js +0 -3
- package/skills/scip-api-impact/SKILL.md +0 -140
- package/skills/scip-api-impact/agents/openai.yaml +0 -4
- package/skills/scip-calibrate/SKILL.md +0 -131
- package/skills/scip-calibrate/agents/openai.yaml +0 -4
- package/skills/scip-claim-audit/SKILL.md +0 -107
- package/skills/scip-claim-audit/agents/openai.yaml +0 -4
- package/skills/scip-cleanup-audit/SKILL.md +0 -130
- package/skills/scip-cleanup-audit/agents/openai.yaml +0 -4
- package/skills/scip-cleanup-improve/SKILL.md +0 -85
- package/skills/scip-cleanup-improve/agents/openai.yaml +0 -4
- package/skills/scip-concrete-plan/HIGH_ASSURANCE.md +0 -317
- package/skills/scip-concrete-plan/SKILL.md +0 -105
- package/skills/scip-concrete-plan/agents/openai.yaml +0 -4
- package/skills/scip-conductor/SKILL.md +0 -133
- package/skills/scip-conductor/agents/openai.yaml +0 -4
- package/skills/scip-debug/SKILL.md +0 -130
- package/skills/scip-debug/agents/openai.yaml +0 -4
- package/skills/scip-diagram/SKILL.md +0 -110
- package/skills/scip-diagram/agents/openai.yaml +0 -4
- package/skills/scip-directory-architecture/SKILL.md +0 -266
- package/skills/scip-directory-architecture/agents/openai.yaml +0 -4
- package/skills/scip-doc-reconcile/SKILL.md +0 -89
- package/skills/scip-doc-reconcile/agents/openai.yaml +0 -4
- package/skills/scip-hyper-optimization/SKILL.md +0 -156
- package/skills/scip-hyper-optimization/agents/openai.yaml +0 -4
- package/skills/scip-integrity-audit/SKILL.md +0 -152
- package/skills/scip-integrity-audit/agents/openai.yaml +0 -4
- package/skills/scip-language-playbook/SKILL.md +0 -106
- package/skills/scip-language-playbook/agents/openai.yaml +0 -4
- package/skills/scip-maintainability/SKILL.md +0 -158
- package/skills/scip-maintainability/agents/openai.yaml +0 -4
- package/skills/scip-probe-reachability/agents/openai.yaml +0 -4
- package/skills/scip-react-maintainability/SKILL.md +0 -101
- package/skills/scip-react-maintainability/agents/openai.yaml +0 -4
- package/skills/scip-root-cause/SKILL.md +0 -151
- package/skills/scip-root-cause/agents/openai.yaml +0 -4
- package/skills/scip-tla-model-system/SKILL.md +0 -148
- package/skills/scip-tla-model-system/agents/openai.yaml +0 -4
- package/skills/scip-triage-issue/SKILL.md +0 -133
- package/skills/scip-triage-issue/agents/openai.yaml +0 -4
- package/skills/scip-twin-drift/SKILL.md +0 -109
- package/skills/scip-twin-drift/agents/openai.yaml +0 -4
- package/skills/scip-vue-maintainability/SKILL.md +0 -107
- package/skills/scip-vue-maintainability/agents/openai.yaml +0 -4
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Debug: one failure → minimal verified fix
|
|
2
|
+
|
|
3
|
+
Use this mode 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.
|
|
4
|
+
|
|
5
|
+
Load shared mechanics from [`../../_shared/SKILL.md`](../../_shared/SKILL.md) only when this shortlist is insufficient.
|
|
6
|
+
|
|
7
|
+
## Commands used in this mode
|
|
8
|
+
|
|
9
|
+
| Command | When |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| `scip-query files <feature-or-error-term>` | Find the entry point from a feature name or error term (complete coverage: matching file paths). |
|
|
12
|
+
| `scip-query outline <candidate-file>` | Enumerate symbols in a candidate file while narrowing the entry point. |
|
|
13
|
+
| `scip-query trace <candidate-symbol>` | Find the entry point: definition plus every reference (bounded coverage: definition sites with source/signature, referencing files with line numbers). |
|
|
14
|
+
| `scip-query code <candidate-symbol>` | Read the exact source at the candidate entry point or callee. |
|
|
15
|
+
| `scip-query kind-counts` / `scip-query by-kind` | Orient in an unfamiliar codebase during entry-point discovery. |
|
|
16
|
+
| `scip-query call-graph <entry-symbol>` | Follow execution: callers and callees along the failing path (bounded coverage). |
|
|
17
|
+
| `scip-query refs <state-or-api-symbol>` | Follow execution: every referencing site of shared state or an API symbol. |
|
|
18
|
+
| `scip-query fan-in <suspect-symbol>` / `scip-query fan-out <suspect-file>` | Follow execution: who depends on the suspect symbol/file, and what it depends on. |
|
|
19
|
+
| `scip-query dataflow <symbol-or-variable>` | Follow data: producers, consumers, and usage sites (bounded coverage). |
|
|
20
|
+
| `scip-query slice <symbol-or-variable>` / `--forward` | Follow data: backward and forward slices from the suspect value. |
|
|
21
|
+
| `scip-query similar <suspect-symbol> --json --full` | Compare nearby implementations for missing guards or handling (bounded coverage: symbol pairs, similarity scores, shared evidence). |
|
|
22
|
+
| `scip-query similar <suspect-symbol> <similar-symbol> --plan` | Compare two specific implementations directly. |
|
|
23
|
+
| `scip-query similar-files <suspect-file> --json --full` | Compare nearby files for missing handling. |
|
|
24
|
+
| `scip-query change-surface <suspect-file> --json --full` | Bound the fix: exports, consumers, and blast-radius risk (bounded coverage). |
|
|
25
|
+
| `scip-query affected <suspect-symbol> --json` | Bound the fix: transitive closure of symbols that could break. |
|
|
26
|
+
|
|
27
|
+
## Rules
|
|
28
|
+
|
|
29
|
+
1. Reproduce or restate the failure before editing.
|
|
30
|
+
2. Use scip-query to find entry points, call paths, data flow, and blast radius.
|
|
31
|
+
3. Prefer one narrow fix over broad cleanup.
|
|
32
|
+
4. Verify with the narrowest repo test or smoke command, then invoke `scip-verify`.
|
|
33
|
+
5. A root-cause claim whose fix crosses a file boundary requires a rival: state the next-most-plausible explanation for the same symptom and run the observation that separates them. A root cause with no rival considered is a guess presented with unearned confidence.
|
|
34
|
+
|
|
35
|
+
## Workflow
|
|
36
|
+
|
|
37
|
+
### 1. Pin the failure
|
|
38
|
+
|
|
39
|
+
Record observed behavior, expected behavior, the reproducing command/route/UI action/test/job/file, error text or wrong output, and the regression window if known.
|
|
40
|
+
|
|
41
|
+
If no reproduction is provided, build the smallest runnable reproduction from existing tests, scripts, CLI, or app entry points.
|
|
42
|
+
|
|
43
|
+
This step is complete only when the mismatch is concrete enough to test, or the missing external fact is named.
|
|
44
|
+
|
|
45
|
+
### 2. Find the entry point
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
scip-query files <feature-or-error-term>
|
|
49
|
+
scip-query outline <candidate-file>
|
|
50
|
+
scip-query trace <candidate-symbol>
|
|
51
|
+
scip-query code <candidate-symbol>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Use `kind-counts` or `by-kind` when the codebase is unfamiliar.
|
|
55
|
+
|
|
56
|
+
This step is complete only when the failing path has a plausible entry point with source evidence.
|
|
57
|
+
|
|
58
|
+
### 3. Follow execution and data
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
scip-query call-graph <entry-symbol>
|
|
62
|
+
scip-query code <callee-symbol>
|
|
63
|
+
scip-query refs <state-or-api-symbol>
|
|
64
|
+
scip-query fan-in <suspect-symbol>
|
|
65
|
+
scip-query fan-out <suspect-file>
|
|
66
|
+
scip-query dataflow <symbol-or-variable>
|
|
67
|
+
scip-query slice <symbol-or-variable>
|
|
68
|
+
scip-query slice <symbol-or-variable> --forward
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Stop expanding the trace when the first code fact that can cause the symptom is found.
|
|
72
|
+
|
|
73
|
+
When a candidate cause emerges, state it as a hypothesis alongside one rival — the next-most-plausible explanation for the same symptom. Name the observation that distinguishes them (a log line, a probe, a narrower test) and execute it. Choose the discriminator that is cheapest to run, not the one most likely to confirm the preferred hypothesis.
|
|
74
|
+
|
|
75
|
+
This step is complete only when the path explains the symptom or the missing evidence is made explicit.
|
|
76
|
+
|
|
77
|
+
### 4. Compare nearby implementations
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
scip-query similar <suspect-symbol> --json --full
|
|
81
|
+
scip-query similar <suspect-symbol> <similar-symbol> --plan
|
|
82
|
+
scip-query similar-files <suspect-file> --json --full
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Use implementation comparisons to find missing guards, conversions, lifecycle steps, or error handling, while preserving essential differences.
|
|
86
|
+
|
|
87
|
+
This step is complete only when comparisons either support the fix or are rejected with a stated reason.
|
|
88
|
+
|
|
89
|
+
### 5. Bound and fix
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
scip-query change-surface <suspect-file> --json --full
|
|
93
|
+
scip-query affected <suspect-symbol> --json
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Make the smallest code change that fixes the root cause.
|
|
97
|
+
|
|
98
|
+
This step is complete only when the changed symbol/file is justified by blast-radius evidence.
|
|
99
|
+
|
|
100
|
+
### 6. Verify
|
|
101
|
+
|
|
102
|
+
Run the reproduction, a narrow test or smoke command, and invoke `scip-verify`.
|
|
103
|
+
|
|
104
|
+
## Report
|
|
105
|
+
|
|
106
|
+
```markdown
|
|
107
|
+
Bug:
|
|
108
|
+
Entry point:
|
|
109
|
+
Root cause:
|
|
110
|
+
Rival considered:
|
|
111
|
+
Discriminator: <the executed observation that separated them>
|
|
112
|
+
Fix:
|
|
113
|
+
Verification:
|
|
114
|
+
Remaining risk:
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Do not present a guess as a root cause. A root cause with no rival considered and no executed discriminator is a guess. If no root cause is proven, state the missing evidence instead of asserting a cause.
|
package/skills/{scip-probe-reachability/SKILL.md → scip-diagnose/references/probe-reachability.md}
RENAMED
|
@@ -1,38 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
name: scip-probe-reachability
|
|
3
|
-
description: Prove whether a parser/AST branch is actually reachable by running the real parser on minimal inputs. Use for unreachable or dead node-type/shape branches, wrong node-type strings, tree-sitter grammar mismatches, or any conditional written for an AST or parser output that has never been checked against the real parser.
|
|
4
|
-
commands:
|
|
5
|
-
- template: 'scip-query outline <file> --signatures'
|
|
6
|
-
when: 'Enumerate branches: symbol tree with signatures for the target file.'
|
|
7
|
-
- template: 'scip-query code <symbol>'
|
|
8
|
-
when: "Enumerate branches: read each branch condition's exact node-type check."
|
|
9
|
-
- template: 'scip-query trace <symbol>'
|
|
10
|
-
when: "Enumerate branches: confirm the function's only caller/entry point."
|
|
11
|
-
---
|
|
1
|
+
# Probe reachability: prove a parser/AST branch reachable or dead
|
|
12
2
|
|
|
13
|
-
|
|
3
|
+
Use this mode for code that branches on a parser or AST node's type or shape (`node.type === '...'`, a grammar-specific tag, a regex over token shape) where nobody has verified the real parser ever produces that type or shape. A branch written from documentation, memory, or a similar grammar in another language can be permanently dead: it looks correct, compiles, and is never exercised by a single test, because the input that should reach it never reaches it under the actual parser. This mode runs without any reported failure — the trigger is an unverified branch, not a bug report.
|
|
14
4
|
|
|
15
|
-
|
|
5
|
+
Load shared mechanics from [`../../_shared/SKILL.md`](../../_shared/SKILL.md) only when this shortlist is insufficient.
|
|
16
6
|
|
|
17
|
-
|
|
7
|
+
## Commands used in this mode
|
|
18
8
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
| `scip-query outline <file> --signatures` | Tree view of symbols in a file, with line ranges | symbol names, nesting, and line ranges | `complete` | Enumerate branches: symbol tree with signatures for the target file. |
|
|
25
|
-
| `scip-query code <symbol>` | Read the source code for a symbol (bounded to its definition range) | definition identity, source, and line range | `complete` | Enumerate branches: read each branch condition's exact node-type check. |
|
|
26
|
-
| `scip-query trace <symbol>` | Trace a symbol: definition + all references | definition sites with source and signature; referencing files with line numbers | `bounded` | Enumerate branches: confirm the function's only caller/entry point. |
|
|
27
|
-
|
|
28
|
-
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
29
|
-
<!-- END GENERATED SKILL COMMANDS -->
|
|
9
|
+
| Command | When |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| `scip-query outline <file> --signatures` | Enumerate branches: symbol tree with signatures for the target file (complete coverage: symbol names, nesting, line ranges). |
|
|
12
|
+
| `scip-query code <symbol>` | Enumerate branches: read each branch condition's exact node-type check (complete coverage: definition identity, source, line range). |
|
|
13
|
+
| `scip-query trace <symbol>` | Enumerate branches: confirm the function's only caller/entry point (bounded coverage). |
|
|
30
14
|
|
|
31
15
|
## Rules
|
|
32
16
|
|
|
33
17
|
1. Never trust a branch condition by reading it; run the real parser on an input constructed to hit it.
|
|
34
18
|
2. Write scratch probe scripts only under the session scratchpad, never inside the repository — they are throwaway evidence, not product code.
|
|
35
|
-
3. Never create a git worktree and never symlink `node_modules` for this
|
|
19
|
+
3. Never create a git worktree and never symlink `node_modules` for this mode's probes; import the parser module directly (from `src/` via a TypeScript runner, or from the built package) in a standalone script that needs no repo-root install step.
|
|
36
20
|
4. A branch is a finding whether it is truly unreachable (dead code) or reachable but under a different node-type string than the code checks (a silent misclassification, which is worse than dead code because it fails without raising anything).
|
|
37
21
|
5. Completion requires every node-type/shape branch in the target function to have either a reached probe or a filed finding — partial coverage is not done.
|
|
38
22
|
|
|
@@ -51,7 +35,7 @@ This step is complete only when every node-type/shape branch in the target funct
|
|
|
51
35
|
|
|
52
36
|
### 2. Construct a minimal input per branch
|
|
53
37
|
|
|
54
|
-
For each branch, write the smallest source snippet in the target language that should, by the language's grammar, produce a node of that type or shape at that point in the tree. Prefer one snippet per branch; note when a single snippet is expected to exercise more than one branch
|
|
38
|
+
For each branch, write the smallest source snippet in the target language that should, by the language's grammar, produce a node of that type or shape at that point in the tree. Prefer one snippet per branch; note when a single snippet is expected to exercise more than one sibling branch in a walk.
|
|
55
39
|
|
|
56
40
|
This step is complete only when every branch has a candidate input snippet.
|
|
57
41
|
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Root cause: recurring bug family → design flaw → least invasive remedy
|
|
2
|
+
|
|
3
|
+
Use this mode to move from a family of related bugs to the design flaw that
|
|
4
|
+
produces them, and to the least invasive remedy that eliminates the class.
|
|
5
|
+
Debug mode takes one failure to one minimal fix; the maintainability scenario
|
|
6
|
+
in `scip-audit` finds structural smells without bug evidence; this mode starts
|
|
7
|
+
from evidence that patching has not worked — the same kind of bug keeps
|
|
8
|
+
recurring — and asks what the system's design gets wrong.
|
|
9
|
+
|
|
10
|
+
Load shared mechanics from [`../../_shared/SKILL.md`](../../_shared/SKILL.md) only when this shortlist is insufficient.
|
|
11
|
+
|
|
12
|
+
## Commands used in this mode
|
|
13
|
+
|
|
14
|
+
| Command | When |
|
|
15
|
+
| --- | --- |
|
|
16
|
+
| `scip-query trace <mechanism-symbol>` | Assemble the family: mechanism and violated invariant for each bug (bounded coverage: definition sites with source/signature, referencing files with line numbers). |
|
|
17
|
+
| `scip-query code <mechanism-symbol>` / `scip-query dataflow <mechanism-symbol>` | Assemble the family: trace each bug's mechanism to source rather than a symptom description. |
|
|
18
|
+
| `scip-query co-change <fix-site-file>` | Assemble the family: files that historically changed together with each fix site without a dependency edge — hidden coupling candidates, and a way to find family members the user forgot (bounded coverage: file pairs, co-change counts, confidence, history context). |
|
|
19
|
+
| `scip-query system <system-scope>` | Define the system's real responsibilities, files, and dependencies in and out (complete coverage: module file paths, exported symbols with line ranges, internal and reverse dependencies). |
|
|
20
|
+
| `scip-query surface <system-scope>` | Define the system: referents for its public surface alongside `system`. |
|
|
21
|
+
| `scip-query similar <fixed-symbol> --json --full` | Predict: hunt latent instances among sibling implementations of the fixed code (bounded coverage). |
|
|
22
|
+
| `scip-query refs <invariant-carrier>` | Predict: every site that touches the violated invariant's state (bounded coverage: referencing file paths, reference line numbers grouped by file). |
|
|
23
|
+
| `scip-query affected <remedy-symbol> --json` | Choose the remedy rung: blast radius of the candidate remedy (bounded coverage: transitive closure of symbols that could break). |
|
|
24
|
+
|
|
25
|
+
## Terms
|
|
26
|
+
|
|
27
|
+
A **bug family** is a set of failures whose mechanisms violate the same invariant; what makes it a family rather than a coincidence is that one stated flaw derives every member, so fixing members one at a time treats symptoms of a shared cause.
|
|
28
|
+
|
|
29
|
+
A **design flaw** is a mismatch between what a system's design assumes and what its real responsibilities require; what makes it the root cause is that it is the earliest fact from which every family member's mechanism follows, so removing it removes the class.
|
|
30
|
+
|
|
31
|
+
**Retrodiction** is deriving each already-known bug from the hypothesized flaw; what makes it a test is that a family member the flaw cannot derive either shrinks the family or kills the hypothesis.
|
|
32
|
+
|
|
33
|
+
A **latent instance** is a not-yet-reported bug the flaw predicts must exist in unfixed code; what makes it decisive is that it is checkable now — finding one confirms the diagnosis and becomes a fix target, while an honest hunt that finds none weakens the diagnosis and must be reported as weakening it.
|
|
34
|
+
|
|
35
|
+
The **remedy ladder** is the ordered set of interventions from least to most invasive; what makes the order binding is that each rung is only justified when a constructed family member survives the rung below it.
|
|
36
|
+
|
|
37
|
+
## Rules
|
|
38
|
+
|
|
39
|
+
1. Every bug in the family gets a mechanism traced to source, not a symptom description: which invariant broke, where, and what the fix did. Sources: fix commits (`git log --follow`, `git show`) plus `trace`/`code`/`dataflow`.
|
|
40
|
+
2. The flaw hypothesis must be falsifiable and stated as a design claim — "the design assumes X, but the system's responsibilities include Y" — never as a narrative about unlucky bugs.
|
|
41
|
+
3. State at least two rivals and kill them with evidence: unrelated coincidences, caller misuse rather than design, one missed edge case rather than a structural flaw.
|
|
42
|
+
4. The hypothesis must retrodict every family member and predict at least one latent instance, and the latent-instance hunt must be executed (`similar`, `refs` over the invariant's carriers, or a constructed probe), not merely argued.
|
|
43
|
+
5. Choose the lowest remedy rung that kills the whole class — retrodicted and latent members both. Climb a rung only when a constructed family member survives the rung below, and keep that counterexample in the record.
|
|
44
|
+
6. Root-cause stories are the most rationalization-prone artifact in software: prefer delegating the attack on the diagnosis and the remedy to a fresh subagent given only the family table, system definition, and hypothesis — briefed to win by refuting it. Solo fallback: write the rival hypotheses and the latent-instance predictions before reading any more code.
|
|
45
|
+
7. The verdict is derived with counts, and the diagnosis hands off to
|
|
46
|
+
`scip-plan` for implementation — this mode does not edit application code
|
|
47
|
+
itself.
|
|
48
|
+
|
|
49
|
+
## Workflow
|
|
50
|
+
|
|
51
|
+
### 1. Assemble the bug family
|
|
52
|
+
|
|
53
|
+
For each reported or fixed bug, fill one row:
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
| Bug | Symptom | Mechanism (file:symbol) | Invariant violated | Fix applied | Source |
|
|
57
|
+
| --- | ------- | ----------------------- | ------------------ | ----------- | ------ |
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Evidence: the user's description, fix commits (`git log --follow`, `git show`), `scip-query trace`/`code` on the mechanism symbols, `scip-query co-change` on fix sites to find members the user forgot.
|
|
61
|
+
|
|
62
|
+
This step is complete only when every row has a source-traced mechanism and a named invariant — a bug whose mechanism cannot be traced is listed as `unconfirmed member`, not silently included.
|
|
63
|
+
|
|
64
|
+
### 2. Define the system
|
|
65
|
+
|
|
66
|
+
Define the system that owns the family, contextually: its wider class, then the essential responsibility that explains its other traits in this codebase — with referents from `scip-query system <scope>` and `surface <scope>`. Then list the design's load-bearing assumptions as the code actually embodies them (not as the README states them), each with a `Source:` citation.
|
|
67
|
+
|
|
68
|
+
This step is complete only when the system's real responsibilities and embodied assumptions are stated with citations.
|
|
69
|
+
|
|
70
|
+
### 3. Hypothesize the flaw — and its rivals
|
|
71
|
+
|
|
72
|
+
State the flaw as a falsifiable design claim:
|
|
73
|
+
|
|
74
|
+
```markdown
|
|
75
|
+
Flaw hypothesis: the design assumes <X> (Source: <citation>), but the system's
|
|
76
|
+
responsibilities include <Y> (Source: <citation>); every family member is an
|
|
77
|
+
instance of the X∧Y collision.
|
|
78
|
+
|
|
79
|
+
Rivals:
|
|
80
|
+
|
|
81
|
+
- R1. Coincidence — the members have unrelated causes. Killed by: <evidence> | ALIVE
|
|
82
|
+
- R2. Misuse — callers hold the bug, the design is sound. Killed by: <evidence> | ALIVE
|
|
83
|
+
- R3. <next-most-plausible> — Killed by: <evidence> | ALIVE
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
A rival still marked `ALIVE` at the end of the workflow caps the diagnosis at `CANDIDATE`, not `CONFIRMED`.
|
|
87
|
+
|
|
88
|
+
### 4. Retrodict and predict
|
|
89
|
+
|
|
90
|
+
Retrodiction: derive each family-table row from the flaw in one sentence each. A member that cannot be derived is removed from the family (say so) or refutes the hypothesis (start over).
|
|
91
|
+
|
|
92
|
+
Prediction: the flaw implies unfixed instances exist. Name where they must be, then hunt:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
scip-query similar <fixed-symbol> --json --full
|
|
96
|
+
scip-query refs <invariant-carrier>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
plus a constructed probe when the claim is cheaply executable. Record each prediction with an executed result:
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
- L1. <predicted latent instance> → FOUND at <file:line> (new fix target) | NOT FOUND after <hunt executed>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
This step is complete only when every family member is retrodicted and every prediction has an executed hunt result. Zero latent instances found is a reportable weakness of the diagnosis, not a detail to omit.
|
|
106
|
+
|
|
107
|
+
### 5. Choose the lowest rung
|
|
108
|
+
|
|
109
|
+
The remedy ladder, in order:
|
|
110
|
+
|
|
111
|
+
1. **Enforce the invariant at a boundary** — type, guard, constraint, lint, trigger — without moving code.
|
|
112
|
+
2. **Consolidate the responsibility into one owner** — the scattered decision gets one named mechanism.
|
|
113
|
+
3. **Redesign the core behind its existing interface** — consumers untouched.
|
|
114
|
+
4. **Redesign the interfaces** — last resort; consumers migrate.
|
|
115
|
+
|
|
116
|
+
For the chosen rung, run the attack: construct a family member — retrodicted
|
|
117
|
+
or latent — that survives the rung. If one survives, keep the counterexample
|
|
118
|
+
in the record and climb one rung. Check blast radius with
|
|
119
|
+
`scip-query affected` before proposing any rung above 1. For protocol- or
|
|
120
|
+
lifecycle-shaped flaws whose remedy must hold across interleavings, note the
|
|
121
|
+
escalation path to the TLA+ mode in `scip-plan`.
|
|
122
|
+
|
|
123
|
+
This step is complete only when the chosen rung has an attack record showing no family member survives it, and every rejected lower rung keeps its surviving counterexample.
|
|
124
|
+
|
|
125
|
+
### 6. Report and hand off
|
|
126
|
+
|
|
127
|
+
```markdown
|
|
128
|
+
## Root-cause diagnosis
|
|
129
|
+
|
|
130
|
+
System: <definition with referents>
|
|
131
|
+
Bug family: <n> members traced, <u> unconfirmed
|
|
132
|
+
Flaw: <the design claim> — CONFIRMED | CANDIDATE (rival <id> alive)
|
|
133
|
+
Rivals: <r> stated, <k> killed with evidence
|
|
134
|
+
Retrodiction: <n>/<n> members derived
|
|
135
|
+
Latent instances: <p> predicted, <f> found (each a fix target), hunts executed
|
|
136
|
+
Remedy: rung <1-4> — <the intervention>; lower rungs rejected by <counterexamples>
|
|
137
|
+
Blast radius: <affected summary>
|
|
138
|
+
Escalation: <none | scip-plan TLA+ mode for <property>>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Hand the diagnosis to `scip-plan`: the flaw and invariants constrain current
|
|
142
|
+
flow and risks, the family table and hunt results constrain the slices, and
|
|
143
|
+
the surviving-counterexample record seeds the verification attacks.
|
|
144
|
+
|
|
145
|
+
The diagnosis is complete only when the verdict line carries the counts and every count is backed by an entry in the record above it.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Triage: raw report → grounded fix packet
|
|
2
|
+
|
|
3
|
+
Use this mode to turn a report into a grounded fix packet. Triage is the evidence pass that determines whether the issue is reproducible, where it enters the codebase, what root cause is likely, and what test should fail before the fix.
|
|
4
|
+
|
|
5
|
+
Load shared mechanics from [`../../_shared/SKILL.md`](../../_shared/SKILL.md) only when this shortlist is insufficient.
|
|
6
|
+
|
|
7
|
+
## Commands used in this mode
|
|
8
|
+
|
|
9
|
+
| Command | When |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| `scip-query files <issue-term>` | Map ownership: locate files for the reported term (complete coverage: matching file paths). |
|
|
12
|
+
| `scip-query outline <candidate-file>` | Map ownership: enumerate symbols in a candidate owner file. |
|
|
13
|
+
| `scip-query system <module-or-scope>` / `scip-query surface <module-or-scope>` | Map ownership: the module's real shape and public surface for broad subsystems. |
|
|
14
|
+
| `scip-query kind-counts` / `scip-query by-kind` | Map ownership: orient in broad or unfamiliar subsystems. |
|
|
15
|
+
| `scip-query trace <entry-or-error-symbol>` | Trace the failing path: definition plus every reference (bounded coverage: definition sites with source/signature, referencing files with line numbers). |
|
|
16
|
+
| `scip-query code <entry-or-error-symbol>` | Trace the failing path: read the exact source (complete coverage: definition identity, source, line range). For stack traces, read the exact range with `scip-query code 'file:start-end'`. |
|
|
17
|
+
| `scip-query call-graph <entry-symbol>` | Trace the failing path: callers and callees (bounded coverage). |
|
|
18
|
+
| `scip-query dataflow <state-or-input-symbol>` / `scip-query slice <state-or-input-symbol>` | Trace the failing path: data flow and slices from the suspect input or state. |
|
|
19
|
+
| `scip-query similar <suspect-symbol> --json --full` | Compare and bound: nearby implementations for missing handling (bounded coverage: symbol pairs, similarity scores, shared evidence). |
|
|
20
|
+
| `scip-query similar <suspect-symbol> <comparison-symbol> --plan` | Compare and bound: two specific implementations directly. |
|
|
21
|
+
| `scip-query similar-files <suspect-file> --json --full` | Compare and bound: nearby files for missing handling. |
|
|
22
|
+
| `scip-query co-change <suspect-file> --json --full` | Compare and bound: files that historically changed with the suspect file. |
|
|
23
|
+
| `scip-query change-surface <suspect-file> --json --full` | Compare and bound: exports, consumers, and blast-radius risk. |
|
|
24
|
+
| `scip-query affected <suspect-symbol> --json` | Compare and bound: transitive impact bound for the fix plan (bounded coverage). |
|
|
25
|
+
|
|
26
|
+
## Rules
|
|
27
|
+
|
|
28
|
+
1. Do not file or implement a fix from the issue title alone.
|
|
29
|
+
2. Use scip-query for code evidence: entry points, references, call flow, data flow, blast radius, and similar implementations.
|
|
30
|
+
3. Prefer a failing test plan before a code plan.
|
|
31
|
+
4. If the user asks only for triage, stop at the packet. If they also asked to fix it, implement only after the packet is clear.
|
|
32
|
+
|
|
33
|
+
## Workflow
|
|
34
|
+
|
|
35
|
+
### 1. Normalize the report
|
|
36
|
+
|
|
37
|
+
Record summary, observed behavior, expected behavior, reproduction, affected surface, severity, user impact, and logs/screenshots/tests/links.
|
|
38
|
+
|
|
39
|
+
Ask the user only for product intent, credentials, private data, or external system state that the repo cannot answer.
|
|
40
|
+
|
|
41
|
+
This step is complete only when missing facts are either recovered or named.
|
|
42
|
+
|
|
43
|
+
### 2. Map ownership
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
scip-query files <issue-term>
|
|
47
|
+
scip-query outline <candidate-file>
|
|
48
|
+
scip-query system <module-or-scope>
|
|
49
|
+
scip-query surface <module-or-scope>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Use `kind-counts` and `by-kind` for broad subsystems.
|
|
53
|
+
|
|
54
|
+
This step is complete only when likely owner files and surfaces are named.
|
|
55
|
+
|
|
56
|
+
### 3. Trace the failing path
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
scip-query trace <entry-or-error-symbol>
|
|
60
|
+
scip-query code <entry-or-error-symbol>
|
|
61
|
+
scip-query call-graph <entry-symbol>
|
|
62
|
+
scip-query dataflow <state-or-input-symbol>
|
|
63
|
+
scip-query slice <state-or-input-symbol>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
For stack traces, read the exact range with `scip-query code 'file:start-end'`.
|
|
67
|
+
|
|
68
|
+
This step is complete only when a suspected root cause is tied to source evidence or labeled unproven.
|
|
69
|
+
|
|
70
|
+
### 4. Compare and bound
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
scip-query similar <suspect-symbol> --json --full
|
|
74
|
+
scip-query similar <suspect-symbol> <comparison-symbol> --plan
|
|
75
|
+
scip-query similar-files <suspect-file> --json --full
|
|
76
|
+
scip-query co-change <suspect-file> --json --full
|
|
77
|
+
scip-query change-surface <suspect-file> --json --full
|
|
78
|
+
scip-query affected <suspect-symbol> --json
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
This step is complete only when the packet has a narrow test shape and an impact bound.
|
|
82
|
+
|
|
83
|
+
## Packet
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
## Issue
|
|
87
|
+
|
|
88
|
+
<one-sentence mismatch>
|
|
89
|
+
|
|
90
|
+
## Reproduction
|
|
91
|
+
|
|
92
|
+
<steps, command, failing test, or missing data>
|
|
93
|
+
|
|
94
|
+
## Evidence
|
|
95
|
+
|
|
96
|
+
- <scip-query command>: <fact>
|
|
97
|
+
|
|
98
|
+
## Suspected Root Cause
|
|
99
|
+
|
|
100
|
+
<earliest code fact that explains the symptom>
|
|
101
|
+
|
|
102
|
+
## Impact
|
|
103
|
+
|
|
104
|
+
- users/surfaces affected
|
|
105
|
+
- blast radius
|
|
106
|
+
|
|
107
|
+
## Fix Plan
|
|
108
|
+
|
|
109
|
+
1. Add or update failing test/smoke check.
|
|
110
|
+
2. Make the smallest code change.
|
|
111
|
+
3. Run targeted test.
|
|
112
|
+
4. Invoke `scip-verify`.
|
|
113
|
+
|
|
114
|
+
## Open Questions
|
|
115
|
+
|
|
116
|
+
- <product intent or external state only>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
If no root cause is proven, label the issue `needs reproduction` or `needs product decision` rather than asserting one.
|
|
@@ -1,121 +1,90 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: scip-explore
|
|
3
|
-
description:
|
|
3
|
+
description: Use to understand a system before editing it: what calls what, how data flows, what depends on it, what a change would reach, and what historically changed together. Includes choosing high-signal commands for an unfamiliar language and rendering the result as a flow, dependency, or blast-radius diagram. For understanding a failure mode class rather than this codebase, use `engineering-lenses`.
|
|
4
4
|
commands:
|
|
5
|
-
- template:
|
|
6
|
-
when:
|
|
7
|
-
- template:
|
|
8
|
-
when:
|
|
9
|
-
- template:
|
|
10
|
-
when:
|
|
11
|
-
- template: 'scip-query call-graph <entry-symbol>'
|
|
12
|
-
when: 'Trace entry points: callers and callees for the path.'
|
|
13
|
-
- template: 'scip-query dataflow <symbol-or-variable>'
|
|
14
|
-
when: 'Follow data and state through producers and consumers.'
|
|
15
|
-
- template: 'scip-query affected <symbol> --json'
|
|
16
|
-
when: 'Map dependencies and consumers: downstream blast radius.'
|
|
5
|
+
- template: "scip-query system <module-or-scope>"
|
|
6
|
+
when: "Orient to a module's files, symbols, dependencies, and consumers."
|
|
7
|
+
- template: "scip-query trace <entry-symbol>"
|
|
8
|
+
when: "Connect an entry symbol to its definition and references."
|
|
9
|
+
- template: "scip-query affected <symbol> --json"
|
|
10
|
+
when: "Measure the transitive downstream blast radius of a change."
|
|
17
11
|
---
|
|
18
12
|
|
|
19
|
-
|
|
13
|
+
## Purpose
|
|
20
14
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
|
|
15
|
+
Build verified understanding of how a system works end to end — entry points, call flow, data flow, dependencies, consumers, and risk — before answering or editing. Exploration means tracing code from entry points to effects against the SCIP index, not against memory or folder guesses. Load shared mechanics from `../_shared/SKILL.md`; use this skill's own shortlist first and open `_shared` only when it is insufficient.
|
|
24
16
|
|
|
25
17
|
<!-- BEGIN GENERATED SKILL COMMANDS -->
|
|
26
18
|
## Commands for this skill
|
|
27
19
|
|
|
28
20
|
| Command | Purpose | Returns | Coverage | When |
|
|
29
21
|
| --- | --- | --- | --- | --- |
|
|
30
|
-
| `scip-query
|
|
31
|
-
| `scip-query
|
|
32
|
-
| `scip-query
|
|
33
|
-
| `scip-query call-graph <entry-symbol>` | Show incoming callers and outgoing callees for a symbol | caller and callee symbol identities with files | `bounded` | Trace entry points: callers and callees for the path. |
|
|
34
|
-
| `scip-query dataflow <symbol-or-variable>` | Reference-level dataflow: definition sites, usage sites, producers, consumers | definition sites, usage sites, producer symbols, and consumer symbols | `bounded` | Follow data and state through producers and consumers. |
|
|
35
|
-
| `scip-query affected <symbol> --json` | Transitive closure of symbols that could break if this symbol changes | affected symbol identities, files, and traversal depths | `bounded` | Map dependencies and consumers: downstream blast radius. |
|
|
22
|
+
| `scip-query system <module-or-scope>` | Full module map: files, symbols, deps in/out | module file paths; exported symbols with line ranges; internal dependencies; reverse dependencies | `complete` | Orient to a module's files, symbols, dependencies, and consumers. |
|
|
23
|
+
| `scip-query trace <entry-symbol>` | Trace a symbol: definition + all references | definition sites with source and signature; referencing files with line numbers | `bounded` | Connect an entry symbol to its definition and references. |
|
|
24
|
+
| `scip-query affected <symbol> --json` | Transitive closure of symbols that could break if this symbol changes | affected symbol identities, files, and traversal depths | `bounded` | Measure the transitive downstream blast radius of a change. |
|
|
36
25
|
|
|
37
26
|
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
38
27
|
<!-- END GENERATED SKILL COMMANDS -->
|
|
39
28
|
|
|
40
|
-
##
|
|
41
|
-
|
|
42
|
-
1. Use a current index before trusting graph facts.
|
|
43
|
-
2. Relationship, consumer, and completeness claims cite scip-query; literal local-source claims may cite a native file read.
|
|
44
|
-
3. Resolve ambiguous symbols before describing behavior. `scip-query code` is useful but not mandatory when an exact native range is already known.
|
|
45
|
-
4. Follow the graph before trusting folder structure.
|
|
46
|
-
5. Start wide, then narrow.
|
|
47
|
-
6. Descriptions need citations; conclusions need discriminators. A conclusion — why something happens, what a unit is for, which intent explains a shape — states one rival explanation and the trace evidence that rules it out.
|
|
48
|
-
|
|
49
|
-
## Workflow
|
|
29
|
+
## Evidence rules (apply to every step below)
|
|
50
30
|
|
|
51
|
-
|
|
31
|
+
- Use a current index before trusting graph facts: apply `_shared`'s freshness gate once before the first graph claim. After source changes, let an active watcher refresh and use manual reindex only as the documented fallback.
|
|
32
|
+
- Relationship, consumer, and completeness claims must cite a `scip-query` command. Literal local-source claims may cite a native file read instead.
|
|
33
|
+
- Resolve ambiguous symbols before describing behavior — `scip-query code` is the usual tool, but it isn't mandatory when you already have an exact native range.
|
|
34
|
+
- Follow the graph before trusting folder structure. Start wide, then narrow.
|
|
35
|
+
- Descriptions need citations; conclusions need discriminators. A conclusion — why something happens, what a unit is for, which intent explains a shape — must state one rival explanation and the trace evidence that ruled it out.
|
|
52
36
|
|
|
53
|
-
|
|
54
|
-
scip-query stats
|
|
55
|
-
scip-query kind-counts
|
|
56
|
-
scip-query system <module-or-scope>
|
|
57
|
-
scip-query outline <entry-file>
|
|
58
|
-
scip-query by-kind function --scope <scope>
|
|
59
|
-
```
|
|
37
|
+
Each `scip-query` command below carries a coverage rating: **complete** (exhaustive) or **bounded** (capped — a follow-up command may be needed to fill in the picture).
|
|
60
38
|
|
|
61
|
-
|
|
39
|
+
## The core workflow
|
|
62
40
|
|
|
63
|
-
|
|
41
|
+
Run these five steps in order. Skip a step only when its evidence is already in hand from an earlier step.
|
|
64
42
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
scip-query call-graph <entry-symbol>
|
|
68
|
-
scip-query code <entry-symbol>
|
|
69
|
-
scip-query dataflow <entry-symbol>
|
|
70
|
-
```
|
|
43
|
+
**1. Orient.** Run `stats` (repo-wide size/shape, complete), `kind-counts`, `system <module-or-scope>` (file paths, exported symbols with line ranges, internal/reverse deps, complete), `outline <entry-file>`, and `by-kind function --scope <scope>`.
|
|
44
|
+
Done when: module files, key symbols, dependencies, and reverse dependencies are mapped.
|
|
71
45
|
|
|
72
|
-
|
|
46
|
+
**2. Trace entry points.** Run `trace <entry-symbol>` (definition + every reference, bounded), `call-graph <entry-symbol>` (incoming callers, outgoing callees, bounded), `code <entry-symbol>`, `dataflow <entry-symbol>` — repeat for important callees until the path reaches a side effect, a returned value, or a terminal output.
|
|
47
|
+
Done when: the traced path connects entry point to observable effect.
|
|
73
48
|
|
|
74
|
-
|
|
49
|
+
**3. Map dependencies and consumers.** Run `deps <file>`, `rdeps <file>`, `fan-out <file>`, `surface <module>`, `affected <symbol> --json` (transitive closure of symbols that could break if this symbol changes: identities, files, traversal depths, bounded).
|
|
50
|
+
Done when: direct dependencies, public surface, and downstream blast radius are named.
|
|
75
51
|
|
|
76
|
-
|
|
52
|
+
**4. Follow data and state.** Run `dataflow <symbol-or-variable>` (definition sites, usage sites, producers, consumers, bounded), `slice <symbol-or-variable>`, `slice <symbol-or-variable> --forward`.
|
|
53
|
+
Done when: producers, transformations, storage, and consumers are identified — or explicitly marked unavailable.
|
|
77
54
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
scip-query rdeps <file>
|
|
81
|
-
scip-query fan-out <file>
|
|
82
|
-
scip-query surface <module>
|
|
83
|
-
scip-query affected <symbol>
|
|
84
|
-
```
|
|
55
|
+
**5. Assess risk.** Run `complexity <symbol>`, `complexity-hotspots`, `bottlenecks`, `change-surface <file>` (pre-change briefing: exports, consumers, blast-radius risk), `cycles`, `deep-chains --min-depth 5` (longest condensed dependency-component chains — flags fragile long call paths).
|
|
56
|
+
Done when: the explanation names the risky symbols, or states that no relevant risks appeared.
|
|
85
57
|
|
|
86
|
-
|
|
58
|
+
## Route by question type
|
|
87
59
|
|
|
88
|
-
|
|
60
|
+
| Question | Commands |
|
|
61
|
+
|---|---|
|
|
62
|
+
| Function behavior | `code`, `hierarchy`, `call-graph`, `dataflow`, `complexity` |
|
|
63
|
+
| User-action flow | `files` or `outline` to find the handler, then `code` and `call-graph` down the path |
|
|
64
|
+
| Safe to change? | `change-surface`, `affected`, `similar` |
|
|
65
|
+
| Module architecture | `system`, `surface`, `deep-chains`, `bottlenecks`, `cycles`, `hotspots` (`hotspots` lists the most-referenced symbols — choke points where any change ripples widely) |
|
|
66
|
+
| Relationship between two units | `coupling`, `similar --plan`, `similar-chains` |
|
|
89
67
|
|
|
90
|
-
|
|
91
|
-
scip-query dataflow <symbol-or-variable>
|
|
92
|
-
scip-query slice <symbol-or-variable>
|
|
93
|
-
scip-query slice <symbol-or-variable> --forward
|
|
94
|
-
```
|
|
68
|
+
## Other owned commands
|
|
95
69
|
|
|
96
|
-
|
|
70
|
+
These four don't have a dedicated workflow step above but come up constantly once you're inside a module — use them as needed, not in sequence:
|
|
97
71
|
|
|
98
|
-
|
|
72
|
+
- **`imported-by <symbol>`** — which files import this symbol. Run before changing or removing a shared export, to know exactly which files to check. If the list is empty, confirm with `dead` before deleting rather than trusting the empty result alone.
|
|
73
|
+
- **`unused-imports <file>`** — imports not referenced in that same file. Run on a file you're about to touch, or one a de-bloat pass flagged; remove only entries you've confirmed are safe.
|
|
74
|
+
- **`similar-signatures`** — functions with near-identical type signatures. Run when hunting duplicate-shaped functions to consolidate. This is a *good-with-review* signal — check each match with `code` before merging, don't act on the list alone.
|
|
75
|
+
- **`co-change [file]`** — files that change together in git history with no dependency edge between them: hidden coupling. Run when `change-surface` or `affected` reports a small blast radius but you suspect the graph is missing something. This is also *good-with-review* — a paired file is a prompt to check manually, not proof the current change must touch it too. (`diff-gate`'s `co-change-partner` check is the automated version of this same signal.)
|
|
99
76
|
|
|
100
|
-
|
|
101
|
-
scip-query complexity <symbol>
|
|
102
|
-
scip-query complexity-hotspots
|
|
103
|
-
scip-query bottlenecks
|
|
104
|
-
scip-query change-surface <file>
|
|
105
|
-
scip-query cycles
|
|
106
|
-
scip-query deep-chains --min-depth 5
|
|
107
|
-
```
|
|
77
|
+
## Report the exploration
|
|
108
78
|
|
|
109
|
-
|
|
79
|
+
Cover: overview, entry points, call flow, data flow, dependencies, consumers, risk areas, and the command citation that proves each claim. For every conclusion-bearing claim, name the rival explanation you considered and the evidence that ruled it out. Exploration is complete only when the reader can see what was proven, what remains unverified, and which conclusions rest on a discriminator rather than a single story.
|
|
110
80
|
|
|
111
|
-
##
|
|
81
|
+
## Deeper references
|
|
112
82
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
-
|
|
116
|
-
|
|
117
|
-
- Relationship between units: `coupling`, `similar --plan`, `similar-chains`.
|
|
83
|
+
| Need | Reference |
|
|
84
|
+
|---|---|
|
|
85
|
+
| Entering an unfamiliar language (TypeScript, Python, Java, Scala, Kotlin, Rust, Go, C, C++, Ruby, C#, Visual Basic, Dart, PHP, Clojure/ClojureScript, Vue) and picking the highest-signal commands, including de-bloat sets | `references/language-playbook.md` |
|
|
86
|
+
| Turning exploration evidence into an HTML flow, dependency, data-flow, or blast-radius diagram | `references/diagrams.md` |
|
|
118
87
|
|
|
119
|
-
##
|
|
88
|
+
## Constraint
|
|
120
89
|
|
|
121
|
-
|
|
90
|
+
scip-explore's OpenAI-agent interface binds to display name "SCIP Explore" with default prompt "Use $scip-explore to understand this system end to end with SCIP-backed code evidence."
|