Communityコーディング&開発github.com

アセットインベントリマネージャー

プロジェクトごとにアセットリスト(モデル、テクスチャ、スプライト、オーディオ、フォント、シェーダー、画像、アイコン、ベンダーライブラリ、データセット)を作成・管理し、各アセットの出典、ライセンス、クレジット、ステータス、検証を管理します。アセットの追加、置き換え、名称変更、削除、監査時や、アセットリスト・クレジット・ライセンス確認の要求時、出荷前の確認に使用します。複数のAIエージェント、Gitブランチ、ワークツリーで安全に利用できます。ゲーム、VR/XR、Webアプリ、汎用ソフトウェアに対応。

アセットインベントリマネージャー とは?

Asset Inventory Managerは、プロジェクト内のすべてのアセットを一元管理し、監査可能な状態を保つためのAIエージェントスキルです。各アセットの出典、ライセンス、クレジット、ステータス、検証情報をJSONファイルとして`.asset-inventory/`フォルダに保存し、Markdownビュー(デフォルト: `ASSET_LIST.md`)を自動生成します。CLIツール(Python 3.9+)を通じてすべての操作を行い、手動でのMarkdown編集は不要です。複数のAIエージェントやGitブランチ、ワークツリー間での協調動作を考慮して設計されており、ロック機構やフィールドレベルのマージドライバ、楽観的ロックによる競合回避機能を備えています。CLIは`add`、`update`、`remove`、`query`、`scan`、`audit`、`render`、`import-markdown`などのコマンドを提供し、アセットの追加から削除、監査、マークダウン再生成までをカバーします。また、ゲーム、VR/XR、Webアプリ、汎用ソフトウェア向けのプロファイルが用意されており、プロジェクトの種類に応じた初期設定が可能です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/BihaoBrianWang/asset-inventory-manager/tree/main/skills/asset-inventory-manager

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

アセットインベントリマネージャー は何をしますか?

プロジェクトごとに、唯一の信頼できる監査可能なアセットリストを保持します。データはプロジェクト内の.asset-inventory/フォルダ(アセットごとに1つのJSONファイル)に保存され、生成されたMarkdownビュー(デフォルトではASSET_LIST.md)も提供されます。Markdownビューは手動で編集せず、CLIを使用してレコードを変更し、Markdownを再生成してください。

CLI

すべての操作は、このスキルに含まれるstdlibのみに依存するPython 3.9+スクリプトを介して行います。

python <this-skill-dir>/scripts/asset_inventory.py <command> [options]

以下、aimはこのコマンドを表します。pythonがない場合やPython 3でない場合は、python3、次にpy -3(Windows)、次にuv run --no-project pythonを試してください。プロジェクト内の任意の場所から実行するか、-C <project>でプロジェクトを指定します。機械可読な出力を得るには--jsonを追加します。履歴にはアクションを実行したエージェントが記録されます。自動検出が正しくない場合は--agent <name>を渡すか、AIM_AGENT環境変数を設定してください。

タスクコマンド
インベントリの開始aim init --profile game|vr|web|software|generic [--git-setup]
アセットの登録aim add --name "Bow" --category model --path assets/bow.glb --origin third-party --license CC-BY-4.0 --source-url URL --attribution required --credit "..."
アセットの変更aim update ID --status final --verification approved --note "理由"
アセットの廃止/削除aim remove ID --note "Xに置き換え"(レコードは保持)/ --purge(完全削除)
アセットの検索aim query --category model --status placeholder、--path assets/ui/、--text bow、--format json|csv|ids
単一レコードの表示aim get ID
未登録ファイルの検出aim scan(--registerを追加するとneeds-triageレコードを作成)
すべてのチェックaim audit(--strictで警告もエラーとして扱う)
Markdownの再構築aim render(--checkでCI用)
コンテキスト(ブランチ、ワークツリー、ロック)aim info
古いMarkdownテーブルの移行aim import-markdown old_list.md
Gitコンフリクト後aim resolve、次にaim audit

用語(すべてのフィールドについてはschemaを参照):

  • status: planned(計画済み)、placeholder(仮、動作はするがプロトタイプ品質)、integrated(統合済み)、final(最終版)、retired(廃止)。
  • verification: unverified(未検証)、pending(保留中)、verified(技術的チェック通過)、approved(オーナー承認済み)。ユーザーまたはレビュアーが承認しない限り、approvedとマークしないでください。
  • origin: original(オリジナル)、third-party(サードパーティ)、procedural(手続き型生成)、ai-generated(AI生成)、unknown(不明)。サードパーティおよびAI生成アセットにはライセンスが必要です。

ワークフロー

  1. 確認 aim infoを実行します。インベントリが存在せず、ユーザーが作成を希望する場合は、最も近いプロファイルでaim initを実行し(profiles)、次にaim scanで既存のアセットを確認します。手書きのリストがすでにある場合は、aim import-markdownを使用してインポートし、importedタグが付いたレコードをレビューします。
  2. すべてのアセット変更を同じ変更セットに記録 アセットファイルを追加、置き換え、変更、移動、削除するときは、同じコミット内でそのレコードを更新します:新しいファイルにはadd、移動にはupdate --add-path/--remove-path、サードパーティファイルの編集にはupdate --modifications、不要になったものにはremove。
  3. 出典を正直に記録 実際のソースURL、作成者、ライセンス、必要なクレジット文をダウンロード時に取得します。不明な場合は--origin unknownを使用してその旨を明記し、ライセンスを推測しないでください。ライセンスの競合はユーザーにフラグを立てます。
  4. 状態を正直に保つ 計画済み、実装済み、検証済み、承認済みを区別します。次の保留中のチェックを--nextに設定してください。これはリスト上部の「要レビュー」セクションに表示されます。
  5. 終了前に監査 aim auditを実行します。エラーを修正し、残りの警告をユーザーに報告します。サマリーにリストのパスを含めてください。

コラボレーションルール(複数のエージェント、ブランチ、ワークツリー)

詳細:collaboration

  • 各Gitワークツリーは独自のインベントリコピーを持ちます。作業中のワークツリーのものを編集してください。別のエージェントのワークツリーを編集しないでください。
  • 書き込みは短時間のロック(.asset-inventory/.lock)を取得するため、同じフォルダを共有するエージェント間でファイルが破損することはありません。ロックが報告された場合は待ってから再試行し、aim infoで所有者プロセスが存在しないことを確認した場合のみロックを削除してください。
  • 更新の欠落を防ぐため、aim get IDで読み取り、次にaim update ID --expect-revision Nで更新します。終了コード3は他の誰かが変更したことを意味するため、再読み取りして再適用してください。
  • アセットごとに1ファイルであるため、並列ブランチ間での競合はまれです。aim git-setupを各クローンで1回実行し、フィールドレベルのマージドライバをインストールしてください。
  • マージ、リベース、チェリーピック後:aim resolve(レコードにコンフリクトマーカーや_conflictsが表示される場合)、次にaim render、aim audit、そしてコミットを行います。ASSET_LIST.mdを手動でマージしないでください。再生成してください。
  • 明示的なID(例:M01)は1つのブランチ上では問題ありませんが、デフォルトID(<prefix>-<name-slug>)は複数のブランチ間での番号衝突を回避します。

終了コード

0 正常終了 · 1 エラーまたは監査失敗 · 2 不正な使用法/不明な値 · 3 リビジョンまたはマージ競合が発生しているため対応が必要

関連スキル