6.1 KiB
Skill Test Spec: /asset-audit
Skill Summary
/asset-audit audits the assets/ directory for naming convention compliance,
missing metadata, and format/size issues. It reads asset files against the
conventions and budgets defined in technical-preferences.md. No director gates
are invoked. The skill does not write without user approval. Verdicts: COMPLIANT,
WARNINGS, or NON-COMPLIANT.
Static Assertions (Structural)
Verified automatically by /skill-test static — no fixture needed.
- Has required frontmatter fields:
name,description,argument-hint,user-invocable,allowed-tools - Has ≥2 phase headings
- Contains verdict keywords: COMPLIANT, WARNINGS, NON-COMPLIANT
- Does NOT require "May I write" language (read-only; optional report requires approval)
- Has a next-step handoff (what to do after audit results)
Director Gate Checks
None. Asset auditing is a read-only analysis skill; no gates are invoked.
Test Cases
Case 1: Happy Path — All assets follow naming conventions
Fixture:
technical-preferences.mdspecifies naming convention:snake_case, e.g.,enemy_grunt_idle.pngassets/art/characters/contains:enemy_grunt_idle.png,enemy_sniper_run.pngassets/audio/sfx/contains:sfx_jump_land.ogg,sfx_item_pickup.ogg- All files are within size budget (textures ≤2MB, audio ≤500KB)
Input: /asset-audit
Expected behavior:
- Skill reads naming conventions and size budgets from
technical-preferences.md - Skill scans
assets/recursively - All files match
snake_caseconvention; all within budget - Audit table shows all rows PASS
- Verdict is COMPLIANT
Assertions:
- Audit covers both art and audio asset directories
- Each file is checked against naming convention and size budget
- All rows show PASS when compliant
- Verdict is COMPLIANT
- No files are written
Case 2: Non-Compliant — Textures exceed size budget
Fixture:
assets/art/environment/contains 5 texture files- 3 texture files are 4MB each (budget: ≤2MB)
- 2 texture files are within budget
Input: /asset-audit
Expected behavior:
- Skill reads size budget from
technical-preferences.md(2MB for textures) - Skill scans
assets/art/environment/— finds 3 oversized textures - Audit table lists each oversized file with actual size and budget
- Verdict is NON-COMPLIANT
- Skill recommends compression or resolution reduction for flagged files
Assertions:
- All 3 oversized files are listed by name with actual size and budget size
- Verdict is NON-COMPLIANT when any file exceeds its budget
- Optimization recommendation is given for oversized files
- Within-budget files are also listed (showing PASS) for completeness
Case 3: Format Issue — Audio in wrong format
Fixture:
technical-preferences.mdspecifies audio format: OGGassets/audio/music/theme_main.wavexists (WAV format)assets/audio/sfx/sfx_footstep.oggexists (correct OGG format)
Input: /asset-audit
Expected behavior:
- Skill reads audio format requirement: OGG
- Skill scans
assets/audio/— findstheme_main.wavin wrong format - Audit table flags
theme_main.wavas FORMAT ISSUE (expected OGG, found WAV) sfx_footstep.oggshows PASS- Verdict is WARNINGS (format issues are correctable)
Assertions:
theme_main.wavis flagged as FORMAT ISSUE with expected and actual format noted- Verdict is WARNINGS (not NON-COMPLIANT) for format issues, which are correctable
- Correct-format assets are shown as PASS
- Skill does not modify or convert any asset files
Case 4: Missing Asset — Asset referenced by GDD but absent from assets/
Fixture:
design/gdd/enemies.mdreferencesenemy_boss_idle.pngassets/art/characters/boss/directory is empty — file does not exist
Input: /asset-audit
Expected behavior:
- Skill reads GDD references to find expected assets (cross-references with
/content-auditscope) - Skill scans
assets/art/characters/boss/— file not found - Audit table flags
enemy_boss_idle.pngas MISSING ASSET - Verdict is NON-COMPLIANT (missing critical art asset)
Assertions:
- Skill checks GDD references to identify expected assets
- Missing assets are flagged as MISSING ASSET with the GDD reference noted
- Verdict is NON-COMPLIANT when critical assets are missing
- Skill does not create or add placeholder assets
Case 5: Gate Compliance — No gate; technical-artist may be consulted separately
Fixture:
- 2 files have naming convention violations (CamelCase instead of snake_case)
review-mode.txtcontainsfull
Input: /asset-audit
Expected behavior:
- Skill scans assets and finds 2 naming violations
- No director gate is invoked regardless of review mode
- Verdict is WARNINGS
- Output notes: "Consider having a Technical Artist review naming conventions"
- Skill presents findings; offers optional audit report write
- If user opts in: "May I write to
production/qa/asset-audit-[date].md?"
Assertions:
- No director gate is invoked in any review mode
- Technical artist consultation is suggested (not mandated)
- Findings table is presented before any write prompt
- Optional audit report write asks "May I write" before writing
Protocol Compliance
- Reads
technical-preferences.mdfor naming conventions, formats, and size budgets - Scans
assets/directory recursively - Audit table shows file name, check type, expected value, actual value, and result
- Does not modify any asset files
- No director gates are invoked
- Verdict is one of: COMPLIANT, WARNINGS, NON-COMPLIANT
Coverage Notes
- Metadata checks (e.g., missing texture import settings in Godot
.importfiles) are not explicitly tested here; they follow the same FORMAT ISSUE flagging pattern. - The interaction between
/asset-auditand/content-audit(both check GDD references vs. assets) is intentional overlap;/asset-auditfocuses on compliance while/content-auditfocuses on completeness.