entity rename

Benennt eine Entität um: neuer Titel, daraus abgeleiteter neuer Slug, angepasster Dateiname, frischer updated-Stempel. Wenn die H1 im Body exakt dem alten Titel entsprach, wird sie ebenfalls mitgezogen.

Die NanoID bleibt unverändert — sie ist die stabile Identität der Entität. Alle internen Verlinkungen, die über die NanoID aufgelöst werden, folgen automatisch.

Einfachster Fall

apparat entity rename V1StGXRa "Maria Mustermann"

Apparat sucht die Entität mit dieser NanoID, zeigt die geplante Änderung und fragt nach Bestätigung:

About to rename "Maria Beispiel" (id: V1StGXRa) to "Maria Mustermann" in vault "recherche"
  → file:    2026-04-19--maria-beispiel--V1StGXRa.md
  → the NanoId suffix is preserved.
Continue? [Y/n]

Default ist Y. Mit yes (oder Enter) wandert die Datei atomar auf den neuen Namen, der Body und die H1 werden mitgezogen, updated bekommt einen frischen Zeitstempel.

Bestätigungszeile nach erfolgreichem Rename:

Renamed entity V1StGXRa in vault "recherche".
  2026-04-19--maria-beispiel--V1StGXRa.md  →  2026-04-19--maria-mustermann--V1StGXRa.md

Titel interaktiv eingeben

Ohne Titel-Argument fragt Apparat im interaktiven Modus nach. Der aktuelle Titel ist als Default gesetzt:

apparat entity rename V1StGXRa
 ┌ New title ───────────────────────────────────────────────────┐
 │ Maria Beispiel                                               │
 └──────────────────────────────────────────────────────────────┘

Du tippst den neuen Titel, Enter, und der übliche Bestätigungs-Prompt greift.

Nicht-interaktiver Modus

Im --no-interaction-Modus (Skripte, CI) muss der Titel als Argument mitkommen. Der Bestätigungs-Prompt entfällt — Rename ist durch ein zweites Rename jederzeit rückgängig zu machen, --force ist nicht nötig:

apparat entity rename V1StGXRa "Maria Mustermann" --no-interaction

Fehlt der Titel, bricht das Kommando mit klarem Hinweis ab:

apparat entity rename V1StGXRa --no-interaction
# New title is required in non-interactive mode (pass it as the positional argument).
# Exit code: 1

Was genau geändert wird

Dateiname

Aus 2026-04-19--maria-beispiel--V1StGXRa.md wird 2026-04-19--maria-mustermann--V1StGXRa.md. Das Datumspräfix (aus created) und die NanoID bleiben unverändert — nur der Slug-Teil folgt dem neuen Titel.

Der neue Slug entsteht aus dem Titel nach denselben Regeln wie bei entity new: Kleinschreibung, Umlaute transliteriert (äae), maximal 60 Zeichen, an Wortgrenzen abgeschnitten falls zu lang.

Wenn der neue Titel denselben Slug ergibt wie der alte (Minimaländerung wie „Maria Beispiel" → „Maria Beispiel!"), bleibt der Dateiname unverändert und nur das Frontmatter wird angepasst:

Updated title on entity V1StGXRa in vault "recherche" (filename unchanged).
  File: 2026-04-19--maria-beispiel--V1StGXRa.md

Frontmatter

Body — H1-Spiegelung

Wenn die erste nicht-leere Zeile im Body exakt # <alter-title> war, wird sie zu # <neuer-title>. Das trifft den Default-Fall von entity new, wo die H1 bewusst aus dem Titel erzeugt wird.

Abweichungen werden respektiert: steht im Body eine andere H1 (z.B. # Andere Überschrift oder # Maria Beispiel, Kollegin), bleibt sie unberührt. Apparat geht davon aus, dass der Nutzer sie bewusst so gewählt hat.

Alle weiteren Zeilen des Bodys bleiben bit-identisch.

Linker-Propagation

Andere Dateien im Vault können den alten Dateinamen als Text in einem Markdown-Link enthalten. Apparat schreibt diese Stellen automatisch mit: jeder Treffer in content/*.md wird im selben Journal-Schritt auf den neuen Basenamen aktualisiert.

Renamed entity V1StGXRa in vault "recherche".
  2026-04-19--maria-beispiel--V1StGXRa.md  →  2026-04-19--maria-mustermann--V1StGXRa.md

Rewrote 2 other file(s) that referenced the old filename:
  - content/2024-11-03--wcag-notiz--BbBbBbBb.md
  - content/2025-07-22--projekt-apparat--Kp3jRq.md

Die Umschrift läuft über dasselbe Journal wie entity delete: sollte ein Rename mitten in der Propagation abbrechen (Stromausfall, Ctrl-C), setzt der nächste apparat-Aufruf den Sweep automatisch dort fort, wo er aufgehört hat. Halb-umgeschriebene Linker bleiben also kein Dauerzustand.

Gibt es keine Treffer, entfällt die Zeile ganz.

Vault-Auswahl

Wie bei allen Entity-Kommandos: ohne --vault greift die übliche Auto-Lokalisierung (CWD-Erkennung, einziger registrierter Vault, interaktive Auswahl). Explizit:

apparat entity rename V1StGXRa "Neu" --vault=arbeit
apparat entity rename V1StGXRa "Neu" --vault=/home/max/vaults/recherche

Wirkungs­bereich

entity rename betrifft Titel, Slug, Dateiname und — wenn die H1 im Body exakt dem alten Titel entsprach — die H1. Das created-Datum bleibt unverändert (auch der Datums­präfix im Dateinamen folgt created, nicht dem Rename-Datum). Der restliche Body — Fließtext, Listen, Code-Blöcke, weitere Überschriften — bleibt unangetastet. Apparat schreibt ausschließlich in Dateien des Vault-content/-Verzeichnisses; externe Notizen, Build-Artefakte oder Backups bleiben unberührt.

Fehler