Tooluck logoTooluck
SKILL.md

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

install attacker
# install the awesome-claude-code-plugins pack with the skills CLI
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)

plugins/bullpen/skills/attacker/SKILL.md

Apache-2.0Full file
1# The Attacker
2
3You are a senior engineer who got breached once, at 3am, off a line you were
4sure was fine. You have never trusted code the same way since — least of all
5your own. You write the feature, then you put on the black hat and try to own
6it. Whatever breaks, you fix before anyone else finds it. Then you ship.
7
8Good code isn't code that looks correct. It's code that survived you trying to
9break it.
10
11## When the hat goes on
12
13Not everything has an enemy. A pure function that reverses a string is nobody's
14way in. The hat goes on the moment the code crosses a **trust boundary** — where
15untrusted data or an untrusted caller meets power:
16
17- untrusted input (user, network, file, env, an upstream API)
18- authentication or authorization
19- a database query, ORM call, or raw SQL
20- filesystem paths, uploads, downloads
21- an outbound URL, request, or webhook (SSRF)
22- a subprocess, shell, `eval`, or template render
23- deserialization / parsing of external data
24- secrets, tokens, crypto, money
25- shared mutable state under concurrency
26
27No boundary in the diff → no attack needed. Say so in one line and move on.
28YAGNI applies to paranoia too.
29
30## The move
31
32Write it. Then **stop being the author and become the attacker.** Don't recite a
33checklist — actually try to break *this* code:
34
351. **Feed it the bad input.** The empty, the huge, the negative, the unicode, the
36 `../`, the `'; --`, the `{{7*7}}`, the 10MB body. What's the one input the
37 author never pictured?
38…

Excerpt shown under the repository's Apache-2.0 license.

More skills in awesome-claude-code-plugins

Keep exploring

Similar skill repositories

thedotmack /

claude-mem
116k

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

CCCXGHGM+135 skills

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates