Archiv
Der Bereich Archive/ des Vaults: Alles Abgeschlossene oder Aufgegebene kommt hierher, und
Archivieren ist immer ein Verschieben – niemals ein Löschen. Dauerhaftes Löschen ist /remove. Ein
Projekt und sein Backend-Pendant werden zusammen mit seinem Ordner archiviert und wiederhergestellt.
Basisschicht
Vor dem Handeln lesen, jeweils als ../../para/<datei>.md relativ zum Basisverzeichnis dieser Fähigkeit – diese enthalten die gemeinsamen Regeln, nicht aus dem Gedächtnis wiederholen:
../../para/paths.md– immer, einschließlich „Sprache“: die folgenden Zeichenfolgen stammen auslang/<SPRACHE>.md../../para/find-target.md– für die Unterbefehle, die ein Ziel benötigen../../para/move.md– immer../../para/confirm.md– immer../../para/dod.md– wenn das Ziel ein Projekt ist../../para/tasks.md– wenn das Ziel ein Projekt ist: die Operationen, Paarung, Bereichsprojekte../../para/note-format.md– beim Bearbeiten des Frontmatters; „Legacy-Felder“
Unterbefehle
Das erste Wort von $ARGUMENTS bestimmt den Unterbefehl. list und restore sind die einzigen
Schlüsselwörter – alles andere ist das Ziel einer Archivierung, also archiviert /archive projekt c
dieses Projekt. Leeres $ARGUMENTS → die drei Unterbefehle anzeigen und nachfragen.
<ziel> – ins Archiv verschieben
-
Das Ziel finden gemäß
find-target.md, Operation „Archivieren“. -
Wenn das Ziel ein Projekt ist:
- Zuerst offene Aufgaben prüfen. Die Aufgaben des zugehörigen Projekts lesen (
task.list, offen, mitproject_ref). Wenn Aufgaben offen sind, diese auflisten und einmal nachfragen (Tier 1.5), was damit geschehen soll: sie erledigen (task.completefür jede), in ein Bereichsprojekt verschieben (task.movemitarea) oder im archivierten Projekt belassen. Wo der Adaptertask.completeals „nicht unterstützt“ markiert, wird stattdessen die erste Option derarchive.close_in_app-Zeichenfolge verwendet, und es wird nichts dafür aufgerufen. Die Antwort vor dem Fortfahren ausführen. Unterpairing: separatehat ein ungepaartes Projekt mit einem legacy-Tasks/-Ordner keine Backend-Seite;dod.mdsagt, wie seine Aufgaben geprüft werden. Unterpairing: nonesind die Aufgaben die eigenenTasks/-Notizen des Projekts und werden mit dem Ordner verschoben. dod.mdanwenden und jede Bedingung nennen, die nicht erfüllt ist. Diese Datei entscheidet, ob das Ergebnis abgeschlossen oder aufgegeben ist; die Begründung hier nicht wiederholen und nicht abschwächen.- Den gesamten Ordner mit unveränderter interner Struktur von
Projects/PROJ-xxxx <titel>/nachArchive/PROJ-xxxx <titel>/verschieben. Der Name bleibt exakt, wie er ist: Die ID bleibt lebenslang beim Projekt, und die ID-Vergabe durchsuchtArchive/, um sie reserviert zu halten (project-id.md). project.archivewenn gepaart (immer, unterpairing: none; dort ein No-op).tasks_ref:im Überblick behalten – die Wiederherstellung benötigt es.- Legacy-Felder (
statusund der Rest) werden exakt so belassen, wie sie sind (note-format.md): Ein archiviertes Projekt behält seine Geschichte.
- Zuerst offene Aufgaben prüfen. Die Aufgaben des zugehörigen Projekts lesen (
-
Wenn das Ziel eine eigenständige Notiz ist (Bereich, Ressource oder eine verirrte aus
Inbox/):
die einzelne.mdnachArchive/verschieben.- Bereiche sind per Definition fortlaufend und werden normalerweise nicht archiviert. Nachfragen, was gemeint war (Tier 1.5) – meist bedeutet es, dass die Notiz veraltet ist, nicht dass die Verantwortung endete.
- Eine legacy-Aufgabennotiz innerhalb eines Projekts, das nicht archiviert wird: Das Verschieben zerstört nichts Nützliches und ist wahrscheinlich nicht das, was gemeint war – nachfragen (Tier 1.5). Aufgaben werden jetzt im Backend geschlossen.
-
Den Basisnamen auf Kollisionen prüfen vor dem Verschieben (
move.md,note-format.md). Ein Duplikat macht jeden Link zu diesem Namen mehrdeutig – Tier 1.5, nachfragen statt verschieben. -
Den Kreis schließen – nur Projekte. Vor dem Berichten eine Frage stellen und auf die Antwort warten: die
archive.ask_changed-Zeichenfolge. Nicht, was produziert wurde – Bedingung 2 vondod.mddeckt das Artefakt bereits ab – sondern, was jetzt anders ist, da es vorbei ist, und ob es den Aufwand wert war.Vor dem Fragen den Abschnitt
project.valuevorlesen – den Nutzen, den der Benutzer zu Beginn des Projekts notiert hat (note-format.md, „Drei Abschnitte zum Ergebnis“) – und fragen, ob er sich mit derarchive.expected-Zeichenfolge bewahrheitet hat ({value}= das, was sie notiert haben, z. B. „−5 Stunden Review pro Woche“). Wenn der Abschnitt leer oder nicht vorhanden ist, die Frage wie sie ist stellen, ohne eine Erwartung zu erfinden.Den Abschnitt
project.what_changedam Ende des Überblickstextes schreiben. Seine erste Zeile ist das Ergebnis gemäßdod.md– die Zeichenfolgeproject.outcome.completedoderproject.outcome.abandoned({reason}in den Worten des Benutzers) – dann die Antwort des Benutzers in seinen eigenen Worten; nicht in eigene Worte zusammenfassen. Wenn die Antwort etwas nennt, das das Projekt überdauert, spricht Bedingung 4 vondod.md; es nachAreas/oderResources/leiten, anstatt es im Archiv zu belassen.Wenn der Benutzer nicht antworten möchte, nur die Ergebniszeile schreiben und sagen, dass der Kreis übersprungen wurde. Niemals den Rest erfinden.
-
Berichten: was verschoben wurde, sein neuer Pfad, die Ergebniszeile, was mit offenen Aufgaben passiert ist, ob das Backend-Projekt archiviert wurde, etwaige Warnungen.
list – anzeigen, was im Archiv ist
Nur lesen. Niemals die Notizen über das hinaus öffnen, was unten genannt ist.
Archive/auflisten – sowohl Projektordner als auch lose.md-Dateien.- Für jeden Projektordner das Frontmatter des Überblicks (
id,deadline) und die erste Zeile des Abschnittsproject.what_changedlesen, falls der Abschnitt existiert. - Zwei Abschnitte in
SPRACHEausgeben, jeder alphabetisch, mit einer Anzahl in der Kopfzeile (die Zeichenfolgenarchive.list.projectsundarchive.list.notes). Das angezeigte Ergebnis ist die erste Zeile ohne ihren Punkt für ein abgeschlossenes Projekt, und nur das Wort vor dem Doppelpunkt für ein aufgegebenes (der Grund wird nicht wiederholt); der Termin ist die Zeichenfolgearchive.list.deadline; hier mit den englischen Zeichenfolgen dargestellt:
**Archivierte Projekte (N)**
1. PROJ-0005 Projekt D — Abgeschlossen, Termin 2026-09-30
2. PROJ-0007 Projekt F — Abgebrochen
3. PROJ-0003 Projekt C — kein Ergebnis aufgezeichnet
4. Altes Projekt — keine Metadaten
**Archivierte Notizen (N)**
1. Eine Notiz
Das Ergebnis wird nur gelesen, wenn die erste nicht leere Zeile des Abschnitts project.what_changed
exakt die Zeichenfolge project.outcome.completed ist oder mit der Zeichenfolge
project.outcome.abandoned bis zu ihrem Doppelpunkt beginnt. Andernfalls – der Abschnitt fehlt,
oder er beginnt mit den eigenen Worten des Benutzers, wie bei Projekten, die vor dieser Regel
archiviert wurden – die Zeichenfolge archive.no_outcome ausgeben; niemals ein Ergebnis aus
Freitext oder aus einem legacy-status ableiten. Die Zeichenfolge common.no_metadata – gar kein
Frontmatter. Ein leeres Archiv ist eine gültige Antwort: es klar sagen.
restore <ziel> – etwas zurückholen
- Das Ziel finden gemäß
find-target.md, Operation „Aus Archiv wiederherstellen“. - Herausfinden, wohin es zurückgeht. Ein Projekt kehrt nach
Projects/zurück. Eine Notiz kehrt in den PARA-Ordner zurück, den ihr Frontmatter impliziert –area/<slug>→Areas/,resource/<slug>→Resources/. Wenn die Tags es nicht sagen oder die Notiz älter als die Konvention ist, fragen, wo sie hingehört. Nichts wird nachInbox/zurückverschoben – es ist kein Ziel (paths.md). - Den Basisnamen auf Kollisionen prüfen wie oben, dann verschieben.
- Die Aufgabenseite – nur Projekte.
project.restoremit demref. Unterpairing: separateohnetasks_ref:anbieten, das Paar zu erstellen (tasks.md„Paarung“); bei Zustimmungproject.create, einentasks_ref:-Schlüssel hinzufügen und ausfüllen. Unterpairing: nonegibt es kein anzubietendes Paar. Angehakte Kontrollkästchen im Abschnittproject.dodund den Abschnittproject.what_changedso belassen, wie sie sind – sie zu bearbeiten ist Tier 2 und selten gewünscht. - Berichten: was zurückkam, wohin und der Zustand seines Backend-Pendants.
Hinweise
- Hier niemals etwas löschen. Archivieren ist immer ein Verschieben nach
Archive/; wenn der Benutzer etwas entfernt haben möchte, ist das/remove. - Alle benutzerseitigen Texte und jeder Frontmatter-Wert in
SPRACHE; feste Zeichenfolgen stammen auslang/<SPRACHE>.md.