scip-query 0.19.4 → 0.19.6
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 +75 -1
- package/README.md +242 -49
- package/dist/augment-vue-worker.js +1 -1
- package/dist/{chunk-2YU7I3QO.js → chunk-24QNP7MN.js} +2 -2
- package/dist/{chunk-CNKAGUPL.js → chunk-26X7KCJR.js} +2 -2
- package/dist/{chunk-GPBBJ5Y4.js → chunk-273W2U4Y.js} +3 -3
- package/dist/{chunk-7GXM52MI.js → chunk-2CVXCGL4.js} +2 -2
- package/dist/{chunk-ABMYA4TN.js → chunk-2EZSOTSY.js} +2 -2
- package/dist/{chunk-HKEHS2AS.js → chunk-2GSQR6YA.js} +2 -2
- package/dist/{chunk-FECYOO5O.js → chunk-2OXVAGGT.js} +2 -2
- package/dist/chunk-2ZOCHAL2.js +8 -0
- package/dist/{chunk-QGXBRIM5.js → chunk-336DC5NJ.js} +2 -2
- package/dist/chunk-35SQLYCQ.js +2 -0
- package/dist/{chunk-VXQNNXJE.js → chunk-3OIKRYU5.js} +2 -2
- package/dist/{chunk-52ZYCAEO.js → chunk-47X75ZKH.js} +2 -2
- package/dist/{chunk-NPKYOIFM.js → chunk-4CGVLUDP.js} +2 -2
- package/dist/chunk-4RI4BJGT.js +8 -0
- package/dist/{chunk-P2PC2WGR.js → chunk-52HQTTPB.js} +2 -2
- package/dist/{chunk-YNRNA5LK.js → chunk-5OC3HWP5.js} +2 -2
- package/dist/{chunk-STOL2BTL.js → chunk-6XFC7PQ5.js} +2 -2
- package/dist/{chunk-J77UIT3I.js → chunk-6XHTISLI.js} +2 -2
- package/dist/chunk-6YTSKJJ3.js +2 -0
- package/dist/{chunk-BTEE5NZQ.js → chunk-7E3TH5ZN.js} +2 -2
- package/dist/{chunk-X6D5IC6I.js → chunk-7LABSJSR.js} +2 -2
- package/dist/chunk-7Q6VYYCH.js +2 -0
- package/dist/{chunk-FWUUZTIO.js → chunk-A43URCQ3.js} +2 -2
- package/dist/chunk-A63U2W3P.js +3 -0
- package/dist/{chunk-3MJ5YA4Y.js → chunk-ADFSIJP2.js} +2 -2
- package/dist/chunk-AOLE4DYM.js +6 -0
- package/dist/chunk-APMMR5Y2.js +2 -0
- package/dist/chunk-B5MHCHP3.js +107 -0
- package/dist/{chunk-4RSI5EMG.js → chunk-CSTYYXKC.js} +2 -2
- package/dist/{chunk-25LPM4DG.js → chunk-CYJM7CYF.js} +2 -2
- package/dist/{chunk-S44IULR6.js → chunk-DD5BOU5I.js} +2 -2
- package/dist/{chunk-YGAGTIDK.js → chunk-DGMCFMPG.js} +7 -7
- package/dist/{chunk-UOAV44HR.js → chunk-E2ZXPB7J.js} +2 -2
- package/dist/{chunk-IZKFSVBV.js → chunk-EVOC5I5I.js} +2 -2
- package/dist/{chunk-XTX6QHOF.js → chunk-F42A3AKG.js} +2 -2
- package/dist/{chunk-Q4IIEGXJ.js → chunk-FHCTEANE.js} +2 -2
- package/dist/{chunk-3SVWW4PN.js → chunk-FKGN4A4E.js} +2 -2
- package/dist/{chunk-IG7N5ZIK.js → chunk-FQTPPXNA.js} +2 -2
- package/dist/{chunk-F6O7AAC3.js → chunk-G4UQL4CP.js} +2 -2
- package/dist/chunk-GA64UPMI.js +6 -0
- package/dist/{chunk-ZXJYMGD3.js → chunk-GK3GRUJX.js} +2 -2
- package/dist/chunk-HEBAY673.js +2 -0
- package/dist/chunk-HELS7KFF.js +2 -0
- package/dist/{chunk-B5NLK2B3.js → chunk-IPDCSB6N.js} +2 -2
- package/dist/{chunk-M7MTH5NR.js → chunk-IYAOX36F.js} +2 -2
- package/dist/{chunk-YVVCVR2L.js → chunk-J7VT2CRB.js} +2 -2
- package/dist/{chunk-4333ETTV.js → chunk-JELJLXEE.js} +2 -2
- package/dist/{chunk-LBMJEAEW.js → chunk-JERWGHQT.js} +2 -2
- package/dist/chunk-JJJCO4QC.js +945 -0
- package/dist/{chunk-6E7UTQY7.js → chunk-JZNLMHWY.js} +2 -2
- package/dist/{chunk-R4FQGQ4X.js → chunk-K42M2KWT.js} +2 -2
- package/dist/{chunk-H7UKLTWJ.js → chunk-KLVJABXA.js} +2 -2
- package/dist/chunk-KP4KBDVF.js +3 -0
- package/dist/{chunk-RV2FQIX3.js → chunk-LMFVTUW2.js} +2 -2
- package/dist/chunk-LRTP3DKL.js +3 -0
- package/dist/{chunk-U6WNH5GC.js → chunk-MGBJHRFB.js} +2 -2
- package/dist/{chunk-QDV6RDCP.js → chunk-MLGTCX56.js} +2 -2
- package/dist/{chunk-54HA4ZXH.js → chunk-N3SE646F.js} +2 -2
- package/dist/{chunk-KP6XRY5Z.js → chunk-NBRUH7OE.js} +2 -2
- package/dist/{chunk-M7AIS73L.js → chunk-NN4ZIRPK.js} +2 -2
- package/dist/{chunk-I5RJM53C.js → chunk-NQLSSVOB.js} +2 -2
- package/dist/{chunk-4SALD7RU.js → chunk-OBKDTVZ3.js} +2 -2
- package/dist/{chunk-GBQ5NYPR.js → chunk-OHWZKLVA.js} +6 -6
- package/dist/{chunk-6NSFJYRC.js → chunk-OP3MTFJR.js} +2 -2
- package/dist/{chunk-EOOJGLDU.js → chunk-OQ2A4G2G.js} +2 -2
- package/dist/{chunk-DLWR3NUU.js → chunk-P6HBYNBE.js} +2 -2
- package/dist/{chunk-QVWS2VWZ.js → chunk-PC44K7RF.js} +2 -2
- package/dist/{chunk-A2EZV2UM.js → chunk-QBYYWGAT.js} +2 -2
- package/dist/{chunk-QRGV2F7L.js → chunk-QHKUY4FW.js} +2 -2
- package/dist/chunk-QHRL4LKM.js +2 -0
- package/dist/{chunk-I5AWSI2G.js → chunk-QQWOFXNW.js} +2 -2
- package/dist/{chunk-WQTAC523.js → chunk-RBFFD4V2.js} +2 -2
- package/dist/{chunk-SOAT6NLA.js → chunk-RJHCPSZ7.js} +2 -2
- package/dist/{chunk-VGRICIQI.js → chunk-RWRLUZ6U.js} +2 -2
- package/dist/{chunk-4T3LTWUS.js → chunk-S2GP3CU3.js} +2 -2
- package/dist/{chunk-HEXVUYFQ.js → chunk-SHKZ7OVJ.js} +2 -2
- package/dist/{chunk-NSS46APD.js → chunk-TFUU5MQQ.js} +2 -2
- package/dist/{chunk-IUFDSKGG.js → chunk-TYQ76QHQ.js} +2 -2
- package/dist/{chunk-NRCXJDHL.js → chunk-U5CNPPTZ.js} +2 -2
- package/dist/{chunk-MITTUCEH.js → chunk-UQK5CRUK.js} +2 -2
- package/dist/{chunk-XLTP42QA.js → chunk-UUJBLG6J.js} +2 -2
- package/dist/chunk-UXP636P5.js +144 -0
- package/dist/{chunk-64RFXJT5.js → chunk-VEVBIAOJ.js} +6 -6
- package/dist/chunk-VKRQDBW5.js +9 -0
- package/dist/{chunk-C7NIYIQ4.js → chunk-VOQFGC2W.js} +4 -4
- package/dist/{chunk-DZ74OMG6.js → chunk-VP542C25.js} +2 -2
- package/dist/{chunk-Q3AFUTGB.js → chunk-WMXRRBII.js} +2 -2
- package/dist/{chunk-ZGZUZ7XE.js → chunk-WXAAURU7.js} +2 -2
- package/dist/chunk-X3NLZHPA.js +20 -0
- package/dist/{chunk-WER3B7MI.js → chunk-XF3KLXN3.js} +2 -2
- package/dist/{chunk-NH5ALKPW.js → chunk-XVJ3V7LM.js} +2 -2
- package/dist/{chunk-4XTA5OMB.js → chunk-YGQN3XGZ.js} +2 -2
- package/dist/{chunk-CFMXJPHH.js → chunk-YHXBD52M.js} +2 -2
- package/dist/{chunk-7B3UPBVA.js → chunk-YLVE3SXZ.js} +2 -2
- package/dist/{chunk-YIJ7ZAA4.js → chunk-YTUD45PU.js} +2 -2
- package/dist/{chunk-VTKGCT3V.js → chunk-YWB2EBNB.js} +2 -2
- package/dist/{chunk-UKZBVX4U.js → chunk-Z2LHPIOM.js} +2 -2
- package/dist/chunk-Z5QQPJ3U.js +30 -0
- package/dist/{chunk-NZL2DBT7.js → chunk-ZLJLE6LK.js} +2 -2
- package/dist/{chunk-XYADIZHU.js → chunk-ZTTISZ7J.js} +2 -2
- package/dist/cli.js +3 -3
- package/dist/command-descriptors-SJDZ7QGR.js +617 -0
- package/dist/{config-types-D20KuvvZ.d.ts → config-types-BWQ5xPGI.d.ts} +4 -0
- package/dist/{db-G_II8yXU.d.ts → db-B0r1o7Vt.d.ts} +18 -1
- package/dist/direct-navigation-HTKOZEOM.js +3 -0
- package/dist/{health-oblXYgkF.d.ts → health-CFnlCiTz.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 +23 -24
- package/dist/reindex.d.ts +10 -4
- package/dist/reindex.js +33 -38
- package/dist/runtime.d.ts +167 -11
- 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-DCvnlZCu.d.ts} +5 -1
- package/dist/watch-server.js +5 -5
- package/docs/AGENT_GUIDE.md +1 -1
- package/docs/AI_FAILURE_MODES.md +18 -18
- package/docs/API_EVOLUTION.md +71 -0
- package/docs/CLI_JSON_OUTPUT.md +83 -0
- package/docs/COMMAND_REFERENCE.md +10 -8
- package/docs/COMMITTED_RECORD_COMPATIBILITY.md +117 -0
- package/docs/CONFIGURATION_WRITE_SAFETY.md +130 -0
- package/docs/DETECTOR_GUIDE.md +47 -47
- 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/TELEMETRY_RETENTION.md +72 -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/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 +15 -5
- 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 +91 -242
- 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 +76 -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} +12 -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 +53 -84
- 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 +52 -97
- package/skills/scip-query/agents/openai.yaml +2 -2
- package/skills/scip-setup/SKILL.md +65 -176
- 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 +123 -70
- 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-C2QSK7E7.js +0 -2
- package/dist/chunk-D4U5Q3FT.js +0 -7
- 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-OMPZHGHO.js +0 -2
- package/dist/chunk-SVLTAG5O.js +0 -927
- package/dist/chunk-U7DSEKOM.js +0 -30
- package/dist/chunk-V27BEQJN.js +0 -7
- package/dist/chunk-VMNZB6WI.js +0 -4
- package/dist/chunk-XBN5VO53.js +0 -2
- package/dist/chunk-ZAIILQNP.js +0 -5
- package/dist/command-descriptors-MFU4BCJ7.js +0 -612
- package/dist/direct-navigation-MRMQFIRB.js +0 -3
- package/skills/scip-api-impact/SKILL.md +0 -139
- 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 -106
- package/skills/scip-claim-audit/agents/openai.yaml +0 -4
- package/skills/scip-cleanup-audit/SKILL.md +0 -126
- package/skills/scip-cleanup-audit/agents/openai.yaml +0 -4
- package/skills/scip-cleanup-improve/SKILL.md +0 -84
- package/skills/scip-cleanup-improve/agents/openai.yaml +0 -4
- package/skills/scip-concrete-plan/SKILL.md +0 -262
- 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 -254
- 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 -150
- 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 -126
- package/skills/scip-triage-issue/agents/openai.yaml +0 -4
- package/skills/scip-twin-drift/SKILL.md +0 -107
- 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
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: scip-integrity-audit
|
|
3
|
-
description: Audit whether implementations are real with scip-query. Use for suspected faked or half-implemented features, decorative checkers or verifiers that never fail, dead code paths hidden behind graceful fallbacks, metrics that may be lying, or a "does any of this actually work" interrogation of a system.
|
|
4
|
-
commands:
|
|
5
|
-
- scip-query refs <symbol>
|
|
6
|
-
- scip-query code <symbol>
|
|
7
|
-
- scip-query trace <symbol>
|
|
8
|
-
- scip-query call-graph <symbol>
|
|
9
|
-
- scip-query twin-drift -s <scope> --json
|
|
10
|
-
- scip-query twin-ab <symbolA> <symbolB>
|
|
11
|
-
- scip-query outline <file> --signatures
|
|
12
|
-
- scip-query decorative-checkers -s <scope> --json
|
|
13
|
-
- scip-query not-implemented -s <scope> --json
|
|
14
|
-
- scip-query test-quality -s <scope> --json
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
# scip-integrity-audit
|
|
18
|
-
|
|
19
|
-
Use this skill to interrogate whether a system's claims are backed by real
|
|
20
|
-
implementations. Structural review asks "is this well organized?"
|
|
21
|
-
(`scip-maintainability`); this skill asks **"is this real?"** — it hunts
|
|
22
|
-
decorative checkers, adapters written against imagined data, features that
|
|
23
|
-
have silently never run, and numbers nobody ever recomputed.
|
|
24
|
-
|
|
25
|
-
Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
|
|
26
|
-
|
|
27
|
-
## The Stance
|
|
28
|
-
|
|
29
|
-
A green result you have never seen fail is unverified. Every status word,
|
|
30
|
-
banner, and metric is testimony from the code, not evidence about the code —
|
|
31
|
-
cross-examine the producer before believing it. The most dangerous code is
|
|
32
|
-
not broken code; it is code that reports success without doing the work.
|
|
33
|
-
|
|
34
|
-
## Drills
|
|
35
|
-
|
|
36
|
-
Run all five over the chosen scope. Each has a checkable exit.
|
|
37
|
-
|
|
38
|
-
### 1. Falsify every checker
|
|
39
|
-
|
|
40
|
-
Inventory everything in scope that accepts/rejects, passes/fails, or
|
|
41
|
-
validates (checkers, gates, verifiers, validators — find producers with
|
|
42
|
-
`refs`/`call-graph` on the status words in output). For each one, construct
|
|
43
|
-
an input that MUST fail — a wrong binding, a corrupt file, an impossible
|
|
44
|
-
value — and run it. A checker that passes its should-fail input is
|
|
45
|
-
decorative: file it as a defect, not a note.
|
|
46
|
-
Before filing, attempt the defense: an accusation triggers a rewrite, so
|
|
47
|
-
search for the failure exit the drill may have missed — a config-gated
|
|
48
|
-
branch, an async rejection, one-hop delegation (the calibration's known
|
|
49
|
-
noise archetypes). File the defect with the executed should-fail input
|
|
50
|
-
attached and the defense attempt noted; a defense that succeeds clears the
|
|
51
|
-
checker and stays in the record as its witness.
|
|
52
|
-
Complete only when every checker in scope has been witnessed rejecting a
|
|
53
|
-
constructed should-fail input, or is listed with a reason it cannot be.
|
|
54
|
-
|
|
55
|
-
Mechanized by: `scip-query decorative-checkers` finds `validate*`/`verify*`/
|
|
56
|
-
`check*`/`assert*`/`is*`/`has*` callables with no reachable failure exit
|
|
57
|
-
anywhere in their body (calibrated 2026-07-03 against two external repos —
|
|
58
|
-
standalone-only; noise archetypes past one-hop delegation in
|
|
59
|
-
`docs/validation/2026-07-03-integrity-detector-calibration.md`). Run it first
|
|
60
|
-
to shortlist candidates before hand-constructing should-fail inputs.
|
|
61
|
-
|
|
62
|
-
### 2. Diff every adapter against captured reality
|
|
63
|
-
|
|
64
|
-
For each parser/adapter of an external format (tool output, XML/JSON
|
|
65
|
-
schemas, protocol messages): obtain ONE real sample from the actual source
|
|
66
|
-
and diff it against the code's assumptions and the tests' fixtures. Ask of
|
|
67
|
-
every fixture: was this generated from reality, or imagined? A parser and a
|
|
68
|
-
hand-written fixture can validate each other's shared hallucination
|
|
69
|
-
indefinitely.
|
|
70
|
-
Complete only when every adapter has been checked against at least one
|
|
71
|
-
captured-real sample.
|
|
72
|
-
|
|
73
|
-
### 3. Autopsy every fallback
|
|
74
|
-
|
|
75
|
-
Graceful degradation is where dead features hide: a primary path that has
|
|
76
|
-
never worked looks identical to a healthy fallback. For every catch block,
|
|
77
|
-
`?? fallback`, and degraded mode in scope: produce an execution witness that
|
|
78
|
-
the PRIMARY path runs (a test, a probe, a log). Use `scip-probe-reachability`
|
|
79
|
-
for parser/AST branch reachability. A fallback that always fires means the
|
|
80
|
-
feature above it is dead — date of death: birth.
|
|
81
|
-
Complete only when every fallback's primary path has a witness or a filed
|
|
82
|
-
defect.
|
|
83
|
-
|
|
84
|
-
Mechanized by: `scip-query not-implemented` finds reachable placeholder
|
|
85
|
-
stubs (`throw new Error('not implemented')`, TODO-comment + return-default,
|
|
86
|
-
empty bodies) that a real caller, entry surface, or package-surface export
|
|
87
|
-
can actually reach — the graph fact that separates "primary path never
|
|
88
|
-
built" from `dead`'s "primary path built but unreferenced." Standalone-only
|
|
89
|
-
(calibrated 2026-07-03; 0 live findings on two external repos post-fix, see
|
|
90
|
-
the calibration report) — treat a clean run as "nothing this shape found,"
|
|
91
|
-
not as "every fallback's primary path is proven live."
|
|
92
|
-
|
|
93
|
-
### 4. Hand-compute every metric twice
|
|
94
|
-
|
|
95
|
-
For each number the system reports (scores, counts, estimates): pick two
|
|
96
|
-
concrete instances, compute the expected value by hand from first
|
|
97
|
-
principles, and compare. Off-by-a-factor errors (double counting, inflated
|
|
98
|
-
estimates) survive for years because nobody ever recomputes one sample.
|
|
99
|
-
Complete only when every reported metric has two hand-verified samples.
|
|
100
|
-
|
|
101
|
-
### 5. Cross-examine same-concept twins
|
|
102
|
-
|
|
103
|
-
Where one concept is computed in more than one place, feed both the same
|
|
104
|
-
input and require the same answer. `twin-drift` finds the same-name cases
|
|
105
|
-
mechanically; for same-concept-different-name pairs, trace the concept's
|
|
106
|
-
consumers with `refs` and compare implementations with `code`. Once a pair
|
|
107
|
-
is identified, `scip-query twin-ab <symbolA> <symbolB>` scaffolds a
|
|
108
|
-
table-driven vitest file that imports both and asserts equal output —
|
|
109
|
-
fill in the input table and run it. Disagreement between twins means at
|
|
110
|
-
least one is wrong — determine which before consolidating.
|
|
111
|
-
Complete only when every discovered twin pair has been compared on a shared
|
|
112
|
-
input.
|
|
113
|
-
|
|
114
|
-
## Severity
|
|
115
|
-
|
|
116
|
-
Rank findings by what the failure does to a user who trusted the output:
|
|
117
|
-
a decorative checker or false "verified" banner outranks everything; a
|
|
118
|
-
dead-but-fallbacked feature outranks a wrong metric; a wrong metric outranks
|
|
119
|
-
structural mess. Route structural findings to `scip-maintainability` —
|
|
120
|
-
they are real but they are not lies.
|
|
121
|
-
|
|
122
|
-
## Reporting
|
|
123
|
-
|
|
124
|
-
File each finding with: the claim as displayed, the producer (file:line),
|
|
125
|
-
the drill that exposed it, the should-fail input or real sample used, and
|
|
126
|
-
the fix. The audit is complete only when every drill's exit criterion is
|
|
127
|
-
met for the scope, and every defect found has a regression artifact — a
|
|
128
|
-
test, fixture, or model that fails on the pre-fix behavior.
|
|
129
|
-
|
|
130
|
-
End with a derived verdict, not an impression:
|
|
131
|
-
|
|
132
|
-
```markdown
|
|
133
|
-
Integrity: <scope> — <c> checkers witnessed failing, <a> adapters diffed
|
|
134
|
-
against reality, <f> fallback primaries witnessed live, <m> metrics
|
|
135
|
-
recomputed, <t> twins compared; <d> defects filed, <u> unverifiable (reasons)
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
A suspect scope that produces zero defects is itself a claim: state what
|
|
139
|
-
made the suspicion wrong, or rerun the drill that should have caught it.
|
|
140
|
-
|
|
141
|
-
A regression artifact that doesn't actually assert anything, or asserts the
|
|
142
|
-
same literal it stubbed into its own mock, is a fake witness — the same
|
|
143
|
-
"reports success without doing the work" failure mode this skill hunts in
|
|
144
|
-
production code, just relocated to the test suite. Run `scip-query
|
|
145
|
-
test-quality -s <scope>` over the audit's own regression artifacts (and,
|
|
146
|
-
periodically, over the suite at large) to catch this: assertion-free test
|
|
147
|
-
bodies, a skipped-test ledger with git-blame age (a skip with no fix date
|
|
148
|
-
attached is a claim nobody is checking), and mock-echo (a test that only
|
|
149
|
-
proves its own stub). Standalone-only, mixed precision by sub-check
|
|
150
|
-
(calibrated 2026-07-03): assertion-free and skipped are high-precision;
|
|
151
|
-
mock-echo is intentionally low-precision (syntactic same-literal matching,
|
|
152
|
-
not dataflow) — treat its output as a reviewed candidate list, not a verdict.
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
interface:
|
|
2
|
-
display_name: "scip integrity audit"
|
|
3
|
-
short_description: "Interrogate whether implementations are real: falsify checkers, diff adapters against reality, autopsy fallbacks."
|
|
4
|
-
default_prompt: "Run the scip-integrity-audit drills over this codebase and report every decorative checker, dead-behind-fallback feature, and lying metric."
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: scip-language-playbook
|
|
3
|
-
description: Choose language-specific scip-query commands. Use when entering an unfamiliar TypeScript, Python, Java, Scala, Kotlin, Rust, Go, C, C++, Ruby, C#, Visual Basic, Dart, PHP, Clojure, ClojureScript, or Vue codebase and you need high-signal exploration or de-bloat commands first.
|
|
4
|
-
commands:
|
|
5
|
-
- template: "scip-query stats"
|
|
6
|
-
when: "Universal first pass: repo-wide size and shape."
|
|
7
|
-
- template: "scip-query files <feature-or-module-name>"
|
|
8
|
-
when: "Universal first pass: locate the files for a feature or module."
|
|
9
|
-
- template: "scip-query outline <file>"
|
|
10
|
-
when: "Universal first pass: symbol tree for a candidate file."
|
|
11
|
-
- template: "scip-query trace <symbol>"
|
|
12
|
-
when: "Universal first pass: definition plus every reference."
|
|
13
|
-
- template: "scip-query code <symbol>"
|
|
14
|
-
when: "Universal first pass: confirm behavior claims with source."
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
# scip-language-playbook
|
|
18
|
-
|
|
19
|
-
Use this reference to pick the shortest command path from "what is this system doing?" to verified language-specific answers.
|
|
20
|
-
|
|
21
|
-
Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
|
|
22
|
-
|
|
23
|
-
<!-- BEGIN GENERATED SKILL COMMANDS -->
|
|
24
|
-
## Commands for this skill
|
|
25
|
-
|
|
26
|
-
| Command | Purpose | When |
|
|
27
|
-
| --- | --- | --- |
|
|
28
|
-
| `scip-query stats` | Show index statistics | Universal first pass: repo-wide size and shape. |
|
|
29
|
-
| `scip-query files <feature-or-module-name>` | Find files matching a pattern | Universal first pass: locate the files for a feature or module. |
|
|
30
|
-
| `scip-query outline <file>` | Tree view of symbols in a file, with line ranges | Universal first pass: symbol tree for a candidate file. |
|
|
31
|
-
| `scip-query trace <symbol>` | Trace a symbol: definition + all references | Universal first pass: definition plus every reference. |
|
|
32
|
-
| `scip-query code <symbol>` | Read the source code for a symbol (bounded to its definition range) | Universal first pass: confirm behavior claims with source. |
|
|
33
|
-
|
|
34
|
-
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
35
|
-
<!-- END GENERATED SKILL COMMANDS -->
|
|
36
|
-
|
|
37
|
-
## Rules
|
|
38
|
-
|
|
39
|
-
1. Start with the active language row before broader or noisier commands.
|
|
40
|
-
2. Pair relationship commands with `code` for behavior claims.
|
|
41
|
-
3. For de-bloat, cross-check multiple detector families.
|
|
42
|
-
4. When a command is weaker in a language, use the listed fallback.
|
|
43
|
-
|
|
44
|
-
## Universal First Pass
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
scip-query stats
|
|
48
|
-
scip-query kind-counts
|
|
49
|
-
scip-query files <feature-or-module-name>
|
|
50
|
-
scip-query outline <file>
|
|
51
|
-
scip-query by-kind function --scope <feature-or-module-name>
|
|
52
|
-
scip-query trace <symbol>
|
|
53
|
-
scip-query hierarchy <symbol>
|
|
54
|
-
scip-query code <symbol>
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Language Rows
|
|
58
|
-
|
|
59
|
-
| Language | Use first | De-bloat set | Fallback note |
|
|
60
|
-
| --- | --- | --- | --- |
|
|
61
|
-
| TypeScript | `system`, `surface`, `call-graph`, `dataflow`, `change-surface` | `health`, `dead`, `similar`, `similar --plan`, `wrapper-candidates`, `passthrough-candidates`, `stale-abstractions`, `unused-imports`, `redundant-reexports` | Strongest verified surface. Vue script blocks use this path too. |
|
|
62
|
-
| Python | `outline`, `kind-counts --scope`, `system`, `imports`, `imported-by`, `call-graph` | `dead`, `unused-imports`, `drift`, `similar-signatures`, `complexity`, `complexity-hotspots` | Prefer source-backed fallbacks when call/kind metadata is sparse. |
|
|
63
|
-
| Java | `system`, `surface`, `call-graph`, `deps`, `rdeps`, `slice` | `health`, `dead`, `similar-files`, `similar-chains`, `wrapper-candidates`, `stale-abstractions`, `extract-candidates` | Use module/package surfaces to avoid class-only tunnel vision. |
|
|
64
|
-
| Scala | `surface`, `trace`, `call-graph`, `imports`, `imported-by` | `dead`, `similar-files`, `similar-chains`, `extract-candidates`, `stale-abstractions`, `unused-imports` | Confirm behavior with `code`. |
|
|
65
|
-
| Kotlin | `surface`, `trace`, `call-graph`, `imports`, `imported-by` | `dead`, `similar-files`, `similar-chains`, `extract-candidates`, `stale-abstractions`, `unused-imports` | Confirm behavior with `code`. |
|
|
66
|
-
| Rust | `trace`, `call-graph`, `refs`, `methods`, `surface` | `dead`, `wrapper-candidates`, `passthrough-candidates`, `stale-abstractions`, `similar-signatures`, `redundant-reexports` | Methods and surface are usually high signal. |
|
|
67
|
-
| Go | `surface`, `trace`, `call-graph`, `refs`, `fan-in` | `dead`, `wrapper-candidates`, `passthrough-candidates`, `similar-files`, `similar-signatures`, `complexity` | Use package-level surfaces and confirm exported APIs before cleanup. |
|
|
68
|
-
| C++ | `trace`, `refs`, `methods`, `surface`, `code` | `dead`, `wrapper-candidates`, `similar-files`, `similar-chains`, `extract-candidates`, `unused-imports` | Try `call-graph` after trace/refs/code. |
|
|
69
|
-
| C | `trace`, `call-graph`, `refs`, `outline`, `fan-out` | `dead`, `wrapper-candidates`, `similar-files`, `similar-chains`, `extract-candidates`, `unused-imports` | Skip class/member commands. |
|
|
70
|
-
| Ruby | `trace`, `call-graph`, `refs`, `imports`, `imported-by` | `dead`, `wrapper-candidates`, `passthrough-candidates`, `stale-abstractions`, `similar-files`, `similar-signatures` | Confirm dynamic-looking paths with source. |
|
|
71
|
-
| C# | `surface`, `call-graph`, `trace`, `methods`, `refs` | `dead`, `wrapper-candidates`, `passthrough-candidates`, `stale-abstractions`, `similar-files`, `extract-candidates` | Use surfaces and methods together. |
|
|
72
|
-
| Visual Basic | `surface`, `call-graph`, `trace`, `methods`, `refs` | `dead`, `wrapper-candidates`, `passthrough-candidates`, `stale-abstractions`, `similar-files`, `extract-candidates` | Use surfaces and methods together. |
|
|
73
|
-
| Dart | `surface`, `call-graph`, `trace`, `imports`, `imported-by` | `dead`, `wrapper-candidates`, `stale-abstractions`, `similar-files`, `similar-signatures`, `redundant-reexports` | Confirm exported API shape with `surface`. |
|
|
74
|
-
| PHP | `trace`, `refs`, `methods`, `surface`, `code` | `dead`, `wrapper-candidates`, `stale-abstractions`, `similar-files`, `similar-signatures`, `extract-candidates` | Try `call-graph` after trace/refs/code. |
|
|
75
|
-
| Clojure / ClojureScript | `files`, `outline`, `trace`, `refs`, `call-graph` | `dead`, `similar-files`, `similar-signatures`, `complexity`, `complexity-hotspots` | SCIP indexing comes from `scip-clojure`; no TypeScript-style semantic provider is available. |
|
|
76
|
-
|
|
77
|
-
## Minimal Workflows
|
|
78
|
-
|
|
79
|
-
Understand a feature:
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
scip-query files <feature>
|
|
83
|
-
scip-query outline <file>
|
|
84
|
-
scip-query kind-counts --scope <feature>
|
|
85
|
-
scip-query fan-out <file>
|
|
86
|
-
scip-query trace <entry-symbol>
|
|
87
|
-
scip-query call-graph <entry-symbol>
|
|
88
|
-
scip-query code <entry-symbol>
|
|
89
|
-
scip-query surface <module>
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
Find DRY and de-bloat wins:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
scip-query health
|
|
96
|
-
scip-query dead
|
|
97
|
-
scip-query wrapper-candidates
|
|
98
|
-
scip-query passthrough-candidates
|
|
99
|
-
scip-query stale-abstractions
|
|
100
|
-
scip-query similar-files
|
|
101
|
-
scip-query similar-chains
|
|
102
|
-
scip-query similar-signatures
|
|
103
|
-
scip-query extract-candidates
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
When recommending a command sequence, name the language and why these commands are highest-signal for it.
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: scip-maintainability
|
|
3
|
-
description: Review maintainability with scip-query evidence. Use for hidden policies, scattered concepts, accidental variation, weak boundaries, system compression, architecture smells, structural refactors, or maintainability improvements beyond health scores.
|
|
4
|
-
commands:
|
|
5
|
-
- template: "scip-query stats"
|
|
6
|
-
when: "Map evidence: repo-wide size before bounding the review."
|
|
7
|
-
- template: "scip-query system <scope>"
|
|
8
|
-
when: "Map evidence: files, symbols, deps in/out for the scope."
|
|
9
|
-
- template: "scip-query surface <scope>"
|
|
10
|
-
when: "Map evidence: what consumers actually use from the scope."
|
|
11
|
-
- template: "scip-query change-surface <file>"
|
|
12
|
-
when: "Map evidence: exports, consumers, and blast-radius risk."
|
|
13
|
-
- template: "scip-query affected <symbol>"
|
|
14
|
-
when: "Map evidence: transitive consumers of a candidate symbol."
|
|
15
|
-
- template: "scip-query drift --patterns --architecture"
|
|
16
|
-
when: "Map evidence: declared architecture violations plus boundary and pattern signals; treat opt-in pattern hits as leads, not findings."
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
# scip-maintainability
|
|
20
|
-
|
|
21
|
-
Use this skill to review a codebase as a maintainer who must make future changes safely. Maintainability is the degree to which real code units let a maintainer understand, verify, and change behavior without rediscovering hidden knowledge.
|
|
22
|
-
|
|
23
|
-
Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
|
|
24
|
-
|
|
25
|
-
<!-- BEGIN GENERATED SKILL COMMANDS -->
|
|
26
|
-
## Commands for this skill
|
|
27
|
-
|
|
28
|
-
| Command | Purpose | When |
|
|
29
|
-
| --- | --- | --- |
|
|
30
|
-
| `scip-query stats` | Show index statistics | Map evidence: repo-wide size before bounding the review. |
|
|
31
|
-
| `scip-query system <scope>` | Full module map: files, symbols, deps in/out | Map evidence: files, symbols, deps in/out for the scope. |
|
|
32
|
-
| `scip-query surface <scope>` | What symbols consumers actually use from this module | Map evidence: what consumers actually use from the scope. |
|
|
33
|
-
| `scip-query change-surface <file>` | Pre-change briefing: exports, consumers, and blast-radius risk | Map evidence: exports, consumers, and blast-radius risk. |
|
|
34
|
-
| `scip-query affected <symbol>` | Transitive closure of symbols that could break if this symbol changes | Map evidence: transitive consumers of a candidate symbol. |
|
|
35
|
-
| `scip-query drift --patterns --architecture` | Detect drift candidates: unused imports and declared architecture violations; pass --architecture for boundary context | Map evidence: declared architecture violations plus boundary and pattern signals; treat opt-in pattern hits as leads, not findings. |
|
|
36
|
-
|
|
37
|
-
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
38
|
-
<!-- END GENERATED SKILL COMMANDS -->
|
|
39
|
-
|
|
40
|
-
## Terms
|
|
41
|
-
|
|
42
|
-
A code smell is an observable codebase fact that predicts avoidable future mistakes because the same knowledge must be rediscovered, synchronized, or defended in more than one place.
|
|
43
|
-
|
|
44
|
-
A concept boundary is the line around code units that exist for one reason to change.
|
|
45
|
-
|
|
46
|
-
A hidden policy is a rule for choosing behavior when several plausible behaviors exist, but the rule lives in local branches, comments, conventions, or caller folklore instead of a named mechanism.
|
|
47
|
-
|
|
48
|
-
A lifecycle is a repeatable sequence of states or steps that makes a result valid.
|
|
49
|
-
|
|
50
|
-
Accidental variation is difference in code shape that does not correspond to behavior, domain facts, runtime constraints, or external contracts.
|
|
51
|
-
|
|
52
|
-
Essential variation is difference that must remain because the real units differ: language grammars, user-visible APIs, runtime environments, or compatibility boundaries.
|
|
53
|
-
|
|
54
|
-
System compression is replacing several mechanisms that perform the same role, policy, lifecycle, or surface job with fewer named mechanisms that preserve behavior.
|
|
55
|
-
|
|
56
|
-
A unifying definition is the single essential trait that makes several code sites one concept; what makes it a test is that failing to state it proves the sites are not one concept, and consolidating them anyway would package-deal essential variation into a false abstraction.
|
|
57
|
-
|
|
58
|
-
## Rules
|
|
59
|
-
|
|
60
|
-
1. Ground claims in files, symbols, references, call graphs, dependencies, surfaces, and blast radius.
|
|
61
|
-
2. Do not chase health scores; detector counts are clues, not objectives.
|
|
62
|
-
3. Name concrete referents before naming the smell.
|
|
63
|
-
4. Preserve essential variation.
|
|
64
|
-
5. Add an abstraction only when it removes hidden policy, names a lifecycle, enforces a rule, or reduces concept count.
|
|
65
|
-
6. Prefer deletion, inlining, merging, generation, or enforcement before broad frameworks.
|
|
66
|
-
7. A scattered-concept or consolidation claim ships its unifying definition. If no single essential trait covers every cited site, the variation is essential: record it and do not consolidate.
|
|
67
|
-
|
|
68
|
-
## Workflow
|
|
69
|
-
|
|
70
|
-
### 1. Bound the review
|
|
71
|
-
|
|
72
|
-
Restate the question:
|
|
73
|
-
|
|
74
|
-
```text
|
|
75
|
-
What future-maintenance mistakes does this structure invite, and what smaller named mechanisms would prevent them without hiding real variation?
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Name the scope: repo, module, command family, query family, runtime surface, fixture set, or feature path.
|
|
79
|
-
|
|
80
|
-
This step is complete only when the review question and scope are concrete.
|
|
81
|
-
|
|
82
|
-
### 2. Map evidence
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
scip-query stats
|
|
86
|
-
scip-query system <scope>
|
|
87
|
-
scip-query surface <scope>
|
|
88
|
-
scip-query files <pattern>
|
|
89
|
-
scip-query outline <file>
|
|
90
|
-
scip-query deps <file>
|
|
91
|
-
scip-query rdeps <file>
|
|
92
|
-
scip-query trace <symbol>
|
|
93
|
-
scip-query call-graph <symbol>
|
|
94
|
-
scip-query affected <symbol>
|
|
95
|
-
scip-query change-surface <file>
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
Use cleanup commands as probes: `health`, `similar`, `similar-files`, `similar-chains`, `extract-candidates`, `wrapper-candidates`, `passthrough-candidates`, `stale-abstractions`, `drift`, and `cycles`.
|
|
99
|
-
|
|
100
|
-
This step is complete only when concrete units, consumers, tests, fallbacks, adapters, generated artifacts, and compatibility constraints are visible.
|
|
101
|
-
|
|
102
|
-
### 3. Build the role inventory
|
|
103
|
-
|
|
104
|
-
For each cluster, ask:
|
|
105
|
-
|
|
106
|
-
- What one concept appears in several places — and what single essential trait makes them one concept? If the trait cannot be stated, they are not one concept.
|
|
107
|
-
- What policy is hidden?
|
|
108
|
-
- What lifecycle is unnamed?
|
|
109
|
-
- Which differences are essential?
|
|
110
|
-
- What must a maintainer know that the local interface does not admit?
|
|
111
|
-
- Would a smaller mechanism remove a reason to change, or only move code?
|
|
112
|
-
|
|
113
|
-
This step is complete only when every candidate smell names its referents and its future-maintenance failure mode.
|
|
114
|
-
|
|
115
|
-
### 4. Rank pressure
|
|
116
|
-
|
|
117
|
-
Prefer severe smells in this order:
|
|
118
|
-
|
|
119
|
-
1. Hidden correctness or evidence policy spread across modules.
|
|
120
|
-
2. Repeated lifecycle or pipeline with no owner.
|
|
121
|
-
3. Public surface exposing accidental internals.
|
|
122
|
-
4. Large module with unrelated reasons to change.
|
|
123
|
-
5. Tests that encode incident history without contract vocabulary.
|
|
124
|
-
6. Adapter families with repeated capability or fallback shapes.
|
|
125
|
-
7. Suppression comments that document architecture decisions instead of exceptions.
|
|
126
|
-
8. Thin wrappers and passthroughs that do not buy clarity.
|
|
127
|
-
|
|
128
|
-
Reject smells that are aesthetic, unverifiable, or false compression.
|
|
129
|
-
|
|
130
|
-
This step is complete only when each target is ranked, skipped, or deferred with evidence.
|
|
131
|
-
|
|
132
|
-
### 5. Choose a model
|
|
133
|
-
|
|
134
|
-
For substantial changes, compare at least two models:
|
|
135
|
-
|
|
136
|
-
- Conservative: delete or inline local bloat.
|
|
137
|
-
- Shape-level: introduce one small mechanism for a repeated role or lifecycle.
|
|
138
|
-
- Radical: replace a scattered surface with metadata, generation, or enforced policy.
|
|
139
|
-
|
|
140
|
-
Evaluate behavior preserved, concept count removed, blast radius, deletion potential, false-abstraction failure mode, migration path, and verification cost.
|
|
141
|
-
|
|
142
|
-
This step is complete only when the chosen model removes a concept or policy duplication rather than merely extracting a helper.
|
|
143
|
-
|
|
144
|
-
### 6. Produce a register or atlas
|
|
145
|
-
|
|
146
|
-
For broad review, write a register under `docs/plans/` unless the user asks not to edit files. For implementation, write an atlas before editing.
|
|
147
|
-
|
|
148
|
-
Use dispositions: `merge`, `delete`, `inline`, `extract`, `generate`, `enforce`, `supersede`, `defer`, `skip`.
|
|
149
|
-
|
|
150
|
-
Every `merge`, `extract`, or `generate` entry carries its unifying definition and its strongest dissenter — the cited site most likely to differ essentially — with the evidence that it does not. A dissenter that survives moves the entry to `skip` with reason `essential variation`; the dissenter stays in the register either way.
|
|
151
|
-
|
|
152
|
-
This step is complete only when each opportunity has evidence, disposition, dependency order, touch map, and validation plan.
|
|
153
|
-
|
|
154
|
-
### 7. Implement and verify when asked
|
|
155
|
-
|
|
156
|
-
Implement the smallest named mechanism that matches the real concept. Keep essential variation near the adapter or domain code that knows it. After changes, run focused tests and routed postchecks from the shared reference, then invoke `scip-verify`.
|
|
157
|
-
|
|
158
|
-
Report the smell addressed, mechanism introduced or removed, what was deliberately not compressed, and verification results.
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
interface:
|
|
2
|
-
display_name: "SCIP Probe Reachability"
|
|
3
|
-
short_description: "Prove parser/AST branches are reachable by running the real parser"
|
|
4
|
-
default_prompt: "Enumerate the node-type/shape branches in the target parser or AST-consuming function, construct a minimal input per branch, run the real parser on each in a scratch script, and file findings for every unreached branch."
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: scip-react-maintainability
|
|
3
|
-
description: Review React maintainability with scip-query. Use for React, TSX, JSX, Next.js, duplicated components, hook candidates, large components, frontend health pressure, or verifying reuse after refactors.
|
|
4
|
-
commands:
|
|
5
|
-
- template: "scip-query react-component-duplicates --scope <scope> --full --json"
|
|
6
|
-
when: "Bound and scan: duplicated JSX structure candidates."
|
|
7
|
-
- template: "scip-query react-hook-candidates --scope <scope> --full --json"
|
|
8
|
-
when: "Bound and scan: shared state/effect/request extraction candidates."
|
|
9
|
-
- template: "scip-query react-large-component-pressure --scope <scope> --full --json"
|
|
10
|
-
when: "Bound and scan: components carrying several reasons to change."
|
|
11
|
-
- template: "scip-query recent-duplicates --scope <scope> --full --json"
|
|
12
|
-
when: "Bound and scan: recent code re-implementing established components."
|
|
13
|
-
- template: "scip-query similar <closest-existing-component-or-hook>"
|
|
14
|
-
when: "Cross-check candidates: existing component or hook to reuse instead."
|
|
15
|
-
- template: "scip-query health --scope <scope> --json"
|
|
16
|
-
when: "Bound and scan: frontend health pressure for the scope."
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
# scip-react-maintainability
|
|
20
|
-
|
|
21
|
-
Use this skill to review React frontends as maintainable systems of components, hooks, JSX structure, and behavior lifecycles.
|
|
22
|
-
|
|
23
|
-
Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
|
|
24
|
-
|
|
25
|
-
<!-- BEGIN GENERATED SKILL COMMANDS -->
|
|
26
|
-
## Commands for this skill
|
|
27
|
-
|
|
28
|
-
| Command | Purpose | When |
|
|
29
|
-
| --- | --- | --- |
|
|
30
|
-
| `scip-query react-component-duplicates --scope <scope> --full --json` | Find heuristic duplicated React component structure candidates from JSX tags, props, events, and bindings | Bound and scan: duplicated JSX structure candidates. |
|
|
31
|
-
| `scip-query react-hook-candidates --scope <scope> --full --json` | Find heuristic React hook extraction candidates from shared state, effects, requests, and handlers | Bound and scan: shared state/effect/request extraction candidates. |
|
|
32
|
-
| `scip-query react-large-component-pressure --scope <scope> --full --json` | Find heuristic large React component pressure candidates from component lines, JSX structure, and hook behavior | Bound and scan: components carrying several reasons to change. |
|
|
33
|
-
| `scip-query recent-duplicates --scope <scope> --full --json` | Directional duplicate candidates: recent code that re-implements established callable, React, or Vue code | Bound and scan: recent code re-implementing established components. |
|
|
34
|
-
| `scip-query similar <closest-existing-component-or-hook>` | Find heuristic function similarity candidates from callee fingerprints | Cross-check candidates: existing component or hook to reuse instead. |
|
|
35
|
-
| `scip-query health --scope <scope> --json` | Composite codebase health report with prioritized action list | Bound and scan: frontend health pressure for the scope. |
|
|
36
|
-
|
|
37
|
-
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
38
|
-
<!-- END GENERATED SKILL COMMANDS -->
|
|
39
|
-
|
|
40
|
-
## Terms
|
|
41
|
-
|
|
42
|
-
A React component duplicate candidate is a pair or group of rendered structures that repeat the same user-facing arrangement, controls, states, props, or data-presentation shape enough that a shared component may reduce drift.
|
|
43
|
-
|
|
44
|
-
A React hook candidate is a pair or group of component behaviors that repeat the same state lifecycle, effects, requests, validation, persistence, callback policy, or derived-data rule enough that a shared hook may preserve behavior better.
|
|
45
|
-
|
|
46
|
-
Large component pressure means one component or file contains several kinds of knowledge that change for different reasons.
|
|
47
|
-
|
|
48
|
-
## Workflow
|
|
49
|
-
|
|
50
|
-
### 1. Bound and scan
|
|
51
|
-
|
|
52
|
-
Pick the narrowest React source root, feature area, or changed-file scope that still includes likely reuse partners. Run uncapped commands:
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
scip-query react-component-duplicates --scope <scope> --full --json
|
|
56
|
-
scip-query react-hook-candidates --scope <scope> --full --json
|
|
57
|
-
scip-query react-large-component-pressure --scope <scope> --full --json
|
|
58
|
-
scip-query recent-duplicates --scope <scope> --full --json
|
|
59
|
-
scip-query health --scope <scope> --json
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
This step is complete only when command scope, counts, and uncapped/full status are recorded.
|
|
63
|
-
|
|
64
|
-
### 2. Cross-check candidates
|
|
65
|
-
|
|
66
|
-
- Component duplicate only: inspect for shared presentational component or existing component reuse.
|
|
67
|
-
- Hook candidate only: inspect for shared behavior, lifecycle, request, validation, persistence, or derived-state policy.
|
|
68
|
-
- Both: inspect for a feature-level concept needing both component and hook boundaries.
|
|
69
|
-
- Large component only: split by reason to change, not by line count.
|
|
70
|
-
|
|
71
|
-
Use:
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
scip-query outline <file>
|
|
75
|
-
scip-query deps <file>
|
|
76
|
-
scip-query rdeps <file>
|
|
77
|
-
scip-query similar-files --scope <scope>
|
|
78
|
-
scip-query similar <closest-existing-component-or-hook>
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
This step is complete only when each top candidate is reuse, extract, split, skip, or blocked.
|
|
82
|
-
|
|
83
|
-
### 3. Act on findings
|
|
84
|
-
|
|
85
|
-
Prefer reuse before extraction. Extract components for repeated UI structure, states, props, slots/children, or design-system composition. Extract hooks for repeated state, effects, requests, subscriptions, memoized derivations, callbacks, or persistence. Keep domain-specific variation at call sites when essential.
|
|
86
|
-
|
|
87
|
-
This step is complete only when the chosen action reduces future drift without creating boolean-soup APIs or wrapper components with no policy.
|
|
88
|
-
|
|
89
|
-
### 4. Verify
|
|
90
|
-
|
|
91
|
-
Run routed postchecks from the shared reference, including React commands, `incomplete-migration`, `recent-duplicates`, `unused-params`, and wrapper/passthrough/stale checks, then invoke `scip-verify`.
|
|
92
|
-
|
|
93
|
-
The work is complete only when acted-on candidate pairs disappear, weaken materially, or are explicitly accepted as essential variation.
|
|
94
|
-
|
|
95
|
-
## False Positive Checks
|
|
96
|
-
|
|
97
|
-
Shared design-system primitives, icons, labels, route names, or test IDs are not enough. Similar JSX with different domain lifecycles may justify a presentational component but not a hook. A large file is review pressure, not proof of duplication.
|
|
98
|
-
|
|
99
|
-
## Report
|
|
100
|
-
|
|
101
|
-
Report executive read, command evidence, candidate groups, recommended action, post-change proof, and remaining accepted variation.
|