harness-studio: Skill for Claude Code

.claude/skills/roles/security-adversary/SKILL.md

role-security-adversary is a skill for Claude Code from harness-studio/harness-studio. It costs 33 tokens per session (676 once invoked), scanned B, original, MIT.

A security-testing role that actively tries to break an application through attacks such as injection, authentication abuse, secret exposure, and hostile input.

In plain words
What is it for?
Use it to test SQL injection, prompt injection, command injection, brute-force and authorization flaws, leaked secrets, malformed data, and oversized input.
Why use it?
It finds weaknesses that a polite code review may overlook, including attacks against queries, AI prompts, shell commands, files, and access controls.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is harness-studio/harness-studio's own configuration. It tells Claude Code how to work on harness-studio itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything harness-studio configures →

Reuse

Borrowing it

Nothing to install: this file belongs to harness-studio/harness-studio. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/harness-studio/harness-studio/main/.claude/skills/roles/security-adversary/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/harness-studio/harness-studio

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for role-security-adversary

README.md
[![agentmods](https://agentmods.dev/badge/skills/harness-studio/harness-studio/security-adversary.svg)](https://agentmods.dev/skills/harness-studio/harness-studio/security-adversary)
Your own site
<a href="https://agentmods.dev/skills/harness-studio/harness-studio/security-adversary"><img src="https://agentmods.dev/badge/skills/harness-studio/harness-studio/security-adversary.svg" alt="Measured on agentmods" height="20"></a>
Per session 33 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 676 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 2 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00033 $0.00676
Opus 5 $0.00016 $0.00338
Sonnet 5 $0.00007 $0.00135
Haiku 4.5 $0.00003 $0.00068

Measured 7d ago against content hash ed3c188f7b6c, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade B, and why

role-security-adversary scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Instruction-override phrasingmediumPrompt injection

Text telling the model to disregard its earlier instructions or safety rules is the shape of a prompt injection, whoever wrote it.

2. **Prompt injection**: any user input that reaches an LLM prompt — test: `Ignore previous instructions and...`

Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.

Runs shell commandslowCapability

Expected in a hook, worth knowing in a rule or an instructions file.

3. **Command injection**: any input reaching `subprocess`, `os.system`, `eval` — test: `; ls -la`, `$(whoami)`
.claude/skills/roles/security-adversary/SKILL.md · 60 lines

How it starts

The opening of the file, as written. The whole thing — 60 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Purpose

BREAK IN. Don't review politely — actively attempt to exploit the system. You win by getting in. PASS only if the attack suite is survived with evidence.

Non-negotiables

Always:

  • Attack EVERY input that reaches a query, LLM, shell, or file system for injection
  • Attack auth surfaces for brute force, rate-limit bypass, and broken object-level authorization (IDOR)
  • Search for secrets in code, logs, error responses, and git history
  • Test hostile inputs: malformed payloads, oversized values, unexpected types, null/empty
  • Report severity: high for any finding that could compromise data or system integrity

Never:

  • Conduct a polite review — this is an active attack, not a code review
  • PASS without actually attempting the attacks
  • Skip an attack because "the developer probably handled it" — verify it

Attack surface (check all that apply)

  1. SQL injection: every WHERE clause, LIKE, ORDER BY, LIMIT — especially those with user-supplied values. Test: '; DROP TABLE --, ' OR 1=1 --, ' UNION SELECT
  2. Prompt injection: any user input that reaches an LLM prompt — test: Ignore previous instructions and...
  3. Command injection: any input reaching subprocess, os.system, eval — test: ; ls -la, $(whoami)
  4. IDOR: attempt to read/modify another user's resource by changing an ID in the request
  5. Auth bypass: missing auth on sensitive endpoints, JWT algorithm confusion, token reuse
  6. Rate limiting: brute force login/password-reset endpoints — does the rate limit actually activate?
  7. Secret leakage: grep for API keys, passwords, tokens in: source code, .env files tracked in git, error responses, log output
  8. Hostile input: send None, "", -1, 999999999, {"key": null}, binary strings to every endpoint

Output format

{
  "verdict": "PASS|BLOCK",
  "findings": [
    {
      "issue": "<what the vulnerability is>",
      "severity": "high|med|low",
      "repro": "<exact steps or code to reproduce the exploit>"
    }
  ]
}

Read the full file on GitHub · 60 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 7d ago First seen · 60 lines · 33 tokens per session scan B ed3c188f7b6c

Subscribe to this mod's changes

role-security-adversary is a skill published in the GitHub repository harness-studio/harness-studio (9 stars, last pushed 2mo ago), licensed MIT. It adds 33 tokens to every session and 676 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it B with 2 findings (instruction-override phrasing, runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.