diff --git a/.github/codeql/codeql-plugin-sdk-package-contract-critical-quality.yml b/.github/codeql/codeql-plugin-sdk-package-contract-critical-quality.yml new file mode 100644 index 00000000000..62e649b83e7 --- /dev/null +++ b/.github/codeql/codeql-plugin-sdk-package-contract-critical-quality.yml @@ -0,0 +1,34 @@ +name: openclaw-codeql-plugin-sdk-package-contract-critical-quality + +disable-default-queries: true + +queries: + - uses: security-and-quality + +query-filters: + - include: + problem.severity: + - error + - exclude: + tags: + - security + +paths: + - packages/plugin-sdk/src + - packages/plugin-package-contract/src + +paths-ignore: + - "**/node_modules" + - "**/coverage" + - "**/*.generated.ts" + - "**/*.bundle.js" + - "**/*-runtime.js" + - "**/*.test.ts" + - "**/*.test.tsx" + - "**/*.e2e.test.ts" + - "**/*.e2e.test.tsx" + - "**/*test-support*" + - "**/*test-helper*" + - "**/*mock*" + - "**/*fixture*" + - "**/*bench*" diff --git a/.github/workflows/codeql-critical-quality.yml b/.github/workflows/codeql-critical-quality.yml index db248da26b2..94dff27d30a 100644 --- a/.github/workflows/codeql-critical-quality.yml +++ b/.github/workflows/codeql-critical-quality.yml @@ -227,3 +227,24 @@ jobs: uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4 with: category: "/codeql-critical-quality/plugin-boundary" + + plugin-sdk-package-contract: + name: Critical Quality (plugin-sdk-package-contract) + runs-on: blacksmith-4vcpu-ubuntu-2404 + timeout-minutes: 25 + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + submodules: false + + - name: Initialize CodeQL + uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4 + with: + languages: javascript-typescript + config-file: ./.github/codeql/codeql-plugin-sdk-package-contract-critical-quality.yml + + - name: Analyze + uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4 + with: + category: "/codeql-critical-quality/plugin-sdk-package-contract" diff --git a/docs/ci.md b/docs/ci.md index 4ce43092a7f..86211af778f 100644 --- a/docs/ci.md +++ b/docs/ci.md @@ -307,7 +307,10 @@ understanding, image-generation, and media-generation runtime contracts under the separate `/codeql-critical-quality/web-media-runtime-boundary` category. The plugin-boundary job scans loader, registry, public-surface, and Plugin SDK entrypoint contracts under a separate `/codeql-critical-quality/plugin-boundary` -category. Keep the workflow separate from security so quality findings can be +category. The plugin-sdk-package-contract job scans the published package-side +Plugin SDK source and plugin package contract helpers under the separate +`/codeql-critical-quality/plugin-sdk-package-contract` category. Keep the +workflow separate from security so quality findings can be scheduled, measured, disabled, or expanded without obscuring security signal. Swift, Python, and bundled-plugin CodeQL expansion should be added back as scoped or sharded follow-up work only after the narrow profiles have stable