Skip to content
Back to skills

Security Verify

ASecurity

Check what this work introduced for security defects — credentials written into the repository, new dependency advisories, and injection or authorization gaps reachable from untrusted input in the diff. Use when a goal touches auth, input handling, secrets, dependencies, or a request path, when a Bandaid security probe reports a finding, or when the user asks whether a change is safe to ship. Grades what the diff added, not what the repository already contained. Not a substitute for a real au...

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 6, 2026
securityrustgoshellsqlawsgitsecurity

Works with

  • terminal

Security analysis

A100/100

Scanned September 6, 2026

npx -y skills add SSHdotCodes/bandaid --skill security-verify --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Security Verify?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Security Verify
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sshdotcodes-security-verify/badge)](https://www.skillsdirectory.com/skills/sshdotcodes-security-verify)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: bandaid-security-verify
description: >
  Check what this work introduced for security defects — credentials written into the
  repository, new dependency advisories, and injection or authorization gaps reachable
  from untrusted input in the diff. Use when a goal touches auth, input handling, secrets,
  dependencies, or a request path, when a Bandaid security probe reports a finding, or
  when the user asks whether a change is safe to ship. Grades what the diff added, not
  what the repository already contained. Not a substitute for a real audit.
---

# Security verification

Three passes that answer three unrelated questions. They are separate on purpose
and only the composite verdict is one number.

## The framing that makes this a gate rather than a report

**Grade the delta, not the codebase.** Absolute counts fail every real
repository instantly, and a gate that fails on day one is switched off on day
two. Every pass below compares against a baseline or against the diff, so what
fails is what *this work* introduced.

## S1 — credentials in the diff

Bandaid's built-in, zero dependencies, no configuration:

```json
{ "id": "secrets", "builtin": "secrets", "when": { "changed": ["**"] } }
```

High-precision patterns only — AWS key ids, private key headers, GitHub and
Anthropic and Slack tokens, JWTs, connection strings with an inline password. No
entropy heuristic: that is where the false positives live, and a scanner that
cries wolf gets muted.

- A hit **in the diff or in a new untracked file** fails. The work put it there.
- A hit in a file this goal never touched is not this goal's problem.
- A deliberate one — a fixture with a fake key — goes in
  `.bandaid/secrets-allow.txt` as `file:line:pattern`, one per line.

A secret that is already committed is worth telling the user about **in your
final message**, plainly, including that rotating it matters more than deleting
it. Do not quietly rewrite history to hide it.

## S2 — dependency advisories, diffed against a baseline

Whatever the project already has: `npm audit --json`, `pnpm audit --json`,
`pip-audit -f json`, `cargo audit --json`, `govulncheck -json`, `semgrep --json`,
`gitleaks`. Missing binary → exit 78. Do not install one.

The verdict is a **set difference**, not a count:

```
findings_now − findings_in_baseline ≠ ∅  →  fail
```

Keep `.bandaid/security-baseline.json` as a list of
`sha256(rule + file + normalized line)` for every accepted finding. Create it
with an explicit, reviewable commit — never silently, and never as a way to make
a failing probe pass.

## S3 — a review of the diff, bounded

A read-only reviewer over `git diff <baseSha>..`, with this scope and no other:

> Review this diff for security defects only. For each finding give the file,
> the line, the class of defect, and **the input that reaches it**. Report only
> defects reachable from untrusted input in this codebase as it is written — not
> defects that would exist if the code were called differently.
>
> In scope: injection (SQL, shell, path, template), authentication and
> authorization gaps, secrets in code or logs, unsafe deserialization, SSRF,
> missing or wrong validation at a trust boundary, TOCTOU, and unbounded
> resource consumption reachable by a request.
>
> Out of scope: style, defence in depth already present elsewhere, theoretical
> issues in code paths no input reaches, and anything you would phrase as
> "consider".
>
> **If you cannot name the input and the path it takes, it is not a finding.**

That last line is doing the same work as the browser rubric's: a security
reviewer without it returns a page of hardening suggestions, none of which are
bugs, and the probe never passes.

## The composite verdict

- exit `1` — S1 found something in the diff, **or** S2 found a new
  high/critical, **or** S3 named a reachable defect;
- exit `78` — all three abstained (no git, no manifest, no reviewer);
- exit `0` — otherwise.

## A secret in the diff is terminal, not another attempt

It is already in the worktree and possibly already pushed. The right response is
telling the user — what it is, where it came from, and that rotating it matters
more than deleting it — not letting the model improvise a remediation and turn
one problem into two. Record it with `bandaid goal block` if the goal cannot
proceed without a replacement credential.

## What this skill does not do

A real audit. It looks at a diff with a handful of patterns and one bounded
review. It will not find a logic flaw in an authorization model, and it is not
evidence that a system is secure — only that this change did not obviously make
it worse.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in security →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.