{"slug": "i-pointed-my-ai-security-plugin-at-my-own-prod-app-it-refused-to-invent-a-bug", "title": "I pointed my AI security plugin at my own prod app – it refused to invent a bug", "summary": "Kenji Christopher's securitymaxxing plugin for Claude Code, which audits application security with commands that prove findings and skills that promote secure coding, is now available via the plugin marketplace. The plugin includes 18 commands such as /securitymaxxing:audit, /securitymaxxing:redteam, and /securitymaxxing:fix, and it emphasizes traced exploit paths, realistic severity, and zero-finding reports. It is designed to give engineers and builders rigorous, evidence-based security reviews of their code before shipping.", "body_md": "**Application security for Claude Code.** Audit commands that prove their findings, plus skills\nthat make Claude write secure code before you ask.\n\nBuilt for two people: the engineer who knows what an IDOR is and wants a rigorous second pair of eyes, and the builder who shipped something with AI help and needs a straight answer to \"is this safe to put on the internet?\"\n\nAsk any AI to \"check my code for security issues\" and you get a page of confident, plausible,\nmostly-wrong findings. Missing headers on a JSON API. SQL injection in a parameterized query.\nA CVE number that doesn't exist. You read it twice, find nothing real, and never run it again —\nso the one endpoint that *does* leak your customers' addresses ships anyway.\n\nThe problem isn't the model. It's the prompt.\n\nsecuritymaxxing encodes the discipline a real security engineer applies:\n\n**No finding without a traced path** from an attacker-controlled source to a dangerous sink. Both ends named, or it's flagged \"needs verification\" instead of reported as fact.**Check the mitigation first.** Most \"SQL injection in an ORM\" findings die once you read what the framework actually does in that version.**Severity by realistic exploitability × impact**, not by how frightening the bug class sounds.** Zero findings is a valid result.**No padding a report to look thorough.** Every finding carries the exploit path and the patch**— the requests an attacker sends, and the corrected code.\n\n```\n/plugin marketplace add kenjichristopherv-del/securitymaxxing\n/plugin install securitymaxxing\n```\n\nOr, for local development:\n\n```\n/plugin marketplace add ~/Developer/securitymaxxing\n/plugin install securitymaxxing\n```\n\nType `/sec`\n\nin Claude Code and they'll all filter into view.\n\n| Command | What it does |\n|---|---|\n`/securitymaxxing:audit` |\nFull audit — maps the attack surface first, then works every vulnerability class with traced evidence |\n`/securitymaxxing:diff` |\nReviews a diff, branch, or PR. Catches the removed guard clause and the route registered on the wrong router |\n`/securitymaxxing:vibe-check` |\nPlain-English safety check. No jargon, real rigor, direct verdict |\n`/securitymaxxing:ship-check` |\nPre-launch gate. Ten blockers, then should-fixes, then a SHIP / DO NOT SHIP verdict |\n`/securitymaxxing:threat-model` |\nSTRIDE model with a Mermaid data-flow diagram and trust boundaries |\n`/securitymaxxing:authz` |\nBroken access control — IDOR, mass assignment, tenant isolation. The highest-yield review |\n`/securitymaxxing:authn` |\nAuth, sessions, JWTs, password reset, OAuth account-linking takeover |\n`/securitymaxxing:injection` |\nSource-to-sink tracing: SQL, command, XSS, SSRF, path traversal, deserialization, SSTI |\n`/securitymaxxing:secrets` |\nSweeps the working tree and git history. Outputs a rotation list, not a cleanup list |\n`/securitymaxxing:api` |\nCORS, CSRF, headers, rate limits, over-fetching, GraphQL, file uploads |\n`/securitymaxxing:crypto` |\nAlgorithms, IV reuse, key management, TLS verification, what shouldn't be stored at all |\n`/securitymaxxing:deps` |\nRuns the real auditor, then triages — which of the 140 alerts are actually reachable |\n`/securitymaxxing:harden` |\nDocker, Kubernetes, Terraform, cloud IAM, and detection readiness |\n`/securitymaxxing:llm` |\nPrompt injection, tool authority, RAG tenant isolation, unsafe model output |\n`/securitymaxxing:redteam` |\nProves it. Builds a working PoC against your own app, and attacks your defenses to confirm they hold |\n`/securitymaxxing:fix` |\nThe only command that writes code. Fixes the class, verifies the patch, adds the regression test |\n`/securitymaxxing:explain` |\nExplains a vulnerability against your code, so you can spot it yourself next time |\n\nEvery command is read-only except `fix`\n\n(which writes patches) and `redteam`\n\n(which sends\nactive attacks against an app you own).\n\nSkills load automatically when Claude detects the relevant work — no command needed.\n\n| Skill | Triggers on |\n|---|---|\nsecure-coding |\nWriting routes, queries, auth, uploads, shell calls, crypto, or anything taking a resource ID. Supplies the correct pattern first, so the bug never exists |\nllm-app-security |\nBuilding agents, tool calling, RAG, MCP servers, or any LLM feature |\nsecurity-review-method |\nAny security review — the evidence discipline, severity rubric, and finding format the commands share |\n\n`secure-coding`\n\nis the quiet one that matters most. It doesn't wait for an audit; it makes the\nownership check part of the query the first time the query gets written.\n\n```\n/securitymaxxing:vibe-check          # start here if you're not sure what you have\n/securitymaxxing:authz src/api       # start here if you are\n/securitymaxxing:diff                # before every commit that touches a route\n```\n\nA good workflow: `authz`\n\nand `injection`\n\non the code you actually shipped, `secrets`\n\nonce\nagainst full history, `redteam`\n\nto prove the findings are real, `diff`\n\non every PR,\n`ship-check`\n\nbefore launch.\n\n**Find → prove → fix.** The commands come as a loop: a review command surfaces a hypothesis,\n`redteam`\n\nbuilds a working proof-of-concept against your own app (and attacks your existing\ndefenses to confirm they hold), and `fix`\n\ncloses it with a regression test that keeps the PoC\nfrom ever coming back. A finding you've watched get exploited and then blocked is a finding you\ncan trust.\n\n** PROMPTS.md** — 75+ security prompts as raw, copy-pasteable text. Use them in\nCursor, Copilot, ChatGPT, or anywhere else; edit them for your stack; or read them to see\nexactly what the commands are asking for.\n\nStart with [Section 0, the preamble](/kenjichristopherv-del/securitymaxxing/blob/main/PROMPTS.md#0-the-preamble). It's the highest-leverage\nparagraph in the repo — paste it before any security prompt in any tool and the output quality\nchanges immediately.\n\nOWASP Top 10 (2021), OWASP API Security Top 10 (2023), and OWASP Top 10 for LLM Applications, plus the things those lists don't cover well: business logic and race conditions, CI/CD and supply chain, cloud IAM, cost-based denial of service, and incident readiness.\n\nThis is a very good first pass and a genuinely good teacher. It is **not** a penetration test.\n\nIt reads code — it doesn't run your application, fuzz it, or test it live, so it can't find\nwhat only appears at runtime, under load, or in your cloud console. Findings are hypotheses\nuntil you verify them. For anything holding real money or real personal data, this belongs\n*alongside* a human review, not instead of one.\n\nNew prompts, better prompts, and corrections are all welcome — especially real false positives\nyou hit, since those become anti-false-positive rules in `security-review-method`\n\n. Open an\nissue with the code that got misreported and what the review should have said.\n\nApache 2.0 — see [LICENSE](/kenjichristopherv-del/securitymaxxing/blob/main/LICENSE).", "url": "https://wpnews.pro/news/i-pointed-my-ai-security-plugin-at-my-own-prod-app-it-refused-to-invent-a-bug", "canonical_source": "https://github.com/kenjichristopherv-del/securitymaxxing", "published_at": "2026-08-12 13:36:46+00:00", "updated_at": "2026-08-12 13:42:17.134826+00:00", "lang": "en", "topics": ["ai-tools", "ai-agents", "ai-safety", "developer-tools"], "entities": ["Kenji Christopher", "Claude Code", "securitymaxxing"], "alternates": {"html": "https://wpnews.pro/news/i-pointed-my-ai-security-plugin-at-my-own-prod-app-it-refused-to-invent-a-bug", "markdown": "https://wpnews.pro/news/i-pointed-my-ai-security-plugin-at-my-own-prod-app-it-refused-to-invent-a-bug.md", "text": "https://wpnews.pro/news/i-pointed-my-ai-security-plugin-at-my-own-prod-app-it-refused-to-invent-a-bug.txt", "jsonld": "https://wpnews.pro/news/i-pointed-my-ai-security-plugin-at-my-own-prod-app-it-refused-to-invent-a-bug.jsonld"}}