Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when creating or editing a skill in this offensive-claude repo — for the SKILL.md conventions (trigger descriptions, technique map, runnable scripts, OPSEC/detection, red-flags tables, flowchart rules)
.claude/skills/hypnguyen1209-writing-offensive-skills/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -44% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -23% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 218% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 250% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -29% | 0% |
Conventions for authoring skills in this repo so the dispatcher can find them and operators can trust them. This adapts superpowers' skill conventions to offensive security.
REQUIRED BACKGROUND: superpowers:writing-skills (the general conventions) and superpowers:test-driven-development (skills are tested like code — baseline failure first).
The description: field decides whether the dispatcher loads the skill. Write Use when… triggering conditions and symptoms ONLY — never summarize the skill's workflow (a workflow summary makes Claude follow the description instead of reading the skill).
yaml# BAD (summarizes workflow): description: Recon skill that enumerates subdomains then scans ports # GOOD (triggers only): description: Use when mapping a target's external attack surface — subdomains, hosts, exposed services
Third person, technology-specific only if the skill is. Verb-first / gerund names.
skills/<name>/
SKILL.md # thin router, <=180 lines
references/ # per-technique deep-dives (theory + 2024-2026 + code + detection + OPSEC)
scripts/ # runnable tooling (no placeholders)Domain (technique) skill SKILL.md sections, in order: frontmatter → When to Activate → Technique Map (Technique | ATT&CK Txxxx | CWE | reference | script) → Quick Start → OPSEC & Detection table → Deep Dives (links into references/).
Discipline skill (a hard rule, e.g. finding/scope/opsec-discipline): Overview with the Iron Law → the rule → Red Flags (STOP signals) → Rationalizations table (excuse | reality). State "violating the letter is violating the spirit" and close loopholes explicitly.
2024-2026 currency (web-search-verified CVEs; no fabricated ids — mark unverified ones), runnable scripts, OPSEC + detection pairing, technique-level ATT&CK + CWE.
Only for non-obvious decision points / "where you might stop too early". Never for reference material (use tables), code (use blocks), or linear steps (use lists).
Name only, with explicit markers: **REQUIRED:** scope-discipline. Never @-link (force-loads, burns context). Frontmatter references:/scripts: list the files the skill ships.
A skill that enforces discipline must resist rationalization under pressure. Capture the excuses an agent makes without the skill, put each in the Rationalizations table, and re-check. Safety-relevant scripts get a tests/ suite (run pytest) and an adversarial review before they're trusted.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 22,599 | 19,557 | -13% | 1 | 1 | 0% | 3,757 | 2,110 | -44% | 0 | 0 | — |
case-07 | fail→pass | 16,964 | 12,695 | -25% | 1 | 1 | 0% | 1,435 | 1,104 | -23% | 0 | 0 | — |
case-02 | fail→pass | 37,374 | 16,969 | -55% | 1 | 1 | 0% | 1,062 | 3,374 | +218% | 0 | 0 | — |
case-03 | fail→pass | 10,903 | 22,702 | +108% | 1 | 1 | 0% | 885 | 3,100 | +250% | 0 | 0 | — |
case-04 | fail→pass | 11,727 | 5,130 | -56% | 1 | 1 | 0% | 2,148 | 1,532 | -29% | 0 | 0 | — |
case-05 | fail→pass | 22,246 | 13,466 | -39% | 1 | 1 | 0% | 1,191 | 1,087 | -9% | 0 | 0 | — |
case-06 | fail→pass | 13,548 | 17,606 | +30% | 1 | 1 | 0% | 2,426 | 1,771 | -27% | 0 | 0 | — |
case-08 | fail→pass | 28,255 | 4,908 | -83% | 1 | 1 | 0% | 1,174 | 1,207 | +3% | 0 | 0 | — |
case-09 | pass→pass | 6,754 | 6,280 | -7% | 1 | 1 | 0% | 1,036 | 1,219 | +18% | 0 | 0 | — |
case-10 | fail→pass | 14,416 | 2,998 | -79% | 1 | 1 | 0% | 2,230 | 1,197 | -46% | 0 | 0 | — |
case-11 | fail→pass | 15,880 | 13,047 | -18% | 1 | 1 | 0% | 2,463 | 2,663 | +8% | 0 | 0 | — |
case-12 | fail→pass | 10,737 | 7,669 | -29% | 1 | 1 | 0% | 1,620 | 1,059 | -35% | 0 | 0 | — |
case-13 | pass→pass | 14,092 | 4,482 | -68% | 1 | 1 | 0% | 1,586 | 1,291 | -19% | 0 | 0 | — |
case-14 | fail→pass | 16,691 | 4,031 | -76% | 1 | 1 | 0% | 2,671 | 1,230 | -54% | 0 | 0 | — |
case-15 | fail→pass | 17,610 | 14,348 | -19% | 1 | 1 | 0% | 2,489 | 2,770 | +11% | 0 | 0 | — |
case-16 | pass→pass | 11,703 | 3,301 | -72% | 1 | 1 | 0% | 1,874 | 1,263 | -33% | 0 | 0 | — |
case-17 | fail→pass | 8,127 | 3,182 | -61% | 1 | 1 | 0% | 1,264 | 1,237 | -2% | 0 | 0 | — |
case-18 | fail→pass | 9,111 | 5,914 | -35% | 1 | 1 | 0% | 1,314 | 1,141 | -13% | 0 | 0 | — |
case-19 | pass→pass | 14,332 | 11,210 | -22% | 1 | 1 | 0% | 2,788 | 2,778 | -0% | 0 | 0 | — |
case-20 | pass→pass | 11,748 | 13,267 | +13% | 1 | 1 | 0% | 2,015 | 2,989 | +48% | 0 | 0 | — |
case-21 | pass→pass | 5,987 | 6,072 | +1% | 1 | 1 | 0% | 966 | 1,722 | +78% | 0 | 0 | — |
case-22 | pass→pass | 12,384 | 4,423 | -64% | 1 | 1 | 0% | 1,924 | 1,409 | -27% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +68 percentage points is the difference between those two pass rates over the 19 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.