Audit the game for security vulnerabilities: save tampering, cheat vectors, network exploits, data exposure, and input validation gaps. Produces a prioritised security report with remediation guidance. Run before any public release or multiplayer launch.
73
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Security is not optional for any shipped game. Even single-player games have save tampering vectors. Multiplayer games have cheat surfaces, data exposure risks, and denial-of-service potential. This skill systematically audits the codebase for the most common game security failures and produces a prioritised remediation plan.
Run this skill:
Output: production/security/security-audit-[date].md
Modes:
full — all categories (recommended before release)network — network/multiplayer onlysave — save file and serialization onlyinput — input validation and injection onlyquick — high-severity checks only (fastest, for iterative use)fullRead .claude/docs/technical-preferences.md to determine:
Spawn security-engineer via Task. Pass:
src/, assets/data/, any config filesThe security-engineer runs the audit across 6 categories (see Phase 3). Collect their full findings before proceeding.
The security-engineer evaluates each of the following. Skip categories not applicable to the project scope.
Grep patterns: File.open, load, deserialize, JSON.parse, from_json, read_file — check each for validation.
Grep for: recv, receive, PacketPeer, socket, NetworkedMultiplayerPeer, rpc, rpc_id — check each call site for validation.
Grep for: get_input, Input.get_, input_map, user-facing text fields — check validation.
src/ or assets/?Grep for: api_key, secret, password, token, private_key, DEBUG, print( in release-facing code.
Note: Client-side anti-cheat is largely unenforceable. Focus on server-side validation for anything competitive or monetised.
Glob for: addons/, plugins/, third_party/, vendor/ — list all external dependencies.
For each finding, assign:
Severity:
| Level | Definition |
|---|---|
| CRITICAL | Remote code execution, data breach, or trivially-exploitable cheat that breaks multiplayer integrity |
| HIGH | Save tampering that bypasses progression, credential exposure, or server-side authority bypass |
| MEDIUM | Client-side cheat enablement, information disclosure, or input validation gap with limited impact |
| LOW | Defence-in-depth improvement — hardening that reduces attack surface but no direct exploit exists |
Status: Open / Accepted Risk / Out of Scope
# Security Audit Report
**Date**: [date]
**Scope**: [full | network | save | input | quick]
**Engine**: [engine + version]
**Audited by**: security-engineer via /security-audit
**Files scanned**: [N source files, N config files]
---
## Executive Summary
| Severity | Count | Must Fix Before Release |
|----------|-------|------------------------|
| CRITICAL | [N] | Yes — all |
| HIGH | [N] | Yes — all |
| MEDIUM | [N] | Recommended |
| LOW | [N] | Optional |
**Release recommendation**: [CLEAR TO SHIP / FIX CRITICALS FIRST / DO NOT SHIP]
---
## CRITICAL Findings
### SEC-001: [Title]
**Category**: [Save / Network / Input / Data / Cheat / Dependency]
**File**: `[path]` line [N]
**Description**: [What the vulnerability is]
**Attack scenario**: [How a malicious user would exploit it]
**Remediation**: [Specific code change or pattern to apply]
**Effort**: [Low / Medium / High]
[repeat per finding]
---
## HIGH Findings
[same format]
---
## MEDIUM Findings
[same format]
---
## LOW Findings
[same format]
---
## Accepted Risk
[Any findings explicitly accepted by the team with rationale]
---
## Dependency Inventory
| Plugin / Library | Version | Source | Known CVEs |
|-----------------|---------|--------|------------|
| [name] | [version] | [source] | [none / CVE-XXXX-NNNN] |
---
## Remediation Priority Order
1. [SEC-NNN] — [1-line description] — Est. effort: [Low/Medium/High]
2. ...
---
## Re-Audit Trigger
Run `/security-audit` again after remediating any CRITICAL or HIGH findings.
The Polish → Release gate requires this report with no open CRITICAL or HIGH items.Present the report summary (executive summary + CRITICAL/HIGH findings only) in conversation.
Ask: "May I write the full security audit report to production/security/security-audit-[date].md?"
Write only after approval.
This report is a required artifact for the Polish → Release gate.
After remediating findings, re-run: /security-audit quick to confirm CRITICAL/HIGH items are resolved before running /gate-check release.
If CRITICAL findings exist:
"⛔ CRITICAL security findings must be resolved before any public release. Do not proceed to
/launch-checklistuntil these are addressed."
If no CRITICAL/HIGH findings:
"✅ No blocking security findings. Report written to
production/security/. Include this path when running/gate-check release."
984023d
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.