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