Source profileQuality 96/100

event4u-app/agent-config/src/skills/judge-security-auditor/SKILL.md

judge-security-auditor

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.

Source repository stars
7
Declared platforms
0
Static risk flags
1
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

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…

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

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/judge-security-auditor"
Safe inspection promptEditorial

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

What the source asks the agent to do

  1. 01

    Procedure

    Read the full diff and identify every file, handler, query, template, and I/O call it touches. Then, for each changed hunk, analyze:

    Source — where does the data enter (request body, query, header,Sink — where does it leave the process (DB query, HTTP call,Trust level — is the source authenticated, authorized, validated,
  2. 02

    When to use

    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…

    A diff touches an authenticated endpoint, user input, or stored dataA diff constructs a query, HTTP call, shell command, file path, or/review-changes dispatches its "security" slice to this skill
  3. 03

    1. Inspect the diff and map trust boundaries

    Read the full diff and identify every file, handler, query, template, and I/O call it touches. Then, for each changed hunk, analyze:

    Source — where does the data enter (request body, query, header,Sink — where does it leave the process (DB query, HTTP call,Trust level — is the source authenticated, authorized, validated,
  4. 04

    2. Run the threat checklist

    Review the “2. Run the threat checklist” section in the pinned source before continuing.

    Review and apply the “2. Run the threat checklist” source section.
  5. 05

    3. Cross-check policy

    Is there a central auth/policy layer this change should flow

    Is there a central auth/policy layer this change should flowDoes this duplicate a protection that already exists elsewhere, or- Is there a central auth/policy layer this change should flow through, and does it? - Does this duplicate a protection that already exists elsewhere, or bypass one?

Permission review

Static risk signals and limitations

Reads files

low · line 31

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

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score96/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars7SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
event4u-app/agent-config
Skill path
src/skills/judge-security-auditor/SKILL.md
Commit
0adf49a8ae84b0ff6e2de8759eea43257e020eff
License
MIT
Collected
2026-07-28
Default branch
main
View the original SKILL.md

judge-security-auditor

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.

When to use

  • 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 abuse this?", or mentions a pen-test finding

Do NOT use when:

  • The diff is pure formatting, doc, or test fixture with no secrets
  • The concern is a logic bug unrelated to trust boundaries — route to judge-bug-hunter
  • The concern is test coverage — route to judge-test-coverage

Procedure

1. Inspect the diff and map trust boundaries

Read the full diff and identify every file, handler, query, template, and I/O call it touches. Then, for each changed hunk, analyze:

  • Source — where does the data enter (request body, query, header, env var, external API, file upload)?
  • Sink — where does it leave the process (DB query, HTTP call, filesystem, shell, rendered output, log line)?
  • Trust level — is the source authenticated, authorized, validated, sanitized? Is the sink safe for this trust level?

A change that moves data across a boundary without validation or escaping is a finding.

2. Run the threat checklist

ClassWhat to look for
AuthN/AuthZNew route, handler, or job with no identity check or no ownership/role check
InjectionString-concatenated SQL/NoSQL/LDAP/shell/path; template rendering of untrusted input
SecretsAPI keys, tokens, passwords hardcoded; secret written to log, error message, or response
Unsafe deserializationPickle/YAML-load/unserialize on external input; deep object graphs from untrusted source
SSRFOutbound HTTP where the URL/host comes from the request
XSS / template injectionUnescaped output in HTML/markup; bypassed auto-escape; v-html-style primitives
Mass assignmentWhole-request-body → model/ORM without an allowlist
CSRF / replayState-changing endpoint missing token, nonce, or idempotency key
Information disclosureStack trace, internal path, or user enumeration in error response
Cryptography misuseWeak algorithm (MD5/SHA1 for passwords, ECB), static IV, missing auth-tag

3. Cross-check policy

  • Is there a central auth/policy layer this change should flow through, and does it?
  • Does this duplicate a protection that already exists elsewhere, or bypass one?

4. Verdict

VerdictWhen to return it
applyNo security issues; trust boundaries intact
reviseSpecific findings with file:line and exploit path
rejectDesign-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.

Validation

Before finalizing your verdict, confirm:

  1. Every finding cites a specific file:line and names the attacker
  2. Every finding describes the concrete exploit path, not a generic warning
  3. You have NOT commented on correctness, style, or tests
  4. You have considered whether the protection exists upstream or downstream

Output format

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):

  1. Judge and Model — skill name and resolved judge model
  2. Target — one-line diff summary naming the authenticated/public surface
  3. Verdictapply, revise, or reject
  4. Issues — every finding names the attacker, the exploit path, and the missing protection; omit only when verdict is apply

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

Gotcha

  • Generic warnings with no exploit path — "SQL could be injected here" without showing the unescaped sink is noise. Show the path.
  • Flagging safe primitives — parameterized queries, framework escape helpers, and typed ORM bindings are not findings. Verify before flagging.
  • Missing the upstream protection — a route may be protected by a middleware or policy declared elsewhere; grep before reporting.
  • Scope creep into correctness — a race condition in a lock is a correctness bug, not a security bug, unless the race itself has a trust implication.
  • Guessing an attack surface instead of diagnosing it — do not report a finding without a concrete exploit path. Targeted inspection of the sink and its callers beats speculative threat models.

Do NOT

  • NEVER return apply without walking every trust boundary in the diff
  • NEVER flag style, naming, or performance
  • NEVER invent threat actors with unrealistic capabilities
  • NEVER silently fall back to a different model than subagents.judge_model
  • NEVER report a finding without naming the concrete exploit path

References