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 s0ld13rr/pentestcode --skill vuln-assessgit clone --depth 1 https://github.com/s0ld13rr/pentestcodeWrote 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/s0ld13rr/pentestcode/vuln-assess)<a href="https://agentmods.dev/skills/s0ld13rr/pentestcode/vuln-assess"><img src="https://agentmods.dev/badge/skills/s0ld13rr/pentestcode/vuln-assess/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/s0ld13rr/pentestcode/vuln-assess"><img src="https://agentmods.dev/badge/skills/s0ld13rr/pentestcode/vuln-assess.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.00041 | $0.00538 |
| Opus 5.5 | $0.00016 | $0.00215 |
| Sonnet 5.5 | $0.00008 | $0.00108 |
| Haiku 4.5 | $0.00004 | $0.00054 |
Grade A, and why
vuln-assess-phase 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 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.
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.
What it actually says
Vulnerability Analysis — Scan, Verify, Score
Raw scanner output is 80% noise. This phase exists to VERIFY and PRIORITIZE, not to collect CVEs.
Automated scan
nuclei -u TARGET -severity critical,high -t ~/nuclei-templates/ -json -o nuclei.json
# authenticated nuclei when creds exist (10x coverage): -H 'Authorization: Bearer ...'
nikto -h https://target -Format json -o nikto.json # web misconfig baseline
- Authenticated scans > anonymous scans everywhere (Nessus/OpenVAS/Nuclei): login first, then scan.
- Parse into state with
nuclei_parse— dedupes and links vulns to hosts automatically.
Manual verification — MANDATORY before marking confirmed
Every scanner hit gets one of:
- Confirmed — reproduce manually, capture request/response as evidence
- False positive — record WHY (version patched, control in place); don't just delete
- Needs auth/context — defer to exploitation phase with the required creds attached
Classic FP sources: version banners lying (custom builds), WAF returning 200 for everything, template regex matching error pages.
CVSS scoring for prioritization
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 9.8 Critical
- Prioritize by: exploitability (AV:N + no auth + public PoC) × impact, not by CVSS alone.
- A 9.8 unauthenticated RCE beats a 9.1 post-auth one. An exposure with active in-the-wild exploitation (CISA KEV) beats both.
Correlation across findings
- 3 "medium" findings chaining to RCE = one "critical" attack path (
attack_path_suggest). - Info leaks (versions, stack traces, .git exposure) feed other findings — chain them, don't score them isolated.
Gotchas
- Never report a vuln you could not reproduce — the retest will destroy client trust.
- Keep scanner timing/rate in evidence: a DoS-looking outage during scan ruins the report.
- Store evidence (PoC requests, screenshots) at confirmation time, not at reporting time.
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 First seen · 41 lines · 41 tokens per session scan A 060b39eed563
vuln-assess-phase is a skill published in the GitHub repository s0ld13rr/pentestcode (883 stars, last pushed yesterday), licensed MIT. It adds 41 tokens to every session and 538 once invoked, about $0.0002 per session on Opus 5.5. 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-10-24.
Other skills, from other repositories
oracle
Oracle second-model review: bundle prompts/files, debug, refactor, design.
sentry-app-setup
Create and configure a Sentry internal integration so the assistant can manage issues, alerts, and releases under its own identity.
rust-tracing
Add or change Rust diagnostic tracing in litellm-rust, including route spans, subscriber layers, and Python logger delivery.
nodetool-troubleshooter
Diagnose a failing NodeTool run on any surface: workflows, mini apps, timelines, sketches, scripts, storyboards, stuck media generations, provider keys and server auth errors.
cubepi-trace
Use when debugging a cubepi/cubebox agent run — a missing final reply, a tool that misbehaved, a 4xx from the model, wrong token/cache numbers, or "why did the agent do that?". Reads the JSONL traces cubepi writes per run via the cubepi trace CLI (ls / view / follow / stats) to inspect the span tree, errors, tool…
node-connect
Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale…