mcpbeat

Writing Offensive Skills

hypnguyen1209/writing-offensive-skills

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)

834 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
334
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/hypnguyen1209/offensive-claude --skill writing-offensive-skills

The instruction itself

9 sections, as written by the author

Writing Offensive Skills

Overview

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).

Description = triggers only

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).

# 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.

Skill layout (progressive disclosure)

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.

The four pillars (every technique)

2024-2026 currency (web-search-verified CVEs; no fabricated ids — mark unverified ones), runnable

scripts, OPSEC + detection pairing, technique-level ATT&CK + CWE.

Flowcharts

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).

Cross-references

Name only, with explicit markers: REQUIRED: scope-discipline. Never @-link (force-loads,

burns context). Frontmatter references:/scripts: list the files the skill ships.

Test before you trust

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.

Red Flags

  • Description summarizes the workflow → rewrite to triggers only
  • A domain skill with no Technique Map / no ATT&CK+CWE / no detection → incomplete
  • A discipline skill with no Red Flags / no Rationalizations table → won't hold under pressure
  • Fabricated CVE/arXiv ids presented as real → mark UNVERIFIED or remove

How to use it

Copy the folder

Take hypnguyen1209/writing-offensive-skills from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.