owasp
This skill should be used when the user asks to "run OWASP analysis", "check OWASP Top 10", "OWASP scan", or invokes /appsec:owasp. Dispatches 10 category subagents (A01-A10) in parallel for comprehensive OWASP Top 10 coverage.
What this skill does
# OWASP Top 10 Dispatcher
Dispatch parallel subagents covering all 10 categories of the OWASP Top 10
(2021). Each category runs as an independent subagent with its own context
window, analyzing the scoped code for that specific class of vulnerability.
Results are consolidated, deduplicated, and ranked by severity.
## Supported Flags
Read [`../../shared/schemas/flags.md`](../../shared/schemas/flags.md) for the
full flag specification. This dispatcher supports all cross-cutting flags.
| Flag | Dispatcher-Specific Behavior |
|------|------------------------------|
| `--scope` | Propagated to all subagents. Default `changed`. |
| `--depth` | Propagated to all subagents. Default `standard`. |
| `--severity` | Applied during consolidation to filter the merged output. |
| `--format` | Applied to final consolidated output. |
| `--only A01,A03` | Run only the listed categories. Accepts comma-separated category codes (e.g., `A01`, `A03`, `A07`). Unlisted categories are skipped entirely. |
| `--fix` | Propagated to subagents; each produces fix suggestions inline. |
| `--quiet` | Propagated to subagents; suppress explanations. |
| `--explain` | Propagated to subagents; add learning material per finding. |
## Framework Reference
Read [`../../shared/frameworks/owasp-top10-2021.md`](../../shared/frameworks/owasp-top10-2021.md)
for the full OWASP Top 10 specification including vulnerability descriptions,
prevention guidance, and STRIDE cross-mappings for each category.
## Pre-flight Relevance Check
Before dispatching subagents, scan the scoped file list to determine which
categories are relevant. Skip categories that have no plausible attack surface
in the codebase. This avoids wasting subagent context windows on irrelevant
analysis.
| Category | Skill | Skip When |
|----------|-------|-----------|
| A01 Broken Access Control | `access-control` | No route handlers, no auth middleware, no API endpoints |
| A02 Cryptographic Failures | `crypto` | No crypto imports, no hashing, no TLS config, no secret storage |
| A03 Injection | `injection` | No database queries, no shell commands, no template rendering, no user input handling |
| A04 Insecure Design | `insecure-design` | Always relevant (design-level analysis applies to any code) |
| A05 Security Misconfiguration | `misconfig` | No configuration files, no deployment manifests, no environment variables |
| A06 Outdated Components | `outdated-deps` | No package manifest (`package.json`, `requirements.txt`, `go.mod`, `Gemfile`, `pom.xml`, `Cargo.toml`) |
| A07 Auth Failures | `auth` | No login, registration, session, or token handling code |
| A08 Integrity Failures | `integrity` | No CI/CD config, no deserialization, no package install scripts, no auto-update logic |
| A09 Logging Failures | `logging` | No log statements, no audit trail, no monitoring config |
| A10 SSRF | `ssrf` | No HTTP client calls, no URL fetching, no webhook handling, no image/document fetching from URLs |
**How to check**: Use Glob and Grep on the scoped files to detect relevant
patterns. For example, check for `fetch(`, `axios`, `requests.get`,
`http.Get` to determine A10 relevance. Check for `package.json`,
`requirements.txt`, `go.mod` to determine A06 relevance.
If `--only` is specified, skip the relevance check and dispatch only the
listed categories.
## Dispatch Category Subagents
**CRITICAL**: All Task tool calls MUST appear in the SAME response message.
This is what triggers parallel execution. If you emit them across separate
messages, they run sequentially and waste time.
### Dispatch Table
| Category | Subagent Skill | Finding Prefix | Description |
|----------|---------------|----------------|-------------|
| A01 | `skills/access-control/SKILL.md` | `AC` | Broken access control, IDOR, CORS, missing deny-by-default |
| A02 | `skills/crypto/SKILL.md` | `CRYPT` | Weak crypto, cleartext transmission, poor key management |
| A03 | `skills/injection/SKILL.md` | `INJ` | SQL/NoSQL/OS/LDAP injection, template injection |
| A04 | `skills/insecure-design/SKILL.md` | `DESGN` | Missing threat modeling, insecure patterns, business logic flaws |
| A05 | `skills/misconfig/SKILL.md` | `MSCFG` | Default configs, unnecessary features, verbose errors |
| A06 | `skills/outdated-deps/SKILL.md` | `DEP` | Known CVEs in dependencies, unmaintained packages |
| A07 | `skills/auth/SKILL.md` | `AUTH` | Credential stuffing, weak passwords, session management |
| A08 | `skills/integrity/SKILL.md` | `INTEG` | Insecure deserialization, CI/CD integrity, unsigned updates |
| A09 | `skills/logging/SKILL.md` | `LOG` | Missing audit logs, insufficient monitoring, log injection |
| A10 | `skills/ssrf/SKILL.md` | `SSRF` | Unvalidated URL fetching, internal network access |
### Subagent Prompt Template
Each subagent Task call must include a FULLY self-contained prompt. Subagents
get their own isolated context window and cannot see the main conversation.
Each subagent prompt must contain:
1. The **concrete file list** to analyze (resolved from scope).
2. The **absolute path to the category SKILL.md** to read and follow.
3. The **flags** to apply (`--scope`, `--depth`, `--severity`, `--format`, etc.).
4. The **findings schema path** (`shared/schemas/findings.md`) for output format.
5. An instruction to **return findings only** -- no summary, no cross-category
commentary. The dispatcher handles consolidation.
```
Analyze the following files for OWASP {CATEGORY_CODE} ({CATEGORY_NAME}) vulnerabilities:
FILES:
{FILE_LIST}
STEP 1: Read the skill definition at:
{ABSOLUTE_PATH_TO_PLUGIN}/skills/{SKILL_NAME}/SKILL.md
STEP 2: Follow the workflow defined in that skill to analyze the listed files.
STEP 3: Read the findings schema at:
{ABSOLUTE_PATH_TO_PLUGIN}/shared/schemas/findings.md
STEP 4: Output findings in the schema format. Set metadata.framework to "owasp"
and metadata.category to "{CATEGORY_CODE}".
FLAGS: --scope {SCOPE} --depth {DEPTH} --severity {SEVERITY}
IMPORTANT: Return ONLY the findings list. Do NOT produce a summary or
cross-category analysis. The dispatcher handles consolidation.
```
### Launching
Emit one Task tool call per relevant category, ALL in a single response:
- `subagent_type`: `"general-purpose"`
- `description`: `"OWASP {CATEGORY_CODE} - {CATEGORY_NAME}"`
- `prompt`: The fully self-contained prompt above, filled in for this category.
Do NOT emit Task calls one at a time. Do NOT wait between dispatches.
## Consolidation
After ALL subagents return their results:
### 1. Merge Findings
Collect all findings from all subagent responses into a single list.
### 2. Deduplicate
Two findings are duplicates if they share the same `location.file` AND
`location.line` (or overlapping line ranges). When duplicates exist:
- Keep the finding with the higher severity.
- Merge cross-references (a finding tagged `A03` and `A01` keeps both).
- Note the duplicate in the retained finding's description.
### 3. Cross-Reference
For each finding, populate cross-framework references where known:
- `references.cwe`: Map to CWE identifier.
- `references.stride`: Map to STRIDE category letter(s).
- `references.mitre_attck`: Map to ATT&CK technique ID.
- `references.sans_cwe25`: Map to SANS/CWE Top 25 rank if applicable.
### 4. Rank by Severity
Sort findings: critical > high > medium > low. Within the same severity,
sort by confidence (high > medium > low).
### 5. Produce Aggregate Output
Wrap the consolidated findings in the aggregate output format from
`shared/schemas/findings.md`, including `categories_checked`,
`categories_skipped`, `skip_reason`, `total_findings`, and `by_severity`.
### 6. Present Results
Output the consolidated report in the requested `--format`. Include:
- Summary table: categories checked, categories skipped (with reasons).
- Severity breakdown: count by critical/high/medium/low.
- Findings list in severity order.
- Cross-category patterns (e.g., "injection findings in A03 also indicate
broken access control in A0Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.