confirmed-security-review

confirmed-security-review is a skill for Codex from OutlineDriven/outline-driven-development. It costs 47 tokens per session (1,481 once invoked), scanned A, original, Apache-2.0.

A read-only security review that reports only high-confidence vulnerabilities confirmed to involve attacker-controlled input. It covers issues such as injection, cross-site scripting, authentication, authorization, and cryptography.

In plain words
What is it for?
Use it to review a supplied file, code change, or component for confirmed security vulnerabilities.
Why use it?
It filters out speculative warnings so developers can focus on security problems supported by the code and its data flow.

Skill for Codex

Written for Codex: agents/openai.yaml present.

Good fit Use it to review a supplied file, code change, or component for confirmed security vulnerabilities.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/outlinedriven/outline-driven-development/confirmed-security-review
Install

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.

Any agent
npx skills add OutlineDriven/outline-driven-development --skill confirmed-security-review
Clone the repo
git clone --depth 1 https://github.com/OutlineDriven/outline-driven-development

Made for: Codex.

Wrote 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.

agentmods badge for confirmed-security-review

README.md
[![agentmods](https://agentmods.dev/badge/skills/outlinedriven/outline-driven-development/confirmed-security-review/github.svg)](https://agentmods.dev/skills/outlinedriven/outline-driven-development/confirmed-security-review)
Your own site
<a href="https://agentmods.dev/skills/outlinedriven/outline-driven-development/confirmed-security-review"><img src="https://agentmods.dev/badge/skills/outlinedriven/outline-driven-development/confirmed-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.

agentmods 80×15 button for confirmed-security-review

Your own site · 80×15
<a href="https://agentmods.dev/skills/outlinedriven/outline-driven-development/confirmed-security-review"><img src="https://agentmods.dev/badge/skills/outlinedriven/outline-driven-development/confirmed-security-review.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 47 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,481 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 1 finding, up to high

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • high Output Handling · line 33
    Model output is used without validation or sanitization. Unvalidated output injected into downstream contexts (SQL, shell, HTML) enables injection attacks and arbitrary code execution.
    Fix: Validate and sanitize all model output before using it in downstream contexts. Use parameterized queries for SQL, shell quoting for commands, and HTML encoding for web output.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00047 $0.01481
Opus 5 $0.00023 $0.00740
Sonnet 5 $0.00009 $0.00296
Haiku 4.5 $0.00005 $0.00148

Measured 2d ago against content hash 9045e2c83174, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

confirmed-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 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.

Runs shell commandslowCapability

Expected in a hook, worth knowing in a rule or an instructions file.

9. Always flag unconditionally when present: `eval`/`exec` on user input, unsafe deserialization (`pickle.loads`, `yaml.load` without `safe_load`, PHP `unserialize`, Java `ObjectInputStream`), `shell=True` with user inpu
.devin/skills/confirmed-security-review/SKILL.md · 48 lines

How it starts

The opening of the file, as written. The whole thing — 48 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Confirmed security review

Contract

Field Bound contract
Trigger User asks for a security review, vulnerability audit, OWASP review, or review of injection, XSS, authentication, authorization, or cryptography issues.
Authority Read-only. No file, VCS, credential, paid, published, deployed, or remote mutation. Reports findings in chat only.
Side effect Chat output reporting high-confidence security vulnerabilities.
Done Report with HIGH-confidence findings only, each with attacker-controlled input confirmed, or a cleared report stating no high-confidence vulnerabilities were identified.

Inputs

The user must supply the file, diff, or code component to review. A specific concern area (injection, XSS, auth, crypto, etc.) is optional and narrows the review focus. The entire reachable codebase is in research scope to establish confidence; reporting scope is limited to the supplied target.

Procedure

  1. Bound scope: report only on the specific file, diff, or code the user supplied. Use the entire reachable codebase as research scope to build confidence before flagging anything. Done when: reporting scope is bounded to the supplied target and research scope is the reachable codebase.
  2. Detect context from the supplied target: code type (API routes, frontend/templates, file handling, crypto/secrets, serialization, external requests, business workflows, config/headers/CORS, CI/CD dependencies, error handling, logging) and language/framework from file extensions and imports. Done when: code type and language/framework are detected.
  3. For each potential issue, research the data flow before flagging: where the input actually comes from; whether it is configured at deployment (server-controlled) or arrives from user input (attacker-controlled); whether validation, sanitization, or allowlisting exists upstream; and what framework protections apply. Done when: the data flow is traced for each candidate before flagging.
  4. Classify confidence for each candidate:
    • HIGH: vulnerable pattern plus attacker-controlled input confirmed; report with severity.
    • MEDIUM: vulnerable pattern, input source unclear, note as "Needs verification", do not report as a finding.
    • LOW: theoretical, best-practice, or defense-in-depth; do not report. Done when: every candidate is classified HIGH, MEDIUM, or LOW.
  5. Do not flag: test files (unless explicitly reviewing test security), dead or commented code, documentation strings, patterns using constants or server-controlled configuration, and code paths that require prior authentication to reach (note the auth requirement instead of flagging). Done when: every non-flaggable pattern is excluded with its reason.
  6. Treat as server-controlled and safe unless user input reaches them: framework settings (django.conf.settings.*), environment variables (os.environ), config files, framework constants, and hardcoded internal values. A URL, path, or redirect target sourced from settings or config is not an SSRF, path-traversal, or open-redirect finding. Done when: every server-controlled pattern is classified safe.
  7. Do not flag framework-mitigated patterns unless the unsafe variant is present: auto-escaped template output (Django {{ variable }}, React {variable}, Vue {{ variable }}) and ORM parameterized queries (cursor.execute("...%s", (input,)), Model.objects.filter(id=input)) are safe. Flag only |safe, {% autoescape off %}, mark_safe(user_input), dangerouslySetInnerHTML={{__html: userInput}}, v-html="userInput", .raw(), .extra(), or RawSQL() with string interpolation or user input. Done when: every framework-mitigated pattern is checked for its unsafe variant.
  8. Confirm exploitability for each candidate before reporting. Attacker-controlled sources include request params/body/headers, unsigned cookies, URL path segments, file upload content and names, database content from other users, and WebSocket messages. Confirm the framework does not mitigate it and that no upstream validation or sanitization library (DOMPurify, bleach, etc.) neutralizes the input. Done when: exploitability is confirmed or refuted for each candidate.
  9. Always flag unconditionally when present: eval/exec on user input, unsafe deserialization (pickle.loads, yaml.load without safe_load, PHP unserialize, Java ObjectInputStream), shell=True with user input, child_process.exec with user input, innerHTML/dangerouslySetInnerHTML/v-html with user input, SQL built by string interpolation or template literals with user input, os.system with user input, and hardcoded secrets, API keys, AWS secret keys, or private keys. Done when: every unconditional-flag pattern is checked and flagged if present.
  10. Assign severity to each HIGH-confidence finding: Critical (direct exploit, severe impact, no auth required: RCE, SQL injection to data, auth bypass, hardcoded secrets); High (exploitable with conditions, significant impact: stored XSS, SSRF to metadata, IDOR to sensitive data); Medium (specific conditions required, moderate impact: reflected XSS, CSRF on state-changing actions, path traversal); Low (defense-in-depth, minimal direct impact: missing headers, verbose errors, weak algorithms in non-critical context). Done when: every HIGH-confidence finding has an assigned severity.
  11. Report HIGH-confidence findings only. Skip theoretical issues and anything that cannot be confirmed exploitable after research. Done when: only HIGH-confidence findings are reported and all others are excluded.

Read the full file on GitHub · 48 lines

Files

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.

Changes

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.

  1. 2d ago Changed · -11 tokens per session 9045e2c83174
  2. 4d ago First seen · 48 lines · 58 tokens per session scan A 6f0f3e2b9150

Subscribe to this mod's changes

confirmed-security-review is a skill published in the GitHub repository OutlineDriven/outline-driven-development (52 stars, last pushed 2d ago), licensed Apache-2.0. It adds 47 tokens to every session and 1,481 once invoked, about $0.0002 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.

Related

Other skills, from other repositories

audit-project

Run an iterative multi-agent code audit until critical and high findings are resolved. Use when the user says "audit my code", "find all the bugs", "deep code audit", "iterative review", or "review until clean".

OutlineDriven/odin-claude-plugin · 50 tokens

duet

Use when the user invokes /duet, says "pair with me", or faces aesthetic, architectural, or irreversible decisions.

OutlineDriven/odin-claude-plugin · 28 tokens

goal-prompt-drafting

Use when asked to draft copy-ready /goal objectives for long-running agents; returns one normalized one-line objective with measurable end state, grounded proof, easy-out invariants, a stop clause, and a Missing list. Not for source or remote-system changes.

OutlineDriven/odin-claude-plugin · 57 tokens

handoff-prompt

Use when the user asks for a handoff, delegation, or clipboard-ready prompt for another agent: a standalone path-free prompt copied to the clipboard, confirmed by title. Not for session-snapshot briefs — use handoff; never remote, credential, publish, deploy, or irreversible.

OutlineDriven/odin-claude-plugin · 62 tokens

publish-branch

Use when asked to publish the checked-out branch: commit and push it on whatever branch it is, the default branch included. Not for creating branches, PRs, force pushes, or pushing any other branch; when the request excludes the default branch, use commit-push-current.

OutlineDriven/odin-claude-plugin · 60 tokens

drill

Use when a concept needs practising rather than explaining: run a scaffolded exercise from worked example to independent problem, quiz the learner, run spaced recall over what they cleared, or probe for the gaps blocking what they want next. For explanation, use explain-concept; for an end-to-end build, use capstone.

OutlineDriven/odin-claude-plugin · 67 tokens