Security Review
Purpose
Find real, exploitable security weaknesses and report them safely. Implements ../../system/SECURITY_RULES.md. Supports Gate 6 and any security-audit request.
When to Use
- Before merge/release for changes touching auth, data, payments, or external input.
- For a security audit request type.
- Whenever an audit or review surfaces a security-relevant surface.
Inputs
- The change/codebase in scope and how it handles secrets, auth, data.
- Whether the app handles money or sensitive PII.
Discovery Questions
- Does the change touch secrets, auth, authorization, input handling, PII, or payments?
- Is this pre-launch, live, or post-incident?
- What is the trust boundary and the data sensitivity?
Responsibilities
Assess, per ../../system/SECURITY_RULES.md:
- Secrets (no hardcoding; git history; client-exposed prefixes; correct key placement).
- Auth (enforced routes, JWT/session integrity, reset flow, rate limits, no default admin).
- Authorization/IDOR (ownership checks, server-side roles, tenant scoping).
- Input/injection (parameterized queries, XSS, command, uploads, validation).
- PII (minimized in logs/third-party; deletion path).
- Transport/errors (TLS, CORS, security headers, generic errors).
- Payments (server-side totals, webhook signatures, abuse) when applicable.
- Production hardening (debug/test endpoints, env fail-fast, dependency advisories).
Report findings with severity and Confirmed vs Potential.
Required Workflow
- Scope to the change/surface + data sensitivity.
- Walk the relevant security areas.
- Run available tools where possible; quote or mark "unverified until run."
- Record findings (severity, Confirmed/Potential,
file:line, redacted).
- List secrets to rotate; recommend human review for money/PII at scale.
Decision Rules
- Never print a discovered secret's value — report location/type, redacted, and flag for rotation.
- Separate Confirmed from Potential; assign severity (Critical/High/Medium/Low).
- Block release on open Critical/High confirmed issues.
- Never claim "secure"; report what was checked and fixed, and what needs human review.
Rules
- Do no harm: no data exfiltration, no hitting production/third-party systems, no destructive commands.
- Do not weaken existing controls to "make it work."
- Recommend a professional human review for real money / sensitive PII at scale.
Anti-Patterns
- Printing secret values in the report.
- Claiming the app is "secure."
- Inflating potential findings into confirmed.
- Skipping a check "to save time/tokens."
Validation Checklist
Definition of Done
A security review report with severity-rated, Confirmed/Potential findings (secrets redacted), a rotation list, verification notes, and — for money/PII-at-scale — a human-review recommendation.
Related Skills
code-review, dependency-audit, environment-audit, ai-output-review, final-quality-audit, release-planning, project-orchestrator.
Related Knowledge
../../knowledge/ (data model, trust boundaries).
Related References
../../references/security/ (if present) for baselines.
Context Loading Guidance
- Requires: the security-relevant surface, data-sensitivity context.
- Does not require: unrelated modules, the full reference tree, planning skills.
- May load:
dependency-audit, environment-audit for exposure.
- Stop when: the report (with rotation list) is delivered.
Token Efficiency Guidance
Focus on entry points, auth, data access, and config. Quote decisive lines, redacted; don't paste whole files or any secret value.
1---2name: security-review3description: Use to assess a change or codebase for security weaknesses — secrets, auth, authorization/IDOR, injection, PII handling, transport/errors, payments, and production hardening. Reports findings by severity, separates confirmed from potential, never prints secret values, and never claims "secure."4---56# Security Review78## Purpose910Find real, exploitable security weaknesses and report them safely. Implements `../../system/SECURITY_RULES.md`. Supports Gate 6 and any security-audit request.1112## When to Use1314- Before merge/release for changes touching auth, data, payments, or external input.15- For a **security audit** request type.16- Whenever an audit or review surfaces a security-relevant surface.1718## Inputs1920- The change/codebase in scope and how it handles secrets, auth, data.21- Whether the app handles money or sensitive PII.2223## Discovery Questions2425- Does the change touch secrets, auth, authorization, input handling, PII, or payments?26- Is this pre-launch, live, or post-incident?27- What is the trust boundary and the data sensitivity?2829## Responsibilities3031Assess, per `../../system/SECURITY_RULES.md`:32- **Secrets** (no hardcoding; git history; client-exposed prefixes; correct key placement).33- **Auth** (enforced routes, JWT/session integrity, reset flow, rate limits, no default admin).34- **Authorization/IDOR** (ownership checks, server-side roles, tenant scoping).35- **Input/injection** (parameterized queries, XSS, command, uploads, validation).36- **PII** (minimized in logs/third-party; deletion path).37- **Transport/errors** (TLS, CORS, security headers, generic errors).38- **Payments** (server-side totals, webhook signatures, abuse) when applicable.39- **Production hardening** (debug/test endpoints, env fail-fast, dependency advisories).4041Report findings with **severity** and **Confirmed vs Potential**.4243## Required Workflow44451. Scope to the change/surface + data sensitivity.462. Walk the relevant security areas.473. Run available tools where possible; quote or mark "unverified until run."484. Record findings (severity, Confirmed/Potential, `file:line`, redacted).495. List secrets to rotate; recommend human review for money/PII at scale.5051## Decision Rules5253- Never print a discovered secret's value — report location/type, redacted, and flag for rotation.54- Separate Confirmed from Potential; assign severity (Critical/High/Medium/Low).55- Block release on open Critical/High confirmed issues.56- Never claim "secure"; report what was checked and fixed, and what needs human review.5758## Rules5960- Do no harm: no data exfiltration, no hitting production/third-party systems, no destructive commands.61- Do not weaken existing controls to "make it work."62- Recommend a professional human review for real money / sensitive PII at scale.6364## Anti-Patterns6566- Printing secret values in the report.67- Claiming the app is "secure."68- Inflating potential findings into confirmed.69- Skipping a check "to save time/tokens."7071## Validation Checklist7273- [ ] Relevant security areas assessed.74- [ ] Findings: severity + Confirmed/Potential + redacted location.75- [ ] Secrets-to-rotate list produced.76- [ ] Tools run or unrun checks flagged.77- [ ] Human-review recommendation where warranted.78- [ ] No secret values printed; no "secure" claim.7980## Definition of Done8182A security review report with severity-rated, Confirmed/Potential findings (secrets redacted), a rotation list, verification notes, and — for money/PII-at-scale — a human-review recommendation.8384## Related Skills8586`code-review`, `dependency-audit`, `environment-audit`, `ai-output-review`, `final-quality-audit`, `release-planning`, `project-orchestrator`.8788## Related Knowledge8990`../../knowledge/` (data model, trust boundaries).9192## Related References9394`../../references/security/` (if present) for baselines.9596## Context Loading Guidance9798- **Requires:** the security-relevant surface, data-sensitivity context.99- **Does not require:** unrelated modules, the full reference tree, planning skills.100- **May load:** `dependency-audit`, `environment-audit` for exposure.101- **Stop when:** the report (with rotation list) is delivered.102103## Token Efficiency Guidance104105Focus on entry points, auth, data access, and config. Quote decisive lines, redacted; don't paste whole files or any secret value.