scip-query 0.23.0 → 0.26.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 +491 -2
- package/README.md +111 -122
- package/dist/augment-vue-worker.js +1 -1
- package/dist/by-kind-PRVFAGTQ.js +2 -0
- package/dist/call-graph-DVPAQV2F.js +2 -0
- package/dist/call-graph-evidence-CUtj8V2I.d.ts +19 -0
- package/dist/chunk-2FSBGL5P.js +2 -0
- package/dist/chunk-2HLAFUCY.js +2 -0
- package/dist/chunk-2IWUT6CJ.js +3 -0
- package/dist/chunk-2KNN7GTQ.js +2 -0
- package/dist/chunk-2LHXRE2B.js +8 -0
- package/dist/{chunk-EG2CPZMJ.js → chunk-2YXE77TJ.js} +2 -2
- package/dist/chunk-36SGVCGX.js +2 -0
- package/dist/chunk-3ABBFPTP.js +2 -0
- package/dist/chunk-3IVFU4FD.js +3 -0
- package/dist/chunk-3JIQS44J.js +7 -0
- package/dist/chunk-3ZRB6DNK.js +7 -0
- package/dist/{chunk-6YTSKJJ3.js → chunk-42EOW5VI.js} +1 -1
- package/dist/{chunk-6I6L7Z62.js → chunk-4BHGBMNO.js} +2 -2
- package/dist/chunk-4BP3UBDG.js +2 -0
- package/dist/chunk-4D6RO7G4.js +2 -0
- package/dist/chunk-4FEWQ6RH.js +2 -0
- package/dist/chunk-4IGEOBG7.js +2 -0
- package/dist/chunk-4QZXBUKC.js +2 -0
- package/dist/chunk-4WBDEVX2.js +4 -0
- package/dist/chunk-4WCUBZU3.js +8 -0
- package/dist/chunk-4WTUBQ36.js +40 -0
- package/dist/chunk-4XQ4O6IM.js +3 -0
- package/dist/chunk-55UQAMZO.js +4 -0
- package/dist/chunk-5D2LVK7O.js +125 -0
- package/dist/chunk-5IYJ56TT.js +2 -0
- package/dist/chunk-5PLMJC7Q.js +2 -0
- package/dist/chunk-5TNQJUR2.js +5 -0
- package/dist/chunk-62BDNPMI.js +2 -0
- package/dist/chunk-64DZ5TXR.js +7 -0
- package/dist/chunk-65245JCM.js +2 -0
- package/dist/chunk-6FFVZZL4.js +2 -0
- package/dist/chunk-6KO5JHAR.js +2 -0
- package/dist/chunk-6LRXOOSX.js +2 -0
- package/dist/chunk-6LSEIIF7.js +2 -0
- package/dist/chunk-6YMNWD3H.js +6 -0
- package/dist/chunk-72AD6ZRR.js +5 -0
- package/dist/chunk-73AAKPUC.js +4 -0
- package/dist/chunk-76CZ77DF.js +2 -0
- package/dist/chunk-7VPEEAAG.js +2 -0
- package/dist/chunk-7WTPQ4NX.js +14 -0
- package/dist/chunk-7Y5T6XDP.js +2 -0
- package/dist/chunk-A2IIGFMJ.js +5 -0
- package/dist/chunk-AB5KCTEV.js +2 -0
- package/dist/chunk-AC566WBP.js +6 -0
- package/dist/chunk-AGWFSTXC.js +3 -0
- package/dist/chunk-AOSIYPTA.js +2 -0
- package/dist/chunk-AUVEWPIF.js +2 -0
- package/dist/chunk-B56T42J3.js +25 -0
- package/dist/chunk-BIQEF5NE.js +2 -0
- package/dist/chunk-BL6XJKTA.js +3 -0
- package/dist/chunk-BMKOQJRI.js +2 -0
- package/dist/chunk-BOZ4EXBB.js +3 -0
- package/dist/chunk-BUTWYEPH.js +2 -0
- package/dist/chunk-BZB4QPIP.js +2 -0
- package/dist/{chunk-ILTDAWEF.js → chunk-CE357GEE.js} +4 -4
- package/dist/chunk-CFN45HFP.js +2 -0
- package/dist/chunk-CFYMZFXT.js +368 -0
- package/dist/chunk-CN5EH7O3.js +2 -0
- package/dist/chunk-D254DNNQ.js +4 -0
- package/dist/chunk-D3FDISIC.js +2 -0
- package/dist/chunk-D3NX5XIE.js +3 -0
- package/dist/chunk-DA7RPPDF.js +3 -0
- package/dist/chunk-DDMC3FON.js +3 -0
- package/dist/chunk-DIO3FUSG.js +2 -0
- package/dist/chunk-DJ2NNSUK.js +3 -0
- package/dist/chunk-DKYQIM3C.js +18 -0
- package/dist/{chunk-JTQVMR42.js → chunk-DOOEL2IV.js} +2 -2
- package/dist/chunk-DVFP6PZI.js +2 -0
- package/dist/chunk-E3FDPXZK.js +2 -0
- package/dist/chunk-E7YNJLCB.js +2 -0
- package/dist/chunk-EFGW5JPH.js +2 -0
- package/dist/chunk-EJVTR244.js +13 -0
- package/dist/chunk-EOV7RTRZ.js +2 -0
- package/dist/chunk-ETOIKRHO.js +2 -0
- package/dist/chunk-EYK3ZAO2.js +3 -0
- package/dist/chunk-F2V2LPET.js +52 -0
- package/dist/chunk-F4LUHJTF.js +2 -0
- package/dist/chunk-F4PUT6IT.js +2 -0
- package/dist/chunk-F56GCXXS.js +5 -0
- package/dist/chunk-FC2EVQRM.js +2 -0
- package/dist/chunk-FL7NBMHP.js +3 -0
- package/dist/chunk-FMRN2TRL.js +3 -0
- package/dist/chunk-FVULPZDF.js +20 -0
- package/dist/chunk-GCKCF5FL.js +43 -0
- package/dist/chunk-GH2PYF46.js +2 -0
- package/dist/chunk-GHJAGXIP.js +2 -0
- package/dist/{chunk-WIWY3CRX.js → chunk-GMVSHUKZ.js} +2 -2
- package/dist/chunk-GS6KDO4R.js +2 -0
- package/dist/chunk-GUUBXNN7.js +2 -0
- package/dist/chunk-GVWX5T43.js +80 -0
- package/dist/chunk-GZKFETP5.js +2 -0
- package/dist/chunk-H4EQHO6J.js +9 -0
- package/dist/chunk-H73WY2RM.js +2 -0
- package/dist/chunk-H75GSPRV.js +60 -0
- package/dist/chunk-HDR3AHSV.js +61 -0
- package/dist/chunk-HQBSL74Y.js +2 -0
- package/dist/chunk-HRRFKWPZ.js +2 -0
- package/dist/chunk-HXENDJC6.js +2 -0
- package/dist/chunk-IIBAZNSW.js +21 -0
- package/dist/chunk-INLMWEUU.js +12 -0
- package/dist/chunk-IWQPAF4F.js +2 -0
- package/dist/chunk-IZJ6YUKP.js +35 -0
- package/dist/chunk-J2TMAIN5.js +60 -0
- package/dist/chunk-J5FJMODQ.js +142 -0
- package/dist/chunk-J7HZPIO3.js +2 -0
- package/dist/chunk-JEVRKFRL.js +2 -0
- package/dist/chunk-JFXSGAEB.js +30 -0
- package/dist/chunk-JVRTHGFS.js +3 -0
- package/dist/chunk-JYWEX7RR.js +360 -0
- package/dist/chunk-K3YL22N6.js +2 -0
- package/dist/chunk-K4CN7GXK.js +12 -0
- package/dist/chunk-K5TBVXU4.js +30 -0
- package/dist/chunk-KDDIE2DP.js +9 -0
- package/dist/chunk-KHWRRPV4.js +2 -0
- package/dist/chunk-KI6NBKDY.js +14 -0
- package/dist/chunk-KU3QRSTH.js +2 -0
- package/dist/chunk-KZBJWZJB.js +2 -0
- package/dist/chunk-L7GFM3NP.js +3 -0
- package/dist/chunk-LMO6PK3V.js +35 -0
- package/dist/chunk-LN4YXJJU.js +2 -0
- package/dist/chunk-LOVIZBJ4.js +43 -0
- package/dist/chunk-LPCRK4A2.js +11 -0
- package/dist/chunk-MMHZKBFA.js +2 -0
- package/dist/{chunk-M2O5NY6W.js → chunk-MOQQBQRD.js} +2 -2
- package/dist/chunk-N2WN6I3L.js +2 -0
- package/dist/chunk-N3ORQT7L.js +2 -0
- package/dist/chunk-NAZ3RAIW.js +2 -0
- package/dist/chunk-NDUNO5JQ.js +2 -0
- package/dist/chunk-NEIWRNAZ.js +4 -0
- package/dist/chunk-NJJMVD65.js +2 -0
- package/dist/chunk-NLOQOBXI.js +20 -0
- package/dist/chunk-NOLZOVCU.js +2 -0
- package/dist/chunk-NOWINRRN.js +2 -0
- package/dist/chunk-NZAXKGRL.js +16 -0
- package/dist/chunk-O2C4UILI.js +2 -0
- package/dist/chunk-O3RHA6ZT.js +3 -0
- package/dist/chunk-O4UZSPPI.js +3 -0
- package/dist/chunk-OGFV2BUX.js +2 -0
- package/dist/chunk-OZCJXZK6.js +499 -0
- package/dist/chunk-P6ODM7BY.js +2 -0
- package/dist/{chunk-XBGWL66K.js → chunk-PAVGPRHJ.js} +2 -2
- package/dist/chunk-PH52RA7D.js +2 -0
- package/dist/chunk-PKN354TH.js +3 -0
- package/dist/chunk-PWOASWEG.js +11 -0
- package/dist/chunk-QIWXRW72.js +2 -0
- package/dist/chunk-QJRMOK5N.js +2 -0
- package/dist/{chunk-YXPUP5G2.js → chunk-QOIXNWQR.js} +2 -2
- package/dist/chunk-QXEUDXBT.js +3 -0
- package/dist/chunk-QYUVVBMR.js +6 -0
- package/dist/chunk-QZ7KQZRN.js +2 -0
- package/dist/chunk-R6LQBUDH.js +2 -0
- package/dist/chunk-RBS42E55.js +20 -0
- package/dist/chunk-RSJKPCFX.js +26 -0
- package/dist/chunk-S6CZA3MV.js +2 -0
- package/dist/chunk-STMVAHJP.js +2 -0
- package/dist/chunk-SYVPTTVW.js +2 -0
- package/dist/chunk-T3I6NHBH.js +2 -0
- package/dist/chunk-T6DK3ZP7.js +2 -0
- package/dist/chunk-TKD34PHN.js +4 -0
- package/dist/chunk-TNNQFH7W.js +2 -0
- package/dist/chunk-TNV7SSUF.js +2 -0
- package/dist/chunk-TO7ZR3EH.js +8 -0
- package/dist/chunk-TOU3CHK4.js +2 -0
- package/dist/chunk-TRBI4UKT.js +2 -0
- package/dist/chunk-TZCVNCAN.js +4 -0
- package/dist/chunk-U4LZA5LL.js +3 -0
- package/dist/chunk-U5RIG3JP.js +3 -0
- package/dist/chunk-UP5KXN2I.js +2 -0
- package/dist/chunk-UQFR3NDH.js +5 -0
- package/dist/chunk-UXYXF7GV.js +2 -0
- package/dist/chunk-VB3GOKOS.js +2 -0
- package/dist/chunk-VF5JZICY.js +2 -0
- package/dist/chunk-VTY3VK6E.js +2 -0
- package/dist/chunk-VX2O4RIS.js +2 -0
- package/dist/chunk-WKPV2TDZ.js +2 -0
- package/dist/chunk-WOFQ5DTB.js +2 -0
- package/dist/chunk-WS4C6TCK.js +2 -0
- package/dist/chunk-WXU3DGPU.js +2 -0
- package/dist/chunk-X6RMKHJQ.js +81 -0
- package/dist/{chunk-4ILJCCXV.js → chunk-XHMN6ZX7.js} +2 -2
- package/dist/chunk-XHTVFLWW.js +2 -0
- package/dist/chunk-XKIDJCIK.js +2 -0
- package/dist/chunk-XTYTYZPT.js +2 -0
- package/dist/chunk-Y2JHHTTA.js +2 -0
- package/dist/chunk-YGVRMGYN.js +4 -0
- package/dist/chunk-YNQCGEQE.js +2 -0
- package/dist/chunk-YOQVEXVE.js +14 -0
- package/dist/chunk-YRT2WLYY.js +2 -0
- package/dist/chunk-YTAP5Y2G.js +2 -0
- package/dist/chunk-YTYWI7VB.js +2 -0
- package/dist/chunk-YULZRALL.js +2 -0
- package/dist/chunk-Z33WQG4Q.js +2 -0
- package/dist/chunk-ZGTYGDMF.js +16 -0
- package/dist/chunk-ZHMRSZFD.js +43 -0
- package/dist/chunk-ZHSP366W.js +10 -0
- package/dist/chunk-ZIBYCYKK.js +7 -0
- package/dist/{chunk-GAS2LJMP.js → chunk-ZLADLUE6.js} +3 -3
- package/dist/chunk-ZO4YXUT6.js +4 -0
- package/dist/{chunk-HYO3NP5Q.js → chunk-ZR4HBC2H.js} +2 -2
- package/dist/cli-main.js +6 -6
- package/dist/cli.js +1 -1
- package/dist/{code-B17qEMbt.d.ts → code-BNyrCF3_.d.ts} +3 -2
- package/dist/code-IL5WH3NZ.js +2 -0
- package/dist/code-result-json-ANTBEDFP.js +4 -0
- package/dist/command-descriptors-HEEMDHTU.js +222 -0
- package/dist/deps-EOWFC6FD.js +2 -0
- package/dist/direct-navigation-Y5B6OSIQ.js +3 -0
- package/dist/{exploration-topology-BG4v30HZ.d.ts → exploration-topology-CSgEyAz-.d.ts} +3 -1
- package/dist/files-K4AI3JUM.js +2 -0
- package/dist/frontend-profile-roles-D7eCum8P.d.ts +10 -0
- package/dist/{health-CPp2Jf1Z.d.ts → health-BtfmNrfa.d.ts} +58 -74
- package/dist/hierarchy-6W5NDIFI.js +2 -0
- package/dist/imports-WH365QY4.js +2 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.js +1 -1
- package/dist/members-K3PHMF5S.js +2 -0
- package/dist/methods-E7KVMBX4.js +2 -0
- package/dist/output-continuation-command-BJSY67SN.js +3 -0
- package/dist/output-pagination-UZJ5ACIX.js +24 -0
- package/dist/postinstall.js +1 -1
- package/dist/project-reindex-EP24WT4X.js +3 -0
- package/dist/queries/affected.js +1 -1
- package/dist/queries/architecture.d.ts +15 -4
- package/dist/queries/architecture.js +1 -1
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.d.ts +3 -1
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.d.ts +1 -0
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.d.ts +3 -3
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.d.ts +20 -2
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.d.ts +1 -1
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity.d.ts +6 -3
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/context.d.ts +1 -7
- package/dist/queries/context.js +1 -1
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dead.d.ts +2 -0
- package/dist/queries/dead.js +1 -1
- package/dist/queries/decorative-checkers.js +1 -1
- package/dist/queries/dependence-slice.d.ts +46 -22
- package/dist/queries/dependence-slice.js +1 -1
- package/dist/queries/dependency-depth.d.ts +1 -7
- package/dist/queries/dependency-depth.js +1 -1
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-impact.d.ts +3 -1
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +1 -1
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +29 -2
- package/dist/queries/duplicate-bodies.js +1 -1
- package/dist/queries/entry-map.d.ts +2 -4
- package/dist/queries/entry-map.js +1 -1
- package/dist/queries/evidence.d.ts +121 -61
- package/dist/queries/evidence.js +1 -1
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.d.ts +1 -1
- 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 +1 -1
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.d.ts +1 -0
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.d.ts +3 -3
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +17 -65
- package/dist/queries/index.js +1 -1
- package/dist/queries/locality-candidates.d.ts +4 -4
- 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.js +1 -1
- package/dist/queries/not-implemented.d.ts +2 -6
- package/dist/queries/not-implemented.js +1 -1
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.d.ts +9 -1
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/react-component-duplicates.d.ts +19 -3
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +22 -3
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.d.ts +17 -3
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.d.ts +4 -14
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/refs.d.ts +4 -1
- package/dist/queries/refs.js +1 -1
- package/dist/queries/review.d.ts +188 -0
- package/dist/queries/review.js +2 -0
- package/dist/queries/similar-files.d.ts +7 -10
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +19 -1
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice-cohesion.d.ts +205 -0
- package/dist/queries/slice-cohesion.js +2 -0
- package/dist/queries/source-inspection.d.ts +6 -202
- package/dist/queries/source-inspection.js +1 -1
- package/dist/queries/source-search.d.ts +2 -3
- package/dist/queries/source-search.js +1 -1
- package/dist/queries/stats.d.ts +1 -0
- package/dist/queries/stats.js +1 -1
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system.d.ts +4 -2
- package/dist/queries/system.js +1 -1
- package/dist/queries/test-quality.d.ts +1 -1
- package/dist/queries/test-quality.js +1 -1
- package/dist/queries/twin-drift.d.ts +23 -7
- package/dist/queries/twin-drift.js +1 -1
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.d.ts +3 -15
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/query-service-fastpath.js +5 -5
- package/dist/query-service-server.js +4 -4
- package/dist/refs-CCBJG7WK.js +2 -0
- package/dist/refs-pagination-DRNLVU4S.js +2 -0
- package/dist/reindex-worker.js +79 -29
- package/dist/reindex.js +45 -45
- package/dist/repository-cache-worker.js +2 -0
- package/dist/runtime.d.ts +8 -8
- package/dist/runtime.js +3 -4
- 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/service-queries-2WAJI7R6.js +6 -0
- package/dist/source-inspection-91U9zdO3.d.ts +341 -0
- package/dist/{source-search-types-Dwz8KeuW.d.ts → source-search-types-DWGYNg8M.d.ts} +15 -2
- package/dist/stats-G7DIV6VU.js +2 -0
- package/dist/surface-IO55UALI.js +2 -0
- package/dist/system-ZBMSHJXU.js +2 -0
- package/dist/{queries/trace.d.ts → trace-BMjw3prn.d.ts} +1 -18
- package/dist/typescript-indexer.js +2 -0
- package/dist/typescript-mailbox-worker.js +1 -1
- package/dist/watch-server.js +3 -3
- package/docs/AGENT_GUIDE.md +19 -128
- package/docs/CLI_JSON_OUTPUT.md +21 -17
- package/docs/COMMAND_REFERENCE.md +34 -49
- package/docs/CURRENT_COMMANDS.md +123 -0
- package/docs/DETECTOR_EVIDENCE_CONTRACTS.md +0 -40
- package/docs/DETECTOR_GUIDE.md +55 -12
- package/docs/PRODUCT_VISION.md +135 -0
- package/docs/PROPERTY_TESTING.md +73 -0
- package/docs/REVIEW.md +76 -0
- package/docs/SKILLS.md +51 -0
- package/docs/WINDOWS_SIDECAR_RELEASE.md +12 -3
- package/docs/accuracy-audit-checklist.md +70 -13
- package/docs/analyzer-inventory.md +2 -2
- package/docs/locality-analyzer-design.md +9 -9
- package/package.json +18 -80
- package/scripts/evidence-product-contract.mjs +7 -3
- package/scripts/record-review-coverage.mjs +118 -0
- package/scripts/scip-windows-provenance.mjs +29 -19
- package/skills/scip-architecture-review/SKILL.md +57 -0
- package/skills/scip-architecture-review/agents/openai.yaml +4 -0
- package/skills/scip-architecture-review/references/design-checks.md +17 -0
- package/skills/scip-explore/SKILL.md +15 -59
- package/skills/scip-explore/agents/openai.yaml +3 -3
- package/skills/scip-explore/references/external-evidence.md +2 -2
- package/skills/scip-explore/references/information-model.md +26 -29
- package/skills/scip-explore/scripts/capture-evidence.mjs +68 -34
- package/skills/scip-integrity-audit/SKILL.md +53 -181
- package/skills/scip-integrity-audit/agents/openai.yaml +3 -3
- package/skills/scip-integrity-audit/references/integrity-probes.md +27 -0
- package/skills/scip-plan/SKILL.md +39 -65
- package/skills/scip-plan/agents/openai.yaml +2 -2
- package/skills/scip-query/SKILL.md +28 -81
- package/skills/scip-query/agents/openai.yaml +2 -2
- package/skills/scip-query/references/command-guide.md +169 -0
- package/skills/scip-setup/SKILL.md +4 -2
- package/skills/scip-setup/agents/openai.yaml +3 -3
- package/dist/by-kind-XI2CSWEY.js +0 -2
- package/dist/call-graph-UONR6JR5.js +0 -2
- package/dist/call-graph-evidence-lZa2dwQA.d.ts +0 -11
- package/dist/chunk-26CT72HM.js +0 -2
- package/dist/chunk-2E7CX53V.js +0 -2
- package/dist/chunk-2GRUZAQF.js +0 -43
- package/dist/chunk-2LDBDR6J.js +0 -29
- package/dist/chunk-2OOY75BW.js +0 -2
- package/dist/chunk-2R3V3PSD.js +0 -4
- package/dist/chunk-2WC2OEDO.js +0 -4
- package/dist/chunk-35NLDRZC.js +0 -2
- package/dist/chunk-3AF4TUFK.js +0 -3
- package/dist/chunk-3D3QG236.js +0 -2
- package/dist/chunk-3FHOF22C.js +0 -21
- package/dist/chunk-3JKSW6LJ.js +0 -2
- package/dist/chunk-3L2ZBPEX.js +0 -133
- package/dist/chunk-3PJABJSU.js +0 -2
- package/dist/chunk-3SVF22I5.js +0 -2
- package/dist/chunk-3WR4E3A3.js +0 -3
- package/dist/chunk-4FTZ4P5G.js +0 -2
- package/dist/chunk-4UX2F3JX.js +0 -2
- package/dist/chunk-4WNW27SX.js +0 -2
- package/dist/chunk-5ENOG4VP.js +0 -61
- package/dist/chunk-64BFSI5I.js +0 -2
- package/dist/chunk-66DVSJQG.js +0 -455
- package/dist/chunk-6HFCYNYE.js +0 -9
- package/dist/chunk-6PQNKL3G.js +0 -3
- package/dist/chunk-6V5CNXL6.js +0 -2
- package/dist/chunk-6VVV4WRR.js +0 -4
- package/dist/chunk-7BWFZPPZ.js +0 -2
- package/dist/chunk-7CYG22FH.js +0 -2
- package/dist/chunk-7F45LJKI.js +0 -2
- package/dist/chunk-7IWV2EG3.js +0 -3
- package/dist/chunk-7KCZELVM.js +0 -2
- package/dist/chunk-AFHTBORT.js +0 -2
- package/dist/chunk-AVRYW5OZ.js +0 -2
- package/dist/chunk-B3X6KU75.js +0 -2
- package/dist/chunk-B5D7QPBE.js +0 -4
- package/dist/chunk-BBCIS4DX.js +0 -16
- package/dist/chunk-BDUVI7TO.js +0 -3
- package/dist/chunk-BE7ZZTMC.js +0 -2
- package/dist/chunk-BHVUJOCQ.js +0 -3
- package/dist/chunk-BJT7LSPK.js +0 -3
- package/dist/chunk-BKVWUP7Y.js +0 -2
- package/dist/chunk-BQGB4HBD.js +0 -2
- package/dist/chunk-BRV7PIFF.js +0 -2
- package/dist/chunk-CEEZJXEF.js +0 -2
- package/dist/chunk-CIYLO6SI.js +0 -7
- package/dist/chunk-CJZXN4NU.js +0 -2
- package/dist/chunk-CNO7TOKL.js +0 -2
- package/dist/chunk-COF23M5F.js +0 -2
- package/dist/chunk-CWFP7GM5.js +0 -2
- package/dist/chunk-D2DHWI3D.js +0 -2
- package/dist/chunk-D4N5SQ2M.js +0 -4
- package/dist/chunk-DBRSYFXR.js +0 -2
- package/dist/chunk-DHUIOLDT.js +0 -2
- package/dist/chunk-DIRJWYBM.js +0 -6
- package/dist/chunk-DIUFNHRJ.js +0 -35
- package/dist/chunk-DRENNWRG.js +0 -2
- package/dist/chunk-DTZCKZEU.js +0 -4
- package/dist/chunk-DULC3QFP.js +0 -5
- package/dist/chunk-DYGHBZ2N.js +0 -16
- package/dist/chunk-E5R6AQ73.js +0 -40
- package/dist/chunk-E73UNJTF.js +0 -38
- package/dist/chunk-EKV5HX33.js +0 -2
- package/dist/chunk-EQHFIL6T.js +0 -3
- package/dist/chunk-ESIQ66Z7.js +0 -2
- package/dist/chunk-EVFUMY4R.js +0 -3
- package/dist/chunk-F7DY272B.js +0 -2
- package/dist/chunk-FBN2FGXG.js +0 -2
- package/dist/chunk-FDLOBR6P.js +0 -4
- package/dist/chunk-FESCRNVV.js +0 -5
- package/dist/chunk-FFRKR4EQ.js +0 -2
- package/dist/chunk-FGA2U4OR.js +0 -8
- package/dist/chunk-FIQRSHVM.js +0 -2
- package/dist/chunk-FPYLNQPT.js +0 -2
- package/dist/chunk-FRUSVINH.js +0 -2
- package/dist/chunk-GSP44ENC.js +0 -2
- package/dist/chunk-GUFSG5TX.js +0 -2
- package/dist/chunk-GYIZ4NXB.js +0 -2
- package/dist/chunk-GZIUDL6G.js +0 -2
- package/dist/chunk-H5EXS3HM.js +0 -2
- package/dist/chunk-HCXEQRFF.js +0 -18
- package/dist/chunk-HEHOQQKH.js +0 -2
- package/dist/chunk-HKGFPJ4T.js +0 -4
- package/dist/chunk-HLZTEXRA.js +0 -2
- package/dist/chunk-HOENASQM.js +0 -3
- package/dist/chunk-HVF5VBG6.js +0 -2
- package/dist/chunk-I55I7XXP.js +0 -2
- package/dist/chunk-IDFEUFKS.js +0 -2
- package/dist/chunk-IHGQTTVW.js +0 -2
- package/dist/chunk-IICPE7B2.js +0 -20
- package/dist/chunk-IL676XCC.js +0 -18
- package/dist/chunk-IW5XQG5G.js +0 -2
- package/dist/chunk-IZDPJ2QI.js +0 -2
- package/dist/chunk-J66VOFW6.js +0 -5
- package/dist/chunk-JFMEXGFE.js +0 -2
- package/dist/chunk-JGKUET5J.js +0 -3
- package/dist/chunk-JS4PGXMV.js +0 -3
- package/dist/chunk-JWTGMPIT.js +0 -80
- package/dist/chunk-JYR66JN5.js +0 -5
- package/dist/chunk-KFOYCQAJ.js +0 -9
- package/dist/chunk-KLFEXGQA.js +0 -2
- package/dist/chunk-KMVGRIO2.js +0 -2
- package/dist/chunk-KYSDI3GE.js +0 -5
- package/dist/chunk-L6PJPETJ.js +0 -29
- package/dist/chunk-LDVT66YM.js +0 -2
- package/dist/chunk-LEECKFCJ.js +0 -2
- package/dist/chunk-LMZ5PRUV.js +0 -2
- package/dist/chunk-LQRQN2XA.js +0 -2
- package/dist/chunk-LXABEJX3.js +0 -2
- package/dist/chunk-MNV5FSBW.js +0 -3
- package/dist/chunk-MPQ4OTBM.js +0 -2
- package/dist/chunk-MTDBHTSF.js +0 -2
- package/dist/chunk-MV3CDXPI.js +0 -38
- package/dist/chunk-MWN53KRN.js +0 -60
- package/dist/chunk-MXNGIEPU.js +0 -3
- package/dist/chunk-N2ZSIIGR.js +0 -117
- package/dist/chunk-N5B2NILC.js +0 -5
- package/dist/chunk-NJITK2GP.js +0 -2
- package/dist/chunk-NOGJXYFO.js +0 -2
- package/dist/chunk-NOYBFVJA.js +0 -554
- package/dist/chunk-NWQXSFFU.js +0 -3
- package/dist/chunk-ODDUPDP7.js +0 -13
- package/dist/chunk-OLIWTZI3.js +0 -3
- package/dist/chunk-OLNV6I6U.js +0 -2
- package/dist/chunk-OR2E3AGZ.js +0 -2
- package/dist/chunk-OSR2GEHQ.js +0 -2
- package/dist/chunk-OSSESPDX.js +0 -3
- package/dist/chunk-OWOOWNJ5.js +0 -7
- package/dist/chunk-P42EIXTA.js +0 -2
- package/dist/chunk-PJFGPYTU.js +0 -2
- package/dist/chunk-PP7KNN7L.js +0 -2
- package/dist/chunk-PU7T5QYQ.js +0 -2
- package/dist/chunk-PWWAJSKV.js +0 -74
- package/dist/chunk-PZL5T7SU.js +0 -73
- package/dist/chunk-QBE3YX64.js +0 -23
- package/dist/chunk-QGVTFRY2.js +0 -7
- package/dist/chunk-QOJONDS7.js +0 -2
- package/dist/chunk-QU5XRYB5.js +0 -4
- package/dist/chunk-QUU5OBVK.js +0 -11
- package/dist/chunk-RBLQNW26.js +0 -20
- package/dist/chunk-RTQ7NEKG.js +0 -81
- package/dist/chunk-SQXRS7BG.js +0 -4
- package/dist/chunk-SSK6LDPC.js +0 -2
- package/dist/chunk-SZHGTCPP.js +0 -7
- package/dist/chunk-T4N4P2K5.js +0 -16
- package/dist/chunk-TA3QKLLU.js +0 -2
- package/dist/chunk-TEBQMNVI.js +0 -43
- package/dist/chunk-TPFHAQ2G.js +0 -2
- package/dist/chunk-TQPCBMWT.js +0 -5
- package/dist/chunk-TQZV7KV4.js +0 -2
- package/dist/chunk-TRNAEQ6P.js +0 -3
- package/dist/chunk-TY7CRN3Z.js +0 -2
- package/dist/chunk-UHFYCMZO.js +0 -35
- package/dist/chunk-UICY4GTQ.js +0 -7
- package/dist/chunk-UVGEWT4Y.js +0 -26
- package/dist/chunk-UXW33INU.js +0 -29
- package/dist/chunk-VMPRET3I.js +0 -5
- package/dist/chunk-VNLGKHS6.js +0 -6
- package/dist/chunk-VQILFTEH.js +0 -2
- package/dist/chunk-VUPHCS7Y.js +0 -57
- package/dist/chunk-VVZSBTSU.js +0 -23
- package/dist/chunk-VZRNID6A.js +0 -2
- package/dist/chunk-W5OXRYGE.js +0 -7
- package/dist/chunk-W6STWDQI.js +0 -57
- package/dist/chunk-W7CXK74K.js +0 -2
- package/dist/chunk-WB3WYIRE.js +0 -4
- package/dist/chunk-WDNVY4E7.js +0 -20
- package/dist/chunk-WK46TNUM.js +0 -3
- package/dist/chunk-WNTFFKAX.js +0 -12
- package/dist/chunk-WOIKCX6A.js +0 -2
- package/dist/chunk-WUN6KBHV.js +0 -2
- package/dist/chunk-WYCTJDVR.js +0 -2
- package/dist/chunk-WYPL7GF7.js +0 -2
- package/dist/chunk-XDAUYDFT.js +0 -2
- package/dist/chunk-XDQMU3BT.js +0 -2
- package/dist/chunk-XFA4SSO3.js +0 -3
- package/dist/chunk-XGZEP6GR.js +0 -8
- package/dist/chunk-XPDPNWTQ.js +0 -368
- package/dist/chunk-XRYABF57.js +0 -8
- package/dist/chunk-YBGKCQIS.js +0 -2
- package/dist/chunk-YEN6CYC7.js +0 -16
- package/dist/chunk-YF5IB2LF.js +0 -2
- package/dist/chunk-YI2AWIHC.js +0 -3
- package/dist/chunk-YPWBKGFU.js +0 -2
- package/dist/chunk-YPWHBBIS.js +0 -2
- package/dist/chunk-YSH6U3L4.js +0 -3
- package/dist/chunk-YU5DZUZI.js +0 -10
- package/dist/chunk-YWO5DDRC.js +0 -16
- package/dist/chunk-Z4CDXYNQ.js +0 -2
- package/dist/chunk-ZF5KHH7C.js +0 -2
- package/dist/chunk-ZOHS7AQV.js +0 -21
- package/dist/chunk-ZTI4SBFV.js +0 -3
- package/dist/code-MI6F2TTU.js +0 -2
- package/dist/code-result-json-FXALY4HE.js +0 -2
- package/dist/command-descriptors-P34VABY5.js +0 -343
- package/dist/dataflow-4KEMJPC6.js +0 -2
- package/dist/dependence-slice-R7FPWD5M.js +0 -2
- package/dist/deps-7EMQUYUT.js +0 -2
- package/dist/direct-navigation-6YO234F2.js +0 -3
- package/dist/entry-map-KOOLR26E.js +0 -2
- package/dist/files-OPIPJIGZ.js +0 -2
- package/dist/graph-evidence-Bjyky2V4.d.ts +0 -126
- package/dist/hierarchy-QPD2CAER.js +0 -2
- package/dist/imports-M6HUXRXC.js +0 -2
- package/dist/members-I5MEFOCT.js +0 -2
- package/dist/methods-5JYGGHXA.js +0 -2
- package/dist/next-anchor-candidates-BwMczMvX.d.ts +0 -90
- package/dist/output-continuation-command-UPQAAKBP.js +0 -3
- package/dist/output-pagination-3OFL2MJV.js +0 -19
- package/dist/project-reindex-UKKQ5PLS.js +0 -3
- package/dist/queries/anchors.d.ts +0 -123
- package/dist/queries/anchors.js +0 -2
- package/dist/queries/complexity-hotspots.d.ts +0 -40
- package/dist/queries/complexity-hotspots.js +0 -2
- package/dist/queries/convergence.d.ts +0 -33
- package/dist/queries/convergence.js +0 -2
- package/dist/queries/dataflow.d.ts +0 -77
- package/dist/queries/dataflow.js +0 -2
- package/dist/queries/deep-chains.d.ts +0 -5
- package/dist/queries/deep-chains.js +0 -2
- package/dist/queries/extract-candidates.d.ts +0 -52
- package/dist/queries/extract-candidates.js +0 -2
- package/dist/queries/isolated.d.ts +0 -24
- package/dist/queries/isolated.js +0 -2
- package/dist/queries/plan-context.d.ts +0 -33
- package/dist/queries/plan-context.js +0 -2
- package/dist/queries/reference-neighborhood.d.ts +0 -4
- package/dist/queries/reference-neighborhood.js +0 -2
- package/dist/queries/reference-reachability.d.ts +0 -48
- package/dist/queries/reference-reachability.js +0 -2
- package/dist/queries/self-audit.d.ts +0 -63
- package/dist/queries/self-audit.js +0 -2
- package/dist/queries/similar-chains.d.ts +0 -48
- package/dist/queries/similar-chains.js +0 -2
- package/dist/queries/slice.d.ts +0 -4
- package/dist/queries/slice.js +0 -2
- package/dist/queries/stale-abstractions.d.ts +0 -72
- package/dist/queries/stale-abstractions.js +0 -2
- package/dist/queries/system-map.d.ts +0 -449
- package/dist/queries/system-map.js +0 -2
- package/dist/queries/trace.js +0 -2
- package/dist/queries/twin-ab.d.ts +0 -66
- package/dist/queries/twin-ab.js +0 -2
- package/dist/queries/value-flow.d.ts +0 -43
- package/dist/queries/value-flow.js +0 -2
- package/dist/queries/wrapper-candidates.d.ts +0 -34
- package/dist/queries/wrapper-candidates.js +0 -2
- package/dist/refs-PSU4JZZW.js +0 -2
- package/dist/refs-pagination-JG6CJMRC.js +0 -2
- package/dist/slice-HYRATV64.js +0 -2
- package/dist/source-snippet-_wrcgmZc.d.ts +0 -15
- package/dist/stats-OOJ74B32.js +0 -2
- package/dist/surface-VTGDYWF5.js +0 -2
- package/dist/symbol-resolution-WD5EU5JE.js +0 -2
- package/dist/system-LRQNFOR2.js +0 -2
- package/dist/trace-F4B6OLL4.js +0 -2
- package/dist/value-flow-VRPZY72V.js +0 -2
- package/skills/concrete-plan/SKILL.md +0 -8
- package/skills/concrete-plan/agents/openai.yaml +0 -4
|
@@ -1,78 +1,34 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: scip-explore
|
|
3
|
-
description: Understand
|
|
3
|
+
description: Understand existing implementation paths, callers, consumers and dependencies with targeted relationship queries and ordinary source reads.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# SCIP Explore
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Load `$scip-query` for mechanics when the question crosses code locations or module boundaries. Use ordinary search and file tools for a local lookup or implementation read.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
A repository system is cooperating code and resources that turns an initiating input into observable results. Establish only the parts whose behavior could change the requested answer or edit. For substantial work, keep concise notes on established facts and remaining questions; a formal evidence ledger is not required.
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Find the existing path
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Start with locations named by the request or found through ordinary search. Use `system --source` when module structure is unknown, `entrypoints` when the initiating surface is unclear, and `context <target>` when existing reuse or impact candidates matter. Avoid repeating source through another command once its behavior is established.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
When several implementations appear relevant, compare their entry surfaces, incoming execution, runtime connections and consumers. Path, recency and result order do not establish the live implementation. Keep distinct paths separate until routing or behavior resolves which serves the request.
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
Before planning new behavior, find a comparable working feature and the central path it uses. Identify the existing owners and extension points. Use `$scip-plan` to document this flow and the reuse decisions before implementation.
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
- `established`: exact or adequately calibrated evidence supports the claim within stated coverage;
|
|
22
|
-
- `unsupported`: a named provider or source limitation prevents the claim;
|
|
23
|
-
- `excluded`: the claim cannot change the requested answer, with the reason recorded.
|
|
20
|
+
## Resolve relationships and behavior
|
|
24
21
|
|
|
25
|
-
|
|
22
|
+
Choose the relationship that answers the next concrete question: incoming execution for callers; outgoing execution for callees; runtime for producer/consumer handoffs; dataflow for value transfer; dependencies for module reliance. Batch related roots. Use another family only when its meaning matches the missing fact. The [command guide](../scip-query/references/command-guide.md#exploration) covers specialist choices.
|
|
26
23
|
|
|
27
|
-
|
|
28
|
-
2. decisions and transformations — which predicates, authorization checks, precedence rules, bounds, defaults, sibling outcomes, extension hooks, and data reshaping alter what happens;
|
|
29
|
-
3. crossings and effects — which runtime mechanisms carry the work, which state or external resources are observed or changed, and in what order;
|
|
30
|
-
4. observation — which return value, emitted event, notification, durable record, or downstream consumer makes the result visible;
|
|
31
|
-
5. failure and recovery — which retry, rejection, rollback, cleanup, interruption rule, later repair, or post-loop maintenance follows an incomplete or completed path.
|
|
24
|
+
Read implementations and relevant invocations with ordinary tools to verify predicates, arguments and effects. Preserve the decisions that matter: authorization, precedence, bounds, transformations, state writes, returned defaults, notifications, owner lifetime, concurrency, errors and recovery. Follow queued work to its consumer when completion depends on it.
|
|
32
25
|
|
|
33
|
-
|
|
26
|
+
Read saved results selectively. Expand a graph or recover omitted details only when they could change the conclusion. A bounded call list cannot establish what every caller passes, and a local slice cannot establish whole-program value history. Do not treat missing or unsupported relationships as proof of absence.
|
|
34
27
|
|
|
35
|
-
|
|
28
|
+
Stop when the relevant behavior and consequences are established or the remaining limitation is explicit. Do not collect unrelated symbols, read every file in a result or run every available analysis.
|
|
36
29
|
|
|
37
|
-
|
|
30
|
+
## Explain what matters
|
|
38
31
|
|
|
39
|
-
|
|
32
|
+
Connect the initiating surface, existing owners, decisions, effects and observed result in the order needed to understand them. Cite exact files/lines or symbols. Preserve material alternative outcomes and uncertainty without adding a routine coverage footer or a transcript of the exploration.
|
|
40
33
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
Start from the most discriminating exact referent already present in the request. Locate one only when needed. Reuse returned symbols and `file:line` identities as graph roots; do not rediscover the same unit through synonyms.
|
|
44
|
-
|
|
45
|
-
Treat all exact text already visible in a locator, inspect slice, or code receipt as located. Do not search for a function, call expression, constant, or message that is already present in delivered source. Do not run `outline` after exact source has already exposed the relevant unit boundaries. If a root has produced two failed or non-settling locator/outline attempts, use the best exact `file:line` already known with one bounded `inspect` and reassess the claim; do not alternate among more locators. A claim is not unsupported or excludable while a delivered exact identity or recovery command can settle a material clause.
|
|
46
|
-
|
|
47
|
-
When a locator returns competing implementations, make authoritative scope the first ledger row. Before reading either implementation body, compare only the evidence that can identify which path answers the question: external entry surfaces, incoming execution, ownership, consumers, or runtime handoffs. A core type, newer package, first search result, or public export is not ingress. Treat one path as authoritative only when exact evidence connects it to the scope named by the question. If one bounded comparison plus its exact relevant recovery cannot do that, preserve every plausibly live implementation as a separate scope; an ambiguous general question requires each live scope to be explained to the requested depth or explicitly left unresolved. Do not silently choose one, and do not exclude another without evidence that it cannot answer the question.
|
|
48
|
-
|
|
49
|
-
For a lifecycle, distinguish scheduling from execution and completion from later maintenance. If work is queued, establish both the event that creates the pending work and the later owner that observes and processes it, including their ordering. If plugins or other extension points can inject, replace, or transform material input, treat those operations as behavior rather than incidental calls. Include later filtering, reconstruction, pruning, or cleanup when it changes what a future consumer observes.
|
|
50
|
-
|
|
51
|
-
Select relationships because they can settle named ledger rows. Include the initiating owner as a root or request incoming execution when an end-to-end account needs ingress. Batch independent roots and related families when their evidence belongs to the same open question. When the interface supports concurrent tool calls, issue independent observations in one wave while preserving one complete result and cursor chain per command. Never combine results through a shortening pipe or abandon a printed `Continue exactly:` cursor; transport completion is required before coverage can be evaluated. Do not request every family to see what appears. Use graph evidence for relationships between units and behavior/source evidence for predicates inside a selected unit; neither substitutes for the other.
|
|
52
|
-
|
|
53
|
-
After each packet:
|
|
54
|
-
|
|
55
|
-
- record its normalized request and every delivered exact source interval; before another query, reject an exact duplicate and subtract already covered ranges locally;
|
|
56
|
-
- update only the ledger rows that its evidence actually establishes;
|
|
57
|
-
- preserve evidence strength, coverage, exact bounds, defaults, branch predicates, separately handled fields, ownership scope, state identity, ordering, and cleanup effects;
|
|
58
|
-
- mark a row `established` only when the selected behavior supports every clause in that row; an accurate high-level sentence does not settle omitted guards, markers, fields, stop conditions, or sibling outcomes;
|
|
59
|
-
- treat the exact formula of any configurable threshold, budget, or bound that changes selection as material; treat a durable reduction marker as unresolved until its later consumer and exact model-facing substitution are established or the provider reports that frontier unsupported;
|
|
60
|
-
- name the remaining gap before another query;
|
|
61
|
-
- follow a printed fold, recovery command, or adjacent identity only when it can close that gap;
|
|
62
|
-
- use `inspect --view behavior` for a named behavioral gap and `code` only when exact syntax can change the conclusion.
|
|
63
|
-
|
|
64
|
-
If two consecutive packets neither establish a row nor split one using a newly discovered behavior-changing fact, stop expanding that root and reassess the selected authority, relationship family, or ledger. Do not compensate for a weak root with more source.
|
|
65
|
-
|
|
66
|
-
At an input boundary, keep decoding or parsing separate from validation even when source nests them in one expression. Establish both failure paths before assigning a response: a validator that returns a failure result does not catch an exception or rejected promise raised while its argument is being produced. Preserve which enclosing handler catches that earlier failure.
|
|
67
|
-
|
|
68
|
-
Calls and exact runtime handoffs establish executable reachability within their stated coverage. Dataflow, state, temporal, contract, identity, ownership, reference, and dependency evidence establish only the relationship they name. A candidate is a lead requiring confirmation. A bounded or unsupported result cannot establish absence. If scip-query reports a specific unsupported frontier, use a native read only for that frontier and record why the exception was necessary.
|
|
69
|
-
|
|
70
|
-
## Synthesize the system
|
|
71
|
-
|
|
72
|
-
Condense observations into one causal account: when the initiating condition holds, the identified owner evaluates the material decisions, transforms or transfers the identified data, changes the identified state in the established order, and exposes the established result; on the relevant failure path, the established recovery behavior follows.
|
|
73
|
-
|
|
74
|
-
This causal account is not a chronology of files read. Organize it by what makes the behavior occur. Keep structurally different operations separate: a returned default is not a thrown rejection; a cache invalidation is not a generic state update; an enqueue is not successful consumption; local source order is not cross-process completion.
|
|
75
|
-
|
|
76
|
-
Before answering or editing, audit the draft against the ledger and every selected statement-complete behavior packet. Repair answer-side omissions from evidence already delivered instead of querying again. Preserve every material predicate, hard bound, default, separately merged field, durable effect, externally visible ordering, and cleanup action. If an unsupported row limits the conclusion, state that limit in the answer.
|
|
77
|
-
|
|
78
|
-
Stop when every material row is `established`, `unsupported`, or `excluded`, no contradiction remains among the rows, and no exact in-scope recovery command could change the answer. Packet completion, a plausible narrative, elapsed time, query count, and token cost are not stopping conditions.
|
|
34
|
+
Read [the information model](references/information-model.md) only for uncertain relationship support. The [external evidence protocol](references/external-evidence.md) applies only when an explicit runner supplies `SCIP_EXPLORE_EVIDENCE_DIR` and `SCIP_EXPLORE_LEDGER`; its checkpoint machinery is not the ordinary workflow. Use [delegated exploration](references/delegated-exploration.md) only when delegation and that checkpoint protocol are explicitly requested.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
|
-
display_name:
|
|
3
|
-
short_description:
|
|
4
|
-
default_prompt:
|
|
2
|
+
display_name: "SCIP Explore"
|
|
3
|
+
short_description: "Trace live code behavior and consumers."
|
|
4
|
+
default_prompt: "Use $scip-explore to establish the live implementation and the facts needed for this task."
|
|
@@ -24,7 +24,7 @@ node <loaded-scip-explore-skill-directory>/scripts/capture-evidence.mjs --id loc
|
|
|
24
24
|
|
|
25
25
|
Arguments after `--` are ordinary scip-query arguments without the `scip-query` executable. Do not add `--json`, `--agent-output`, `--json-output`, or pagination flags; the script owns transport. It writes the complete JSON envelope under `SCIP_EXPLORE_EVIDENCE_DIR` before it returns a receipt. It never pipes the result through `head`, `tail`, `jq`, or another shortening stage. A search receipt groups every identity present in the exhaustive packet into a complete file-owner-line manifest and keeps only the freshness states needed to calibrate those identities; verbose per-file proofs and binary-path inventories remain in the checksum-addressed raw packet. A command-rendering identity budget may report omissions even when the exhaustive packet contains the known total; the receipt promotes coverage only when raw identity count, known total, and matching-line count agree exactly. Otherwise an incomplete identity manifest, an overlarge model projection, or any other inability to represent the requested observation safely produces a refusal and keeps the complete raw packet for audit. Narrow or follow the stated recovery under a new evidence id; never treat the refusal as evidence.
|
|
26
26
|
|
|
27
|
-
The file export is the pagination-safe transport for external evidence mode: the command completes its exhaustive machine payload outside the model-facing terminal, then the wrapper reads that complete file. Outside this
|
|
27
|
+
The file export is the pagination-safe transport for external evidence mode: the command completes its exhaustive machine payload outside the model-facing terminal, then the wrapper reads that complete file. Outside this specialized runner, use the ordinary workflow and selectively read saved results. An optional continuation reads another saved page; it is needed only when omitted evidence could change the decision. Do not infer completeness from a partial page.
|
|
28
28
|
|
|
29
29
|
The wrapper compares each request with successful receipts in the same evidence directory. An exact duplicate returns `already-captured` with the receipt ids to cite and does not run scip-query again. A `code file:start-end` range already covered by either a code receipt or an exact inspect slice does the same. A partially covered range returns `overlap-requires-uncovered-query` and the exact uncovered selectors; capture only those selectors under a new id. These responses reuse already delivered bytes without deleting or approximating evidence. Prevent the response in the first place: after every receipt, record its normalized request and delivered source intervals in the private ledger; before every capture, check exact-request reuse and subtract covered intervals. Do not ask the wrapper to rediscover that a request is redundant.
|
|
30
30
|
|
|
@@ -38,7 +38,7 @@ An `inspect --view behavior` receipt keeps every exact source slice once, plus c
|
|
|
38
38
|
|
|
39
39
|
## Write the checkpoint ledger
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
For this explicitly requested checkpoint protocol, keep the private evidence ledger while exploring. At the end of the evidence phase, write one self-contained Markdown ledger to the exact `SCIP_EXPLORE_LEDGER` path. This is the only repository understanding carried into the fresh synthesis phase, so preserve claim-sized evidence rather than a narrative summary.
|
|
42
42
|
|
|
43
43
|
Begin the ledger with:
|
|
44
44
|
|
|
@@ -1,42 +1,39 @@
|
|
|
1
1
|
# scip-query information model
|
|
2
2
|
|
|
3
|
-
Use this map to decide what kind of repository fact
|
|
3
|
+
Use this map to decide what kind of repository fact the question requires. It inventories information classes rather than prescribing a route. For command selection and current index prerequisites, use the shared [command decision guide](../../scip-query/references/command-guide.md). `scip-query --help-all` remains the runtime inventory; `scip-query capabilities --matrix` reports current provider support when that is a named uncertainty.
|
|
4
4
|
|
|
5
5
|
## Direct system evidence
|
|
6
6
|
|
|
7
|
-
| Information kind | What its real referents are |
|
|
8
|
-
|
|
9
|
-
| Current text | Exact
|
|
10
|
-
| Source structure | Compiler-owned files, symbols, members, methods, nesting, and ranges |
|
|
11
|
-
| Entry and consumer surfaces | Callables where control may enter and symbols outside consumers actually use |
|
|
12
|
-
| Execution and control | Calls, callbacks, returns, throws, branches, loops, handlers, and local control dependence |
|
|
13
|
-
| Data movement | Arguments, parameters, definitions, uses, returns, captures, field uses, serialized discriminators, and values written to state |
|
|
14
|
-
| Runtime handoff | Source-grounded producers and consumers joined by queues, events, commands, discriminators, or registered adapters |
|
|
15
|
-
| State interaction | Identified resources read, written, deleted, enqueued, or consumed |
|
|
16
|
-
| Temporal order | Local successors, await completion, lock scope, and supported enqueue-before-consume order |
|
|
17
|
-
| Contracts | Interfaces, types, and other compiler/source contracts used by a construct |
|
|
18
|
-
| Identity | Compiler- or source-owned observations that refer to the same entity |
|
|
19
|
-
| Ownership | Structural containment or observation ownership between code, runtime observations, and state resources |
|
|
20
|
-
| Dependencies and topology | Imports, reverse imports, file dependencies, cycles, depth, coupling, and cross-file coordination hubs |
|
|
21
|
-
| Implementation behavior | Exact statements and connected source units selected for a named gap |
|
|
7
|
+
| Information kind | What its real referents are | What it can establish | What it cannot establish alone |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| Current text | Exact current project bytes, occurrences, paths, and aligned compiler owners | Cardinality and location within reported text coverage | Task relevance or executable reachability |
|
|
10
|
+
| Source structure | Compiler-owned files, symbols, members, methods, nesting, and ranges | What constructs exist and contain one another | That a construct runs or is externally active |
|
|
11
|
+
| Entry and consumer surfaces | Callables where control may enter and symbols outside consumers actually use | Candidate ingress, static downstream reach, and published use | Runtime invocation from visibility or zero callers alone |
|
|
12
|
+
| Execution and control | Calls, callbacks, returns, throws, branches, loops, handlers, and local control dependence | Static may-call and supported control reachability | That an invocation occurred, completed, or selected a candidate target at runtime |
|
|
13
|
+
| Data movement | Arguments, parameters, definitions, uses, returns, captures, field uses, serialized discriminators, and values written to state | Supported local and bounded cross-call value transfers | General interprocedural definition-use flow, heap aliasing, or every eventual consumer |
|
|
14
|
+
| Runtime handoff | Source-grounded producers and consumers joined by queues, events, commands, discriminators, or registered adapters | Supported producer/consumer rendezvous and dispatch identity | Successful delivery, retry, or an unregistered framework crossing |
|
|
15
|
+
| State interaction | Identified resources read, written, deleted, enqueued, or consumed | Which construct performs which observed state operation | Transactionality, durability, alias identity, or exclusive ownership unless separately evidenced |
|
|
16
|
+
| Temporal order | Local successors, await completion, lock scope, and supported enqueue-before-consume order | Reported local or adapter-backed before/after relations | Cross-process happens-before, durable completion, or exceptional completion |
|
|
17
|
+
| Contracts | Interfaces, types, and other compiler/source contracts used by a construct | The identified constraint relationship | Runtime invocation or unchecked behavioral conformance |
|
|
18
|
+
| Identity | Compiler- or source-owned observations that refer to the same entity | Same-entity references within coverage | Execution, value transfer, or active product selection |
|
|
19
|
+
| Ownership | Structural containment or observation ownership between code, runtime observations, and state resources | What contains or owns an observed unit | Lifetime, singleton scope, or per-session sharing unless source behavior establishes it |
|
|
20
|
+
| Dependencies and topology | Imports, reverse imports, file dependencies, cycles, depth, coupling, and cross-file coordination hubs | Static reliance and structural shape | Execution, runtime contention, or architectural intent by itself |
|
|
21
|
+
| Implementation behavior | Exact statements and connected source units selected for a named gap | Current source behavior for materialized units | Callers, runtime reachability, or relevance without surrounding evidence |
|
|
22
22
|
|
|
23
23
|
The eleven `evidence` controls are incoming and outgoing `execution`, incoming and outgoing `dataflow`, plus `runtime`, `state`, `temporal`, `contract`, `identity`, `ownership`, and `dependencies`. They cover nine top-level relationship classes.
|
|
24
24
|
|
|
25
25
|
## Task-specific analyses
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Select the required information first, then consult the relevant command-guide section:
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
| Explicit state-machine models | `tla` | The task asks to scaffold, verify, record, or check an explicit transition model; a verified model is only as sound as its mapping to code |
|
|
38
|
-
| Index and provider capability | `status`, `capabilities`, `doctor`, `stats` | A claim depends on freshness, language support, provider availability, or an analytical ceiling; these describe the instrument, not the repository system's behavior |
|
|
39
|
-
| Delivered evidence state | `session`, transport continuations, coverage and recovery sections | You must determine what evidence has already been delivered, what was withheld recoverably, and what remains unavailable |
|
|
29
|
+
- [Planning and actual change review](../../scip-query/references/command-guide.md#orientation-and-change-review): reuse candidates, changed metrics and downstream consumers.
|
|
30
|
+
- [Architecture and dependencies](../../scip-query/references/command-guide.md#architecture-and-dependencies): policy, structural connections, historical coordination and placement.
|
|
31
|
+
- [Simplification and cleanup](../../scip-query/references/command-guide.md#simplification-and-cleanup): complexity, slices, duplication and possible removal.
|
|
32
|
+
- [Framework investigations](../../scip-query/references/command-guide.md#framework-investigations): React and Vue behavior patterns.
|
|
33
|
+
- [Implementation integrity](../../scip-query/references/command-guide.md#implementation-integrity): promises, live routing, placeholders, checks and migrations.
|
|
34
|
+
- [Tool operations](../../scip-query/references/command-guide.md#tool-operations): index freshness, capability, installation and repair.
|
|
35
|
+
|
|
36
|
+
These analyses are optional answers to specific questions, not ordinary stages in every exploration. Their measurements and candidates do not establish design quality or runtime behavior by themselves.
|
|
40
37
|
|
|
41
38
|
## Calibration limits
|
|
42
39
|
|
|
@@ -48,4 +45,4 @@ Evidence strength controls the strongest claim available:
|
|
|
48
45
|
- `mixed` preserves constituents of different strengths;
|
|
49
46
|
- `unknown` has no calibrated strength and cannot support a stronger claim than the raw observation.
|
|
50
47
|
|
|
51
|
-
The current general blind spots are whole-program interprocedural value flow, heap and cross-instance aliasing, interprocedural exceptional flow, reflection, generated dispatch, and framework crossings without a registered adapter. Missing edges across one of these frontiers are unknown, not proof that the behavior is absent. Close only the named material gap with `
|
|
48
|
+
The current general blind spots are whole-program interprocedural value flow, heap and cross-instance aliasing, interprocedural exceptional flow, reflection, generated dispatch, and framework crossings without a registered adapter. Missing edges across one of these frontiers are unknown, not proof that the behavior is absent. Close only the named material gap with `dependence-slice`, `inspect`, `code`, or an exact text search as the reported recovery permits.
|
|
@@ -30,15 +30,27 @@ function main() {
|
|
|
30
30
|
const receiptPath = join(evidenceRoot, `${id}.receipt.json`);
|
|
31
31
|
if (existsSync(rawPath) || existsSync(receiptPath)) fail(`Evidence id already exists: ${id}`);
|
|
32
32
|
|
|
33
|
+
validateCaptureOutputArguments(queryArgs);
|
|
34
|
+
|
|
35
|
+
const priorReceipts = readPriorReceipts(evidenceRoot);
|
|
36
|
+
const reusableReceipts = receiptsForLatestObservation(priorReceipts);
|
|
37
|
+
const request = requestIdentity(queryArgs);
|
|
38
|
+
if (emitReusableCapture(id, request, reusableReceipts)) return;
|
|
39
|
+
|
|
40
|
+
const exportReceipt = executeCaptureQuery(queryArgs, rawPath);
|
|
41
|
+
const envelope = JSON.parse(readFileSync(rawPath, 'utf8'));
|
|
42
|
+
persistCaptureProjection({ id, request, rawPath, receiptPath, exportReceipt, envelope, priorReceipts });
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function validateCaptureOutputArguments(queryArgs) {
|
|
33
46
|
for (const argument of queryArgs) {
|
|
34
47
|
if (FORBIDDEN_OUTPUT_ARGUMENTS.some((flag) => argument === flag || argument.startsWith(`${flag}=`))) {
|
|
35
48
|
fail(`The capture wrapper owns ${argument.split('=', 1)[0]}; remove it from the scip-query arguments.`);
|
|
36
49
|
}
|
|
37
50
|
}
|
|
51
|
+
}
|
|
38
52
|
|
|
39
|
-
|
|
40
|
-
const reusableReceipts = receiptsForLatestObservation(priorReceipts);
|
|
41
|
-
const request = requestIdentity(queryArgs);
|
|
53
|
+
function emitReusableCapture(id, request, reusableReceipts) {
|
|
42
54
|
const reuse = findReusableObservation(request, reusableReceipts);
|
|
43
55
|
if (reuse) {
|
|
44
56
|
process.stdout.write(
|
|
@@ -53,7 +65,7 @@ function main() {
|
|
|
53
65
|
recovery: 'Reuse the named receipt ids in the ledger; do not rerun this observation.',
|
|
54
66
|
})}\n`,
|
|
55
67
|
);
|
|
56
|
-
return;
|
|
68
|
+
return true;
|
|
57
69
|
}
|
|
58
70
|
|
|
59
71
|
const overlap = findOverlappingCodeRanges(request, reusableReceipts);
|
|
@@ -72,9 +84,13 @@ function main() {
|
|
|
72
84
|
})}\n`,
|
|
73
85
|
);
|
|
74
86
|
process.exitCode = 2;
|
|
75
|
-
return;
|
|
87
|
+
return true;
|
|
76
88
|
}
|
|
77
89
|
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function executeCaptureQuery(queryArgs, rawPath) {
|
|
78
94
|
const execution = spawnSync('scip-query', [...queryArgs, '--json', '--json-output', rawPath], {
|
|
79
95
|
cwd: process.cwd(),
|
|
80
96
|
env: process.env,
|
|
@@ -90,7 +106,10 @@ function main() {
|
|
|
90
106
|
if (!isAbsolute(exportReceipt.path) || resolve(exportReceipt.path) !== rawPath) {
|
|
91
107
|
fail('scip-query wrote the evidence packet to an unexpected path.');
|
|
92
108
|
}
|
|
93
|
-
|
|
109
|
+
return exportReceipt;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function persistCaptureProjection({ id, request, rawPath, receiptPath, exportReceipt, envelope, priorReceipts }) {
|
|
94
113
|
const projection = projectCommandResult(envelope);
|
|
95
114
|
if (projection.status !== 'complete') {
|
|
96
115
|
const refusal = {
|
|
@@ -165,17 +184,8 @@ function projectCommandResult(envelope) {
|
|
|
165
184
|
const identityCoverage = result?.identityCoverage;
|
|
166
185
|
const identities = result?.identities;
|
|
167
186
|
const scopeHints = result?.scopeHints;
|
|
168
|
-
const commandProjectionComplete =
|
|
169
|
-
|
|
170
|
-
identityCoverage?.mode === 'complete' &&
|
|
171
|
-
identityCoverage.omitted === 0 &&
|
|
172
|
-
identityCoverage.returned === identities.length &&
|
|
173
|
-
identityCoverage.total === identities.length;
|
|
174
|
-
const exhaustivePacketComplete =
|
|
175
|
-
Array.isArray(identities) &&
|
|
176
|
-
Number.isSafeInteger(identityCoverage?.total) &&
|
|
177
|
-
identities.length === identityCoverage.total &&
|
|
178
|
-
result.matchingLines === identityCoverage.total;
|
|
187
|
+
const commandProjectionComplete = completeCommandSearchIdentities(identities, identityCoverage);
|
|
188
|
+
const exhaustivePacketComplete = completeExhaustiveSearchIdentities(result, identities, identityCoverage);
|
|
179
189
|
const identitiesComplete = commandProjectionComplete || exhaustivePacketComplete;
|
|
180
190
|
const scopeHintsComplete = Array.isArray(scopeHints) && result.omittedScopeHints === 0;
|
|
181
191
|
if (!identitiesComplete || !scopeHintsComplete) {
|
|
@@ -221,6 +231,25 @@ function projectCommandResult(envelope) {
|
|
|
221
231
|
};
|
|
222
232
|
}
|
|
223
233
|
|
|
234
|
+
function completeCommandSearchIdentities(identities, coverage) {
|
|
235
|
+
return (
|
|
236
|
+
Array.isArray(identities) &&
|
|
237
|
+
coverage?.mode === 'complete' &&
|
|
238
|
+
coverage.omitted === 0 &&
|
|
239
|
+
coverage.returned === identities.length &&
|
|
240
|
+
coverage.total === identities.length
|
|
241
|
+
);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
function completeExhaustiveSearchIdentities(result, identities, coverage) {
|
|
245
|
+
return (
|
|
246
|
+
Array.isArray(identities) &&
|
|
247
|
+
Number.isSafeInteger(coverage?.total) &&
|
|
248
|
+
identities.length === coverage.total &&
|
|
249
|
+
result.matchingLines === coverage.total
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
|
|
224
253
|
function groupSearchIdentities(identities) {
|
|
225
254
|
const files = new Map();
|
|
226
255
|
for (const identity of identities) {
|
|
@@ -569,23 +598,7 @@ function priorSourceCoverage(priorReceipts) {
|
|
|
569
598
|
const coverage = new Map();
|
|
570
599
|
for (const receipt of priorReceipts) {
|
|
571
600
|
if (receipt.observation === undefined) continue;
|
|
572
|
-
const ranges =
|
|
573
|
-
if (receipt.request?.args?.[0] === 'code') {
|
|
574
|
-
const codeRanges = parseCodeRanges(receipt.request.args.slice(1));
|
|
575
|
-
if (codeRanges !== null) ranges.push(...codeRanges);
|
|
576
|
-
}
|
|
577
|
-
if (receipt.observation.result?.kind === 'bounded-inspect-behavior-projection') {
|
|
578
|
-
for (const slice of receipt.observation.result.slices ?? []) {
|
|
579
|
-
if (
|
|
580
|
-
typeof slice.relativePath === 'string' &&
|
|
581
|
-
Number.isSafeInteger(slice.startLine) &&
|
|
582
|
-
Number.isSafeInteger(slice.endLine) &&
|
|
583
|
-
slice.startLine <= slice.endLine
|
|
584
|
-
) {
|
|
585
|
-
ranges.push({ path: slice.relativePath, start: slice.startLine, end: slice.endLine });
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
}
|
|
601
|
+
const ranges = receiptSourceRanges(receipt);
|
|
589
602
|
for (const range of ranges) {
|
|
590
603
|
const intervals = coverage.get(range.path) ?? [];
|
|
591
604
|
intervals.push({ ...range, receipt });
|
|
@@ -595,6 +608,27 @@ function priorSourceCoverage(priorReceipts) {
|
|
|
595
608
|
return coverage;
|
|
596
609
|
}
|
|
597
610
|
|
|
611
|
+
function receiptSourceRanges(receipt) {
|
|
612
|
+
const ranges = [];
|
|
613
|
+
if (receipt.request?.args?.[0] === 'code') {
|
|
614
|
+
const codeRanges = parseCodeRanges(receipt.request.args.slice(1));
|
|
615
|
+
if (codeRanges !== null) ranges.push(...codeRanges);
|
|
616
|
+
}
|
|
617
|
+
if (receipt.observation.result?.kind === 'bounded-inspect-behavior-projection') {
|
|
618
|
+
for (const slice of receipt.observation.result.slices ?? []) {
|
|
619
|
+
if (
|
|
620
|
+
typeof slice.relativePath === 'string' &&
|
|
621
|
+
Number.isSafeInteger(slice.startLine) &&
|
|
622
|
+
Number.isSafeInteger(slice.endLine) &&
|
|
623
|
+
slice.startLine <= slice.endLine
|
|
624
|
+
) {
|
|
625
|
+
ranges.push({ path: slice.relativePath, start: slice.startLine, end: slice.endLine });
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
return ranges;
|
|
630
|
+
}
|
|
631
|
+
|
|
598
632
|
function subtractIntervals(range, intervals) {
|
|
599
633
|
let remaining = [{ start: range.start, end: range.end }];
|
|
600
634
|
for (const interval of intervals.sort((left, right) => left.start - right.start || left.end - right.end)) {
|