diff_ci_security
Compares before and after CI configs to identify introduced, removed, or aggravated security flaws, providing a verdict to block or allow changes.
Instructions
DIFFERENTIAL CI/CD security check for a workflow/pipeline CHANGE — the tool a PR gate needs. Give it the BEFORE and AFTER state of your CI config (e.g. a pull request that edits .github/workflows/*.yml, .gitlab-ci.yml, a Jenkinsfile, .circleci/config.yml, azure-pipelines.yml, bitbucket-pipelines.yml, .travis.yml or an IaC OIDC trust policy) and it reports exactly which security findings the change INTRODUCES, REMOVES or AGGRAVATES, plus a single verdict: INTRODUCES_RISK (block the change), REDUCES_RISK (the change hardens CI) or NEUTRAL. It runs the full 7-ecosystem deep engine on both states and reconciles the two finding sets by a LINE-INDEPENDENT identity, so an edit that merely shifts line numbers does NOT look like it introduced/removed a flaw — only a REAL security change shows up. For every introduced finding you get the file:line, the taint path and the concrete fix to undo the risk; for removed ones you see what the change fixed. This is the answer your own agent can't compute by reading the after-state alone: it has no principled BEFORE→AFTER security delta. Use it on every PR that touches CI config — wire INTRODUCES_RISK to a failing status check. Provide each side as { files: {name: yaml} } (or { source } for one file). Premium: requires an API key (set CI_SENTINEL_KEY) or pays per call via x402. Heuristic static analysis, not a guarantee.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| after | Yes | The AFTER state of the CI config (the PR / head branch). Same shape as 'before'. | |
| before | Yes | The BEFORE state of the CI config (the base / target branch). Same shape as audit input: { files: {filename: yaml}, ... } or { source: "..." }. May also carry actionYmls/includeYmls/orbYmls/templateYmls/sharedLibYmls for cross-file resolution. |