Le dossier de données (dans l’univers Markdown, on parle aussi de « vault ») est le dossier dans lequel TandemLoop enregistre toutes vos données. Il se compose uniquement de fichiers texte ordinaires — du Markdown avec un en-tête YAML — et se trouve à l’emplacement que vous choisissez lors de la configuration — en local ou dans iCloud Drive. Il peut ainsi être lu par d’autres outils, par des agents IA et bien sûr par vous-même avec n’importe quel éditeur de texte.
Structure des dossiers
{dossier de données}/
AGENTS.md ← mode d’emploi pour les agents IA
_inbox/ ← tâches saisies rapidement (boîte de réception GTD)
bereiche/ ← vos domaines (un sous-dossier chacun)
{domaine}/
area_{slug}.md ← métadonnées du domaine
_projects/ ← projets du domaine
_singles/ ← tâches isolées directement dans le domaine
_folders/ ← dossiers facultatifs
{dossier}/
fld_{slug}.md ← métadonnées du dossier
_projects/
_singles/
_config/ ← configuration (tags, attributs, thèmes, affichage, langue)
tags.yaml
attributes/ ← attributs personnalisés (un fichier par attribut)
{clé}.yaml
themes/ ← thèmes (un fichier par thème)
{clé}.yaml
agent.yaml ← dernier passage de votre agent IA (écrit par l’agent)
language.yaml ← langue du dossier de données
_views/ ← vues enregistrées (aussi dans des sous-dossiers)
vw_{slug}.yaml
_proposals/ ← propositions de l’IA
prop_{slug}.md
_archive/ ← entités archivées (ne pas modifier à la main)
_conflicts/ ← copies de conflit iCloud sauvegardées
_system/ ← schéma et documents de référence générés
Les répertoires préfixés par _ sont des dossiers système
gérés par l’app.
ID d’entité et préfixes de nom de fichier
Chaque entité porte dans le champ id de son frontmatter
un ID stable basé sur un UUID. Le nom de fichier en est indépendant et
suit un slug lisible. Seules les vues, les dossiers de vues
(vf_…) et les propositions portent leur slug dans l’ID. Des
fichiers plus anciens peuvent encore avoir des ID sous forme de slug
(par exemple area_arbeit).
| Entité | Préfixe | Exemple d’ID | Exemple de nom de fichier |
|---|---|---|---|
| Tâche | tsk_ |
tsk_f66f123ebac0402f… |
tsk_logo-entwerfen.md |
| Projet | prj_ |
prj_03ebb2b6286f4a9f… |
prj_website-relaunch.md |
| Domaine | area_ |
area_4f8e2d1c0b9a4e… |
area_arbeit.md |
| Dossier | fld_ |
fld_a1b2c3d4e5f647… |
fld_kunden.md |
| Jalon | ms_ |
ms_9fd12a6f440a4c… |
ms_sprint-1.md |
| Tag | tag_ |
tag_a1b2c3d4e5f647… |
(dans _config/tags.yaml) |
| Vue | vw_ |
vw_signal-tasks |
vw_signal-tasks.yaml |
| Proposition | prop_ |
prop_inbox-aufraeumen |
prop_inbox-aufraeumen.md |
| Attribut | attr_ |
attr_3f2e9a0b4c5d… |
_config/attributes/client.yaml |
| Thème | thm_ |
thm_7c1d0e9f2a4b… |
_config/themes/nordlicht.yaml |
Le contrat de données
Le format de fichier repose sur trois principes :
Lecture tolérante : L’app lit les fichiers même s’il manque des champs, s’ils contiennent des valeurs de statut inconnues ou s’ils proviennent de versions antérieures. Ainsi, un élément modifié à la main ou créé par un agent IA ne bloque pas toute l’app.
Écriture stable : Lorsqu’elle met à jour un fichier,
l’app conserve l’ordre des champs existants et les informations
présentes. Les champs inconnus ajoutés par un éditeur externe sont
préservés. Les champs ajoutés ultérieurement, comme un rappel
(remind_at), sont placés par l’app à la fin du
frontmatter ; les champs vides figurent avec la valeur
null, seuls quelques-uns comme remind_at et
repeat: sont totalement absents tant qu’ils ne sont pas
définis.
Lisible par les machines : Comme il s’agit de fichiers Markdown en texte brut, les agents IA et d’autres outils peuvent lire directement le dossier de données. Les modifications qu’ils peuvent effectuer directement sont décrites dans le chapitre Collaborer avec des agents IA.
Attributs personnalisés
Les attributs personnalisés (dans les réglages, sous
Attributs) ajoutent des champs supplémentaires aux
tâches, aux projets et aux jalons. Chaque attribut est un petit fichier
YAML dans _config/attributes/ — le nom du fichier est la
clé de l’attribut :
key: client
name: Client
type: select
applies_to:
- task
- project
options:
- ACME
- Contoso
description: Le client pour lequel le travail est réalisé.Les valeurs figurent dans le frontmatter du fichier concerné, sous
attributes: :
attributes:
client: ACME
budget: 12000
recette: '2026-11-30'- Types :
text,number(nombre),date('AAAA-MM-JJ'),boolean(oui/non),select(une des options),url(lien). - Les clés se composent de lettres minuscules, de
chiffres et de traits de soulignement, et ne doivent correspondre à
aucun champ intégré comme
statusoudue_date. Une clé ne peut plus être modifiée par la suite. - Les champs vides ne sont pas enregistrés. La suppression d’un attribut n’efface pas ses valeurs — elles restent dans les fichiers et apparaissent dans l’inspecteur sous forme de ligne en lecture seule.
- Dans les vues, les attributs sont disponibles sous la forme de
champs
attributes.<clé>pour filtrer, trier et grouper.
Les agents IA peuvent créer eux-mêmes des
attributs : Si vous demandez par exemple à un agent « Crée un
attribut Budget pour les projets », il écrit un fichier dans
_config/attributes/. L’app le détecte aussitôt et affiche
le nouveau champ.
Tâches récurrentes
La règle de répétition figure dans le frontmatter de la tâche sous
repeat:, par exemple chaque lundi :
repeat:
unit: week
days: [mon]unit vaut day, weekday,
week, month ou year ; s’y
ajoutent éventuellement every (intervalle),
day ou nth + weekday (règles
mensuelles), from: completion (à partir de l’achèvement)
ainsi que until ou count pour la fin. Les clés
series, occurrence et next sont
gérées par l’app elle-même. La référence complète pour les agents se
trouve dans _system/docs/data-model.md.
Thèmes
Chaque thème est un fichier YAML dans _config/themes/ —
le nom du fichier sans extension est sa clé (nordlicht.yaml
→ nordlicht). Un thème ne cite que les couleurs qui
diffèrent de celles par défaut :
name: Nordlicht
description: Bleu pétrole froid avec des surfaces sombres.
appearance: system # system, light ou dark
font_design: rounded # default, rounded, serif ou monospaced
colors:
primary:
light: "#0F766E"
dark: "#2DD4BF"
danger: "#E5484D" # une seule valeur pour clair et sombreLes couleurs s’écrivent en valeur hexadécimale entre guillemets, avec
l’opacité sous la forme #RRGGBBAA. Les clés de couleur
disponibles, celles qui sont dérivées d’autres couleurs et les valeurs
par défaut sont décrites dans _system/docs/themes.md —
TandemLoop tient cette référence à jour lui-même, afin que les agents IA
puissent concevoir des thèmes adaptés. Le thème actif est enregistré
séparément sur chaque appareil ; les fichiers de thème, eux, sont
synchronisés avec le dossier de données.
Le bloc de relations
Chaque fichier de tâche, de projet, de jalon et de dossier — sauf les tâches de la boîte de réception — contient à la fin de son corps une courte section lisible par les machines, qui enregistre le rattachement au parent sous forme de liens Markdown relatifs — ici pour une tâche du projet « Website Relaunch » :
<!-- tandemloop:relations:start -->
[Bereich: Arbeit](../../../area_arbeit.md) · [Projekt: Website Relaunch](../prj_website-relaunch.md)
<!-- tandemloop:relations:end -->
L’app tient ce bloc à jour automatiquement ; il n’est pas nécessaire de le modifier à la main ; les agents IA l’omettent dans les nouveaux fichiers et le retirent lors d’un déplacement. Il permet aux outils et aux agents de comprendre le rattachement hiérarchique même sans l’index en mémoire de l’app.
Langue du dossier de données
Les quelques textes que TandemLoop écrit lui-même dans les fichiers —
les libellés du bloc de relations (Bereich: /
Area:…), les titres de l’historique d’une tâche
(## Du — 21.3.2026 / ## You — 2026-03-21), les
sections d’une proposition (## Diskussion /
## Discussion) et les instructions pour les agents IA
(AGENTS.md, _system/docs/) — dépendent de la
langue du dossier de données. Elle est indiquée dans
_config/language.yaml :
language: enLes nouveaux dossiers de données sont en anglais ; les dossiers sans ce fichier (issus de versions antérieures) restent en allemand. La langue du dossier de données ne dépend pas de la langue de l’appareil — ainsi, tous les appareils écrivent les mêmes fichiers. À la lecture, TandemLoop reconnaît les deux variantes.
Modifier directement le dossier de données — avec
prudence. Vous pouvez ouvrir les fichiers avec n’importe quel
éditeur de texte. Attention : les ID ne doivent jamais être modifiés ;
dans le frontmatter des fichiers Markdown, les dates sont entre
apostrophes droites ('2026-03-14T09:30:00'), et dans les
fichiers de vue et de configuration (_views/,
_config/) sans guillemets ; le dossier
_archive/ ne doit pas être modifié à la main. Pour les
changements de structure (déplacer des projets, renommer des tags),
utilisez plutôt l’app ou le mécanisme des propositions — sinon, l’index
interne peut devenir incohérent.
Plusieurs appareils : synchronisation via iCloud Drive
TandemLoop n’a pas de serveur propre et ne transmet de lui-même aucune donnée sur le réseau. Comme votre dossier de données est un dossier tout à fait ordinaire, vous l’utilisez sur plusieurs appareils en le plaçant dans iCloud Drive. iCloud tient les fichiers à jour entre le Mac, l’iPad et l’iPhone ; TandemLoop lit le même dossier sur chaque appareil et télécharge au besoin depuis iCloud les fichiers manquants.
Réglages › Dossier de données › Changer de dossier de données… › choisir un répertoire dans iCloud Drive
Ne pas écrire sur deux appareils en même temps. Les services cloud synchronisent au niveau des fichiers et ne connaissent pas l’organisation interne de votre dossier de données. Dans la mesure du possible, modifiez vos données sur un seul appareil à la fois et attendez la fin de la synchronisation avant d’utiliser l’appareil suivant — sinon, des copies de conflit de certains fichiers peuvent apparaître. Il en va de même si un outil d’IA accède en même temps au même dossier de données dans le cloud.
La synchronisation ne remplace pas une sauvegarde. Une synchronisation cloud répercute aussi les suppressions sur tous les appareils. Pour de vraies sauvegardes, utilisez en plus Time Machine ou l’historique des versions de votre service cloud, par exemple.