Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add khasky/awesome-agent-skills --skill awesome-security-auditgit clone --depth 1 https://github.com/khasky/awesome-agent-skillsWrote 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.
[](https://agentmods.dev/skills/khasky/awesome-agent-skills/awesome-security-audit)<a href="https://agentmods.dev/skills/khasky/awesome-agent-skills/awesome-security-audit"><img src="https://agentmods.dev/badge/skills/khasky/awesome-agent-skills/awesome-security-audit/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/khasky/awesome-agent-skills/awesome-security-audit"><img src="https://agentmods.dev/badge/skills/khasky/awesome-agent-skills/awesome-security-audit.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high YARA Match · line 153 YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).Fix: Remove offensive tool references and exploit code. Legitimate agent skills should not contain penetration testing tools, exploit frameworks, or reconnaissance utilities.
- medium Excessive Agency · line 29 Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00120 | $0.05248 |
| Opus 5 | $0.00060 | $0.02624 |
| Sonnet 5 | $0.00024 | $0.01050 |
| Haiku 4.5 | $0.00012 | $0.00525 |
Grade A, and why
awesome-security-audit scanned grade A with 1 finding 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 yesterday.
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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
- Same API, different verdicts — check context first: `requests.get(request.GET['url'])` = flag (SSRF); `requests.get(settings.API_URL)` = safe; `requests.get(f"{settings.BASE}/{path}")` = check where `path` comes from. How it starts
The opening of the file, as written. The whole thing — 213 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Security Audit
Review code and config for common security issues so risks are identified, evidenced, and handed over with the fix each one needs.
Read-only on the codebase: it reports findings and the remediation each calls for, and never applies an edit. The active phase (scanners, npm audit, registry lookups) is gated separately in step 2 and reads — it does not write either. A security fix belongs to whoever owns the code path, reviewed against the finding that motivated it; an audit that silently patches what it found leaves nobody able to check whether the patch closed the hole or moved it.
When to Activate
- User asks for "security review", "security audit", or "check for vulnerabilities"
- Before a release or after adding auth, payments, or sensitive data handling
- Reviewing new or changed endpoints, file handling, or configuration
- After adding a new dependency or external integration
Work Process
Split the work into a passive phase (reading source, config, and dependency manifests — no gate) and an active phase (running scanners, npm audit/pip audit, dependency resolution that reaches a registry, or any dynamic/network probe — behind the approval gate in step 2). Default to passive.
- Confirm scope, authorization, and mode — Pin down what is in scope and explicitly out of scope (exact origin,
/api, specific modules, test accounts vs real data). Confirm the user owns or is authorized to test the target — required before any active command touches a live system or a package registry. Note the mode: this skill is white-box static review; dynamic and runtime issues are out of its reach (see Scope and limitations). Focus high-risk areas first. - Plan, then gate active steps — Propose the active-scan plan (which scanners, which commands) and wait for approval before running it; passive code and config reading needs no approval. If authorization for an active step is missing, stay passive and say what that leaves unverified. Before recommending or running any scanner, confirm it exists at a known version (
semgrep --version, exit 0) — an assumed-installed tool and an installed one produce different plans; where a tool is absent, mark that gate unavailable rather than skipping it silently. - Detect the stack — Indicator files (
package.json,requirements.txt,go.mod, framework configs) tell you which checks matter and which framework mitigations apply, before scanning. - Work the surface in order — Attack-surface map (enumerate endpoints, inputs, trust boundaries, external integrations) → passive HTTP/config analysis → authentication and authorization model → tenant and object-ownership boundaries → business-logic abuse. Within each phase use the category checklists in
references/checklists.md— load that file first; it is the working checklist. Trace high-value leads as source→sink data flow (taint chains): a secret reaching a network sink, a file read reaching a network sink, or external input reaching a code-exec sink is a finding of its own, distinct from "a secret is present". - Gate findings by confidence — Report a finding only when the vulnerable pattern AND attacker-controlled input are both confirmed by reading the code. Medium-confidence items go to a separate "Needs verification" section with the specific open question. "Potentially" or "theoretically" in a finding means it is not one yet — every reported issue needs a concrete attacker, input, and result. Defense-in-depth suggestions go to a "Hardening notes" section, never into findings. Keep a candidate worklist — every grep hit and scanner line driven to an explicit verdict (confirmed / traced-safe / needs-PoC), never eyeballed-and-forgotten — and run each confirmed candidate through the restate-the-claim, adversarial-revalidation, and already-fixed checks in references/verification.md before it enters the report.
- Design-intent gate — Before flagging a boundary as unhandled, check whether the code explicitly returns/rejects there (
errors.New("cache full"), HTTP 429, buffer-full reject). An explicit designed return is not a bug; apanic/crash at the boundary still is. Deduplicate a repeated pattern into one finding with a count, not N findings. - Escalate criticals immediately — Don't hold a confirmed Critical (RCE, auth bypass, exposed live secret, bulk-PII exposure) for the final report; surface it to the user the moment it's confirmed, with the immediate containment step.
- Sweep for variants — a confirmed finding is a class, not an instance. Before writing it up, search the repo for the same shape: the same sink reached from a different caller, the same missing check on sibling routes, the same pattern copy-pasted into another module. Grep the sink, the vulnerable call, and the fix's absence (
execute(f"after finding one f-string query; every route file after finding one without an ownership check), then read each hit in context. Report the class as one finding listing every location; split it out only where a variant's severity or reachability genuinely differs. Fixing the one caller the report named and leaving four siblings live is the failure this step exists to prevent. - Document findings — Location (file:line or area), issue, impact, and recommended fix. Do not claim "secure"; frame as "no obvious issues in reviewed scope" and suggest further steps (e.g. dependency scan, pentest) if relevant.
- Specify the remediation — Describe the concrete fix per finding; do not apply it, and do not introduce new secrets or log sensitive data in what you propose.
- Stop on impact — If an active step shows signs of affecting the running system or its data (errors, state changes, account lockouts), stop that step and report before continuing.
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- yesterday Changed 313c3fad5aa4
- 5d ago Changed · +2 lines · -39 tokens per session b7f2a300e354
- 8d ago Changed · +2 lines · +33 tokens per session ac0c9ff0f3aa
- 12d ago First seen · 209 lines · 126 tokens per session scan A 9c2f0f4329f6
awesome-security-audit is a skill published in the GitHub repository khasky/awesome-agent-skills (8 stars, last pushed yesterday), licensed MIT. It adds 120 tokens to every session and 5,248 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
idea-refine
Refines raw ideas into sharp, actionable concepts through structured divergent and convergent thinking. Use when an idea is still vague, when you need to stress-test assumptions before committing to a plan, or when you want to expand options before converging on one. Triggers on "ideate", "refine this idea", or…
9router-web-fetch
Fetch URL → markdown / text / HTML via 9Router /v1/web/fetch using Ollama Cloud / Firecrawl / Jina Reader / Tavily Extract / Exa Contents. Use when the user wants to scrape a webpage, extract URL content, read article, or convert a URL to markdown.
9router-web-search
Web and X search via 9Router /v1/search using Tavily / Exa / Brave / Serper / SearXNG / Google PSE / Linkup / SearchAPI / You.com / Perplexity / Xquik. Use when the user wants to search the web, find articles, or search public X posts.
9router-embeddings
Generate vector embeddings via 9Router /v1/embeddings using OpenAI / Gemini / Mistral / Voyage / Nvidia / GitHub embedding models for RAG, semantic search, similarity. Use when the user wants embeddings, vectors, RAG, semantic search, or to embed text.
9router-stt
Speech-to-text via 9Router /v1/audio/transcriptions using OpenAI Whisper / Groq / Gemini / Deepgram / AssemblyAI / NVIDIA / HuggingFace models. Use when the user wants to transcribe audio, convert speech to text, or get subtitles from audio files.
chinese-git-workflow
A reference for configuring Git with Chinese code-hosting services such as Gitee, Coding.net, GitLab China, and CNB, including SSH, HTTPS, credentials, CI, and repository mirroring.