Second Brain documentation

Décisions d'architecture (ADR)

Chaque choix structurant est consigné dans docs/adr/ : contexte, décision, alternatives écartées, conséquences.

Les ADR sont la source de vérité des choix techniques. Cette liste est construite à partir des fichiers du dépôt : une nouvelle ADR apparaît ici au prochain build.

N°DécisionStatut
0001Modèle générique : nœuds, aspects JSONB, liens typés
0002Définitions déclaratives en fichiers YAML
0003jOOQ sans JPA ni génération de code
0004Sécurité en modèle BFF avec OIDC
0005Champ référence : `format: node-ref` stocké dans les données d'aspectAccepté
0006Tags hiérarchiques : forme canonique, filtre par préfixe, sous-ressource dédiéeAccepté
0007Hiérarchie des nœuds : `parent_id` unique, déplacement par sous-ressource, corbeille sans cascadeAccepté
0008Éditeur Markdown : Tiptap, source préservée hors édition réelle, rendu marked + DOMPurifyAccepté
0009Liens wiki : le corps fait foi, index `node_link` de type `wiki`, résolution par clé de titreAccepté
0010Callouts et coloration du code : extension `marked`, highlight.js (core + 13 langages), classes autorisées explicitementAccepté
0011`#tags` du corps : grammaire commune avec les liens wiki, `node_tag.origin`, le corps fait foiAccepté
0012Fichiers : un fichier par nœud, contenu adressé par SHA-256 sur disque, service en même origine durciAccepté
0013Recherche plein texte : champs d'aspects indexés par le moteur, français sans accents, classement pondéréAccepté
0014Inbox explicite (`node.inbox_at`) et palette de commandes Ctrl+KAccepté
0015Changement de type d'un nœud existant (« Classer comme… »)Accepté
0016Modèles de nœud en YAML (`config/templates/`)Accepté
0017Valeurs par défaut dynamiques des aspects (`x-default`)Accepté
0018Export complet : archive ZIP en flux, un Markdown à frontmatter par nœud, fichiers d'origine, `links.json`Accepté
0019Sauvegardes planifiées : service compose dédié, instantanés horodatés (dump, fichiers, `config/`), restauration sur base vide testéeAccepté
0020Réindexation des corps existants : réconciliation au démarrage, événements avec `reason: "reindex"`Accepté
0021Charte graphique C3 « Atlas dense Anorys »Accepté
0022Déploiement : compose de prod, Caddy, OIDC par l'environnement, copie hors site resticAccepté
0023Workflow de statuts : transitions vérifiées à l'écriture, options bornées dans le formulaireAccepté
0024Mise en page « Atlas dense » de la maquette C3Accepté
0025Report rapide : boutons déclarés par l'aspect, appliqués par le serveurAccepté
0026États finaux du workflow et sous-tâchesAccepté
0027Dépendances « bloqué par » : liens bloquants et états finauxAccepté
0028Moteur de vues : langage fermé traduit en SQLAccepté
0029Vue table : tri serveur, regroupement, édition en ligneAccepté
0030Vue liste : une ligne par nœud, réutilisable par les dashboardsAccepté
0031Raccourcis clavier et choix de la paletteAccepté
0032Plusieurs fichiers par nœud : table `node_file` ordonnée, migration sans perteAccepté
0033Rattachement tâche-projet unique : lien dérivé d'un champ référenceAccepté
0034Application installable (PWA)Accepté
0035Vue kanban : colonnes, couloirs, limite WIP, déplacement qui écrit le champAccepté
0036Vues contextuelles : une vue paramétrée par le nœud affichéAccepté
0037Revue hebdomadaire guidée, prochaine action et fréquence de revueAccepté
0038Dashboards déclaratifs, accueil « Aujourd'hui », filtres de vue, regroupement par jour, tâches débloquéesAccepté
0039Masquer un nœud des vues jusqu'à sa date de débutAccepté
0040Mise en forme conditionnelle des vues et dates relativesAccepté
0041Actions rapides déclaratives et actions en lotAccepté
0042Capture en une ligne : dates en français, #tags et marques déclarées dans config/capturesAccepté
0043Recherche à opérateurs dans la palette, et vue née d'une rechercheAccepté
0045Aperçu d'un nœud au survol des liensAccepté
0046Tâches récurrentes, heures et récurrences dans la captureAccepté
0047Cadre de connecteurs et webhook de captureAccepté
0048Récents (Ctrl+E), Précédent et SuivantAccepté
0049Annuler partoutAccepté
0050Contacts, correspondants et numéro de rangementAccepté
0051Modèles avec enfants et aperçu avant créationAccepté
0054Bloc de vue dans le corps d'une noteAccepté
0055Commandes « / » et dates en ligne dans l'éditeurAccepté
0057Journal de suivi d'un nœudAccepté
0058Dossiers intelligents dans l'arborescenceAccepté
0059« Ajouter à… » et détection de doublon à la captureAccepté
0061Densité réglable, barre d'actions en bas et gestes sur mobileAccepté
0062Scan de document multipageAccepté
0063Mentions non liéesAccepté
0064Score d'urgenceAccepté
0065Effets des changements d'étatAccepté
0067Journée : ce qui s'est passé un jour donnéAccepté
0068Sections dans un projetAccepté
0070Planifier la journée avec les estimationsAccepté
0071Domaines comme nœudsAccepté
0072Notes chiffréesAccepté
0073Surlignage dans les PDF : annotations de fichiersAccepté
0075Titre automatique des liens collésAccepté
0076Champs requis du contrat API et corps videAccepté
0078Export CSV d'une vueAccepté
0079Bilan sobre dans la revue hebdomadaireAccepté
0080Cases cochées qui descendentAccepté
0081État des sauvegardes dans la barre d'étatAccepté
0082Canvas de nœuds : une toile libre dont les flèches créent de vrais liensAccepté
0084Vues de la semaine : tâches enlisées, sept prochains jours, courrier sans réponseAccepté
0085Notes à relire : date de vérificationAccepté
0086Jalon 4 : capture assistée, entrées vocales et accueil « Maintenant »Accepté
0087Moteur de dashboards : layout focus, barre de charge découpée, enchaînement, widgets digest et linksAccepté
0088Accueil « Maintenant » côté front : layout focus, lignes de l'accueil, barre de charge découpée, digest et pucesAccepté
0089Mode allégé de la coquille, accueil mobile et « Enchaîner »Accepté
0090Devinettes de capture sans marqueAccepté
0091Puces « deviné » / « saisi » et sélecteurs dans la captureAccepté
0092Inbox préremplieAccepté
0093Apprentissage des correctionsAccepté
0094Service de transcription vocale (dictée souveraine)Accepté
0095Connecteur Google Tasks en relèveAccepté
0096Intégration de « Dicter » : le texte dicté entre dans la capture assistéeAccepté
0097Plongements locaux : « Ressemble à », projet par le sens, doublonsAccepté
0100Copier le lien d'un nœudAccepté
0101Fil d'Ariane avec frèresAccepté
0102Onglets épinglés et rouvertureAccepté
0103États vides utilesAccepté
0104Impression d'une ficheAccepté
0105Favori « Envoyer vers l'inbox »Accepté
0106Minuteur sur une tâcheAccepté
0107Rituel du matin et du soirAccepté
0108Santé d'un projetAccepté
0109Archiver un projetAccepté