Second Brain documentation

ADR 0070 – Planifier la journée avec les estimations

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

← Toutes les décisions

ADR 0070 – Planifier la journée avec les estimations

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

Idée de la vague 3 du document d’idées : le widget « À faire aujourd’hui » dit combien de temps la journée demande et prévient quand elle déborde, comme le « Today » de Things ou le plan de la journée de Sunsama. tache.estimation (minutes) existe déjà ; rien ne l’additionnait.

Décision

Deux clés facultatives sur un widget view de dashboard (ADR 0038), sans nouvelle API ni migration :

  • sum: aspect.champ : champ nombre d’un aspect, qui doit être une colonne de la vue (les lignes ne portent que leurs colonnes). Le widget additionne la valeur des lignes lues et affiche « Charge estimée : 5 h 30 ». Les lignes sans valeur sont comptées à part (« 2 sans estimation ») et n’ajoutent rien. Si la vue est tronquée, le total est précédé de « au moins ».
  • capacity: <minutes> (exige sum) : plafond du total. Au-delà, la ligne passe en erreur (icône d’avertissement, gras) : « Trop chargé de 30 min : reportez une tâche à demain. » Le total est « sur 6 h ». La capacité est dans config/dashboards/aujourdhui.yaml (360), pas dans le code.

Validation au chargement (DefinitionLoader.checkDashboard) : sum réservé aux widgets view, champ d’aspect connu de type nombre et colonne de la vue ; capacity réservé aux widgets view ; le méta-schéma refuse capacity sans sum.

Report par glisser-déposer : quand le widget a reschedule (déjà là pour « Replanifier »), ses lignes sont déplaçables à la souris. Pendant le glissement apparaît une zone « Déposer ici pour reporter à demain » ; lâcher la ligne écrit demain dans le champ reschedule par la même écriture que « Replanifier » (PATCH …/aspects/{aspect}, donc validation, workflow et journal du serveur). Le widget se relit, le total baisse.

Le calcul est côté navigateur (core/day-plan.ts) : la somme porte sur les lignes que la vue renvoie déjà, sans requête de plus.

reschedule allume aussi le menu « Replanifier » du widget (ADR 0038) : « À demain » reporte toute la liste en un clic, utile pour vider une journée perdue ; « À aujourd’hui » n’y fait que réécrire la date déjà portée. sum refuse le champ calculé d’urgence (ADR 0064), qui est un score et non une quantité.

Alternatives écartées

  • Somme calculée par le serveur (sum dans ViewResult) : plus exacte au-delà de la limite de lignes, mais ajoute un champ à l’API pour un cas où la vue du jour reste courte. À reprendre si une vue tronquée sert de plan.
  • Capacité par jour de semaine ou par utilisateur : une valeur unique suffit pour un usage personnel ; le YAML pourra la rendre variable plus tard.
  • Glisser entre colonnes de jours (vue semaine) : demande une vue calendrier, hors périmètre ; le report vers demain couvre le besoin cité.

Limites connues

  • Une ligne déplaçable ne permet plus de sélectionner son texte à la souris.
  • Le glisser-déposer est à la souris. Au clavier et au toucher, « Replanifier » (tout le widget) et le bouton « Demain » de l’aspect (fiche, ADR 0025) font le même report.