scip-query 0.10.12 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/{vendor/scip/LICENSE.scip → LICENSE} +1 -0
- package/README.md +141 -49
- package/dist/augment-vue-worker.js +1 -1
- package/dist/chunk-2VSDXOG5.js +2 -0
- package/dist/chunk-343O6EVV.js +2 -0
- package/dist/{chunk-RUV5IY25.js → chunk-3KDUITBE.js} +2 -2
- package/dist/chunk-3T2FNHIU.js +2 -0
- package/dist/{chunk-EOLGSSDR.js → chunk-3V6JQQM5.js} +2 -2
- package/dist/chunk-5AAAEZ2Z.js +2 -0
- package/dist/chunk-6Q6OFLFQ.js +8 -0
- package/dist/chunk-6XA4LDHY.js +2 -0
- package/dist/chunk-75X52JTA.js +2 -0
- package/dist/{chunk-LEHVP4DY.js → chunk-7HB3CZFD.js} +2 -2
- package/dist/chunk-7JZRFDCU.js +2 -0
- package/dist/{chunk-SQNHOOJ5.js → chunk-7XL7J7PT.js} +2 -2
- package/dist/{chunk-GKB4JJDU.js → chunk-ALHNAPS2.js} +2 -2
- package/dist/{chunk-TBCHRDAC.js → chunk-BDRBPG7Y.js} +2 -2
- package/dist/chunk-BN5SXXQS.js +40 -0
- package/dist/chunk-C4ICAIJ4.js +3 -0
- package/dist/{chunk-2GLNBCHB.js → chunk-CMHYBXJB.js} +2 -2
- package/dist/{chunk-S2MRVIJ5.js → chunk-DRPAQAFM.js} +6 -6
- package/dist/chunk-FERAXG6Y.js +72 -0
- package/dist/chunk-FLJJLSGB.js +2 -0
- package/dist/chunk-FXG3PHVW.js +9 -0
- package/dist/{chunk-JS6B76AQ.js → chunk-GCN2P4EJ.js} +2 -2
- package/dist/chunk-GHXRVCIY.js +21 -0
- package/dist/chunk-GNG622H3.js +3 -0
- package/dist/chunk-H4LUPLEJ.js +2 -0
- package/dist/{chunk-XUCZ3RQ5.js → chunk-H56MGERE.js} +4 -4
- package/dist/chunk-H7NSJ7L2.js +5 -0
- package/dist/chunk-HINMXZ6J.js +2 -0
- package/dist/chunk-HXXMPYEF.js +2 -0
- package/dist/{chunk-A4UTLKHU.js → chunk-HZKMEXA3.js} +2 -2
- package/dist/{chunk-T3AEVJBG.js → chunk-IFSX6YVU.js} +2 -2
- package/dist/chunk-ISLWJ4PY.js +10 -0
- package/dist/chunk-J5WVNZ6O.js +2 -0
- package/dist/chunk-K2HYR5A7.js +3 -0
- package/dist/{chunk-UVPY3RUZ.js → chunk-K6UI6EBZ.js} +2 -2
- package/dist/{chunk-MNCQPMCH.js → chunk-KJCDEDQW.js} +2 -2
- package/dist/{chunk-KZ4MG5NY.js → chunk-KKMOB3OJ.js} +2 -2
- package/dist/{chunk-ELC77ZDE.js → chunk-KMVGRIO2.js} +2 -2
- package/dist/chunk-LWOOTRHC.js +2 -0
- package/dist/{chunk-DQ6433ZG.js → chunk-LZNLRE4X.js} +17 -8
- package/dist/{chunk-7C6JBBE4.js → chunk-M2YXL62V.js} +2 -2
- package/dist/chunk-MNEJYEHW.js +3 -0
- package/dist/chunk-MTDBHTSF.js +2 -0
- package/dist/{chunk-VB2EZZPA.js → chunk-N2Z3CU7X.js} +2 -2
- package/dist/{chunk-2UVCH7CQ.js → chunk-N7PNFLGY.js} +2 -2
- package/dist/chunk-NAH5EAZS.js +6 -0
- package/dist/{chunk-XHMVZFA6.js → chunk-NBXK32I6.js} +2 -2
- package/dist/chunk-NJJ7AS4F.js +2 -0
- package/dist/{chunk-ANUEY5WV.js → chunk-NLMRJ7SI.js} +2 -2
- package/dist/chunk-ODVITBYU.js +26 -0
- package/dist/chunk-ORBRX2QJ.js +2 -0
- package/dist/{chunk-NTSR6SRP.js → chunk-P36UR5II.js} +2 -2
- package/dist/chunk-PYZZBIEU.js +3 -0
- package/dist/chunk-PZS6J5YG.js +16 -0
- package/dist/{chunk-3XSNW5XB.js → chunk-QARYU7R3.js} +2 -2
- package/dist/chunk-QJ3FK4TB.js +38 -0
- package/dist/{chunk-4ISHQ7UW.js → chunk-QXGTGE2C.js} +4 -4
- package/dist/chunk-QZ4JVECJ.js +2 -0
- package/dist/{chunk-63CI3IXR.js → chunk-R3JY4EZ4.js} +10 -10
- package/dist/{chunk-FX6ULETZ.js → chunk-R5336VHZ.js} +2 -2
- package/dist/chunk-RJMXSHKM.js +2 -0
- package/dist/chunk-STBXCPKY.js +5 -0
- package/dist/chunk-T2FQ4GHD.js +9 -0
- package/dist/chunk-TFWDJDGO.js +2 -0
- package/dist/chunk-TG7QSYCJ.js +2 -0
- package/dist/{chunk-ZUUNREKS.js → chunk-TTS75UF2.js} +5 -5
- package/dist/{chunk-DDQONX6B.js → chunk-U7I373V4.js} +2 -2
- package/dist/chunk-UIKLA3F5.js +2 -0
- package/dist/{chunk-6BN3EHQE.js → chunk-UMPNL7T6.js} +2 -2
- package/dist/chunk-URSSPS5H.js +2 -0
- package/dist/chunk-VGMUFW3J.js +2 -0
- package/dist/chunk-VXTNADIW.js +18 -0
- package/dist/{chunk-PWAK75BU.js → chunk-VYF5HA76.js} +2 -2
- package/dist/chunk-WFGOH2UI.js +43 -0
- package/dist/chunk-WGA5BBTA.js +4 -0
- package/dist/chunk-WIBFXSYB.js +6 -0
- package/dist/chunk-WPSS37EW.js +2 -0
- package/dist/chunk-WQHWIVA7.js +3 -0
- package/dist/chunk-WS3Z6W3M.js +65 -0
- package/dist/chunk-WXVGNFAO.js +2 -0
- package/dist/{chunk-RXINFVBN.js → chunk-WZLPXFZU.js} +2 -2
- package/dist/chunk-X4O6K47U.js +2 -0
- package/dist/chunk-X6OGDTQH.js +2 -0
- package/dist/chunk-XEMQUN3Z.js +20 -0
- package/dist/{chunk-OFXN2BCT.js → chunk-XHWLNQVZ.js} +2 -2
- package/dist/chunk-XMR747CP.js +2 -0
- package/dist/{chunk-JJ5SAWBT.js → chunk-Y6L4LXPG.js} +2 -2
- package/dist/chunk-YCPASUCX.js +2 -0
- package/dist/chunk-YZXV3CU3.js +60 -0
- package/dist/{chunk-XRUGSM76.js → chunk-ZEKBR4OK.js} +2 -2
- package/dist/chunk-ZMGBWSFZ.js +2 -0
- package/dist/cli.js +446 -280
- package/dist/{config-types-dvHOz0zU.d.ts → config-types-BrHl3Bge.d.ts} +57 -0
- package/dist/{db-rMZO5JFK.d.ts → db-_Bdx0E1W.d.ts} +1 -1
- package/dist/diff-gate-types-CG2YQ_ei.d.ts +4 -0
- package/dist/{frontend-behavior-evidence-BxKpKWUu.d.ts → frontend-behavior-evidence-EfM4_9bc.d.ts} +1 -1
- package/dist/{health-CtTIGh6H.d.ts → health-BEZ1Rt0S.d.ts} +54 -2
- package/dist/index.d.ts +4 -68
- package/dist/index.js +1 -1
- package/dist/postinstall.js +1 -4
- package/dist/queries/affected.d.ts +2 -2
- package/dist/queries/affected.js +1 -1
- package/dist/queries/bottlenecks.d.ts +2 -2
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.d.ts +2 -2
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.d.ts +2 -2
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.d.ts +2 -2
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.d.ts +2 -2
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.d.ts +12 -2
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.d.ts +2 -2
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity-hotspots.d.ts +7 -3
- package/dist/queries/complexity-hotspots.js +1 -1
- package/dist/queries/complexity.d.ts +42 -4
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/convergence.d.ts +2 -2
- package/dist/queries/convergence.js +1 -1
- package/dist/queries/coupling.d.ts +2 -2
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.d.ts +12 -3
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dataflow.d.ts +2 -2
- package/dist/queries/dataflow.js +1 -1
- package/dist/queries/dead.d.ts +3 -3
- package/dist/queries/dead.js +1 -1
- package/dist/queries/deep-chains.d.ts +2 -2
- package/dist/queries/deep-chains.js +1 -1
- package/dist/queries/deps.d.ts +2 -2
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-gate.d.ts +65 -8
- package/dist/queries/diff-gate.js +1 -1
- package/dist/queries/diff-impact.d.ts +21 -3
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.d.ts +29 -2
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +15 -3
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +55 -0
- package/dist/queries/duplicate-bodies.js +2 -0
- package/dist/queries/extract-candidates.d.ts +2 -2
- package/dist/queries/extract-candidates.js +1 -1
- package/dist/queries/fan.d.ts +2 -2
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.d.ts +4 -3
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.d.ts +3 -3
- package/dist/queries/health.js +1 -1
- package/dist/queries/hierarchy.d.ts +2 -2
- package/dist/queries/hierarchy.js +1 -1
- package/dist/queries/hotspots.d.ts +2 -2
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.d.ts +2 -2
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.d.ts +3 -2
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +12 -7
- package/dist/queries/index.js +1 -1
- package/dist/queries/isolated.d.ts +2 -2
- package/dist/queries/isolated.js +1 -1
- package/dist/queries/locality-candidates.d.ts +2 -2
- package/dist/queries/locality-candidates.js +1 -1
- package/dist/queries/members.d.ts +2 -2
- package/dist/queries/members.js +1 -1
- package/dist/queries/methods.d.ts +2 -2
- package/dist/queries/methods.js +1 -1
- package/dist/queries/outline.d.ts +2 -2
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.d.ts +11 -3
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/plan-context.d.ts +3 -2
- package/dist/queries/plan-context.js +1 -1
- package/dist/queries/react-component-duplicates.d.ts +7 -2
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +3 -3
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.d.ts +2 -2
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.d.ts +2 -2
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.d.ts +2 -2
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/refs.d.ts +2 -2
- package/dist/queries/refs.js +1 -1
- package/dist/queries/self-audit.d.ts +4 -2
- package/dist/queries/self-audit.js +1 -1
- package/dist/queries/similar-chains.d.ts +2 -2
- package/dist/queries/similar-chains.js +1 -1
- package/dist/queries/similar-files.d.ts +2 -2
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.d.ts +17 -10
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +42 -3
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice.d.ts +2 -2
- package/dist/queries/slice.js +1 -1
- package/dist/queries/stale-abstractions.d.ts +2 -2
- package/dist/queries/stale-abstractions.js +1 -1
- package/dist/queries/stats.d.ts +2 -2
- package/dist/queries/surface.d.ts +2 -2
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.d.ts +2 -2
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system.d.ts +2 -2
- package/dist/queries/system.js +1 -1
- package/dist/queries/trace.d.ts +2 -2
- package/dist/queries/trace.js +1 -1
- package/dist/queries/twin-ab.d.ts +55 -0
- package/dist/queries/twin-ab.js +2 -0
- package/dist/queries/twin-drift.d.ts +97 -0
- package/dist/queries/twin-drift.js +2 -0
- package/dist/queries/unused-imports.d.ts +2 -2
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.d.ts +2 -2
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/vue-component-duplicates.d.ts +7 -2
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.d.ts +3 -3
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.d.ts +6 -2
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/queries/wrapper-candidates.d.ts +2 -2
- package/dist/queries/wrapper-candidates.js +1 -1
- package/dist/reindex-worker.js +9 -9
- package/dist/reindex.d.ts +3 -3
- package/dist/reindex.js +19 -19
- package/dist/runtime.d.ts +11 -6
- package/dist/runtime.js +2 -2
- package/dist/{scip-cli-trnNvymv.d.ts → scip-cli-C7cg4ZHR.d.ts} +1 -1
- package/dist/symbol-types-DaoeXKUt.d.ts +66 -0
- package/docs/AGENT_GUIDE.md +20 -18
- package/docs/AI_FAILURE_MODES.md +36 -13
- package/docs/API.md +1 -1
- package/docs/COMMAND_REFERENCE.md +56 -13
- package/docs/DETECTOR_GUIDE.md +20 -3
- package/docs/REGEX_POLICY.md +34 -0
- package/docs/analyzer-inventory.md +40 -3
- package/docs/analyzer-validation-ledger.md +34 -6
- package/package.json +21 -7
- package/scripts/build-scip-windows.mjs +10 -7
- package/skills/_shared/SKILL.md +243 -0
- package/skills/_shared/agents/openai.yaml +4 -0
- package/skills/scip-api-impact/SKILL.md +55 -71
- package/skills/scip-claim-audit/SKILL.md +105 -0
- package/skills/scip-claim-audit/agents/openai.yaml +4 -0
- package/skills/scip-cleanup-audit/SKILL.md +122 -0
- package/skills/scip-cleanup-audit/agents/openai.yaml +4 -0
- package/skills/scip-cleanup-improve/SKILL.md +84 -0
- package/skills/scip-cleanup-improve/agents/openai.yaml +4 -0
- package/skills/scip-concrete-plan/SKILL.md +181 -0
- package/skills/scip-concrete-plan/agents/openai.yaml +4 -0
- package/skills/scip-conductor/SKILL.md +133 -0
- package/skills/scip-conductor/agents/openai.yaml +4 -0
- package/skills/scip-debug/SKILL.md +60 -58
- package/skills/scip-diagram/SKILL.md +64 -94
- package/skills/scip-directory-architecture/SKILL.md +65 -107
- package/skills/scip-doc-reconcile/SKILL.md +56 -67
- package/skills/scip-explore/SKILL.md +78 -210
- package/skills/scip-hyper-optimization/SKILL.md +124 -198
- package/skills/scip-integrity-audit/SKILL.md +103 -0
- package/skills/scip-integrity-audit/agents/openai.yaml +4 -0
- package/skills/scip-language-playbook/SKILL.md +56 -326
- package/skills/scip-maintainability/SKILL.md +80 -219
- package/skills/scip-probe-reachability/SKILL.md +92 -0
- package/skills/scip-probe-reachability/agents/openai.yaml +4 -0
- package/skills/scip-query/SKILL.md +108 -124
- package/skills/scip-react-maintainability/SKILL.md +64 -82
- package/skills/scip-setup/SKILL.md +121 -0
- package/skills/scip-setup/agents/openai.yaml +4 -0
- package/skills/scip-tla-model-system/SKILL.md +138 -0
- package/skills/scip-tla-model-system/agents/openai.yaml +4 -0
- package/skills/scip-triage-issue/SKILL.md +53 -41
- package/skills/scip-twin-drift/SKILL.md +107 -0
- package/skills/scip-twin-drift/agents/openai.yaml +4 -0
- package/skills/scip-verify/SKILL.md +70 -88
- package/skills/scip-vue-maintainability/SKILL.md +67 -94
- package/dist/chunk-2DOW7QCA.js +0 -71
- package/dist/chunk-2FMFF4RI.js +0 -2
- package/dist/chunk-5GXTUANY.js +0 -2
- package/dist/chunk-5JHEN5VN.js +0 -25
- package/dist/chunk-62ULXMQ7.js +0 -18
- package/dist/chunk-7EK7OSWS.js +0 -2
- package/dist/chunk-7IWIMNHI.js +0 -2
- package/dist/chunk-7XTO4YXB.js +0 -8
- package/dist/chunk-AOWFUGDL.js +0 -2
- package/dist/chunk-AREANYIA.js +0 -3
- package/dist/chunk-AZBELWZQ.js +0 -7
- package/dist/chunk-B32FX5KB.js +0 -2
- package/dist/chunk-B6MJ5VQV.js +0 -2
- package/dist/chunk-CXWCLVYL.js +0 -2
- package/dist/chunk-CYHIKTJN.js +0 -3
- package/dist/chunk-DFSEARAU.js +0 -2
- package/dist/chunk-DVFP6PZI.js +0 -2
- package/dist/chunk-E3ADDB43.js +0 -2
- package/dist/chunk-F6IXELII.js +0 -20
- package/dist/chunk-FMGVZBS2.js +0 -2
- package/dist/chunk-GG5LHT27.js +0 -2
- package/dist/chunk-H7JF2CKK.js +0 -2
- package/dist/chunk-HHOMJCP5.js +0 -4
- package/dist/chunk-HRDSU5FN.js +0 -9
- package/dist/chunk-HWVYTJOV.js +0 -2
- package/dist/chunk-JNMLBL36.js +0 -2
- package/dist/chunk-L446VQYQ.js +0 -2
- package/dist/chunk-LDJUB7XW.js +0 -2
- package/dist/chunk-MYTUWXHK.js +0 -4
- package/dist/chunk-N25HPUOK.js +0 -2
- package/dist/chunk-NABVR6B7.js +0 -2
- package/dist/chunk-NBNEVLRC.js +0 -3
- package/dist/chunk-ONPCQ2PM.js +0 -6
- package/dist/chunk-Q5P7NOVM.js +0 -2
- package/dist/chunk-RGKRYO22.js +0 -4
- package/dist/chunk-RM2WQ75T.js +0 -2
- package/dist/chunk-ROGZXWN2.js +0 -2
- package/dist/chunk-RSSXKJ6J.js +0 -38
- package/dist/chunk-RVGEZYMQ.js +0 -2
- package/dist/chunk-SA3DPTHT.js +0 -7
- package/dist/chunk-SGTKURU6.js +0 -52
- package/dist/chunk-T4N2ZRVY.js +0 -21
- package/dist/chunk-THB6AM3V.js +0 -11
- package/dist/chunk-ULHLDOD6.js +0 -4
- package/dist/chunk-UQ73QF5D.js +0 -43
- package/dist/chunk-UUBMFL3F.js +0 -59
- package/dist/chunk-V5FGK3DZ.js +0 -2
- package/dist/chunk-WTY5FERW.js +0 -2
- package/dist/chunk-WUOB4DHH.js +0 -6
- package/dist/chunk-YFQIKYOP.js +0 -2
- package/dist/chunk-Z2LDWIJV.js +0 -5
- package/dist/chunk-ZNWWVYQL.js +0 -3
- package/skills/concrete-plan/SKILL.md +0 -372
- package/skills/concrete-plan/agents/openai.yaml +0 -4
- package/skills/scip-adoption/SKILL.md +0 -122
- package/skills/scip-adoption/agents/openai.yaml +0 -4
- package/skills/scip-ai-cleanup/SKILL.md +0 -153
- package/skills/scip-ai-cleanup/agents/openai.yaml +0 -4
- package/skills/scip-debloat/SKILL.md +0 -439
- package/skills/scip-debloat/agents/openai.yaml +0 -4
- package/skills/scip-health-audit/SKILL.md +0 -162
- package/skills/scip-health-audit/agents/openai.yaml +0 -4
- package/skills/scip-health-improve/SKILL.md +0 -155
- package/skills/scip-health-improve/agents/openai.yaml +0 -4
- package/skills/scip-query-setup/SKILL.md +0 -170
- package/skills/scip-query-setup/agents/openai.yaml +0 -3
- package/vendor/scip/README.md +0 -6
- package/vendor/scip/win32-arm64/scip.exe +0 -0
- package/vendor/scip/win32-x64/scip.exe +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scip-claim-audit
|
|
3
|
+
description: Audit output-facing status claims for evidence with scip-query. Use to classify whether an "available", "verified", "safe", "PASS", or "complete" status word is derived from a real check, hedged as a candidate, or merely asserted without being probed.
|
|
4
|
+
commands:
|
|
5
|
+
- template: "scip-query files <pattern>"
|
|
6
|
+
when: "Inventory: locate the renderer or status-producing module for a claim."
|
|
7
|
+
- template: "scip-query refs <symbol>"
|
|
8
|
+
when: "Classify: find every producer and consumer of a status-bearing function."
|
|
9
|
+
- template: "scip-query code <symbol>"
|
|
10
|
+
when: "Classify: read the producing function to see whether it computes or asserts."
|
|
11
|
+
- template: "scip-query trace <symbol>"
|
|
12
|
+
when: "Classify: definition plus every reference for a status field or constant."
|
|
13
|
+
- template: "scip-query capabilities --matrix --json"
|
|
14
|
+
when: "Spot-check: an already-known example of a fixed derived-status surface."
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# scip-claim-audit
|
|
18
|
+
|
|
19
|
+
Use this skill to find agent-facing claims that sound verified but are not. A status word is **derived** when its producer computes it from a real probe, scan, or computation (a compiler run, a runtime capability probe, a graph traversal). It is **hedged** when the code or its label already says it is a candidate, heuristic, or unverified. It is **asserted** when the value is a constant, a hardcoded table entry, or a string literal presented with the same confidence as a derived value but backed by nothing the code actually checked at that call site. Asserted status words that are agent-facing and trust-bearing (an agent would route a decision — "use this evidence", "skip this check", "delete this" — based on the word) are the highest-severity class this skill exists to find.
|
|
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 files <pattern>` | Find files matching a pattern | Inventory: locate the renderer or status-producing module for a claim. |
|
|
29
|
+
| `scip-query refs <symbol>` | Find all files referencing a symbol | Classify: find every producer and consumer of a status-bearing function. |
|
|
30
|
+
| `scip-query code <symbol>` | Read the source code for a symbol (bounded to its definition range) | Classify: read the producing function to see whether it computes or asserts. |
|
|
31
|
+
| `scip-query trace <symbol>` | Trace a symbol: definition + all references | Classify: definition plus every reference for a status field or constant. |
|
|
32
|
+
| `scip-query capabilities --matrix --json` | Report which evidence and verification capabilities are available in this project | Spot-check: an already-known example of a fixed derived-status surface. |
|
|
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. Ground every claim in the producing function's source, not its label or variable name alone — a variable named `verified` that is never checked against a real result is still asserted.
|
|
40
|
+
2. Classify status, don't just list it: every status word in scope gets exactly one of derived / hedged / asserted.
|
|
41
|
+
3. Severity follows the rubric: asserted + agent-facing + trust-bearing = high; asserted + internal-only or low-consequence = low; hedged is not a finding (the label already discloses uncertainty).
|
|
42
|
+
4. A status that used to be asserted and now calls a real probe is fixed — say so and move on; do not re-report it.
|
|
43
|
+
5. File findings as a table, not prose; a claim → producer → classification → fix format is the deliverable.
|
|
44
|
+
|
|
45
|
+
## Workflow
|
|
46
|
+
|
|
47
|
+
### 1. Inventory the status vocabulary
|
|
48
|
+
|
|
49
|
+
Grep the target scope (a file, module, or command family) for user-visible or JSON-facing status words: `available`, `unavailable`, `partial`, `verified`, `safe`, `PASS`, `FAIL`, `complete`, `derived`, `asserted`. For each hit, note the file:line and the renderer or JSON field that surfaces it to an agent or user.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
scip-query files <target-file-or-pattern>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
This step is complete only when every status-bearing string or field in scope is listed with its surface (human output, `--json` field, or both).
|
|
56
|
+
|
|
57
|
+
### 2. Classify each producer
|
|
58
|
+
|
|
59
|
+
For each status word's producing function:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
scip-query refs <producing-function>
|
|
63
|
+
scip-query code <producing-function>
|
|
64
|
+
scip-query trace <status-field-or-constant>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Read the function body. Classify:
|
|
68
|
+
|
|
69
|
+
- **Derived**: the status is computed from a probe, scan, spawn result, file check, or graph query performed at or near that call site.
|
|
70
|
+
- **Hedged**: the label, descriptor evidence tier, or surrounding text already marks the value as heuristic, candidate, or unverified.
|
|
71
|
+
- **Asserted**: the value is a literal, a static table lookup, or a branch that returns a fixed status without invoking any check for that specific branch.
|
|
72
|
+
|
|
73
|
+
This step is complete only when every producer has one of these three labels with the one line of source evidence that justifies it.
|
|
74
|
+
|
|
75
|
+
### 3. File findings for every asserted status
|
|
76
|
+
|
|
77
|
+
For each **asserted** status, apply the severity rubric (rule 3) and write:
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
Claim: <status word and where it appears>
|
|
81
|
+
Producer: <file:line function name>
|
|
82
|
+
Classification: asserted
|
|
83
|
+
Severity: high/low
|
|
84
|
+
Fix: probe it (name the real check to add), generate it (derive from a registry/config that is itself kept honest), or soften the language (hedge the label to match what is actually known)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
This step is complete only when every asserted status in scope has a filed finding with a fix direction, and every derived/hedged status is confirmed correct (not silently asserted behind a computed-looking name).
|
|
88
|
+
|
|
89
|
+
### 4. Report
|
|
90
|
+
|
|
91
|
+
Write the report under `docs/scip-query/` unless the user asked only for a conversational answer.
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
Scope:
|
|
95
|
+
Status words inventoried: N
|
|
96
|
+
|
|
97
|
+
Claim table:
|
|
98
|
+
| Claim | Producer | Classification | Fix |
|
|
99
|
+
| --- | --- | --- | --- |
|
|
100
|
+
|
|
101
|
+
Fixed since last audit:
|
|
102
|
+
- <claim> — now derived via <probe>, no longer a finding.
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
The audit is complete only when every status word in scope is classified and every asserted, trust-bearing claim has a filed finding.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "SCIP Claim Audit"
|
|
3
|
+
short_description: "Classify output-facing status claims as derived, hedged, or asserted"
|
|
4
|
+
default_prompt: "Use scip-query to inventory output-facing status words in the target scope, classify each producer as derived, hedged, or asserted, and file findings for asserted trust-bearing claims."
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scip-cleanup-audit
|
|
3
|
+
description: Audit and rank scip-query cleanup signals without editing code. Use for health reports, de-bloat reports, recent AI residue audits, score-framed cleanup queues, confirming raw findings, or preparing a cleanup plan.
|
|
4
|
+
commands:
|
|
5
|
+
- template: "scip-query health --json"
|
|
6
|
+
when: "Establish evidence: composite score and prioritized action list."
|
|
7
|
+
- template: "scip-query cleanup-plan --verify --json"
|
|
8
|
+
when: "Sweep signals: compiler-verified deletion plan, batched."
|
|
9
|
+
- template: "scip-query duplicate-bodies --json --full"
|
|
10
|
+
when: "Sweep signals: exact duplicate small-body candidates."
|
|
11
|
+
- template: "scip-query recent-duplicates --json --full"
|
|
12
|
+
when: "Sweep signals: recent code that re-implements established code."
|
|
13
|
+
- template: "scip-query incomplete-migration --json --full"
|
|
14
|
+
when: "Sweep signals: partially-completed extractions."
|
|
15
|
+
- template: "scip-query doc-drift --json --full"
|
|
16
|
+
when: "Sweep signals: stale docs referencing changed code."
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# scip-cleanup-audit
|
|
20
|
+
|
|
21
|
+
Use this skill to turn raw scip-query signals into a confirmed cleanup queue. Do not edit application code in this skill.
|
|
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 health --json` | Composite codebase health report with prioritized action list | Establish evidence: composite score and prioritized action list. |
|
|
31
|
+
| `scip-query cleanup-plan --verify --json` | Ordered, batched deletion plan: graph-fact dead code plus the cascade candidates it unlocks | Sweep signals: compiler-verified deletion plan, batched. |
|
|
32
|
+
| `scip-query duplicate-bodies --json --full` | Find exact duplicate small-body candidates across files | Sweep signals: exact duplicate small-body candidates. |
|
|
33
|
+
| `scip-query recent-duplicates --json --full` | Directional duplicate candidates: recent code that re-implements established callable, React, or Vue code | Sweep signals: recent code that re-implements established code. |
|
|
34
|
+
| `scip-query incomplete-migration --json --full` | Partially-completed extraction candidates: new helpers in the diff wired into some sites while similar un-migrated sites remain | Sweep signals: partially-completed extractions. |
|
|
35
|
+
| `scip-query doc-drift --json --full` | Stale-doc candidates: code the doc references or co-changed with kept changing after the doc stopped | Sweep signals: stale docs referencing changed code. |
|
|
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
|
+
## Modes
|
|
41
|
+
|
|
42
|
+
- Whole-repo audit: rank all cleanup signals.
|
|
43
|
+
- Recent AI residue: focus on echoes, twins, incomplete migrations, speculative params, stale agent-facing docs, and hidden couplings.
|
|
44
|
+
- Score-framed audit: explain health score deductions and the safest first batch.
|
|
45
|
+
|
|
46
|
+
## Workflow
|
|
47
|
+
|
|
48
|
+
### 1. Establish evidence
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
scip-query doctor
|
|
52
|
+
scip-query status --capabilities
|
|
53
|
+
scip-query health --json
|
|
54
|
+
scip-query capabilities --json
|
|
55
|
+
scip-query config-validate --json
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
This step is complete only when unavailable capabilities are recorded as unavailable.
|
|
59
|
+
|
|
60
|
+
### 2. Sweep signals
|
|
61
|
+
|
|
62
|
+
Run every relevant class, or record why it is unavailable:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
scip-query cleanup-plan --verify --json
|
|
66
|
+
scip-query duplicate-bodies --json --full
|
|
67
|
+
scip-query recent-duplicates --json --full
|
|
68
|
+
scip-query incomplete-migration --json --full
|
|
69
|
+
scip-query unused-params --json --full
|
|
70
|
+
scip-query passthrough-candidates --json --full
|
|
71
|
+
scip-query dead --json --full
|
|
72
|
+
scip-query isolated --json --full
|
|
73
|
+
scip-query cycles
|
|
74
|
+
scip-query co-change --json --full
|
|
75
|
+
scip-query doc-drift --json --full
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
For frontend repos, add the React or Vue duplicate, hook/composable, and large-component/view commands.
|
|
79
|
+
|
|
80
|
+
Optional deep-dive (near-zero precision on codebases with intentional layering/ambient types — run only when the sweep above is exhausted, and treat every hit as a lead to confirm, not a finding):
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
scip-query stale-abstractions --json --full
|
|
84
|
+
scip-query wrapper-candidates --json --full
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 3. Confirm candidates
|
|
88
|
+
|
|
89
|
+
For each high-priority candidate, inspect source and graph evidence:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
scip-query code <symbol-or-file>
|
|
93
|
+
scip-query refs <symbol>
|
|
94
|
+
scip-query fan-in <symbol>
|
|
95
|
+
scip-query fan-out <symbol-or-file>
|
|
96
|
+
scip-query affected <symbol> --json
|
|
97
|
+
scip-query change-surface <file> --json --full
|
|
98
|
+
scip-query similar <symbolA> <symbolB> --plan
|
|
99
|
+
scip-query co-change <file> --json --full
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Classify every candidate as `confirmed fix target`, `intentional design`, `false positive`, or `blocked`.
|
|
103
|
+
|
|
104
|
+
### 4. Report
|
|
105
|
+
|
|
106
|
+
```markdown
|
|
107
|
+
Health score: N/100
|
|
108
|
+
|
|
109
|
+
Confirmed items:
|
|
110
|
+
- [priority] finding - evidence - first safe action
|
|
111
|
+
|
|
112
|
+
Unconfirmed signals:
|
|
113
|
+
- signal - evidence still needed
|
|
114
|
+
|
|
115
|
+
Unavailable or blocked checks:
|
|
116
|
+
- check - reason
|
|
117
|
+
|
|
118
|
+
Recommended first cleanup batch:
|
|
119
|
+
- batch - why safe now
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
The audit is complete only when each collected signal is classified and the next action is visible.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "SCIP Cleanup Audit"
|
|
3
|
+
short_description: "Confirm and rank cleanup, de-bloat, and recent AI residue signals without editing"
|
|
4
|
+
default_prompt: "Audit scip-query cleanup signals, classify findings with evidence, and report the safest next cleanup batch."
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scip-cleanup-improve
|
|
3
|
+
description: Improve scip-query health autonomously with verified cleanup. Use when the user asks to fix cleanup findings, raise health, keep cleaning, continue after setup, or work until no safe confirmed cleanup remains.
|
|
4
|
+
commands:
|
|
5
|
+
- template: "scip-query health --json"
|
|
6
|
+
when: "Before editing: report current score and remaining signals."
|
|
7
|
+
- template: "scip-query cleanup-plan --verify --json"
|
|
8
|
+
when: "Loop: confirm the next compiler-verified deletion batch."
|
|
9
|
+
- template: "scip-query cleanup-apply --verified --batch <n>"
|
|
10
|
+
when: "Loop: apply one verified deletion batch."
|
|
11
|
+
- template: "scip-query duplicate-bodies --json --full"
|
|
12
|
+
when: "Priority: exact duplicate small-body echoes to consolidate."
|
|
13
|
+
- template: "scip-query incomplete-migration --json --full"
|
|
14
|
+
when: "Priority: un-migrated call sites left behind by a new helper."
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# scip-cleanup-improve
|
|
18
|
+
|
|
19
|
+
Use this skill for bounded autonomous cleanup. The target is not score chasing; the target is fixing confirmed issues that make the codebase harder to understand, verify, or change.
|
|
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 health --json` | Composite codebase health report with prioritized action list | Before editing: report current score and remaining signals. |
|
|
29
|
+
| `scip-query cleanup-plan --verify --json` | Ordered, batched deletion plan: graph-fact dead code plus the cascade candidates it unlocks | Loop: confirm the next compiler-verified deletion batch. |
|
|
30
|
+
| `scip-query cleanup-apply --verified --batch <n>` | Apply a compiler-verified cleanup-plan batch to the working tree | Loop: apply one verified deletion batch. |
|
|
31
|
+
| `scip-query duplicate-bodies --json --full` | Find exact duplicate small-body candidates across files | Priority: exact duplicate small-body echoes to consolidate. |
|
|
32
|
+
| `scip-query incomplete-migration --json --full` | Partially-completed extraction candidates: new helpers in the diff wired into some sites while similar un-migrated sites remain | Priority: un-migrated call sites left behind by a new helper. |
|
|
33
|
+
|
|
34
|
+
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
35
|
+
<!-- END GENERATED SKILL COMMANDS -->
|
|
36
|
+
|
|
37
|
+
## Rules
|
|
38
|
+
|
|
39
|
+
1. Start with `scip-cleanup-audit` evidence or run the audit sweep yourself.
|
|
40
|
+
2. Report current health and the first confirmed batch before editing.
|
|
41
|
+
3. Prioritize high-confidence, low-blast-radius, clearly verifiable fixes.
|
|
42
|
+
4. Apply one small batch at a time.
|
|
43
|
+
5. After a cleanup pass, run `scip-query health --write-baseline` to snapshot finding identities, then compare with `scip-query health --baseline` at the start of the next pass.
|
|
44
|
+
|
|
45
|
+
## Priority
|
|
46
|
+
|
|
47
|
+
1. Compiler-verified deletion batches.
|
|
48
|
+
2. Incomplete migrations and recent duplicate echoes.
|
|
49
|
+
3. Unused params, unused imports, dead symbols, and isolated symbols.
|
|
50
|
+
4. Broken or stale docs, config validation issues, and missing co-change partners.
|
|
51
|
+
5. Thin wrappers, passthroughs, stale abstractions, and speculative generality.
|
|
52
|
+
6. Frontend component/hook/composable duplication and large-view pressure.
|
|
53
|
+
7. Directory architecture and maintainability repairs only when evidence is strong and the blast radius is bounded.
|
|
54
|
+
|
|
55
|
+
## Loop
|
|
56
|
+
|
|
57
|
+
Before editing:
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
Health score: N/100
|
|
61
|
+
First confirmed batch:
|
|
62
|
+
- finding - evidence - planned fix - verification
|
|
63
|
+
Remaining signals:
|
|
64
|
+
- signal - status
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Then repeat:
|
|
68
|
+
|
|
69
|
+
1. Apply one verified deletion batch or one small targeted refactor.
|
|
70
|
+
2. Run the narrow project check for touched behavior.
|
|
71
|
+
3. Run `scip-query health --json`.
|
|
72
|
+
4. Invoke `scip-verify`.
|
|
73
|
+
5. If `docs/scip-query/health-dossier.md` exists (or a custom `--dossier-dir` was used), refresh it by rerunning `scip-query setup --json` (add the same `--dossier-dir` if one was used).
|
|
74
|
+
6. Pick the next highest-priority confirmed item.
|
|
75
|
+
|
|
76
|
+
Use `scip-query cleanup-apply --verified --batch <n>` for verified deletion batches. Use `--all` only with explicit user approval.
|
|
77
|
+
|
|
78
|
+
## Stop
|
|
79
|
+
|
|
80
|
+
Stop when only intentional, false-positive, blocked, or unconfirmed items remain; when the next improvement needs a product/API/ownership decision; when a missing toolchain prevents trustworthy verification; or when further work would be broad redesign rather than bounded cleanup.
|
|
81
|
+
|
|
82
|
+
## Closeout
|
|
83
|
+
|
|
84
|
+
Report starting and final health scores, batches applied, important files changed, verification commands, remaining accepted or blocked items, and highest-value follow-up.
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scip-concrete-plan
|
|
3
|
+
description: Plan code changes with scip-query evidence and testable design. Use for non-trivial implementation, refactor, migration, API, or bug-fix plans before editing code; require source citations, reuse audit, test seams, side-effect boundaries, contracts, and verification.
|
|
4
|
+
commands:
|
|
5
|
+
- template: "scip-query status --capabilities"
|
|
6
|
+
when: "Discover: confirm the index is fresh before citing graph facts."
|
|
7
|
+
- template: "scip-query plan-context <target>"
|
|
8
|
+
when: "Discover: anchor the plan with pre-edit context for the target."
|
|
9
|
+
- template: "scip-query refs <symbol>"
|
|
10
|
+
when: "Reuse audit: find existing consumers before proposing a new unit."
|
|
11
|
+
- template: "scip-query code <symbol>"
|
|
12
|
+
when: "Reuse audit: read source before citing a behavior claim."
|
|
13
|
+
- template: "scip-query trace <symbol>"
|
|
14
|
+
when: "Verify the plan: rerun source-producing context for cited targets."
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Concrete Plan
|
|
18
|
+
|
|
19
|
+
Use this skill to write an implementation plan that another agent can execute without guessing. A concrete plan is a dated Markdown checklist whose code claims come from scip-query evidence and whose design makes the intended behavior easy to test before it is easy to ship.
|
|
20
|
+
|
|
21
|
+
Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md) when you need lookup tips, command families, postchecks, or subagent rules.
|
|
22
|
+
|
|
23
|
+
<!-- BEGIN GENERATED SKILL COMMANDS -->
|
|
24
|
+
## Commands for this skill
|
|
25
|
+
|
|
26
|
+
| Command | Purpose | When |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| `scip-query status --capabilities` | Show index status for this project | Discover: confirm the index is fresh before citing graph facts. |
|
|
29
|
+
| `scip-query plan-context <target>` | Pre-edit planning context for a symbol, file, or module | Discover: anchor the plan with pre-edit context for the target. |
|
|
30
|
+
| `scip-query refs <symbol>` | Find all files referencing a symbol | Reuse audit: find existing consumers before proposing a new unit. |
|
|
31
|
+
| `scip-query code <symbol>` | Read the source code for a symbol (bounded to its definition range) | Reuse audit: read source before citing a behavior claim. |
|
|
32
|
+
| `scip-query trace <symbol>` | Trace a symbol: definition + all references | Verify the plan: rerun source-producing context for cited targets. |
|
|
33
|
+
|
|
34
|
+
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
35
|
+
<!-- END GENERATED SKILL COMMANDS -->
|
|
36
|
+
|
|
37
|
+
## Rules
|
|
38
|
+
|
|
39
|
+
1. Start with `scip-query status --capabilities`; reindex only when freshness is `stale`, `missing`, or `unknown`.
|
|
40
|
+
2. Anchor the plan with `scip-query plan-context <target>`. If the target is not indexed, record that fact and use scip-query for every code-adjacent claim it can answer.
|
|
41
|
+
3. Put the plan in `docs/plans/YYYY-MM-DD-<short-name>.md`.
|
|
42
|
+
4. Every code step includes a `Source` field naming the scip-query command that produced the path, line range, and behavior claim.
|
|
43
|
+
5. Every behavior-changing step includes a testability design: test seam, injected dependencies, pure core, side-effect boundary, and validation.
|
|
44
|
+
6. Do not propose a new helper, wrapper, type, parameter, config flag, component, hook, or module until the reuse audit proves reuse or extension is not the better move.
|
|
45
|
+
|
|
46
|
+
## Planning Terms
|
|
47
|
+
|
|
48
|
+
A reuse audit is the part of a plan that proves a proposed new symbol, file, option, wrapper, or contract is needed; what makes it useful is that it ties the new shape to existing definitions, consumers, and rejected extension points.
|
|
49
|
+
|
|
50
|
+
A test seam is the entry point a test can call to prove a behavior without replaying the whole product path; what makes it valuable in a plan is that it names the exact unit or boundary where correctness will be observed.
|
|
51
|
+
|
|
52
|
+
A side-effect boundary is the edge where deterministic program decisions meet files, processes, clocks, networks, databases, or other external capabilities; what makes it important is that failures and fakes can be isolated there while core decisions stay easy to test.
|
|
53
|
+
|
|
54
|
+
A contract is the stable promise one code unit exposes to another, including accepted inputs, returned outputs, errors, timing expectations, and side effects that callers may rely on.
|
|
55
|
+
|
|
56
|
+
## Workflow
|
|
57
|
+
|
|
58
|
+
### 1. Discover
|
|
59
|
+
|
|
60
|
+
Run:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
scip-query status --capabilities
|
|
64
|
+
scip-query plan-context <target>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Use the shared reference for follow-up commands. Fill three gates before designing:
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
## Goal
|
|
71
|
+
What the user is trying to accomplish and what done looks like for them.
|
|
72
|
+
|
|
73
|
+
## Current State
|
|
74
|
+
The affected end-to-end flow, with scip-query citations for entry points, callers, data flow, dependencies, downstream impact, and non-obvious invariants.
|
|
75
|
+
|
|
76
|
+
## Reuse Audit
|
|
77
|
+
For every new symbol or file being considered: reuse target, extension target, or evidence-backed reason new code is justified.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
This step is complete only when the plan can explain the current flow, its consumers, and every proposed new unit's reuse decision with citations.
|
|
81
|
+
|
|
82
|
+
### 2. Shape for Tests
|
|
83
|
+
|
|
84
|
+
Before writing implementation phases, add:
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
## Testability Design
|
|
88
|
+
|
|
89
|
+
| Behavior | Test seam | Dependencies to inject | Pure core | Side-effect shell | Contract |
|
|
90
|
+
| --- | --- | --- | --- | --- | --- |
|
|
91
|
+
| <behavior> | <test entry point> | <clock/db/http/logger/etc.> | <calculation/decision function> | <I/O wrapper> | <small interface or call shape> |
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Plan the code so tests can call the pure core directly and exercise the side-effect shell with injected replacements. Prefer this shape:
|
|
95
|
+
|
|
96
|
+
1. Parse and validate at the boundary.
|
|
97
|
+
2. Pass domain data and injected dependencies into a small orchestrator.
|
|
98
|
+
3. Put calculations, filtering, selection, formatting decisions, and state transitions in pure functions.
|
|
99
|
+
4. Keep database, network, filesystem, clock, randomness, logging, email, and payment calls in thin side-effect shells.
|
|
100
|
+
5. Depend on small contracts at boundaries; avoid broad option objects, booleans that hide behavior, and wrappers that merely forward.
|
|
101
|
+
|
|
102
|
+
This step is complete only when every changed behavior has a named test seam and the plan makes clear which logic can be tested without real external services.
|
|
103
|
+
|
|
104
|
+
### 3. Design the Checklist
|
|
105
|
+
|
|
106
|
+
Write phases in execution order. Keep each phase deployable or explicitly mark why it is not. Use this step format:
|
|
107
|
+
|
|
108
|
+
```markdown
|
|
109
|
+
### N.M - Imperative title
|
|
110
|
+
|
|
111
|
+
- [ ] **File**: `path/to/file.ts:LINE-LINE`
|
|
112
|
+
- **Source**: `scip-query <command>`
|
|
113
|
+
- **What**: Current behavior verified from source.
|
|
114
|
+
- **Change**: Exact edit to make.
|
|
115
|
+
- **Testability**:
|
|
116
|
+
- Test seam:
|
|
117
|
+
- Injected dependencies:
|
|
118
|
+
- Pure core:
|
|
119
|
+
- Side-effect shell:
|
|
120
|
+
- Contract:
|
|
121
|
+
- **Validation**: Targeted test, smoke command, or manual check that proves the behavior.
|
|
122
|
+
- **Why**: Why this step is needed and why this order is safe.
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
This step is complete only when no checklist item says "update this file" without exact current behavior, target behavior, and validation.
|
|
126
|
+
|
|
127
|
+
### 4. Stress-Test
|
|
128
|
+
|
|
129
|
+
Apply these lenses to every phase. Add or change steps until each answer is concrete:
|
|
130
|
+
|
|
131
|
+
| Lens | Plan must answer |
|
|
132
|
+
| --- | --- |
|
|
133
|
+
| Purpose | Why does the current code exist, and what invariant must survive? |
|
|
134
|
+
| Blast radius | Which direct and transitive consumers move with this change? |
|
|
135
|
+
| Valid intermediate state | Would the project still work after only this phase? |
|
|
136
|
+
| Reversibility | Is this a one-way or two-way door, and what rollback exists? |
|
|
137
|
+
| Failure | What happens when I/O, external APIs, malformed data, retries, or crashes occur? |
|
|
138
|
+
| Concurrency | What shared state can be touched twice or out of order? |
|
|
139
|
+
| Boundaries | Who can call this entry point, and where is input validated? |
|
|
140
|
+
| Data integrity | What existing data, generated artifacts, or persisted contracts are affected? |
|
|
141
|
+
| Observability | Can a maintainer diagnose failures from logs/errors without rereading the source? |
|
|
142
|
+
| Human experience | What would surprise, confuse, or block a real user? |
|
|
143
|
+
| Reuse | Does existing code already solve this problem or most of it? |
|
|
144
|
+
| Testability | Are dependencies injectable, logic pure where practical, concerns separated, and contracts small? |
|
|
145
|
+
|
|
146
|
+
This step is complete only when every discovered gap has either a new plan step or a written reason it is accepted.
|
|
147
|
+
|
|
148
|
+
### 5. Verify the Plan
|
|
149
|
+
|
|
150
|
+
Run or delegate phase-by-phase reference checks. Each verifier confirms:
|
|
151
|
+
|
|
152
|
+
- every path exists;
|
|
153
|
+
- every line range is still within about five lines;
|
|
154
|
+
- every behavior claim matches source;
|
|
155
|
+
- every new unit has reuse evidence;
|
|
156
|
+
- every behavior-changing step has a validation command and testability design.
|
|
157
|
+
|
|
158
|
+
Then rerun the source-producing context for the cited targets:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
scip-query plan-context <target>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Use the shared reference for subagent briefing text when delegating.
|
|
165
|
+
|
|
166
|
+
This step is complete only when stale references are fixed and every phase has a validation path.
|
|
167
|
+
|
|
168
|
+
## Output Shape
|
|
169
|
+
|
|
170
|
+
The plan file contains:
|
|
171
|
+
|
|
172
|
+
1. Title and date.
|
|
173
|
+
2. Goal.
|
|
174
|
+
3. Current State.
|
|
175
|
+
4. Reuse Audit.
|
|
176
|
+
5. Testability Design.
|
|
177
|
+
6. Design Phases.
|
|
178
|
+
7. Stress-Test Findings.
|
|
179
|
+
8. Execution Order and deployable phase notes.
|
|
180
|
+
9. Ship Order with one-way doors flagged.
|
|
181
|
+
10. Summary of files to create, edit, delete, and verify.
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scip-conductor
|
|
3
|
+
description: Plan and conduct multi-step engineering programs like a skeptical principal engineer. Use for writing executable multi-phase plans, delegating implementation, reviewing another agent's work, or carrying a large change end to end with verification at every handoff.
|
|
4
|
+
commands:
|
|
5
|
+
- template: "scip-query plan-context <target>"
|
|
6
|
+
when: "Anchor each phase's step before delegating it."
|
|
7
|
+
- template: "scip-query diff-gate --json"
|
|
8
|
+
when: "Verify a handoff before accepting it and before closing the program."
|
|
9
|
+
- template: "scip-query health --json"
|
|
10
|
+
when: "Pre-register or check a program-level health benchmark."
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# scip-conductor
|
|
14
|
+
|
|
15
|
+
This skill is how to run a *program* of work — planning, delegation, review,
|
|
16
|
+
and closure — not how to write one change plan (use a dedicated planning
|
|
17
|
+
skill such as `scip-concrete-plan` for individual changes when one is available).
|
|
18
|
+
|
|
19
|
+
Load shared mechanics from [`../_shared/SKILL.md`](../_shared/SKILL.md).
|
|
20
|
+
|
|
21
|
+
<!-- BEGIN GENERATED SKILL COMMANDS -->
|
|
22
|
+
## Commands for this skill
|
|
23
|
+
|
|
24
|
+
| Command | Purpose | When |
|
|
25
|
+
| --- | --- | --- |
|
|
26
|
+
| `scip-query plan-context <target>` | Pre-edit planning context for a symbol, file, or module | Anchor each phase's step before delegating it. |
|
|
27
|
+
| `scip-query diff-gate --json` | Gate the current diff: echo candidates, incomplete migrations, missing co-change partners, unedited twin partners (advisory), uncited doc updates, unused params, new dead symbols; exit 1 on blocking findings | Verify a handoff before accepting it and before closing the program. |
|
|
28
|
+
| `scip-query health --json` | Composite codebase health report with prioritized action list | Pre-register or check a program-level health benchmark. |
|
|
29
|
+
|
|
30
|
+
Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only when it is insufficient.
|
|
31
|
+
<!-- END GENERATED SKILL COMMANDS -->
|
|
32
|
+
|
|
33
|
+
## The Three Laws
|
|
34
|
+
|
|
35
|
+
1. **A green result you have never seen fail is unverified.** Applies to
|
|
36
|
+
tests, gates, reports from other agents, and your own checks. (Where
|
|
37
|
+
available, `scip-integrity-audit` is the same law aimed at code.)
|
|
38
|
+
2. **A plan is a contract for a less-capable executor, not a note to self.**
|
|
39
|
+
If a competent-but-uninspired agent could not execute a step without
|
|
40
|
+
guessing, the step is not finished being written.
|
|
41
|
+
3. **Nothing is silent.** Every finding, deviation, and shortcut is either
|
|
42
|
+
fixed or written down with a reason someone else would accept. 0%
|
|
43
|
+
silent is the invariant; "fixed everything" is not.
|
|
44
|
+
|
|
45
|
+
## Writing the Plan
|
|
46
|
+
|
|
47
|
+
- **Goal states what DONE MEANS falsifiably** — a command someone can run
|
|
48
|
+
and a result they can check, not an aspiration.
|
|
49
|
+
- **Pre-register acceptance benchmarks.** Before any work: measure the
|
|
50
|
+
current number (test count, timing, finding count, proof line), write it
|
|
51
|
+
in the plan, and state the target number. Work that cannot move a
|
|
52
|
+
pre-registered number is scope to question.
|
|
53
|
+
- **Every step carries five fields**: file anchor with verified current
|
|
54
|
+
behavior (cite how you know); the exact change; the validation command
|
|
55
|
+
with expected output; testability design (pure core, injected effects);
|
|
56
|
+
why this step is safe *in this order*. "Update X" with no current/target
|
|
57
|
+
behavior is a wish, not a step.
|
|
58
|
+
- **Order phases by information gain and risk**: blockers and
|
|
59
|
+
evidence-integrity first; cheap discriminating probes before expensive
|
|
60
|
+
builds; measurement before optimization; anything not yet decided by the
|
|
61
|
+
human is a GATED phase the executor must not start. Infrastructure the
|
|
62
|
+
later steps inherit (a labeling choke point, a shared helper layer)
|
|
63
|
+
lands before the features that need it.
|
|
64
|
+
- **Flag one-way doors** with their migration path, and keep an explicit
|
|
65
|
+
DEFER list so cut scope is visible instead of forgotten.
|
|
66
|
+
- **Include the working agreement**: ONE COMMIT PER STEP (bisectability is
|
|
67
|
+
non-negotiable; phase-level commits hide which step broke), the exact
|
|
68
|
+
gate commands — the FULL gate set the repo defines per phase: tests,
|
|
69
|
+
typecheck, lint/format, and build, not just focused tests (focused tests
|
|
70
|
+
hide cross-phase regressions; omitting the linter is how red mains ship),
|
|
71
|
+
regeneration duties,
|
|
72
|
+
and the deviation protocol —
|
|
73
|
+
"if source contradicts an anchor, BLOCKED-note it and continue; never
|
|
74
|
+
improvise silently."
|
|
75
|
+
|
|
76
|
+
## Conducting the Work
|
|
77
|
+
|
|
78
|
+
- **Delegate breadth, keep judgment.** Fan out mechanical/scoped work;
|
|
79
|
+
personally own anything requiring taste, cross-cutting context, or the
|
|
80
|
+
final word on "is this real."
|
|
81
|
+
- **Concurrent agents get disjoint write scopes**, named in their briefs.
|
|
82
|
+
If a collision happens anyway: stop racing, apply-verify-commit
|
|
83
|
+
atomically in one action, and re-sequence to a single writer.
|
|
84
|
+
- **Never accept a report — reproduce its evidence.** On every handoff,
|
|
85
|
+
choose the *minimal discriminating probe*: the one command most likely to
|
|
86
|
+
expose the report being wrong (a mutation input, a hand count, the
|
|
87
|
+
benchmark number), and run it yourself. A report verified by reading it
|
|
88
|
+
is not verified.
|
|
89
|
+
- **Loop until the gate is quiet**: fix → re-run the discriminating probe →
|
|
90
|
+
re-run the gate → only then move on. After the program: fold what was
|
|
91
|
+
learned back into the durable layer (docs, skills, followups) — insight
|
|
92
|
+
that lives only in the conversation is lost.
|
|
93
|
+
- **Escalate only genuine decision points** — one-way doors, scope changes,
|
|
94
|
+
taste, spending. Everything else: decide, act, disclose.
|
|
95
|
+
|
|
96
|
+
## Scar Rules (each bought with a real failure)
|
|
97
|
+
|
|
98
|
+
- **Verify your verifier.** A gate check that cannot fail is no gate: a
|
|
99
|
+
lint grep that only matches one linter's output, a diff-gate run on a
|
|
100
|
+
clean tree, a test suite that skips the new path. Prove the check catches
|
|
101
|
+
a planted failure once before trusting its green.
|
|
102
|
+
- **Never `git checkout`/`restore`/`stash` on a tree with uncommitted
|
|
103
|
+
work** — yours or anyone's. Revert probe edits by targeted deletion.
|
|
104
|
+
If source is lost, check `dist/*.map` sourcesContent before panicking.
|
|
105
|
+
- **Commit working states early and surgically** (explicit paths, never
|
|
106
|
+
`add -A` on a shared tree); an unbisectable pile of work is a liability.
|
|
107
|
+
- **Make the commit cadence mechanical, not aspirational.** At every step
|
|
108
|
+
boundary run the arithmetic check: steps completed == commits made. If
|
|
109
|
+
they differ, stop and commit before touching anything new. "I'll commit
|
|
110
|
+
when it's all done" is the signature decay of a long or low-effort run —
|
|
111
|
+
two real executions finished an entire plan with zero or one commit, and
|
|
112
|
+
both times the deviation was rationalized mid-run, not decided. A
|
|
113
|
+
self-check that is a count cannot be rationalized.
|
|
114
|
+
- **Watch for your own gate holes**: after any "all green," ask what that
|
|
115
|
+
check does NOT cover (eslint vs prettier; unit vs integration; clean-tree
|
|
116
|
+
vacuity).
|
|
117
|
+
|
|
118
|
+
## Self-Report (required output)
|
|
119
|
+
|
|
120
|
+
End every conducted program — and every plan written under this skill —
|
|
121
|
+
with a checklist mapping each section above to concrete evidence:
|
|
122
|
+
the pre-registered benchmarks and their before/after values; each handoff's
|
|
123
|
+
discriminating probe and its OBSERVED result (a probe listed but not run
|
|
124
|
+
counts as not run); the deviation ledger; the DEFER list;
|
|
125
|
+
which learnings were folded back and where. A reviewer must be able to
|
|
126
|
+
audit the *conduct*, not just the artifact.
|
|
127
|
+
|
|
128
|
+
## Completion
|
|
129
|
+
|
|
130
|
+
The program is complete only when: every pre-registered benchmark met or
|
|
131
|
+
its miss explained; every handoff probe run and recorded; the gate quiet on
|
|
132
|
+
the final state; nothing silent — every finding fixed or ledgered; and the
|
|
133
|
+
self-report written.
|