5.7 KiB
Skill Test Spec: /content-audit
Skill Summary
/content-audit reads GDDs in design/gdd/ and checks whether all content
items specified there (enemies, items, levels, etc.) are accounted for in
assets/. It produces a gap table: Content Type → Specified Count → Found Count
→ Missing Items. No director gates are invoked. The skill does not write without
user approval. Verdicts: COMPLETE, GAPS FOUND, or MISSING CRITICAL CONTENT.
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: COMPLETE, GAPS FOUND, MISSING CRITICAL CONTENT
- Does NOT require "May I write" language (read-only output; write is optional report)
- Has a next-step handoff (what to do after gap table is reviewed)
Director Gate Checks
None. Content audit is a read-only analysis skill; no gates are invoked.
Test Cases
Case 1: Happy Path — All specified content present
Fixture:
design/gdd/enemies.mdspecifies 4 enemy types: Grunt, Sniper, Tank, Bossassets/art/characters/contains folders:grunt/,sniper/,tank/,boss/design/gdd/items.mdspecifies 3 item types; all 3 found inassets/data/items/
Input: /content-audit
Expected behavior:
- Skill reads all GDDs in
design/gdd/ - Skill scans
assets/for each specified content item - All 4 enemy types and 3 item types are found
- Gap table shows: all rows have Found Count = Specified Count, no missing items
- Verdict is COMPLETE
Assertions:
- Gap table covers all content types found in GDDs
- Each row shows Specified Count and Found Count
- No missing items when counts match
- Verdict is COMPLETE
- No files are written
Case 2: Gaps Found — Enemy type missing from assets
Fixture:
design/gdd/enemies.mdspecifies 3 enemy types: Grunt, Sniper, Bossassets/art/characters/contains:grunt/,sniper/only (Boss folder missing)
Input: /content-audit
Expected behavior:
- Skill reads GDD — finds 3 enemy types specified
- Skill scans
assets/art/characters/— finds only 2 - Gap table row for enemies: Specified 3, Found 2, Missing: Boss
- Verdict is GAPS FOUND
Assertions:
- Gap table row identifies "Boss" as the missing item by name
- Specified Count (3) and Found Count (2) are both shown
- Verdict is GAPS FOUND when any content item is missing
- Skill does not assume the asset will be added later — it flags it now
Case 3: No GDD Content Specs Found — Guidance given
Fixture:
design/gdd/contains onlycore-loop.mdwhich has no content inventory section- No other GDDs exist with content specifications
Input: /content-audit
Expected behavior:
- Skill reads all GDDs — finds no content inventory sections
- Skill outputs: "No content specifications found in GDDs — run /design-system first to define content lists"
- No gap table is produced
- Verdict is GAPS FOUND (cannot confirm completeness without specs)
Assertions:
- Skill does not produce a gap table when no GDD content specs exist
- Output recommends running
/design-system - Verdict reflects inability to confirm completeness
Case 4: Edge Case — Asset in wrong format for target platform
Fixture:
design/gdd/audio.mdspecifies audio assets as OGG formatassets/audio/sfx/jump.wavexists (WAV format, not OGG)assets/audio/sfx/land.oggexists (correct format)technical-preferences.mdspecifies audio format: OGG
Input: /content-audit
Expected behavior:
- Skill reads GDD audio spec and technical preferences for format requirements
- Skill finds
jump.wav— present but in wrong format - Gap table row for audio: Specified 2, Found 2 (by name), but
jump.wavflagged as FORMAT ISSUE - Verdict is GAPS FOUND (format compliance is part of content completeness)
Assertions:
- Skill checks asset format against GDD or technical preferences when format is specified
jump.wavis flagged as FORMAT ISSUE with expected format (OGG) noted- Format issues are distinct from missing content in the gap table
- Verdict is GAPS FOUND when format issues exist
Case 5: Gate Compliance — Read-only; no gate; gap table for human review
Fixture:
- GDDs specify 10 content items; 9 are found in assets; 1 is missing
review-mode.txtcontainsfull
Input: /content-audit
Expected behavior:
- Skill reads GDDs and scans assets; produces gap table
- No director gate is invoked regardless of review mode
- Skill presents gap table to user as read-only output
- Verdict is GAPS FOUND
- Skill offers to write an audit report but does not write automatically
Assertions:
- No director gate is invoked in any review mode
- Gap table is presented without auto-writing any file
- Optional report write is offered but not forced
- Skill does not modify any asset files
Protocol Compliance
- Reads GDDs and asset directory before producing gap table
- Gap table shows Content Type, Specified Count, Found Count, Missing Items
- Does not write files without explicit user approval
- No director gates are invoked
- Verdict is one of: COMPLETE, GAPS FOUND, MISSING CRITICAL CONTENT
Coverage Notes
- MISSING CRITICAL CONTENT verdict (vs. GAPS FOUND) is triggered when the missing item is tagged as critical in the GDD; this is not explicitly tested but follows the same detection path.
- The case where
assets/directory does not exist is not tested; the skill would produce a MISSING CRITICAL CONTENT verdict for all specified items.