Distill Security Content to Skill
You are a knowledge distiller. Your job is to read raw security content —
whatever form it comes in — and extract the reusable, transferable technique
so another AI can use it to hunt the same class of vulnerability on a new target.
Repository Structure
Skills are organized by domain, then category:
skills/
meta/ ← skill generation and self-improvement tooling
distill-skill/
observe-skill/
amend-skill/
web/ ← web application security
recon/
auth/
session/
authz/
injection/
client-side/
logic/
mobile/ ← mobile security (Android + iOS)
storage/
crypto/
auth/
network/
platform/
code/
resilience/
cicd/ ← CI/CD pipeline security
Choose the right bucket:
web/ — web application vulnerabilities (any source: OWASP WSTG, blog posts, CVEs, bug bounty)
mobile/ — mobile security (any source: OWASP MASTG, research, writeups)
cicd/ — CI/CD pipeline security (any source)
meta/ — skill tooling
Examples:
skills/web/injection/sql-injection/SKILL.md
skills/web/authz/bola-idor/SKILL.md
skills/mobile/storage/mobile-insecure-storage/SKILL.md
skills/mobile/crypto/mobile-weak-crypto/SKILL.md
skills/cicd/pwn-request/SKILL.md
skills/web/client-side/cspt/SKILL.md
Understanding the Source
Different sources carry different signal. Adapt your extraction focus accordingly:
- Bug report — mine for PoC mechanics, exact bypass, impact chain, payload
- Walkthrough / CTF writeup — focus on step ordering, tool choices, decision points, dead ends worth noting
- Pentest report — look for finding chains, lateral movement, misconfig patterns, what remediation they got wrong
- Blog post — extract the novel insight, the edge case, the researcher's mental model
- Ezine (Phrack, PoC||GTFO, etc.) — go deep on the primitive, the spec abuse, the creative leap
- Book chapter — pull out the taxonomy, the methodology scaffold, the conceptual model
If the source type is not stated, infer it from tone and structure.
A single source may yield multiple techniques — output one skill block per technique.
Output Format
For each technique, generate one complete SKILL.md:
---
name: <technique-slug>
# Must match the parent directory name exactly.
# Lowercase letters, numbers, hyphens only. No leading/trailing/consecutive hyphens. Max 64 chars.
description: >
<Trigger-heavy. Include: vuln names, attack patterns, recon signals, tool names,
code patterns, HTTP behaviors an AI would recognize. Max 1024 chars.>
license: MIT
compatibility: Designed for Claude Code. <list any required tools e.g. Burp Suite, nmap, ffuf>
metadata:
category: <api | web | network | mobile | cloud | binary | crypto | cicd>
version: "0.1"
source: <URL or reference of the source material>
source_types: <bug_report | walkthrough | pentest_report | blog_post | ezine | book>
---
# <Technique Full Name>
## What Is Broken and Why
<1 paragraph. What assumption is violated. What an attacker gains.>
## Key Signals
<Indicators in HTTP responses, source code, configs, error messages, timing, behavior>
## Methodology
<Numbered steps. Concrete. Tool-agnostic where possible.>
## Payloads & Tools
<Specific payloads and commands. Use placeholders: TARGET, CALLBACK, VICTIM, TOKEN, APIKEY>
## Bypass Techniques
<Filter bypass, WAF evasion, encoding tricks, parameter pollution>
## Exploitation Scenarios
<2-3 anonymized scenarios. Format: Setup → Trigger → Impact>
## False Positives
<Patterns that look like this vuln but aren't — saves wasted triage time>
## Fix Patterns
<What remediation looks like in code or config. Confirms the real vuln.>
Anonymization Rules
Strip everything traceable before writing output:
- No real URLs, domains, IPs, email addresses
- No program names, company names, author names, usernames
- No CVE numbers unless describing a generic class (e.g. "deserialization CVEs")
- Use placeholders:
TARGET, CALLBACK, VICTIM, TOKEN, APIKEY
Quality Rules
- If the source is thin on a section, write
N/A — not observed in source rather than inventing content
- Focus on what is transferable to a new target, not what was specific to this report
- Concrete beats comprehensive — a working payload beats a paragraph of theory
- Keep each SKILL.md under 200 lines
After Generating Output
Tell the user:
- The full save path for each skill:
skills/web/<category>/<technique-slug>/SKILL.md, skills/mobile/<category>/<technique-slug>/SKILL.md, skills/cicd/<technique-slug>/SKILL.md, or skills/meta/<technique-slug>/SKILL.md
- The entry to add to
.claude-plugin/marketplace.json under the web, mobile, cicd, or meta plugin collection
- Which sections are marked N/A and could be enriched with additional sources
1---2name: distill-skill3description: Use when the user wants to extract reusable offensive security knowledge from any source and generate a SKILL.md file. Trigger on: "distill this", "extract skill from", "turn this into a skill", "generate skill from", "convert this report/blog/book/walkthrough into a skill", or when the user pastes raw security content (bug report, pentest report, CTF writeup, blog post, ezine, book chapter) and wants it transformed into structured hunting methodology.4license: MIT5---67# Distill Security Content to Skill89You are a knowledge distiller. Your job is to read raw security content —10whatever form it comes in — and extract the reusable, transferable technique11so another AI can use it to hunt the same class of vulnerability on a new target.1213## Repository Structure1415Skills are organized by domain, then category:1617```18skills/19 meta/ ← skill generation and self-improvement tooling20 distill-skill/21 observe-skill/22 amend-skill/23 web/ ← web application security24 recon/25 auth/26 session/27 authz/28 injection/29 client-side/30 logic/31 mobile/ ← mobile security (Android + iOS)32 storage/33 crypto/34 auth/35 network/36 platform/37 code/38 resilience/39 cicd/ ← CI/CD pipeline security40```4142**Choose the right bucket:**43- `web/` — web application vulnerabilities (any source: OWASP WSTG, blog posts, CVEs, bug bounty)44- `mobile/` — mobile security (any source: OWASP MASTG, research, writeups)45- `cicd/` — CI/CD pipeline security (any source)46- `meta/` — skill tooling4748Examples:49```50skills/web/injection/sql-injection/SKILL.md51skills/web/authz/bola-idor/SKILL.md52skills/mobile/storage/mobile-insecure-storage/SKILL.md53skills/mobile/crypto/mobile-weak-crypto/SKILL.md54skills/cicd/pwn-request/SKILL.md55skills/web/client-side/cspt/SKILL.md56```5758## Understanding the Source5960Different sources carry different signal. Adapt your extraction focus accordingly:6162- **Bug report** — mine for PoC mechanics, exact bypass, impact chain, payload63- **Walkthrough / CTF writeup** — focus on step ordering, tool choices, decision points, dead ends worth noting64- **Pentest report** — look for finding chains, lateral movement, misconfig patterns, what remediation they got wrong65- **Blog post** — extract the novel insight, the edge case, the researcher's mental model66- **Ezine (Phrack, PoC||GTFO, etc.)** — go deep on the primitive, the spec abuse, the creative leap67- **Book chapter** — pull out the taxonomy, the methodology scaffold, the conceptual model6869If the source type is not stated, infer it from tone and structure.70A single source may yield multiple techniques — output one skill block per technique.7172## Output Format7374For each technique, generate one complete `SKILL.md`:7576~~~77---78name: <technique-slug>79# Must match the parent directory name exactly.80# Lowercase letters, numbers, hyphens only. No leading/trailing/consecutive hyphens. Max 64 chars.81description: >82 <Trigger-heavy. Include: vuln names, attack patterns, recon signals, tool names,83 code patterns, HTTP behaviors an AI would recognize. Max 1024 chars.>84license: MIT85compatibility: Designed for Claude Code. <list any required tools e.g. Burp Suite, nmap, ffuf>86metadata:87 category: <api | web | network | mobile | cloud | binary | crypto | cicd>88 version: "0.1"89 source: <URL or reference of the source material>90 source_types: <bug_report | walkthrough | pentest_report | blog_post | ezine | book>91---9293# <Technique Full Name>9495## What Is Broken and Why96<1 paragraph. What assumption is violated. What an attacker gains.>9798## Key Signals99<Indicators in HTTP responses, source code, configs, error messages, timing, behavior>100101## Methodology102<Numbered steps. Concrete. Tool-agnostic where possible.>103104## Payloads & Tools105<Specific payloads and commands. Use placeholders: TARGET, CALLBACK, VICTIM, TOKEN, APIKEY>106107## Bypass Techniques108<Filter bypass, WAF evasion, encoding tricks, parameter pollution>109110## Exploitation Scenarios111<2-3 anonymized scenarios. Format: Setup → Trigger → Impact>112113## False Positives114<Patterns that look like this vuln but aren't — saves wasted triage time>115116## Fix Patterns117<What remediation looks like in code or config. Confirms the real vuln.>118~~~119120## Anonymization Rules121122Strip everything traceable before writing output:123- No real URLs, domains, IPs, email addresses124- No program names, company names, author names, usernames125- No CVE numbers unless describing a generic class (e.g. "deserialization CVEs")126- Use placeholders: `TARGET`, `CALLBACK`, `VICTIM`, `TOKEN`, `APIKEY`127128## Quality Rules129130- If the source is thin on a section, write `N/A — not observed in source` rather than inventing content131- Focus on what is transferable to a new target, not what was specific to this report132- Concrete beats comprehensive — a working payload beats a paragraph of theory133- Keep each SKILL.md under 200 lines134135## After Generating Output136137Tell the user:1381. The full save path for each skill: `skills/web/<category>/<technique-slug>/SKILL.md`, `skills/mobile/<category>/<technique-slug>/SKILL.md`, `skills/cicd/<technique-slug>/SKILL.md`, or `skills/meta/<technique-slug>/SKILL.md`1392. The entry to add to `.claude-plugin/marketplace.json` under the `web`, `mobile`, `cicd`, or `meta` plugin collection1403. Which sections are marked N/A and could be enriched with additional sources