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 agentmods add skills/shieldnet-360/secure-vibe/database-securitynpx skills add ShieldNet-360/secure-vibe --skill database-securitygit clone --depth 1 https://github.com/ShieldNet-360/secure-vibeWhat 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 | $0.00058 | $0.01985 |
| Opus 5 | $0.00029 | $0.00992 |
| Sonnet 5 | $0.00012 | $0.00397 |
| Haiku 4.5 | $0.00006 | $0.00198 |
Grade A, and why
database-security 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 2d 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 — 146 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Database Security
Rules (for AI agents)
ALWAYS
- Bind every untrusted data value through the driver or ORM parameter API. Never place
it into SQL with language-level interpolation or concatenation —
+, f-strings,%formatting,.format(), JavaScript template interpolation. Driver placeholders (%s,?,$1,:name,@name) are the binding mechanism, not string formatting; confusing the two is how this rule is most often misread. The same applies to values read back out of the database and used to build a later query: stored input is still input, and second-order injection is this bug with a delay. - Prefer the ORM's structured query-expression API over textual SQL. Where raw SQL is
genuinely needed, use that framework's documented parameter-binding mechanism and
never interpolate untrusted values into it.
references/orm-safe-query-examples.mdcarries the verified form per framework. - For SQL structure that cannot be a bind parameter — table and column identifiers, sort direction, sometimes the operator itself — map the external value to a fixed operator-controlled allowlist. Never copy an untrusted identifier or SQL fragment into the statement, escaped or not.
- Treat a NoSQL query as a structure, not a string. Build filters with the driver's
typed query objects, and coerce every request-supplied value to its expected scalar
type before it reaches a filter. A JSON body substituting
{"$ne": null}where a string was expected turns an equality check into a match-all — operator injection needs no quote to break out of. - Give each application its own database identity with the minimum grants it needs, and separate runtime privileges from migration privileges. The runtime identity must not receive schema-owner or DDL rights merely because migrations require them.
- For shared-table multi-tenancy, enforce tenant isolation at a deliberate security
boundary. Where database RLS is used: confirm the application role cannot bypass it
— a superuser, a
BYPASSRLSrole, and the table owner itself all bypass policies unless the table is set toFORCE ROW LEVEL SECURITY— test write policies as well as read, and bind the tenant context transaction-locally. A session-scoped tenant context that survives a connection's return to the pool serves tenant A's rows to tenant B. - Authenticate the database server, do not merely encrypt to it. Encryption without
certificate verification (
sslmode=require, MySQLsslMode=REQUIRED,TrustServerCertificate=True) stops passive capture but not a redirected connection. Where the client is what establishes trust, use a verifying mode — PostgreSQLverify-full, MySQL Connector/JVERIFY_IDENTITY, Microsoft.Data.SqlClient withTrustServerCertificate=False— against the deployment's trusted CA configuration. - Obtain database credentials from an operator-controlled secret-management mechanism;
prefer workload identity or short-lived dynamic credentials where the platform
supports them. A runtime-injected environment variable is an acceptable fallback,
not the target — it is readable through process inspection, crash dumps, and many
orchestrator APIs. Any static credential must support rotation and revocation. See
secret-detectionfor what counts as a committed credential.
What ships with it
5 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.
- 2d ago First seen · 146 lines · 58 tokens per session scan A f73ccdf9a75c
database-security is a skill published in the GitHub repository ShieldNet-360/secure-vibe (22 stars, last pushed 19d ago), licensed MIT. It adds 58 tokens to every session and 1,985 once invoked, about $0.0003 per session on Opus 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-08-30.
Other skills, from other repositories
claude-md-improver
Audit and improve CLAUDE.md files in repositories. Use when user asks to check, audit, update, improve, or fix CLAUDE.md files. Scans for all CLAUDE.md files, evaluates quality against templates, outputs quality report, then makes targeted updates. Also use when the user mentions "CLAUDE.md maintenance" or "project…
agent-platform-rag-engine-management
Manage and query Agent Platform RAG Engine Corpora and retrieve grounded contexts using the Google GenAI SDK. Use when listing RAG corpora or files, inspecting a corpus, retrieving contexts, or generating content grounded in a RAG corpus. Do not use for standard database queries (use SQL/Spanner skills), Google…
agent-platform-model-registry
Agent Platform Model Registry Management. Use when you need to upload, list, describe, update, or delete machine learning models (and their versions) in the Agent Platform Model Registry. Don't use for model training, model deployment to endpoints, or managing non-Agent Platform models.
twitter-reader
Read Twitter/X for financial research using opencli (read-only). Use this skill whenever the user wants to read their Twitter feed, search for financial tweets, view bookmarks, look up user profiles, or gather market sentiment from Twitter/X. Triggers include: "check my feed", "search Twitter for", "show my…
quick-recap
Use when adding or following the red/yellow/green final status block convention for agent responses, especially by installing managed AGENTS.md or CLAUDE.md instructions.
docx-comment-reply
Reply to comments (批注) in Word .docx/.doc files: extract comment context, draft replies, write threaded replies back, and validate OOXML.