asset-audit について
ゲームプロジェクト向けの読み取り専用アセット監査スキルです。定められたアート基準に照らして命名、サイズ、形式、参照を確認し、測定や入力ができない項目は推測せず未評価とします。
主な機能
- 01アートとアセットの基準を参照
- 02エンジン別のアセットディレクトリを走査
- 03命名、サイズ、ファイル形式を確認
- 04孤立アセットと欠落ファイルを検索
- 05データがない項目を未評価に設定
活用シーン
- 01アセットがプロジェクト基準に適合するか確認
- 02サイズ予算超過のファイルを検出
- 03コードから参照されないアセットを特定
- 04参照先のファイルがないアセットを発見
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ donchitos/ claude-code-game-studios --skill asset-auditインストール後、Claude Code で/asset-auditを入力して読み込まれたか確認します。
詳細
アセット監査
ファイルサイズと形式の測定には Bash が必要です
このスキルのレポートでは、予算に対するファイルサイズ、テクスチャの寸法
(2 の累乗)、音声のサンプルレート、孤立ファイルの検出に用いる
最終更新時刻を求めます。これらは Read/Glob/Grep では取得できません。stat の実行かバイナリヘッダーの読み取りが必要なため、読み取り専用の測定コマンド(stat、
file、od、wc、du)は上記で事前承認されています。ファイルの一覧表示には Glob を使います。それ以外は、まず許可を求めてください。
測定できない場合、セルには推定値ではなく、必ず NOT ASSESSED と記載します。 推測で埋めたサイズ予算の表は、空欄の表よりも有害です。証拠があるように見えてしまいます。実際のアセットが多数あるプロジェクトであっても、これは現実的な捏造の温床になります。テンプレートで数値の表が求められている一方、ツールの許可リストではそれを作成できない場合、テンプレートを完成させるには数値を捏造するしかなくなるためです。
入力が不十分 — レポートを作成する前に確認してください
このスキルで必要な入力が存在しない場合、回答は記入済みのレポートではなく「実行できませんでした」です。 まず確認し、確認に失敗したらそこで中止してください。
- このスキルが読み取る入力(データファイル、過去のレポート、プロファイラー出力、テスト結果、レジストリ、ソースコード)を列挙します。
- それぞれについて「存在するはず」ではなく、
FOUNDまたはABSENTを記録します。 - あるセクションに必須の入力が一つでも
ABSENTの場合、そのセクションはNOT ASSESSED — NO DATAです。推定したり、隣接する成果物から推論したり、次にテンプレートを読む人が埋めるよう必須セルを空欄のままにしたりしないでください。 - 必要な入力がすべて
ABSENTの場合は中止し、全体の判定としてNOT ASSESSED — NO DATAを報告します。何が不足していたか、またそれを生成するスキルを明記してください。
NOT ASSESSED という判定は成功です。 データがないとき、「データは何を示しているか」という問いに対する、正確で役に立つ答えです。これによって防げるのは、具体的には次のような失敗です。判定の選択肢に「実行できませんでした」がないレポートは、誤った合格判定を生みます。たとえば、アセットも基準もないプロジェクトに対するアセット監査が COMPLIANT を返したり、プロファイラーのデータがゼロで予算も一度も設定されていないのに、パフォーマンスプロファイルが「16.67ms の予算に対して 99% 超の余裕」と報告したりするケースです。
証拠がないことは、不在の証拠にはなりません。 スキャン対象のファイルが存在しないため一致が見つからなかったスキャンでは、何も検証できていません。そのどちらが起きたのかを明記してください。結果が緑色で表示されているだけでは、読む人には判断できません。
Phase 1: 基準を確認する
アートバイブルのアセット基準セクション(design/art/art-bible.md)と、関連するデザインドキュメント内のアセット基準を読みます。サイズ予算と形式のルールはそこから取得します。命名パターンは、アートバイブルに独自の記載がない限り、以下の Phase 3 に記載されたものを使います。アートバイブルはセクション単位で読みます。Grep ツールで見出し(パターン ^#、コンテンツモード)を探し、該当範囲を offset と limit を指定して Read で読み取ります。
どちらにもサイズ予算が記載されていない場合、またはアートバイブルが存在しない場合、Size セクションは NOT ASSESSED — no size budget set とします。また、予算、形式、命名規則を定める Asset Standards セクションがある /art-bible をレポートに記載します。
Phase 2: アセットディレクトリをスキャンする
アセットはエンジンのアセットルートにあります。Godot は assets/、Unity は Assets/、Unreal は Content/ です。エンジンとコードルートは .claude/docs/code-root-resolution.md に従って解決します。このコードルートを Phase 3 の孤立ファイル検索とアセット欠落検索で読み取ります。解決できない場合は中止し、NOT ASSESSED — engine unresolved として /setup-engine を明記します。
Glob を使ってアセットルートをスキャンします。
- Godot —
assets/art/**/*、assets/audio/**/*、assets/vfx/**/*、assets/shaders/**/*、assets/data/**/* - Unity —
Assets/**/*。スクリプト(*.cs、*.asmdef)と*.metaファイルは除外します。 - Unreal —
Content/**/*.uassetとContent/**/*.umap
一致したファイルを「スキャンしたアセットの合計」とします。該当するファイルがない場合、スキャン対象ファイルに対するチェック(Naming、Size、Format、Orphaned)は NOT ASSESSED — no assets under <asset root> となります。アセット欠落の検索は引き続き実行します。
フェーズ 3:準拠チェックを実行する
命名規則:
- アート:[category][name][variant]_[size].[ext]
- オーディオ:[category][context][name]_[variant].[ext]
- すべてのファイル名は小文字とアンダースコアを使用します
これらは Godot の規則です。Unity と Unreal ではアセット名に PascalCase を使用するため、
それらのエンジンでは、アートバイブルに記載された命名規則がある場合のみ、その規則に
照らして名前を確認します。記載がない場合、Naming は NOT ASSESSED — no naming rule for <engine> です(名前を /art-bible に指定)。
ファイルの基準:
- テクスチャ:2 の累乗の寸法、適切な形式(UI は PNG、3D は圧縮形式)、サイズ予算内であること
- オーディオ:適切なサンプルレートと形式(効果音は OGG、音楽は OGG/MP3)、再生時間の上限内であること。
fileはオーディオファイルの形式とサンプルレートを報告しますが、長さは報告せず、 ここで事前承認されたツールにも長さを測定できるものはありません。そのため、再生時間の予算は、 対象ファイルを明記してNOT ASSESSED — duration not measurable hereとなります。 - データ:有効な JSON/YAML であり、スキーマに準拠していること
Unreal では、アセットファイル(.uasset、.umap)に元ファイルの形式や寸法は保持されないため、
Format は NOT ASSESSED となります。サイズは引き続き測定します。
孤立したアセット: コードルートを検索し、各アセットファイルへの参照を確認します。参照がないものにはフラグを付けます。
不足しているアセット: コードルートでアセットへの参照を検索し、ファイルが存在することを確認します。
どちらの検索にもコードが必要です。コードルートにソースファイルがない場合、Orphaned と
Missing は NOT ASSESSED — no code to search となります。Unity と Unreal では、ほとんどのアセット参照は
コードではなくシーン、プレハブ、その他のアセットに含まれているため、コード内で名前が参照されていないアセットも使用中の可能性があります。したがって、これらのエンジンでは Orphaned は NOT ASSESSED となります。
フェーズ 4:監査レポートを出力する
# Asset Audit Report -- [Category] -- [Date]
## Summary
- **Total assets scanned**: [N]
- **Naming violations**: [N]
- **Size violations**: [N]
- **Format violations**: [N]
- **Orphaned assets**: [N]
- **Missing assets**: [N]
- **Sections not assessed**: [none | each section and why]
## Naming Violations
| File | Expected Pattern | Issue |
|------|-----------------|-------|
## Size Violations
| File | Budget | Actual | Overage |
|------|--------|--------|---------|
## Format Violations
| File | Expected Format | Actual Format |
|------|----------------|---------------|
## Orphaned Assets (no code references found)
| File | Last Modified | Size | Recommendation |
|------|-------------|------|---------------|
## Missing Assets (referenced but not found)
| Reference Location | Expected Path |
|-------------------|---------------|
## Recommendations
[Prioritized list of fixes, one per violation, each naming the change — the
target resolution or compression for a size violation, the corrected name for a
naming violation, the target format for a format violation]
## Verdict: [NOT ASSESSED / COMPLIANT / WARNINGS / NON-COMPLIANT]
調査結果に基づいて判定を選択します。最初に一致したものを使用します。
- NON-COMPLIANT — サイズ違反がある、またはコードから参照されているアセットが存在しない
- WARNINGS — 命名、形式、または孤立したアセットに関する調査結果のみ
- NOT ASSESSED — 監査対象の範囲を網羅していない場合:データがまったくない(上記のパス)、スキャンしたアセットが 0 件、またはいずれかのセクションが
NOT ASSESSED。該当するものを明記します。 測定された違反は未確認の項目よりも対応しやすいため、この判定は 2 つの調査結果による判定より下位で、COMPLIANT より上位です。 - COMPLIANT — アセットを 1 件以上スキャンし、すべてのセクションを評価済みで、調査結果がない場合
このスキルは読み取り専用です。レポートを作成しますが、ファイルは書き込みません。
フェーズ 5:次のステップ
- フェーズ 3 のパターン(または独自の規則が記載されている場合は、アートバイブルの規則)を使って、命名違反を修正します。
- 基準が不足している場合は、
/art-bibleを実行して Asset Standards セクションを記述します。 - 手動で確認した後、孤立していることが確定したアセットを削除します。
/content-auditを実行して、アセット数を GDD で指定された要件と照合します。