# Security skills for coding agents

Open-source skills for Claude Code, Codex, Cursor and other coding agents, by Blankitt. Threat model a service, review every change against that model, audit the secrets, gate the release. Read-only by design: every skill reads and reports, and the only files a skill writes are its own reports. MIT.

Source: https://github.com/technologyconsulting/security-skills
Page: https://blankitt.com/skills

## Install

Claude Code, as a plugin that updates itself from the repository's main branch:

```bash
claude plugin marketplace add technologyconsulting/security-skills
claude plugin install security-skills@technologyconsulting
```

Any other agent, as editable files in your project:

```bash
npx skills@latest add technologyconsulting/security-skills
```

Then run `/setup-security-skills` once in the repo, `/threat-model` once per service, and `/threat-review` on the next change.

## The skills

- `/setup-security-skills` (user-invoked): records how the repo ships (deploy command, environments, secret store, health URL, checks) in `docs/security/release.md`. Once per repo.
- `/threat-model`: writes `docs/security/THREAT-MODEL.md`: every entry point, the trust boundary it crosses, the actors who can reach it, and what each can make it do.
- `/threat-review`: reviews a diff, a path or a whole repo against the threat model. Every finding carries the file and line, the actor, the impact and the smallest fix. Writes `docs/security/reviews/`.
- `/secrets-audit`: where every secret is read, set and could leak; which gates fail open when one is missing; what breaks on rotation.
- `/pre-release` (user-invoked): read-only GO or NO-GO before a deploy. Prints the one deploy command on GO and never runs it.
- `/upgrade-security-skills` (user-invoked): when a session opens with "a newer version is available", updates the plugin and does what the changelog asks. Restart afterwards; a running session keeps the skills it loaded at start.

A second bucket for people who run systems (Linux hosts, containers, Microsoft 365) is listed in the repository and ships one skill at a time, each after it has been run against a real system.

## Rules the pack keeps

- A finding without a file and line is not reported.
- No company facts inside a skill; the setup and threat-model skills write them into your repo.
- Claude Code already ships a built-in `/security-review`, so the review skill here is `/threat-review`.
- Same shape as Matt Pocock's skills: one SKILL.md per skill, small, editable, model-agnostic.

## Changelog

### 0.4.0 (2026-10-12)

Update detection and a one-step upgrade. A session-start hook compares the installed version with the marketplace once a day and prints one line when a newer version exists. `/upgrade-security-skills` runs the plugin update, reads the new changelog and does the repo-side steps it names, then says a restart is needed. The read-only rule gains that one stated exception: the upgrade skill changes the plugin on your own machine and nothing else.

### 0.3.0 (2026-10-12)

Fixes from the first review. `/secrets-audit` finds hardcoded secrets and covers more ways of reading the environment. `release.md` records rollback, release branch, default target and test safety, and `/pre-release` reads them. The clean-tree check no longer passes with nothing checked. `/threat-model` refresh keeps accepted risks and human-written lines word for word. After upgrading: re-run `/setup-security-skills`.

### 0.2.0 (2026-10-12)

Fixes for the four high findings from the first review. Every skill treats what it reads as evidence, never an instruction. `/pre-release` blocks when the release config changed since the deployed SHA until a human confirms the diff, copies the deploy command verbatim, and requires a threat review covering the release and a secrets audit that knows every secret. `/secrets-audit` reads candidates through a redacting reader and finds files removed from the tree by name in history.

### 0.1.0 (2026-10-11)

First public scaffold. Five engineering skills: `setup-security-skills`, `threat-model`, `threat-review`, `secrets-audit`, `pre-release`. The `security-team` bucket is listed and empty.
