Asset Inventory Manager
Führe eine einzige autoritative, prüfbare Asset-Liste pro Projekt. Die Daten liegen im eigenen .asset-inventory/ Ordner des Projekts (eine JSON-Datei pro Asset) und einer generierten Markdown-Ansicht (Standard: ASSET_LIST.md). Bearbeite die Markdown-Ansicht niemals von Hand: Ändere Datensätze mit der CLI, die die Ansicht neu generiert.
Die CLI
Alle Vorgänge erfolgen über dieses einzige, nur auf stdlib basierende Python 3.9+ Skript in diesem Skill:
python <this-skill-dir>/scripts/asset_inventory.py <befehl> [optionen]
Im Folgenden steht aim für diesen Befehl. Falls python fehlt oder nicht Python 3 ist, versuche python3, dann py -3 (Windows), dann uv run --no-project python. Führe es von einem beliebigen Ort innerhalb des Projekts aus, oder übergib -C <projekt>. Füge --json für maschinenlesbare Ausgabe hinzu. Der Verlauf zeichnet den handelnden Agenten auf: übergib --agent <name> oder setze AIM_AGENT, wenn die automatische Erkennung falsch ist.
| Aufgabe | Befehl |
|---|---|
| Ein Inventar starten | aim init --profil game|vr|web|software|generic [--git-setup] |
| Ein Asset registrieren | aim add --name "Bogen" --kategorie modell --pfad assets/bow.glb --herkunft drittanbieter --lizenz CC-BY-4.0 --quellen-url URL --nennung erforderlich --credit "..." |
| Ein Asset ändern | aim update ID --status final --verifizierung genehmigt --notiz "warum" |
| Zurücksetzen / löschen | aim remove ID --note "ersetzt durch X" (behält den Datensatz) / --purge |
| Assets finden | aim query --kategorie modell --status platzhalter, --pfad assets/ui/, --text bogen, --format json|csv|ids |
| Einzelner Datensatz | aim get ID |
| Nicht registrierte Dateien finden | aim scan (füge --register hinzu, um Bedarf-Prüfung-Datensätze zu erstellen) |
| Alles prüfen | aim audit (--strict lässt Warnungen zu Fehlern werden) |
| Markdown neu erstellen | aim render (--check für CI) |
| Kontext (Branch, Worktree, Sperre) | aim info |
| Eine alte Markdown-Tabelle migrieren | aim import-markdown alte_liste.md |
| Nach einem Git-Konflikt | aim resolve, dann aim audit |
Vokabular (siehe Schema für alle Felder):
- status:
geplant,platzhalter(funktionsfähig, Prototypqualität),integriert,final,zurückgesetzt. - verifizierung:
ungeprüft,ausstehend,geprüft(technische Prüfungen bestanden),genehmigt(vom Besitzer genehmigt). Markiere niemals alsgenehmigt, es sei denn, der Benutzer oder Prüfer hat es genehmigt. - herkunft:
eigen,drittanbieter,prozedural,ki-generiert,unbekannt. Assets von Drittanbietern und KI-generierte Assets erfordern eine Lizenz.
Arbeitsablauf
- Lokalisieren. Führe
aim infoaus. Wenn kein Inventar existiert und der Benutzer eines möchte, führeaim initmit dem nächstgelegenen Profil (Profile) aus, dannaim scan, um zu sehen, was bereits existiert. Für eine bestehende handgeschriebene Liste verwendeaim import-markdownund überprüfe die mitimportiertgekennzeichneten Datensätze. - Jede Asset-Änderung im selben Changeset erfassen. Wenn du eine Asset-Datei hinzufügst, ersetzt, änderst, verschiebst oder löschst, aktualisiere ihren Datensatz im selben Commit:
addfür neue Dateien,update --add-path/--remove-pathfür Verschiebungen,update --modificationsfür Bearbeitungen von Drittanbieterdateien,removewenn nicht mehr verwendet. - Herkunft ehrlich erfassen. Erfasse die tatsächliche Quellen-URL, den Autor, die Lizenz und den erforderlichen Credit-Text zum Zeitpunkt des Downloads. Wenn unbekannt, verwende
--origin unbekanntund sage dies; rate niemals eine Lizenz. Melde Lizenzkonflikte an den Benutzer. - Status wahrheitsgemäß halten. Unterscheide zwischen geplant, implementiert, geprüft und genehmigt. Setze die nächste ausstehende Prüfung in
--next; sie erscheint unter "Zu prüfen" am Anfang der Liste. - Vor dem Abschluss auditieren. Führe
aim auditaus. Korrigiere Fehler; melde verbleibende Warnungen an den Benutzer. Erwähne den Pfad der Liste in deiner Zusammenfassung.
Regeln für die Zusammenarbeit (mehrere Agenten, Branches, Worktrees)
Details: Zusammenarbeit.
- Jeder Git-Worktree hat seine eigene Kopie des Inventars; bearbeite die in dem Worktree, in dem du arbeitest. Bearbeite niemals den Worktree eines anderen Agenten.
- Schreibvorgänge verwenden eine kurze Sperre (
.asset-inventory/.lock), sodass sich Agenten, die einen Ordner teilen, nicht gegenseitig Dateien korrumpieren können. Wenn eine Sperre gemeldet wird, warte und wiederhole den Vorgang; lösche sie nur, wennaim infozeigt, dass der zugehörige Prozess nicht mehr existiert. - Um verlorene Aktualisierungen zu vermeiden, lies mit
aim get IDund verwende dannaim update ID --expect-revision N. Exit-Code 3 bedeutet, dass jemand anderes sie geändert hat: erneut lesen und erneut anwenden. - Eine Datei pro Asset bedeutet, dass parallele Branches selten in Konflikt geraten. Führe
aim git-setupeinmal pro Klon aus, um den Feld-Level-Merge-Treiber zu installieren. - Nach jedem Merge, Rebase oder Cherry-Pick:
aim resolve(wenn Datensätze Konfliktmarkierungen oder_conflictsaufweisen), dannaim render, dannaim audit, dann committen. Führe niemals einen manuellen Merge vonASSET_LIST.mddurch; generiere sie neu. - Explizite IDs wie
M01sind auf einem Branch in Ordnung; Standard-IDs (<präfix>-<name-slug>) vermeiden Nummerierungskollisionen über Branches hinweg.
Exit-Codes
0 ok · 1 Fehler oder fehlgeschlagenes Audit · 2 falsche Verwendung/unbekannter Wert · 3 Revisions- oder Merge-Konflikt, der Aufmerksamkeit erfordert.