Second Brain documentation

ADR 0071 – Domaines comme nœuds

Accepté (2026-10-16, mode autonome)

← Toutes les décisions

ADR 0071 – Domaines comme nœuds

Statut : Accepté (2026-10-16, mode autonome)

Vague 4 du document d’idées : le domaine d’un projet (logique PARA : un champ de vie sans fin, qui regroupe des projets) est aujourd’hui une énumération fixe de projet.domaine (perso, maison, administratif, travail). On ne peut ni ajouter un domaine sans toucher à config/, ni lui donner une fiche, un corps ou des vues.

Décision

Configuration seule, aucun changement du moteur.

  • Aspect et type domaine : description et « niveau attendu » (texte libre, indexés par la recherche). Un domaine est un nœud ordinaire : corps Markdown, tags, liens, corbeille.
  • projet.domaineRef : champ référence (format: node-ref, x-target: { types: [domaine] }), titre « Domaine ». Le lien dérivé dans-domaine (ADR 0033) en fait un lien « Domaine » sur le projet et le groupe « Projets » dans les rétroliens du domaine.
  • Vues : domaines (dossier intelligent de l’arborescence, ADR 0058), projets-du-domaine (contextuelle, sur la fiche d’un domaine, ADR 0036 : projets ni terminés ni abandonnés, par échéance), projets-sans-domaine.
  • Tableau de bord domaines (ADR 0038) : les domaines, les projets sans domaine, un modèle « Domaine » pour en créer.
  • Coexistence plutôt que migration : l’énumération projet.domaine reste, retitrée « Domaine (ancienne étiquette) ». Les données existantes, les modèles, la recherche à opérateurs (domaine:maison) et la capture continuent de fonctionner ; l’ancienne étiquette pourra être retirée quand tous les projets auront un domaine (la vue « Projets sans domaine » sert à le vérifier).

Alternatives écartées

  • Migrer l’énumération en nœuds : il faudrait créer les nœuds et réécrire les projets au démarrage ; un champ calculé ou une règle de migration (jalon suivant) le fera mieux.
  • Domaine parent du projet dans l’arbre : un projet a déjà une place dans l’arbre choisie par l’utilisateur ; le lien dérivé suffit pour regrouper sans déplacer.
  • Tâches par domaine : les vues ne traversent pas une référence (tache.projet.domaineRef) ; reporté avec un éventuel tableau de bord contextuel par domaine.

Conséquences

  • Un domaine se crée depuis le modèle « Domaine » ou « + Nouveau ».
  • Test : ExampleDefinitionsTest (config valide) et DomainsIT (lien dérivé, vues, type de la cible).
  • Le modèle « Projet de rénovation » n’écrit plus l’ancienne étiquette (un domaine est un nœud, non portable dans un modèle) : un projet créé ainsi apparaît dans « Projets sans domaine » jusqu’à ce qu’on lui choisisse un domaine. L’aperçu au survol montre les deux champs.
  • Un domaine mis à la corbeille garde ses références : ses projets quittent « Projets du domaine » mais ne passent pas dans « Projets sans domaine » avant restauration ou changement de domaine.