Red team
Attacks the user's own plan, design, code, or argument the way a motivated adversary or reality would, to surface the holes before a real opponent finds them. Use this skill when the user says "find the flaws", "poke holes in this", "what could go wrong", "stress-test this", wants a security or robustness review, is about to ship or launch something, is finalizing a strategy, or asks you to attack/break their work. Best right before a commitment point, when the cost of a hidden weakness is about to jump.From its SKILL.md
npx -y skills add opelpleple/meta-skills --skill red-teamAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.3 KB, 888 tokens by cl100k_base, as published. Nobody here has run it
Red Team
Switch sides. Become the attacker, the competitor, the failure mode, or Murphy's Law — and try to break the thing the user just built, on purpose.
When to use
- Right before shipping, launching, publishing, or signing.
- Security/abuse review: "how would someone exploit this?"
- A strategy or plan that an opponent (competitor, regulator, adversary) could counter.
- A claim or argument going in front of a hostile audience.
- Anything where the cost of a missed weakness is high and rises after commitment.
When NOT to use
- Early brainstorming, where attacking ideas kills the generative phase. Diverge first, red-team later.
- When the user needs encouragement to start, not reasons to stop.
- Trivial, reversible decisions where the failure cost is near zero.
The method
- Define the target and the win condition precisely. What exactly are you attacking, and what counts as "broken"? "The plan fails" is vague; "an attacker reads another user's data" or "the launch misses its date" is a target.
- Pick your adversaries and put on each mask in turn. Run distinct passes, e.g.:
- The malicious attacker — wants to exploit, steal, abuse, or cheat.
- The competitor — wants to out-maneuver, copy, or undercut you.
- Reality / Murphy — no intent, just everything that can fail will: outages, edge cases, bad inputs, scale, time.
- The hostile critic — wants to discredit the argument publicly.
- For each mask, ask "how do I win against this?" Generate concrete attacks, not vague worries. Name the exact input, move, or condition.
- Probe the seams. Attacks live at boundaries: trust boundaries, handoffs, assumptions, "this will never happen," default configs, the unhappy path, the 10x-load path, the malicious-input path.
- For each attack, rate severity × likelihood. A devastating-but-impossible attack and an annoying-but-certain one are different problems. Sort by the product.
- Steelman the defense, then attack again. For the top attacks, imagine the best fix, then try to break that. Stop when remaining attacks are low-severity or genuinely hard.
- Deliver the kill list. Ranked attacks, each with: the exact exploit, why it works, severity × likelihood, and the cheapest mitigation.
What good looks like
- Specific, reproducible attacks — a concrete input/move, not "security could be better."
- At least one finding the user clearly hadn't considered.
- Honest severity ratings, including downgrading scary-sounding but trivial issues.
- Every finding paired with a mitigation, so it's actionable, not just discouraging.
- Coverage across multiple adversary types, not just one favorite angle.
Anti-patterns
- Vague FUD: "this might not scale" with no scenario. Name the load and the breaking point.
- Attacking the person, not the work. Red-team the artifact, never the author.
- Only finding flaws you already know how to fix. Push into uncomfortable territory.
- No prioritization: a flat list of 30 issues is as useless as none. Rank them.
- Forgetting the boring adversary: most real failures are Murphy, not a genius hacker.
Example
Target: a referral feature giving $10 credit per signup. Win condition: extract money without real referrals. Attacker mask: "I script 10,000 throwaway emails, self-refer, cash out $100k in credit." Seam probed: the trust boundary assumes one human per email. Reality mask: "two legit users refer each other in a loop." Severity × likelihood: high × high — this will be hit on day one. Mitigation: credit only unlocks after the referred account makes a verified action with cost (a real payment), not at signup. Re-attack the fix: "I make one real $1 purchase to unlock $10" — so cap credit at the verified spend. Kill list delivered, ranked, with the cheapest patch first.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most security skills give in 888 tokens
Counted across 648 of the 828 authors here whose files we hold, read 2026-08-07
- Parameterize all database queriesin 68 of 648, across 51 files
- Hash passwords using bcrypt, scrypt, or argon2in 49 of 648, across 36 files
- Apply rate limiting to authentication endpointsin 48 of 648, across 24 files
- Configure security headersin 35 of 648, across 19 files
- Validate all inputsin 32 of 648, across 24 files
- Validate all external input at the system boundaryin 29 of 648, across 19 files
- Run containers as a non-root userin 28 of 648, across 15 files
- Use httponly secure samesite cookies for sessionsin 26 of 648, across 15 files
- Run dependency audits before every releasein 21 of 648, across 10 files
- Encode output to prevent cross-site scriptingin 21 of 648, across 11 files
- Copy dependencies before source codein 20 of 648, across 9 files
- Store secrets in environment variablesin 20 of 648, across 18 files
Said here and by no other author read
- define the target and win condition precisely
- run distinct attack passes per adversary type
- generate concrete reproducible attacks
- probe boundary seams
- rate each attack by severity and likelihood
- steelman the defense and attack again
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.