mirror of
https://github.com/Donchitos/Claude-Code-Game-Studios.git
synced 2026-06-27 04:51:46 +00:00
* Add /vertical-slice skill, prototype overhaul, and workflow integration - Add /vertical-slice skill for pre-production validation (Phase 4 gate) - Overhaul /prototype skill with two-mode design: concept prototype (Phase 1) vs vertical slice (Phase 4), with clearer differentiation and higher standards for VS - Update prototyper agent to own both prototype and vertical-slice workflows - Add prototype-report.md and vertical-slice-report.md output templates - Update WORKFLOW-GUIDE, quick-start, skills-reference, agent-coordination-map, and skill-flow-diagrams to fully integrate both skills into the 7-phase pipeline - Remove orphaned empty quick-prototype/ directory Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * sync v1 counts + polish Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Add entity inventory flow, relax vertical-slice gate, improve UX authoring prompts - /asset-spec: new Phase 0b entity & screen inventory when no argument and no existing inventory — reads GDDs/art-bible, proposes categorized list, writes design/assets/entity-inventory.md collaboratively - /asset-spec: entity/character target falls back to inline user description when no source doc exists, rather than failing - /gate-check: vertical slice changed from blocking to CONCERNS-only when absent; built-but-broken slice still fails; adds entity inventory as gate artifact - /ux-design: convert inline approval prompts to AskUserQuestion for structured option capture at key authoring decision points - workflow-catalog.yaml: entity-inventory step added to pre-production; UX spec min_count raised to 3; vertical-slice and prototype marked required: false with updated descriptions - .gitignore: exclude marrow/ eval tooling directory Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Add missing AskUserQuestion widgets to 7 skills Audit found 11 decision points across 7 skills where structured option prompts were missing — using plain text, auto-selection, or no gate at all. Skills patched: - create-epics: per-epic approval + producer CONCERNS verdict - sprint-plan: producer CONCERNS verdict with scope/timeline options - milestone-review: AT RISK / OFF TRACK producer verdicts require acknowledgement - retrospective: existing-retro handling converted from plain text [A]/[B] - quick-design: classification confirmation + draft approve/revise/redirect - tech-debt add mode: category (6 options) + effort (S/M/L/XL) structured capture - regression-suite: no-arg mode selection instead of silent auto-detect - hotfix: severity confirmation gate before workflow begins Also added AskUserQuestion to allowed-tools headers for retrospective, quick-design, tech-debt, regression-suite, and hotfix. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Prep v1 stable: fix WORKFLOW-GUIDE counts, stale agent names, and skill model fields - WORKFLOW-GUIDE.md: correct agent count (48→49), skill count (66/68→73), add 6 missing skills to Appendix B, fix Creative category count (2→4), replace 3 non-existent agent names with correct ue-*/unity-* specialists, add missing godot-csharp/gdextension specialists to hierarchy, fix production/stories/ paths → production/epics/ - coordination-rules.md: replace "not yet used" with opt-in env var note - quick-start.md: rename duplicate "Validate the concept" label → "Prototype the mechanic" - skill-flow-diagrams.md: remove duplicate legacy UX pipeline section - All 62 skills missing model: field now have explicit model: sonnet Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: comprehensive skill audit — consistency, UX, and flow gaps Two-pass audit fixing ~35 bugs across 41 files. Pre-production flow: - Brainstorm next-steps split into Path A (design-first) and Path B (prototype-first) — eliminates "prototype after architecture" confusion - /architecture-review added to pre-production flow in brainstorm and create-architecture handoffs - gate-check traceability check corrected to requirements-traceability.md - dev-story TR registry error now points to /architecture-review (not /create-epics) - start now writes production/stage.txt on first onboarding AskUserQuestion gaps filled: - balance-check, code-review, hotfix, day-one-patch, consistency-check all gain closing widgets and/or missing allowed-tools declarations - hotfix git branch creation now requires user confirmation - sprint-plan review-mode setup moved to Phase 0 (before gates run) - team-combat gains architecture→implementation approval gate - design-review APPROVED path consolidated from 3 widgets to 1 multiSelect All 9 team-* skills: - Phase 0 review-mode resolution added (solo/lean/full now respected) - team-audio output path fixed (design/gdd/ → design/audio/) - team-level final doc compilation delegated to level-designer subagent - team-narrative localization-lead added to composition list - team-qa sprint path fixed (flat files, not directories) - team-release NO-GO override captures written justification - team-live-ops Cancel verdict now explicitly BLOCKED Other fixes: - Art bible path standardized to design/art/art-bible.md (3 wrong refs) - AD-PHASE-GATE added to lean-mode skip list in director-gates.md - design-system duplicate 5d heading fixed; skeleton decline path added; mandatory agent spawns now respect review mode - story-readiness acceptance criteria thresholds now type-aware - create-stories gains multi-ADR and no-ADR handling guidance - consistency-check creates docs/consistency-failures.md on first run - retrospective frontmatter bash injection replaced with explicit Bash call - smoke-check ls -t gains PowerShell fallback - Conventional Commits format documented in coding-standards.md - gate-check: ADR acceptance gate, QA plan check, chain-of-verification tool-action requirement all added Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: expose --review flag in argument-hints for all team-* skills All 9 team-* skills already implement Phase 0 review-mode resolution internally (full/lean/solo), but none advertised [--review full|lean|solo] in their argument-hint. Users had no way to discover the per-run override. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: add SECURITY.md with coordinated disclosure policy Defines scope, reporting process (GitHub private vulnerability reporting), contributor security guidelines for hooks/skills/agents, and 90-day coordinated disclosure timeline. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: add CONTRIBUTING.md with framework contribution guidelines Covers what PRs are welcome, skill/hook/agent technical requirements, the collaborative principle, testing expectations, commit format, and platform compatibility requirements. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: add v1.0.0-beta → v1.0 upgrade section to UPGRADING.md Documents the 17 commits since the beta tag: new /vertical-slice gate, entity inventory flow in /map-systems, AskUserQuestion widgets across 7 skills, --review flag exposure on team-* skills, bug fixes (#21, #36, #42, #43, #45), and the new CONTRIBUTING.md and SECURITY.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
246 lines
8.5 KiB
Markdown
246 lines
8.5 KiB
Markdown
---
|
|
name: security-audit
|
|
description: "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."
|
|
argument-hint: "[full | network | save | input | quick]"
|
|
user-invocable: true
|
|
allowed-tools: Read, Glob, Grep, Bash, Write, Task
|
|
model: sonnet
|
|
agent: security-engineer
|
|
---
|
|
|
|
# Security Audit
|
|
|
|
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:**
|
|
- Before any public release (required for the Polish → Release gate)
|
|
- Before enabling any online/multiplayer feature
|
|
- After implementing any system that reads from disk or network
|
|
- When a security-related bug is reported
|
|
|
|
**Output:** `production/security/security-audit-[date].md`
|
|
|
|
---
|
|
|
|
## Phase 1: Parse Arguments and Scope
|
|
|
|
**Modes:**
|
|
- `full` — all categories (recommended before release)
|
|
- `network` — network/multiplayer only
|
|
- `save` — save file and serialization only
|
|
- `input` — input validation and injection only
|
|
- `quick` — high-severity checks only (fastest, for iterative use)
|
|
- No argument — run `full`
|
|
|
|
Read `.claude/docs/technical-preferences.md` to determine:
|
|
- Engine and language (affects which patterns to search for)
|
|
- Target platforms (affects which attack surfaces apply)
|
|
- Whether multiplayer/networking is in scope
|
|
|
|
---
|
|
|
|
## Phase 2: Spawn Security Engineer
|
|
|
|
Spawn `security-engineer` via Task. Pass:
|
|
- The audit scope/mode
|
|
- Engine and language from technical preferences
|
|
- A manifest of all source directories: `src/`, `assets/data/`, any config files
|
|
|
|
The security-engineer runs the audit across 6 categories (see Phase 3). Collect their full findings before proceeding.
|
|
|
|
---
|
|
|
|
## Phase 3: Audit Categories
|
|
|
|
The security-engineer evaluates each of the following. Skip categories not applicable to the project scope.
|
|
|
|
### Category 1: Save File and Serialization Security
|
|
- Are save files validated before loading? (no blind deserialization)
|
|
- Are save file paths constructed from user input? (path traversal risk)
|
|
- Are save files checksummed or signed? (tamper detection)
|
|
- Does the game trust numeric values from save files without bounds checking?
|
|
- Are there any eval() or dynamic code execution calls near save loading?
|
|
|
|
Grep patterns: `File.open`, `load`, `deserialize`, `JSON.parse`, `from_json`, `read_file` — check each for validation.
|
|
|
|
### Category 2: Network and Multiplayer Security (skip if single-player only)
|
|
- Is game state authoritative on the server, or does the client dictate outcomes?
|
|
- Are incoming network packets validated for size, type, and value range?
|
|
- Are player positions and state changes validated server-side?
|
|
- Is there rate limiting on any network calls?
|
|
- Are authentication tokens handled correctly (never sent in plaintext)?
|
|
- Does the game expose any debug endpoints in release builds?
|
|
|
|
Grep for: `recv`, `receive`, `PacketPeer`, `socket`, `NetworkedMultiplayerPeer`, `rpc`, `rpc_id` — check each call site for validation.
|
|
|
|
### Category 3: Input Validation
|
|
- Are any player-supplied strings used in file paths? (path traversal)
|
|
- Are any player-supplied strings logged without sanitization? (log injection)
|
|
- Are numeric inputs (e.g., item quantities, character stats) bounds-checked before use?
|
|
- Are achievement/stat values checked before being written to any backend?
|
|
|
|
Grep for: `get_input`, `Input.get_`, `input_map`, user-facing text fields — check validation.
|
|
|
|
### Category 4: Data Exposure
|
|
- Are any API keys, credentials, or secrets hardcoded in `src/` or `assets/`?
|
|
- Are debug symbols or verbose error messages included in release builds?
|
|
- Does the game log sensitive player data to disk or console?
|
|
- Are any internal file paths or system information exposed to players?
|
|
|
|
Grep for: `api_key`, `secret`, `password`, `token`, `private_key`, `DEBUG`, `print(` in release-facing code.
|
|
|
|
### Category 5: Cheat and Anti-Tamper Vectors
|
|
- Are gameplay-critical values stored only in memory, not in easily-editable files?
|
|
- Are any critical game progression flags (e.g., "has paid for DLC") validated server-side?
|
|
- Is there any protection against memory editing tools (Cheat Engine, etc.) for multiplayer?
|
|
- Are leaderboard/score submissions validated before acceptance?
|
|
|
|
Note: Client-side anti-cheat is largely unenforceable. Focus on server-side validation for anything competitive or monetised.
|
|
|
|
### Category 6: Dependency and Supply Chain
|
|
- Are any third-party plugins or libraries used? List them.
|
|
- Do any plugins have known CVEs in the version being used?
|
|
- Are plugin sources verified (official marketplace, reviewed repository)?
|
|
|
|
Glob for: `addons/`, `plugins/`, `third_party/`, `vendor/` — list all external dependencies.
|
|
|
|
---
|
|
|
|
## Phase 4: Classify Findings
|
|
|
|
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
|
|
|
|
---
|
|
|
|
## Phase 5: Generate Report
|
|
|
|
```markdown
|
|
# 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.
|
|
```
|
|
|
|
---
|
|
|
|
## Phase 6: Write Report
|
|
|
|
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.
|
|
|
|
---
|
|
|
|
## Phase 7: Gate Integration
|
|
|
|
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-checklist` until 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`."
|
|
|
|
---
|
|
|
|
## Collaborative Protocol
|
|
|
|
- **Never assume a pattern is safe** — flag it and let the user decide
|
|
- **Accepted risk is a valid outcome** — some LOW findings are acceptable trade-offs for a solo team; document the decision
|
|
- **Multiplayer games have a higher bar** — any HIGH finding in a multiplayer context should be treated as CRITICAL
|
|
- **This is not a penetration test** — this audit covers common patterns; a real pentest by a human security professional is recommended before any competitive or monetised multiplayer launch
|