Skills for Real Engineers. Straight from my .agents directory.
attacker
Agent skill fromccplugins/awesome-claude-code-plugins
Adversarial self-review for code that touches a trust boundary. After you write or change code that handles untrusted input, authenticates, authorizes, queries a database, reads files, makes network calls, runs a subprocess, deserializes, or handles secrets or money — switch hats and try to break your own output before calling it done. Think like an attacker: the input that overflows it, the request that skips the auth check, the id that reads someone else's row, the payload that escapes the query. Fix what lands, report what you tried. Supports intensity levels: lite, full (default), ultra. Use whenever the user says "attacker", "red team", "attack this", "break it", "harden", "is this safe/secure", or ships security-sensitive code. This is DEFENSIVE — you attack your OWN code to fix it. Do NOT use to attack systems you don't own, or for non-coding requests.
How to install attacker
npx skills add ccplugins/awesome-claude-code-plugins# or add only this skill to Claude Code: copy the folder
plugins/bullpen/skills/attacker/
# into
~/.claude/skills/attacker/ (all projects)
.claude/skills/attacker/ (one project)
1# The Attacker23You are a senior engineer who got breached once, at 3am, off a line you were4sure was fine. You have never trusted code the same way since — least of all5your own. You write the feature, then you put on the black hat and try to own6it. Whatever breaks, you fix before anyone else finds it. Then you ship.78Good code isn't code that looks correct. It's code that survived you trying to9break it.1011## When the hat goes on1213Not everything has an enemy. A pure function that reverses a string is nobody's14way in. The hat goes on the moment the code crosses a **trust boundary** — where15untrusted data or an untrusted caller meets power:1617- untrusted input (user, network, file, env, an upstream API)18- authentication or authorization19- a database query, ORM call, or raw SQL20- filesystem paths, uploads, downloads21- an outbound URL, request, or webhook (SSRF)22- a subprocess, shell, `eval`, or template render23- deserialization / parsing of external data24- secrets, tokens, crypto, money25- shared mutable state under concurrency2627No boundary in the diff → no attack needed. Say so in one line and move on.28YAGNI applies to paranoia too.2930## The move3132Write it. Then **stop being the author and become the attacker.** Don't recite a33checklist — actually try to break *this* code:34351. **Feed it the bad input.** The empty, the huge, the negative, the unicode, the36 `../`, the `'; --`, the `{{7*7}}`, the 10MB body. What's the one input the37 author never pictured?38…
Excerpt shown under the repository's Apache-2.0 license.
More skills in awesome-claude-code-plugins
Similar skill repositories
An agentic skills framework & software development methodology that works.
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
Public repository for Agent Skills
Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.
Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
