Borrowing it
Nothing to install: this file belongs to DinoMorphica/safeclaw. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/DinoMorphica/safeclaw/main/.claude/agents/skill-scanning.mdgit clone --depth 1 https://github.com/DinoMorphica/safeclawWrote 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/agents/dinomorphica/safeclaw/skill-scanning)<a href="https://agentmods.dev/agents/dinomorphica/safeclaw/skill-scanning"><img src="https://agentmods.dev/badge/agents/dinomorphica/safeclaw/skill-scanning/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/agents/dinomorphica/safeclaw/skill-scanning"><img src="https://agentmods.dev/badge/agents/dinomorphica/safeclaw/skill-scanning.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00000 | $0.04395 |
| Opus 5.5 | $0.00000 | $0.01758 |
| Sonnet 5.5 | $0.00000 | $0.00879 |
| Haiku 4.5 | $0.00000 | $0.00439 |
Grade A, and why
skill-scanning scanned grade A with 0 findings 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 1mo ago.
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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 255 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Skill Scanner — Static Security Analysis for AI Skill Definitions
Overview
The Skill Scanner provides proactive, pre-execution security analysis of markdown skill definitions. While SafeClaw's runtime Threat Analysis Engine (TC-* categories) classifies activities as they happen, the Skill Scanner inspects skill files *before* they're loaded — catching hidden threats that are invisible to human reviewers but fully processed by LLMs.
This is a stateless, local-only analysis tool. No database, no Socket.IO, no persistence. User pastes or uploads markdown → backend runs 15 analyzers → structured findings returned instantly.
Threat Landscape
The scanner is designed to detect attack vectors documented in recent research:
- Hidden-comment injection ("When Skills Lie", arXiv:2602.10498) — HTML comments containing instructions are invisible in rendered markdown but fully processed by LLMs, causing malicious tool calls
- Supply chain poisoning (Snyk ToxicSkills, ClawHavoc) — Malicious skills on public registries delivering credential theft, reverse shells, and memory poisoning via base64-encoded commands
- Cross-tool chaining (Invariant Labs) — Multi-step attack patterns where individually benign instructions combine to exfiltrate data
- Invisible Unicode (Promptfoo) — Zero-width characters that encode instructions invisible to human review
- Argument injection (Trail of Bits) — GTFOBINS-style flag exploitation via tool arguments
Architecture
SkillScannerPage.tsx
│
│ POST /api/skill-scanner/scan { content: string }
│
▼
routes.ts
│ Zod validation (skillScanRequestSchema: min 1, max 500K chars)
│
▼
scanSkillDefinition(content) apps/cli/src/lib/skill-scanner.ts
│
├── scanHiddenContent() SK-HID — HTML comments, zero-width Unicode, CSS hiding, bidi overrides
├── scanPromptInjection() SK-INJ — Override directives, role reassignment, model tokens
├── scanShellExecution() SK-EXE — curl|bash, eval, exec, reverse shells, language one-liners
├── scanDataExfiltration() SK-EXF — Paste sites, webhooks, raw IP URLs (reuses EXFILTRATION_URLS)
├── scanEmbeddedSecrets() SK-SEC — 17 credential types (reuses scanForSecrets())
├── scanSensitiveFileRefs() SK-SFA — .ssh/, .env, .aws/, /etc/passwd (reuses SENSITIVE_PATH_RULES)
├── scanMemoryPoisoning() SK-MEM — SOUL.md, MEMORY.md, CLAUDE.md, .cursorrules modifications
├── scanSupplyChainRisk() SK-SUP — External scripts, npm/pip/gem install, raw GitHub URLs
├── scanEncodedPayloads() SK-B64 — Base64 >40 chars, atob/btoa, hex sequences, piped decode
├── scanImageExfiltration() SK-IMG — Exfil query params, raw IP images, variable interpolation
├── scanSystemPromptExtraction() SK-SYS — "reveal system prompt", "repeat words above"
├── scanArgumentInjection() SK-ARG — $(), ${}, backticks, shell metachar chains, GTFOBINS flags
├── scanCrossToolChaining() SK-XTL — Read-then-exfiltrate, multi-step invocations, tool references
├── scanExcessivePermissions() SK-PRM — "unrestricted access", "bypass security", "no restrictions"
└── scanSuspiciousStructure() SK-STR — Content >10K chars, imperative instruction density >30%
│
▼
SkillScanResult
├── overallSeverity: ThreatLevel (max across all findings)
├── findings: SkillScanFinding[] (sorted CRITICAL → LOW)
├── summary: { critical, high, medium, low }
├── scannedAt, contentLength, scanDurationMs
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.
- 1mo ago First seen · 255 lines · 0 tokens per session scan F 67e265de8c3d
skill-scanning is an agent published in the GitHub repository DinoMorphica/safeclaw (22 stars, last pushed 8mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 4,395 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
report-writer
Bug bounty report writer. Generates professional H1/Bugcrowd/Intigriti/Immunefi reports. Impact-first writing, human tone, no theoretical language, CVSS 3.1 calculation included. Use after a finding has passed the 7-Question Gate and 4 validation gates. Never generates reports with "could potentially" language.
web3-auditor
Smart contract security auditor. Checks 10 bug classes in order of frequency (accounting desync 28%, access control 19%, incomplete path 17%, off-by-one 22% of Highs, oracle errors, ERC4626 attacks, reentrancy, flash loan oracle manipulation, signature replay, proxy/upgrade issues). Applies pre-dive kill signals…
recon-agent
Subdomain enumeration and live host discovery specialist. Runs Chaos API (ProjectDiscovery), subfinder, assetfinder, dnsx, httpx, katana, waybackurls, gau, and nuclei. Produces prioritized attack surface for a target. Use when starting recon on a new target domain.
chain-builder
Exploit chain builder. Given bug A, identifies B and C candidates to chain for higher severity and payout. Knows all major chain patterns — IDOR→auth bypass, SSRF→cloud metadata, XSS→ATO, open redirect→OAuth theft, S3→bundle→secret→OAuth, prompt injection→IDOR, subdomain takeover→OAuth redirect. Use when you have a…
validator
Finding validator. Runs the 7-Question Gate and 4-gate checklist on a described finding. Kills weak/theoretical findings fast before report writing. Prevents N/A submissions. Use before writing any report — describe the finding and this agent decides PASS, KILL, or DOWNGRADE with explanation.
渗透测试专员
An authorized penetration-testing agent for checking whether identified security weaknesses can be verified and used within a defined scope. Penetration testing is a controlled security assessment of a system.