Der Datenordner (in der Markdown-Welt auch „Vault“ genannt) ist der Ordner, in dem TandemLoop alle deine Daten speichert. Er besteht ausschließlich aus gewöhnlichen Textdateien — Markdown mit YAML-Kopfzeilen — und liegt dort, wo du ihn bei der Einrichtung wählst — lokal oder in iCloud Drive. Das macht ihn lesbar für andere Werkzeuge, KI-Agenten und natürlich für dich selbst mit jedem Texteditor.
Ordnerstruktur
{Datenordner}/
AGENTS.md ← Anleitung für KI-Agenten
_inbox/ ← Schnell erfasste Aufgaben (GTD-Eingangskorb)
bereiche/ ← Deine Bereiche (je ein Unterordner)
{bereich}/
area_{slug}.md ← Bereichs-Metadaten
_projects/ ← Projekte des Bereichs
_singles/ ← Einzelaufgaben direkt im Bereich
_folders/ ← Optionale Ordner
{ordner}/
fld_{slug}.md ← Ordner-Metadaten
_projects/
_singles/
_config/ ← Konfiguration (Tags, Attribute, Themes, Anzeige, Sprache)
tags.yaml
attributes/ ← Eigene Attribute (je Attribut eine Datei)
{schlüssel}.yaml
themes/ ← Themes (je Theme eine Datei)
{schlüssel}.yaml
agent.yaml ← Letzter Durchlauf deines KI-Agenten (schreibt der Agent)
language.yaml ← Sprache des Datenordners
_views/ ← Gespeicherte Views (auch in Unterordnern)
vw_{slug}.yaml
_proposals/ ← Proposals der KI
prop_{slug}.md
_archive/ ← Archivierte Entities (nicht manuell bearbeiten)
_conflicts/ ← Gesicherte iCloud-Konfliktkopien
_system/ ← Schema und generierte Referenzdokumente
Verzeichnisse mit _-Prefix sind Systemordner und werden
von der App verwaltet.
Entity-IDs und Dateinamen-Präfixe
Jede Entity trägt im id-Feld ihres Frontmatters eine
stabile UUID-basierte ID. Der Dateiname ist davon unabhängig und folgt
einem lesbaren Slug. Nur Views, View-Ordner (vf_…) und
Proposals tragen ihren Slug in der ID. Ältere Dateien können noch
Slug-IDs haben (z. B. area_arbeit).
| Entity | Präfix | Beispiel-ID | Beispiel-Dateiname |
|---|---|---|---|
| Aufgabe | tsk_ |
tsk_f66f123ebac0402f… |
tsk_logo-entwerfen.md |
| Projekt | prj_ |
prj_03ebb2b6286f4a9f… |
prj_website-relaunch.md |
| Bereich | area_ |
area_4f8e2d1c0b9a4e… |
area_arbeit.md |
| Ordner | fld_ |
fld_a1b2c3d4e5f647… |
fld_kunden.md |
| Meilenstein | ms_ |
ms_9fd12a6f440a4c… |
ms_sprint-1.md |
| Tag | tag_ |
tag_a1b2c3d4e5f647… |
(in _config/tags.yaml) |
| View | vw_ |
vw_signal-tasks |
vw_signal-tasks.yaml |
| Proposal | prop_ |
prop_inbox-aufraeumen |
prop_inbox-aufraeumen.md |
| Attribut | attr_ |
attr_3f2e9a0b4c5d… |
_config/attributes/kunde.yaml |
| Theme | thm_ |
thm_7c1d0e9f2a4b… |
_config/themes/nordlicht.yaml |
Der Datenvertrag
Das Dateiformat folgt drei Grundsätzen:
Tolerantes Lesen: Die App liest Dateien auch dann, wenn Felder fehlen, unbekannte Statuswerte enthalten sind oder Altdateien aus früheren Versionen stammen. Das sorgt dafür, dass ein manuell bearbeiteter oder von einem KI-Agenten angelegter Eintrag nicht die ganze App blockiert.
Stabiles Schreiben: Beim Aktualisieren einer Datei
bewahrt die App die Reihenfolge der vorhandenen Felder und bestehende
Informationen. Unbekannte Felder, die ein externer Editor hinzugefügt
hat, bleiben erhalten. Später ergänzte Felder wie eine Erinnerung
(remind_at) hängt die App ans Ende des Frontmatters; leere
Felder stehen als null, nur einige wie
remind_at und repeat: fehlen ganz, solange sie
nicht gesetzt sind.
Maschinenlesbar: Da es sich um plain-text Markdown-Dateien handelt, können KI-Agenten und andere Werkzeuge den Datenordner direkt lesen. Welche Änderungen sie direkt vornehmen dürfen, beschreibt das Kapitel Zusammenarbeit mit KI-Agenten.
Eigene Attribute
Eigene Attribute (in den Einstellungen unter
Attribute) erweitern Aufgaben, Projekte und
Meilensteine um zusätzliche Felder. Jedes Attribut ist eine kleine
YAML-Datei in _config/attributes/ — der Dateiname ist der
Schlüssel des Attributs:
key: kunde
name: Kunde
type: select
applies_to:
- task
- project
options:
- ACME
- Contoso
description: Für welchen Kunden die Arbeit erbracht wird.Die Werte stehen im Frontmatter der jeweiligen Datei unter
attributes::
attributes:
kunde: ACME
budget: 12000
abnahme: '2026-11-30'- Typen:
text,number(Zahl),date('JJJJ-MM-TT'),boolean(Ja/Nein),select(eine der Optionen),url(Link). - Schlüssel bestehen aus Kleinbuchstaben, Ziffern und
Unterstrichen und dürfen keinem eingebauten Feld wie
statusoderdue_dateentsprechen. Ein Schlüssel lässt sich nachträglich nicht ändern. - Leere Felder werden nicht gespeichert. Gelöschte Attribute entfernen keine Werte — sie bleiben in den Dateien und erscheinen im Inspector als schreibgeschützte Zeile.
- In Views stehen Attribute als Felder
attributes.schlüsselzum Filtern, Sortieren und Gruppieren bereit.
KI-Agenten können Attribute selbst anlegen: Bittest
du einen Agenten z. B. „Lege ein Attribut Budget für Projekte an”,
schreibt er eine Datei nach _config/attributes/. Die App
erkennt sie sofort und zeigt das neue Feld an.
Wiederkehrende Aufgaben
Die Wiederholungsregel steht im Frontmatter der Aufgabe unter
repeat:, zum Beispiel jeden Montag:
repeat:
unit: week
days: [mon]unit ist day, weekday,
week, month oder year; dazu
kommen optional every (Intervall), day bzw.
nth + weekday (Monatsregeln),
from: completion (ab Erledigung) sowie until
oder count als Ende. Die Schlüssel series,
occurrence und next pflegt die App selbst. Die
vollständige Referenz für Agenten steht in
_system/docs/data-model.md.
Themes
Jedes Theme ist eine YAML-Datei unter _config/themes/ —
der Dateiname ohne Endung ist sein Schlüssel
(nordlicht.yaml → nordlicht). Ein Theme nennt
nur die Farben, die vom Standard abweichen:
name: Nordlicht
description: Kühles Petrol mit dunklen Flächen.
appearance: system # system, light oder dark
font_design: rounded # default, rounded, serif oder monospaced
colors:
primary:
light: "#0F766E"
dark: "#2DD4BF"
danger: "#E5484D" # ein Wert gilt für hell und dunkelFarben stehen als Hex-Wert in Anführungszeichen, mit Deckkraft als
#RRGGBBAA. Welche Farb-Schlüssel es gibt, welche aus
anderen abgeleitet werden und welche Standardwerte gelten, steht in
_system/docs/themes.md — diese Referenz pflegt TandemLoop
selbst, damit KI-Agenten Themes passend entwerfen können. Welches Theme
aktiv ist, speichert jedes Gerät für sich; die Theme-Dateien selbst
synchronisieren mit dem Datenordner.
Der Relations-Block
Jede Aufgaben-, Projekt-, Meilenstein- und Ordnerdatei — außer Inbox-Aufgaben — enthält am Ende des Datei-Bodys einen kurzen maschinenlesbaren Abschnitt, der die Eltern-Verlinkung als relative Markdown-Links speichert, hier für eine Aufgabe im Projekt „Website-Relaunch“:
<!-- tandemloop:relations:start -->
[Bereich: Arbeit](../../../area_arbeit.md) · [Projekt: Website Relaunch](../prj_website-relaunch.md)
<!-- tandemloop:relations:end -->
Dieser Block wird von der App automatisch aktuell gehalten und muss nicht von Hand bearbeitet werden; KI-Agenten lassen ihn bei neuen Dateien weg und entfernen ihn beim Verschieben. Er macht die hierarchische Zuordnung für Werkzeuge und Agenten auch ohne den In-Memory-Index der App nachvollziehbar.
Sprache des Datenordners
Die wenigen Texte, die TandemLoop selbst in Dateien schreibt — die
Beschriftungen im Relations-Block (Bereich: /
Area: …), die Überschriften im Verlauf einer Aufgabe
(## Du — 21.3.2026 / ## You — 2026-03-21), die
Abschnitte eines Proposals (## Diskussion /
## Discussion) und die Anleitungen für KI-Agenten
(AGENTS.md, _system/docs/) —, richten sich
nach der Sprache des Datenordners. Sie steht in
_config/language.yaml:
language: enNeu angelegte Datenordner sind englisch; Datenordner ohne diese Datei (aus älteren Versionen) bleiben deutsch. Die Sprache des Datenordners hängt nicht von der Gerätesprache ab — dadurch schreiben alle Geräte dieselben Dateien. Beim Lesen erkennt TandemLoop beide Varianten.
Direkt im Datenordner editieren — mit Bedacht. Du
kannst Dateien mit jedem Texteditor öffnen. Beachte dabei: IDs dürfen
niemals geändert werden; Datumswerte stehen im Frontmatter von
Markdown-Dateien in einfachen Anführungszeichen
('2026-03-14T09:30:00'), in View- und Konfigurationsdateien
(_views/, _config/) ohne Anführungszeichen;
der _archive/-Ordner sollte nicht manuell bearbeitet
werden. Für strukturelle Änderungen (Projekte verschieben, Tags
umbenennen) nutze besser die App oder den Proposal-Mechanismus — sonst
kann der interne Index inkonsistent werden.
Mehrere Geräte: Synchronisation über iCloud Drive
TandemLoop hat keinen eigenen Server und überträgt von sich aus keine Daten ins Netz. Weil dein Datenordner ein ganz normaler Ordner ist, nutzt du ihn auf mehreren Geräten, indem du ihn in iCloud Drive legst. iCloud hält die Dateien zwischen Mac, iPad und iPhone aktuell; TandemLoop liest auf jedem Gerät denselben Ordner und lädt fehlende Dateien bei Bedarf aus iCloud nach.
Einstellungen › Datenordner › Datenordner wechseln … › ein Verzeichnis in iCloud Drive wählen
Nicht auf zwei Geräten gleichzeitig schreiben. Cloud-Dienste synchronisieren auf Dateiebene und kennen den inneren Aufbau deines Datenordners nicht. Bearbeite deine Daten daher möglichst nur auf einem Gerät zur Zeit und warte, bis die Synchronisation abgeschlossen ist, bevor du das nächste Gerät verwendest — sonst können Konfliktkopien einzelner Dateien entstehen. Dasselbe gilt, wenn ein KI-Werkzeug gleichzeitig auf denselben Datenordner in der Cloud zugreift.
Synchronisation ersetzt kein Backup. Eine Cloud-Synchronisation spiegelt auch Löschungen auf alle Geräte. Für echte Sicherungen nutze zusätzlich z. B. Time Machine oder die Versionsverläufe deines Cloud-Dienstes.