- NEW /content-audit skill: GDD-specified content vs implemented content gap report with COMPLETE/IN PROGRESS/EARLY/NOT STARTED per system - balance-check: Fix & Verify Cycle phase (fix → re-verify → propagate-design-change) - perf-profile: Scope & Timeline Decision phase for M/L effort optimizations - playtest-report: Action Routing phase categorizes findings → design/balance/bugs/polish - review-all-gdds: Phase 4 Cross-System Scenario Walkthrough (multi-system sequences) - story-done: Test-Criterion Traceability (each AC mapped to a test, BLOCKING if >50% untested) - code-review: ADR Compliance Check (ARCHITECTURAL VIOLATION / ADR DRIFT / MINOR DEVIATION) - setup-engine: upgrade subcommand (pre-upgrade API scan, migration plan, VERSION.md update) - story-readiness: Asset References Check (verifies referenced asset paths exist) - validate-assets.sh: invalid JSON now exits 1 (blocking); naming issues exit 0 (warning) - workflow-catalog.yaml + sprint-plan: /scope-check wired into production phase Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.8 KiB
name, description, argument-hint, user-invocable, allowed-tools
| name | description | argument-hint | user-invocable | allowed-tools |
|---|---|---|---|---|
| perf-profile | Structured performance profiling workflow. Identifies bottlenecks, measures against budgets, and generates optimization recommendations with priority rankings. | [system-name or 'full'] | true | Read, Glob, Grep, Bash |
When this skill is invoked:
-
Determine scope from the argument:
- If a system name: focus profiling on that specific system
- If
full: run a comprehensive profile across all systems
-
Read performance budgets — Check for existing performance targets in design docs or CLAUDE.md:
- Target FPS (e.g., 60fps = 16.67ms frame budget)
- Memory budget (total and per-system)
- Load time targets
- Draw call budgets
- Network bandwidth limits (if multiplayer)
-
Analyze the codebase for common performance issues:
CPU Profiling Targets:
_process()/Update()/Tick()functions — list all and estimate cost- Nested loops over large collections
- String operations in hot paths
- Allocation patterns in per-frame code
- Unoptimized search/sort over game entities
- Expensive physics queries (raycasts, overlaps) every frame
Memory Profiling Targets:
- Large data structures and their growth patterns
- Texture/asset memory footprint estimates
- Object pool vs instantiate/destroy patterns
- Leaked references (objects that should be freed but aren't)
- Cache sizes and eviction policies
Rendering Targets (if applicable):
- Draw call estimates
- Overdraw from overlapping transparent objects
- Shader complexity
- Unoptimized particle systems
- Missing LODs or occlusion culling
I/O Targets:
- Save/load performance
- Asset loading patterns (sync vs async)
- Network message frequency and size
-
Generate the profiling report:
## Performance Profile: [System or Full] Generated: [Date] ### Performance Budgets | Metric | Budget | Estimated Current | Status | |--------|--------|-------------------|--------| | Frame time | [16.67ms] | [estimate] | [OK/WARNING/OVER] | | Memory | [target] | [estimate] | [OK/WARNING/OVER] | | Load time | [target] | [estimate] | [OK/WARNING/OVER] | | Draw calls | [target] | [estimate] | [OK/WARNING/OVER] | ### Hotspots Identified | # | Location | Issue | Estimated Impact | Fix Effort | |---|----------|-------|------------------|------------| | 1 | [file:line] | [description] | [High/Med/Low] | [S/M/L] | | 2 | [file:line] | [description] | [High/Med/Low] | [S/M/L] | ### Optimization Recommendations (Priority Order) 1. **[Title]** — [Description of the optimization] - Location: [file:line] - Expected gain: [estimate] - Risk: [Low/Med/High] - Approach: [How to implement] ### Quick Wins (< 1 hour each) - [Simple optimization 1] - [Simple optimization 2] ### Requires Investigation - [Area that needs actual runtime profiling to determine impact] -
Output the report with a summary: top 3 hotspots, estimated headroom vs budget, and recommended next action.
-
Scope & Timeline Decision — activate this phase only if any hotspot has Fix Effort rated M or L.
Present a summary of the significant-effort items:
"The following optimizations require significant effort: [list titles and effort ratings from the Hotspots table]"
For each M/L item, ask the user to choose one of:
- A) Implement the optimization (estimated effort: [S/M/L] — proceed with fix now or schedule it)
- B) Reduce feature scope to avoid the bottleneck (run
/scope-check [feature]to analyze the trade-offs) - C) Accept the performance hit and defer to Polish phase (log it as a known issue)
- D) Escalate to technical-director for an architectural decision (the bottleneck warrants an ADR)
For choice B, remind the user:
"Run
/scope-check [feature]to see what simplifications are available without sacrificing player experience."For choice D, note:
"A bottleneck requiring architectural change should become a new Architecture Decision Record. Run
/architecture-decisionto capture the decision and its trade-offs."If multiple items are deferred to Polish (choice C), record them in the report under a
### Deferred to Polishsection so they are not lost.
Rules
- Never optimize without measuring first — gut feelings about performance are unreliable
- Recommendations must include estimated impact — "make it faster" is not actionable
- Profile on target hardware, not just development machines
- Distinguish between CPU-bound, GPU-bound, and I/O-bound bottlenecks
- Consider worst-case scenarios (maximum entities, lowest spec hardware, worst network conditions)
- Static analysis (this skill) identifies candidates; runtime profiling confirms