vault irregular
Zeigt Dateien im Vault an, die nicht als reguläre Entität oder regulärer Asset-Datei gelten — typischerweise extern eingefügte Markdown-Dateien ohne NanoID, durch einen externen Editor korrumpierte Entitäten oder Asset-Binärdateien ohne Schema-Suffix.
Grundaufruf
apparat vault irregular
Apparat scannt content/ und assets/ und listet alles, was die Konventionen verletzt:
Vault "recherche" — irregular files: [entity] content/2026-04-19--notiz.md file.schema Content filename does not match the entity schema. Fix: apparat entity import <pfad> [entity] content/2026-04-20--broken--Ab12Cd34.md language.missing Pflichtfeld `language` fehlt oder ist leer. Fix: apparat entity import <pfad> [asset] assets/photo.jpg asset.schema Asset filename does not match the asset schema. Fix: apparat entity attach <entity-id> <pfad> --move (assign to an owning entity) 3 irregular file(s) found.
Jede Zeile zeigt den Befund (Rule-ID + Nachricht) und einen kurzen Fix-Hinweis. Der Exit-Code ist immer 0 — irreguläre Dateien sind eine Information, kein Fehler.
Was zählt als irregulär?
Eine Datei unter content/ ist irregulär, sobald eine dieser Bedingungen zutrifft:
- Dateiname-Schema verletzt — der Name entspricht nicht
YYYY-MM-DD--slug--nanoid.md. - Frontmatter fehlt oder parst nicht — kein
----Block oder defektes YAML. - Pflichtfeld fehlt — eines von
id,type,created,languageist nicht gesetzt oder hat eine nicht-konforme Form. - NanoID-Mismatch — die NanoID im Dateinamen weicht vom
id-Feld im Frontmatter ab.
Für Asset-Dateien unter assets/ gibt es nur ein einziges Kriterium: Dateiname verletzt das Asset-Schema (YYYY-MM-DD--slug--nanoid.<ext>). Assets haben kein eigenes Frontmatter und keine Pflichtfelder.
Die Sicht ist abgeleitet
vault irregular hält keinen eigenen Zustand vor — es ist bei jedem Aufruf ein frischer Scan. Eine Datei, die du extern korrigierst (z.B. im Editor das fehlende language-Feld einfügst), verschwindet beim nächsten Aufruf automatisch aus der Liste. Es gibt keine Persistenz, keine „Inbox", die gepflegt werden muss.
JSON-Ausgabe
Für Skripte oder Tooling:
apparat vault irregular --json
Gibt ein JSON-Objekt auf stdout aus:
{ "vault": { "name": "recherche", "url": "https://apparat.example.com/vaults/recherche", "path": "/home/max/vaults/recherche" }, "count": 3, "files": [ { "kind": "entity", "file": "content/2026-04-19--notiz.md", "issues": [ { "rule": "file.schema", "message": "..." } ] }, ... ] }
Vault wählen
Ohne --vault verwendet Apparat die übliche Auflösung (CWD → einziger registrierter Vault → interaktive Auswahl). Mit --vault übersteuerst du sie:
apparat vault irregular --vault=arbeit apparat vault irregular --vault=/home/max/vaults/arbeit
Wie man aufräumt
- Irreguläre Entitäten (Einträge mit
[entity]) fixt man perentity import. Das Kommando fragt interaktiv nach Pflichtfeldern, erhält die NanoID falls im Dateinamen vorhanden, und benennt die Datei auf das Schema. - Irreguläre Asset-Dateien (Einträge mit
[asset]) fixt man perentity attachmit--move: die Datei wird an eine bestehende Entität gehängt, kriegt einen schema-konformen Namen und die ursprüngliche Datei wird gelöscht. Oder einfach manuell löschen, wenn Müll.
Sanierung direkt aus dem Listing
Interaktiv bietet Apparat am Ende der Liste an, alle irregulären Entitäten in einem Rutsch zu sanieren:
3 irregular file(s) found. ┌ Sanitise the listed entities now? (Asset entries are always skipped.) │ ◯ Yes / ● No
Ein Ja startet pro Entity-Eintrag einen Durchlauf des entity import-Walkthroughs. Asset-Einträge werden mit einem Hinweis übersprungen, weil sie keinen standalone Import-Weg haben (sie müssen einer Entität zugeordnet werden — siehe oben).
Für Skripte oder wenn die Rückfrage stört, gibt es den Flag --fix:
apparat vault irregular --fix
Das überspringt die Rückfrage und geht direkt in den Sanitisierungs-Lauf. Kombination mit --no-interaction funktioniert als Best-Effort: Der pro-Datei-Walkthrough läuft non-interactive, d.h. jede Datei wird nur dann saniert, wenn sich alle Pflichtfelder aus ihrem Frontmatter oder den Config-Defaults auflösen lassen. Dateien, bei denen z.B. der Typ fehlt, werden mit klarer Fehlermeldung übersprungen und in der Summary gezählt.
Am Ende gibt es eine Zusammenfassung:
Sanitisation finished — 5 sanitised, 2 failed, 1 asset(s) skipped. Assets must be attached to an owning entity; run `apparat entity attach <entity-id> <pfad> --move` for each. ⚠ 2 import(s) did not complete — inspect the output above for the specific reason(s).
Der Exit-Code ist 0, wenn jede angepackte Entity-Sanierung erfolgreich war (Asset-Skips zählen nicht als Fehler); andernfalls 1.
Für eine umfassendere Konventionsprüfung inklusive Warnings (nicht-englische Frontmatter-Schlüssel, CamelCase-Tags etc.) ist vault validate das richtige Werkzeug. vault irregular ist der schnelle Blick auf „was muss ich sanieren, damit eine Datei als reguläre Entität zählt?" — und mit --fix der kürzeste Weg dahin.