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 spawnpoint-inc/spawnpoint-plugin --skill security-auditgit clone --depth 1 https://github.com/spawnpoint-inc/spawnpoint-pluginWrote 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/spawnpoint-inc/spawnpoint-plugin/security-audit)<a href="https://agentmods.dev/skills/spawnpoint-inc/spawnpoint-plugin/security-audit"><img src="https://agentmods.dev/badge/skills/spawnpoint-inc/spawnpoint-plugin/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/spawnpoint-inc/spawnpoint-plugin/security-audit"><img src="https://agentmods.dev/badge/skills/spawnpoint-inc/spawnpoint-plugin/security-audit.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.00101 | $0.02041 |
| Opus 5.5 | $0.00040 | $0.00816 |
| Sonnet 5.5 | $0.00020 | $0.00408 |
| Haiku 4.5 | $0.00010 | $0.00204 |
Grade A, and why
security-audit 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 11d 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 — 132 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Security audit before a spawnpoint deploy
Run it on the app directory (the argument, or the current directory) once the files
are final, before create_upload or deploy_project. Install nothing. End with one
table and a verdict.
The rules
- block: no
deploy_projectuntil it is fixed or, where allowed, accepted. warn: fix it unless the user accepts. note: mention once. - Only two findings can never be accepted: credential content and a private-key file. The server refuses those bundles anyway.
- Fix what is safe and say so: a port read from the environment, the bind
address, a debug flag, a secret moved to
env, an exclusion, and a token check on an admin, debug, or owner-only upload or presign route (generate the token, pass it asenv, and give it to the owner once in your reply). Then deploy. Ask first only before changing what the app's own users get: narrowing CORS, removing a route, or making a route they use private. - Never print a secret you found: file, line, and kind only.
- On a redeploy in the same session, rerun only if files changed. An acceptance holds for the session.
1. What ships
- [block] A credential-shaped string in any text file: the seven patterns in
patterns.md, with its one-line grep. Fix: move the value into
envondeploy_project(orset_env), read it from the environment, and tell the user to rotate the key: it is in this transcript now. A spawnpoint bucket's key (the project'sS3_*values) is rotated withrotate_storage_key. - [block] A credential file by name (the list in patterns.md). Fix: exclude it.
.npmrcmatters twice: it ships, andnpm cion the machine reads it. - [strip]
.env,.env.*,.git/: exclude them. Name the variables.envheld (never the values) and offer to pass each one asenv. - [exclude]
node_modules/,.venv/,venv/,__pycache__/,.next/,dist/andbuild/when a build script exists,.DS_Store,*.log. These become thetar --excludeflags forcreate_upload's command. - [warn] Local databases and dumps (
*.sqlite,*.sqlite3,*.db,*.sql,*.dump,*.bak): ask once whether a seeded demo is intended. - [warn] Over about 15 MiB before compression: images first.
What ships with it
1 file 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.
- 11d ago Changed · +9 lines · +11 tokens per session 773b74c4a604
- 14d ago First seen · 123 lines · 90 tokens per session scan A 50fb314ed1a0
security-audit is a skill published in the GitHub repository spawnpoint-inc/spawnpoint-plugin (0 stars, last pushed yesterday), licensed MIT. It adds 101 tokens to every session and 2,041 once invoked, about $0.0004 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-05.
Other skills, from other repositories
pinme-uniwebpay
Use when generating, modifying, or reviewing PinMe Worker (Cloudflare Worker TypeScript) code that accepts payments through UniwebPay — payment links, products/prices, checkout sessions, payment status reads, refunds, subscriptions, or handling UniwebPay webhooks with @uniwebpay/sdk in a PinMe project.
pinme-r2
Use when a PinMe Cloudflare Worker needs R2 object storage, including secure file or image upload, streaming download, metadata lookup, deletion, listing, Range requests, or R2+D1 coordination. Guides AI to use PinMe's automatically injected env.R2 binding without R2 credentials or manual Wrangler configuration.
pinme-auth
Use when a PinMe project (Worker TypeScript) needs to integrate user authentication — creating email/password users, verifying idtokens, querying user info, or listing users via Identity Platform auth proxy APIs.
pinme-llm
Use this skill when a PinMe project (Worker TypeScript) needs to call OpenRouter-backed LLM APIs, including models, chat/completions, streaming, or OpenRouter web search. Guides AI to generate correct Worker TS code.
pinme-email
Use this skill when a PinMe project (Worker TypeScript) needs to integrate email sending (sendemail). Guides AI to generate correct Worker TS code.
pinme-share
A tool for packaging a result as a static web page and publishing it through PinMe. A static page is a self-contained page that does not need a server to generate its content.