Skip to content
Agent Orchestration
Skill

/asset-audit

Audit assets against naming conventions, file size budgets, format standards. Finds orphaned assets, missing references.

From plugin
claude-code-game-studios
39k78 skills49 agents

Claude Code

$ npx -y skills add Donchitos/Claude-Code-Game-Studios --skill asset-audit --agent claude-code

SKILL.md

asset-audit.SKILL.md
name: asset-audit
description: "Audit assets against naming conventions, file size budgets, format standards. Finds orphaned assets, missing references."
argument-hint: "[category|all]"
user-invocable: true
allowed-tools: Read, Glob, Grep, Bash(stat *), Bash(file *), Bash(od *), Bash(wc *), Bash(du *)
model: sonnet
# Read-only diagnostic skill — no specialist agent delegation needed

Asset Audit

Measuring file sizes and formats requires Bash

This skill's report asks for **file sizes against budgets**, **texture dimensions** (power-of-two), **audio sample rates**, and **last-modified times** for orphan detection. None of those are obtainable from `Read`/`Glob`/`Grep` — they need `stat` or a binary header read, so the read-only measuring commands (`stat`, `file`, `od`, `wc`, `du`) are pre-approved above; list files with Glob. Anything else asks first.

**If you cannot take a measurement, the cell is `NOT ASSESSED`, never an estimate.** A size budget table filled from guesses is worse than an empty one: it looks like evidence. This is a live fabrication vector even on a project full of real assets: if the template demands tables of numbers the tool allowlist cannot produce, the only way to complete it is to invent them.

---

Insufficient input — check this before producing any report

**If the inputs this skill needs do not exist, the answer is "could not run" — not a filled-in report.** Check first, and stop if the check fails.

1. List the inputs this skill reads (data files, prior reports, profiler output, test results, registries, source code). 2. For each, record `FOUND` or `ABSENT` — not "assumed present". 3. If any input required for a section is ABSENT, that section is **`NOT ASSESSED — NO DATA`**. Do not estimate it, do not infer it from an adjacent artifact, and do not leave a mandated cell to be filled by whoever reads the template next. 4. If **every** required input is ABSENT, stop and report **`NOT ASSESSED — NO DATA`** as the whole verdict, naming what was missing and which skill produces it.

**A verdict of `NOT ASSESSED` is a success.** It is the correct, useful answer to "what does the data say?" when there is no data. The failure mode this prevents is specific: a report whose verdict enum has no "could not run" state produces **false clean passes** — an asset audit returning COMPLIANT on a project with no assets and no standards, or a performance profile reporting ">99% headroom against a 16.67ms budget" with zero profiler data and no budget ever set.

**Absence of evidence is never evidence of absence.** A scan that finds no matches because there are no files to scan has not verified anything. Say which of the two happened — a reader cannot tell from a green result.

---

Phase 1: Read Standards

Read the art bible's Asset Standards section (`design/art/art-bible.md`) and any asset standards in the relevant design docs — size budgets and format rules come from there. The naming patterns are the ones in Phase 3 below, unless the art bible states its own. Read the art bible by section: find the heading with the Grep tool (pattern `^#`, content mode) and Read that range with offset and limit.

If neither states a size budget — or there is no art bible — the Size section is `NOT ASSESSED — no size budget set`, and the report names `/art-bible`, whose Asset Standards section sets budgets, formats and the naming convention.

---

Phase 2: Scan Asset Directories

Assets live under the engine's asset root: `assets/` on Godot, `Assets/` on Unity, `Content/` on Unreal. Resolve the engine and its code root per `.claude/docs/code-root-resolution.md`; that code root is the one Phase 3's orphan and missing-asset searches read. If it is unresolved, stop: `NOT ASSESSED — engine unresolved`, naming `/setup-engine`.

Scan the asset root using Glob:

  • **Godot** — `assets/art/**/*`, `assets/audio/**/*`, `assets/vfx/**/*`,

`assets/shaders/**/*`, `assets/data/**/*`

  • **Unity** — `Assets/**/*`, leaving out scripts (`*.cs`, `*.asmdef`) and `*.meta` files
  • **Unreal** — `Content/**/*.uasset` and `Content/**/*.umap`

The files matched are `Total assets scanned`. If there are none, the checks on scanned files — Naming, Size, Format, Orphaned — are `NOT ASSESSED — no assets under <asset root>`; the missing-asset search still runs.

---

Phase 3: Run Compliance Checks

**Naming conventions:**

  • Art: `[category]_[name]_[variant]_[size].[ext]`
  • Audio: `[category]_[context]_[name]_[variant].[ext]`
  • All files must be lowercase with underscores

These are Godot's conventions. Unity and Unreal name assets in PascalCase, so on those engines check names only against a naming rule the art bible states; with none, Naming is `NOT ASSESSED — no naming rule for <engine>` (name `/art-bible`).

**File standards:**

  • Textures: Power-of-two dimensions, correct format (PNG for UI, compressed for 3D), within size budget
  • Audio: Correct sample rate, format (OGG for SFX, OGG/MP3 for music), within duration limits.

`file` reports an audio file's format and sample rate but not its length, and no pre-approved tool here does; a duration budget is therefore `NOT ASSESSED — duration not measurable here`, naming the files it covers.

  • Data: Valid JSON/YAML, schema-compliant

On Unreal an asset file (`.uasset`, `.umap`) does not keep its source file's format or dimensions, so Format is `NOT ASSESSED` there; its size is still measured.

**Orphaned assets:** Search the code root for references to each asset file. Flag any with no references.

**Missing assets:** Search the code root for asset references and verify the files exist.

Both searches need code: if the code root holds no source files, Orphaned and Missing are `NOT ASSESSED — no code to search`. On Unity and Unreal most asset references live in scenes, prefabs and other assets rather than code, so an asset no code names may still be in use: Orphaned is `NOT ASSESSED` there.

---

Phase 4: Output Audit Report

Read more
@donchitos
Ships withclaude-code-game-studios

Turn Claude Code into a full game dev studio — 49 AI agents, 72 workflow skills, and a complete coordination system mirroring real studio hierarchy.

39k78 skills49 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
39.0k
Star history of Donchitos/Claude-Code-Game-Studios on GitHub, a chart by star-history.com

Other skills on claude-code-game-studios.

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

clawdis2w393k
@steipete@steipeteInstall Skill
computer-use

computer-use

Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and…

orca2w111k
@stablyai@stablyaiInstall Skill
agentmail

agentmail

Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…

paperclip2w109k
@paperclipai@paperclipaiInstall Skill
adr-create

adr-create

Create a new Architecture Decision Record with sequential numbering and AgentDB registration

@ruvnet@ruvnetInstall Skill

Questions about asset-audit.

Which coding agents can use asset-audit?
asset-audit installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.