Language: English · 한국어
prismlooks from 5 angles.prism-devilputs on the black hat and tries to break it.
A Claude Code skill that runs a single agent in deliberately hostile, paranoid mode to find vulnerabilities, attack surface, and failure modes. Unlike prism (which is balanced), prism-devil is deliberately one-sided — it does not praise, it does not balance, it tries to break the code on paper.
Critically, it auto-loads your project's security checklist if one exists (docs/security-checklist.md and similar paths). Each finding is cross-referenced to checklist items, so the report is grounded in your threat model, not generic OWASP boilerplate.
- Code touching auth, payments, PII, credentials, or anything money-adjacent
- File parsers handling untrusted input (xlsx, pdf, image, EML)
- Pre-production gates — pair with
/prism --verifyafterward - Whenever you suspect you're too close to your own code to see the holes
- Periodic security audit on infrastructure code
- General code review —
prism(broad, balanced) is the right tool - Markdown / spec review —
triadis the right tool - Pure performance or design questions — out of scope here
- No sugarcoating — the agent is told explicitly to skip praise and balance
- Scenario required — every finding must include a step-by-step attack/failure trigger, not just "this might be risky"
- Strict severity rubric — CRITICAL is reserved for actual remote exploit / data loss / auth bypass; the agent can't dilute severity to seem productive
- Attack chain detection — when 2+ findings compose into a worse outcome (e.g. ID leak + missing auth check = account takeover), it names the chain explicitly
- Checklist cross-reference — every finding maps to a project checklist item or is tagged
[not-in-checklist](so the checklist itself can grow)
- Trust boundaries — input crossing untrusted → trusted
- Authentication & authorization — session, token, privilege, race
- Concurrency weaponization — TOCTOU, double-submit, lost update
- Data integrity attacks — FK cascade abuse, constraint bypass, audit tamper
- Failure mode exploitation — crash-induced state, retry amplification, replay
- Secrets & disclosure — log leakage, timing side channels, stack traces
- Dependency & supply chain — pinning gaps, untrusted file parsing, deserialization
- Self-evaluation bias — self-grading metrics, Goodhart, false success signals
- False confidence — happy-path-only tests, silent except, log-and-continue
- Platform / environment — Windows vs POSIX, timezone, locale parsers
[ID] — severity: CRITICAL | HIGH | MEDIUM | LOW — class: <attack_class>
Scenario: <concrete step-by-step attack or failure trigger>
Why it lands: <which line / missing check / flawed assumption>
Impact: <what the attacker gains or what breaks>
Fix: <specific, minimum-viable mitigation — not "add validation">
Confidence: high | med | low
Checklist: <item number/tag, or [not-in-checklist], or [N/A: skipped]>
Plus an Attack Chain Section when findings compose, and a Checklist Coverage Section showing which [ACTIVE] items were exercised vs which [N/A] items might have been re-activated by recent changes.
PRISM-DEVIL — src/services/auth.py — 7 findings (2C / 3H / 1M / 1L) — chains: 1 — checklist: 12/77 active items mapped, 2 new gaps
If your project has a security checklist with tagged items like:
- [ACTIVE] #14 — All session cookies set Secure + HttpOnly + SameSite
- [N/A: no payments] #41 — Stripe webhook signature verification
- [FUTURE: when AWS migration lands] #59 — IAM least-privilege per serviceprism-devil will:
- Map findings to specific item numbers
- Flag if newly-added code re-activates an
[N/A]item (e.g. you added Stripe → all[N/A: no payments]items are now suspect) - List items it tried to exercise but found clean (
verified-clean) - Tag findings outside the checklist as
[not-in-checklist]— these are signals to grow the checklist itself
If no checklist exists, it falls back to generic attack surfaces. Never fabricated.
prism-devil is allowed to cry wolf — it has no verifier. The recommended high-confidence flow for security-sensitive code:
/prism-devil src/security/auth.py # paranoid pass — generates the worst-case list
/prism src/security/auth.py # 5-agent verified pass — filters false positives
The intersection is high-signal. prism-devil-only findings are still worth reading but treat them as suspicions, not verdicts.
- prism — broad 5-agent review with verifier (parent tool)
- mangchi — iterative cross-model file refinement with Codex CLI
- triad — 3-perspective deliberation for markdown
Drop the skill into your Claude Code skills directory:
~/.claude/skills/prism-devil/SKILL.md
Or wire as a slash command via commands/prism-devil.md in .claude/commands/ (per project) or ~/.claude/commands/ (global).
Minwoo Park