Skip to content
Back to skills

Audit Security

ASecurity

Performs a multi-agent security audit checking authentication, input validation, data exposure, and infrastructure. This skill should be used when the user asks to "audit security", "run a security review", "check for vulnerabilities", "security scan", "check auth", "find security issues", or "harden security", or when the transmute-pipeline agent reaches Stage 6A of the pipeline.

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
securityrustgonextjsawsgitapidatabasefrontendbackendsecurity

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add masterleopold/transmute-framework --skill audit-security --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Audit Security?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Audit Security
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/masterleopold-audit-security/badge)](https://www.skillsdirectory.com/skills/masterleopold-audit-security)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: audit-security
description: >-
  Performs a multi-agent security audit checking authentication, input validation, data exposure, and infrastructure.
  This skill should be used when the user asks to "audit security",
  "run a security review", "check for vulnerabilities", "security scan",
  "check auth", "find security issues", or "harden security",
  or when the transmute-pipeline agent reaches Stage 6A of the pipeline.
version: 1.0.0
---

# Security Audit — Stage 6A

Read the detailed guide at `${CLAUDE_SKILL_ROOT}/references/audit-security-detailed-guide.md` for the complete audit procedures, teammate spawn prompts, vulnerability fix patterns, and report templates.

Lead a multi-agent security audit of the complete codebase against BRD security requirements and PRD security specifications. Identify vulnerabilities and fix them.

**Stage Sequence** (recommended ordering): Stage 5B → (**6A (this stage)** ‖ 6B ‖ 6C) → 6E → 6F → 6G → 6D → 6H → 6V → 6R → 6P/6P-R → 7 (Deploy). Note: 6A, 6B, and 6C run **in parallel** (each in a separate session). If running in parallel, commit 6A changes as soon as 6A completes to avoid config file conflicts — see CLAUDE.md § "Stage 6 ordering".

## Prerequisite Checks

Before any audit work, verify:

1. Check that `./plancasting/_audits/implementation-completeness/report.md` exists and shows PASS or CONDITIONAL PASS. If missing, STOP: 'Stage 5B report not found — run Stage 5B before starting Stage 6 audits. Proceeding without 5B wastes effort on incomplete code.' (Override: if the operator explicitly confirms 5B was intentionally skipped, proceed with a WARN in the report noting unverified implementation completeness.)
2. If 5B shows FAIL, STOP — the codebase has unresolved implementation gaps that must be fixed before security auditing. If CONDITIONAL PASS, note the documented Category C issues — skip security auditing for those incomplete features.
3. Read `./CLAUDE.md` and `./plancasting/tech-stack.md` for project conventions.
4. Read the relevant PRD sections for implementation context.

## Inputs

Read and reference these files throughout the audit:

- **Codebase**: Backend directory and `./src/` (adapt paths per tech stack)
- **Tech Stack**: `./plancasting/tech-stack.md`
- **Security Requirements**: `./plancasting/brd/13-security-requirements.md`
- **Compliance Requirements**: `./plancasting/brd/12-regulatory-and-compliance-requirements.md`
- **PRD Security Architecture**: `./plancasting/prd/10-system-architecture.md` (auth/authz section)
- **PRD API Specs**: `./plancasting/prd/12-api-specifications.md` (auth scheme, rate limiting)
- **Project Rules**: `./CLAUDE.md`

Check `./plancasting/tech-stack.md` for the `Session Language` setting. Generate all reports and user-facing output in that language. Keep code, technical identifiers, and file names in English.

## Stack Adaptation

Prompts reference Convex + Next.js as defaults. Adapt all paths and patterns to the actual stack in `plancasting/tech-stack.md`:
- `convex/` becomes your backend directory
- `convex/schema.ts` becomes your schema/migration files
- Convex functions become your backend functions/endpoints
- `src/app/` becomes your frontend pages directory

Read `CLAUDE.md` Part 2 (Backend Rules, Frontend Rules) for project-specific conventions.

**Package Manager**: Commands use `bun run` as default. Replace with your project's package manager as specified in `CLAUDE.md`.

## Known Failure Patterns

1. **Severity deflation**: Agent marks everything as "Medium" to avoid escalation. Use clear definitions: Critical = data breach possible without auth, High = privilege escalation possible, Medium = defense-in-depth gap, Low = best practice deviation.
2. **Symptom fixing**: Agent adds auth check to a function but doesn't notice the function is also exported publicly. Fix root cause, not symptoms.
3. **Regression from security fixes**: Agent adds auth check that breaks a legitimate unauthenticated flow. ALWAYS verify fixes don't break existing tests.
4. **Skipping generated files' consumers**: Agent correctly skips `_generated/` but also skips files that import from `_generated/` — these may contain security-relevant code.
5. **Missing CORS/CSP checks**: Focusing only on code-level auth while ignoring HTTP-level security headers.
6. **Blind framework trust**: Agent assumes a framework handles security correctly without verification (e.g., 'Next.js handles CSRF'). ALWAYS verify framework security defaults are actually enabled in configuration.
7. **Zero-day normalization**: Agent marks an unpatched CVE as 'acceptable risk' without documenting threat model justification. ALWAYS document: 'We accept this risk because [mitigation] is in place.'

## Phase 1: Analysis and Planning

Complete these steps before spawning any teammates:

1. Read `./CLAUDE.md`, `./plancasting/tech-stack.md`, and all security/compliance requirements from BRD/PRD.
2. Build a **Security Checklist** mapping each BRD security requirement (SR-xxx) to specific code patterns to verify. For each entry include: (a) Scope — affected files/functions, (b) Check — what to verify, (c) Code pattern — correct implementation example, (d) Status — "Not checked yet".
3. Write `./plancasting/_audits/security/checklist.md` with the full checklist.
4. Create a task list for all teammates with dependency tracking.

**Scope Boundary — Rate Limiting**: See Teammate 4 for the 6A/6G rate limiting scope boundary.

## Phase 2: Spawn Audit Teammates

Spawn 4 parallel teammates. Each teammate's prompt must include the security checklist and instructions to read CLAUDE.md first.

### Teammate 1: auth-auditor

Scope: Authentication and authorization.

- Scan every exported backend function (excluding generated code). Verify auth checks are called where required. Flag mutations/actions modifying data without auth. Flag queries returning sensitive data without auth. Verify role/permission checks match BRD requirements.
- Check authorization logic for horizontal and vertical privilege escalation.
- Review middleware/route protection for completeness and role-based access.
- Adapt auth checks to the stack's auth pattern (session-based, JWT-based, or auth provider SDK). For JWT: verify JWKS endpoint security, `alg` whitelist (reject `alg: none`), audience/issuer validation, JWKS cache headers, token expiry validation.
- Fix each vulnerability with inline comment: `// SECURITY FIX: [description] — SR-xxx`

### Teammate 2: input-validation-auditor

Scope: Input validation and injection prevention.

- Verify ALL backend function arguments use proper validators. Flag overly permissive validators (e.g., `v.any()`). Verify string length constraints and typed ID validators.
- Scan form components for client-side validation consistency with server.
- Check for XSS vectors: unsafe innerHTML usage, unescaped user content, file upload validation.
- Fix each vulnerability found.

### Teammate 3: data-exposure-auditor

Scope: Data leakage and privacy.

- Flag queries returning entire documents when subsets suffice. Flag queries returning sensitive fields (email, phone, payment info) unnecessarily. Verify PII is not logged or exposed in error messages.
- Verify error messages do not leak internal details (stack traces, table names, query patterns).
- Check for sensitive data in localStorage/sessionStorage, hardcoded API keys, improperly prefixed env vars.
- Fix each issue found.

### Teammate 4: infrastructure-security-auditor

Scope: HTTP security headers, CORS, CSP, dependencies, rate limiting, audit logging.

- Verify Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, and Referrer-Policy.
- Check CORS configuration — flag `Access-Control-Allow-Origin: *`. Verify credentials mode is correctly configured.
- Run dependency vulnerability scan. For Bun projects: use `bunx audit-ci`, `npx better-npm-audit audit`, or `npx snyk test`. For npm/yarn: `npm audit`. For pnpm: `pnpm audit`. If none can be installed, document that scanning could not be performed and recommend manual review. Flag critical/high severity issues and known CVEs. Verify lock file integrity.
- **Rate Limiting — 6A/6G Scope Boundary**: Rate limiting for AUTH endpoints (login, signup, password reset, forgot password, MFA challenge/verify, token refresh, session management — logout, session revocation) is Stage 6A's responsibility — implement these now. Rate limiting for DATA-MUTATION endpoints (create, update, delete, file uploads) is Stage 6G's responsibility. Flag data-mutation rate limiting gaps for Stage 6G to implement.
  - **Edge case classifications**: Password change = AUTH (6A). User profile update = DATA-MUTATION (6G). Email verification re-send = AUTH (6A). MFA device management = AUTH (6A). Invitation acceptance = AUTH (6A). Account linking = AUTH (6A). Signup = AUTH (6A). Password-reset email send = AUTH (6A, auth flow).
  - If Stage 6G report already exists (`./plancasting/_audits/resilience/report.md`), verify no scope overlap. If ambiguous, flag as a decision point for the lead to reconcile.
- Verify security-sensitive operations are logged and logs contain no sensitive data.
- Fix each issue found.

## Unfixable Violation Protocol

When a violation cannot be fixed without architectural changes or would break another feature:

1. Document the full conflict with evidence (what the violation is, what fixing it would break).
2. Mark as **REQUIRES HUMAN DECISION** — do not attempt fixes that create regressions.
3. Include recommended approach and estimated effort.
4. If CRITICAL severity (e.g., architectural security flaw, missing encryption at rest, broken auth model): the audit MUST recommend NOT LAUNCHING until resolved. Document required architectural changes and estimated remediation scope. Record in `./plancasting/_audits/security/unfixable-violations.md` (separate file from `report.md`) AND summarize in the main `report.md` under a "Blocking Issues" section — critical violations block Stage 6H. Use these headings in the unfixable violations file: `### [Issue ID]`, `**Severity**: [CRITICAL/HIGH]`, `**Description**: [what the issue is]`, `**Evidence**: [code location and proof]`, `**Recommended Approach**: [how to fix with architectural changes]`, `**Estimated Effort**: [hours/days]`.
5. Continue with remaining fixable violations.

## Phase 3: Coordination

- Facilitate cross-team findings: auth gaps inform input-validation checks; PII exposure informs auth requirements; CSP gaps inform data-exposure risk; rate limiting gaps inform brute-force risk.
- Resolve file conflicts: first teammate to complete claims the file; second must re-read before applying changes. If both changes are in different functions/sections, both apply. If they touch the same code block, the lead decides — security correctness over team structure.

## Phase 4: Review and Report

1. Run the full test suite using commands from CLAUDE.md (e.g., `bun run typecheck`, `bun run lint`, `bun run build`, `bun run test`, `bun run test:e2e`). Fix any test failures caused by security changes.
2. If unfixable violations were documented, verify `./plancasting/_audits/security/unfixable-violations.md` exists and is referenced from report.md.

**CRITICAL**: The `## Gate Decision` heading in the generated report is parsed by Stage 6H. Use this EXACT heading — do not rename or restructure it.

3. Generate `./plancasting/_audits/security/report.md` containing:
   - Executive summary
   - Vulnerabilities by category and severity (Critical/High/Medium/Low)
   - Fixes applied with code references
   - BRD security requirement compliance matrix (SR-xxx to Pass/Fail)
   - Infrastructure security results (HTTP headers, CORS, CSP, dependencies, rate limiting, audit logging)
   - **Data-Mutation Rate Limiting Gaps (for Stage 6G)**: List all data-mutation endpoints flagged by Teammate 4 that lack rate limiting. Format: `- [endpoint] ([reason])`. Stage 6G reads this section.
   - Remaining risks requiring human decision
   - Recommendations for ongoing security practices

   ## Gate Decision
   [PASS | CONDITIONAL PASS | FAIL]
   - **PASS**: All Critical and High severity vulnerabilities fixed; all tests pass; no unfixable blocking issues
   - **CONDITIONAL PASS**: All Critical fixed; remaining High issues documented with mitigations; Stage 6H review required
   - **FAIL**: Critical vulnerabilities remain unresolved; blocks Stage 6H

4. Output summary: total vulnerabilities found, total fixed, total requiring human review.

## Phase 5: Shutdown

1. Request shutdown for all teammates.
2. Verify all file modifications are saved and committed.

## Severity Definitions

Use these consistently — do not deflate:
- **Critical**: Data breach possible without authentication
- **High**: Privilege escalation possible
- **Medium**: Defense-in-depth gap
- **Low**: Best practice deviation

## Critical Rules

1. NEVER mark a vulnerability as "acceptable risk" without documenting specific threat model justification.
2. NEVER delete a security test to make the suite pass — fix the vulnerability instead.
3. NEVER introduce new auth bypass patterns as part of a fix.
4. ALWAYS run the full test suite after security changes — security fixes that break functionality are not fixes.
5. ALWAYS verify custom API routes have CSRF protection for state-changing operations.
6. ALWAYS check for secrets in git history: `git log --all -p -G "(sk-|sk_|Bearer |password=|PRIVATE KEY|AWS_SECRET|STRIPE_SECRET|DATABASE_URL=|-----BEGIN|api[_-]?key|client[_-]?secret)" --max-count=500`. For large repos add `--since='6 months ago'`. Use `-G` with regex alternation, NOT multiple `-S` flags (git only processes the last `-S` flag, silently ignoring earlier ones). If ANY secret is found, document as CRITICAL in `./plancasting/_audits/security/unfixable-violations.md` requiring immediate key rotation — secrets in git history cannot be fixed by code changes alone. This is a pipeline blocker: do NOT proceed to Stage 6H until key rotation is confirmed by the operator. Verify `.env.local.example` contains only placeholder values (no real API keys, no real passwords).
7. ALWAYS verify SSRF blocklist: check all outbound `fetch()` or HTTP client calls triggered by user input. Reject private IP ranges (10.x, 172.16-31.x, 192.168.x), localhost (127.0.0.1, ::1), link-local (169.254.x, fe80::/10), IPv6 unique local (fc00::/7), and cloud metadata endpoints (169.254.169.254).
8. ALWAYS verify rate limiting on auth endpoints. Flag data-mutation gaps for Stage 6G. See the 6A/6G scope boundary: 6A = auth-protecting endpoints; 6G = data-mutation endpoints. Do NOT implement data-mutation rate limiting in Stage 6A.
9. Use commands from CLAUDE.md for running tests.
10. Reference Stage 5B output to avoid auditing stub/incomplete features.
11. For safety-critical rules and pipeline-level security constraints, see CLAUDE.md § Pipeline Execution Guide → Safety-Critical Rules (or execution-guide.md if CLAUDE.md defers to it).

Files in this skill

  • SKILL.md14.7 KB
  • references/audit-security-detailed-guide.md27 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.