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 medy-gribkov/arcana --skill security-reviewgit clone --depth 1 https://github.com/medy-gribkov/arcanaWrote 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/medy-gribkov/arcana/security-review)<a href="https://agentmods.dev/skills/medy-gribkov/arcana/security-review"><img src="https://agentmods.dev/badge/skills/medy-gribkov/arcana/security-review/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/medy-gribkov/arcana/security-review"><img src="https://agentmods.dev/badge/skills/medy-gribkov/arcana/security-review.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.00079 | $0.02790 |
| Opus 5 | $0.00039 | $0.01395 |
| Sonnet 5 | $0.00016 | $0.00558 |
| Haiku 4.5 | $0.00008 | $0.00279 |
Grade A, and why
security-review 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 8d 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.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
subprocess.run(f"convert {filename} output.png", shell=True) How it starts
The opening of the file, as written. The whole thing — 344 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a security engineer specializing in application security, code review, and vulnerability prevention across web, API, and systems code.
Use this skill when
- Reviewing code for security vulnerabilities
- Hardening authentication, authorization, or input handling
- Setting up security headers, CORS, CSRF protection
- Configuring dependency scanning or secrets management
- Designing rate limiting or abuse prevention
OWASP Top 10 Quick Reference
| # | Vulnerability | Primary Defense |
|---|---|---|
| A01 | Broken Access Control | Deny by default, server-side checks on every request |
| A02 | Cryptographic Failures | TLS everywhere, bcrypt/argon2 for passwords, no secrets in code |
| A03 | Injection | Parameterized queries, context-aware output encoding |
| A04 | Insecure Design | Threat modeling, secure defaults, least privilege |
| A05 | Security Misconfiguration | Minimal installs, disable defaults, automate config |
| A06 | Vulnerable Components | SCA scanning (dependabot/snyk), pin versions, update regularly |
| A07 | Auth Failures | MFA, credential stuffing protection, secure session management |
| A08 | Data Integrity Failures | Verify signatures, use SRI, secure CI/CD |
| A09 | Logging Failures | Log security events, don't log secrets, monitor alerts |
| A10 | SSRF | Allowlist outbound hosts, validate/sanitize URLs |
Injection Prevention
SQL Injection
# BAD: string concatenation
cursor.execute(f"SELECT * FROM users WHERE id = {user_id}")
# GOOD: parameterized query
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
# GOOD: ORM (SQLAlchemy)
user = session.query(User).filter(User.id == user_id).first()
// BAD: template literal in query
db.query(`SELECT * FROM users WHERE email = '${email}'`);
// GOOD: parameterized
db.query("SELECT * FROM users WHERE email = $1", [email]);
// BAD: fmt.Sprintf in query
db.Query(fmt.Sprintf("SELECT * FROM users WHERE id = %d", id))
// GOOD: parameterized
db.Query("SELECT * FROM users WHERE id = $1", id)
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.
- 8d ago First seen · 344 lines · 79 tokens per session scan A 0ece14a98857
security-review is a skill published in the GitHub repository medy-gribkov/arcana (1 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 79 tokens to every session and 2,790 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
code-reviewer
Perform thorough code reviews — bugs, security issues, performance bottlenecks, style violations, and architectural concerns.
security-auditor
Audit code for security vulnerabilities — OWASP Top 10, injection flaws, auth issues, secrets exposure, and dependency risks.
clean-code
Code quality: meaningful names, SRP, DRY, small functions, guard clauses, refactoring. Triggers: clean code, naming, code smell, SRP, DRY, long function, god class, dead code.
analyze
Analyzes code quality, complexity, patterns across codebase. Triggers: quality report, hotspot scan, code analysis, architecture signal.
pr-review
AUTHOR SKILL (internal to microsoft/aspire-skills). Reviews pull requests into this repo for problems only — bugs, regressions, missing eval coverage, frontmatter or routing damage, plugin-manifest drift, hook safety, and other concrete issues. Drives a six-step workflow: identify the PR, ensure the branch is…
prompt-caching-patterns
Anthropic API prompt caching: TTL, breakpoints, stacking, invalidation, hit rate. Triggers: prompt caching, cachecontrol, cache breakpoint, cache TTL, hit rate.