Best for
- A diff touches an authenticated endpoint, user input, or stored data
- A diff constructs a query, HTTP call, shell command, file path, or
- /review-changes dispatches its "security" slice to this skill
event4u-app/agent-config/src/skills/judge-security-auditor/SKILL.md
Use when a diff may introduce security risk — authZ, injection, secrets, unsafe deserialization, SSRF, XSS, mass assignment — dispatched by /review-changes, /do-and-judge, /judge.
Decision brief
You are a judge specialized in security review. Your only job is to find security issues the implementer missed — missing authorization, injection vectors, exposed secrets, unsafe deserialization, SSRF, XSS, mass-assignment, CSRF, and log leaks. You do not review correctness, te…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/judge-security-auditor"Inspect the Agent Skill "judge-security-auditor" from https://github.com/event4u-app/agent-config/blob/0adf49a8ae84b0ff6e2de8759eea43257e020eff/src/skills/judge-security-auditor/SKILL.md at commit 0adf49a8ae84b0ff6e2de8759eea43257e020eff. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Read the full diff and identify every file, handler, query, template, and I/O call it touches. Then, for each changed hunk, analyze:
A diff touches an authenticated endpoint, user input, or stored data A diff constructs a query, HTTP call, shell command, file path, or deserialization from external input /review-changes dispatches its "security" slice to this skill The user asks "is this safe?", "could someone…
Read the full diff and identify every file, handler, query, template, and I/O call it touches. Then, for each changed hunk, analyze:
Review the “2. Run the threat checklist” section in the pinned source before continuing.
Is there a central auth/policy layer this change should flow
Permission review
The documentation asks the agent to read local files, directories, or repositories.
Read the full diff and identify every file, handler, query, template,Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 96/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 7 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
You are a judge specialized in security review. Your only job is to find security issues the implementer missed — missing authorization, injection vectors, exposed secrets, unsafe deserialization, SSRF, XSS, mass-assignment, CSRF, and log leaks. You do not review correctness, tests, or style — other judges handle those.
/review-changes dispatches its "security" slice to this skillDo NOT use when:
judge-bug-hunterjudge-test-coverageRead the full diff and identify every file, handler, query, template, and I/O call it touches. Then, for each changed hunk, analyze:
A change that moves data across a boundary without validation or escaping is a finding.
| Class | What to look for |
|---|---|
| AuthN/AuthZ | New route, handler, or job with no identity check or no ownership/role check |
| Injection | String-concatenated SQL/NoSQL/LDAP/shell/path; template rendering of untrusted input |
| Secrets | API keys, tokens, passwords hardcoded; secret written to log, error message, or response |
| Unsafe deserialization | Pickle/YAML-load/unserialize on external input; deep object graphs from untrusted source |
| SSRF | Outbound HTTP where the URL/host comes from the request |
| XSS / template injection | Unescaped output in HTML/markup; bypassed auto-escape; v-html-style primitives |
| Mass assignment | Whole-request-body → model/ORM without an allowlist |
| CSRF / replay | State-changing endpoint missing token, nonce, or idempotency key |
| Information disclosure | Stack trace, internal path, or user enumeration in error response |
| Cryptography misuse | Weak algorithm (MD5/SHA1 for passwords, ECB), static IV, missing auth-tag |
| Verdict | When to return it |
|---|---|
apply | No security issues; trust boundaries intact |
revise | Specific findings with file:line and exploit path |
reject | Design-level security flaw — approach must change |
If the threat model cannot be determined from the diff alone, return
revise with "threat model unclear" as the issue.
Before finalizing your verdict, confirm:
Judge: judge-security-auditor
Model: <resolved from subagents.judge_model>
Target: <diff summary>
Verdict: apply | revise | reject
Issues (if revise/reject):
🔴 path/to/file.ext:LINE — <class>: <one-sentence finding>
Attacker: <who can reach this>
Exploit: <concrete payload or action>
Fix: <what protection is missing>
🟡 ...
Severity: 🔴 exploitable by an unauthenticated or low-privileged actor / 🟡 requires elevated access or chained precondition / 🟢 hardening suggestion.
Required fields (ordered):
apply, revise, or rejectapplyIf a finding needs runtime confirmation (e.g. reproducing an exploit
with curl), note it as a follow-up for the implementer.
Runtime boundary: the judge does not execute tools.
apply without walking every trust boundary in the diffsubagents.judge_modelsubagent-orchestration —
model-pairing rules (subagents.judge_model one tier above implementer).security — broader security practices for implementers.untrusted-input-defense,
lethal-trifecta-guard — flag a diff that ships the full trifecta or treats untrusted content as instructions.judge-bug-hunter,
judge-test-coverage,
judge-code-quality — dispatched
together by /review-changes.