Digest de réunions
Outils : opérations par rôle d'étape (
pm.*,email.*,calendar.*,docs.*,files.*,comms.*). Résolvez chaque opération viaContext/agent-config.md→ Pile d'outils et l'adaptateur qu'elle nomme (.claude/adapters/README.md). Un rôle défini ànone→ ignorer cette étape.
Récupérez toutes les réunions d'un jour cible, trouvez les notes ou la transcription de chacune, produisez un résumé structuré et enregistrez-le localement. Le jour cible par défaut est aujourd'hui ; passez "yesterday" pour traiter le jour précédent.
Configuration
Lisez Context/agent-config.md au début. Utilisez :
timezone— pour tous les calculs de datebase_directory— pour la construction des chemins de fichiers et la vérification d'idempotencecalendar_exclusions— liste de motifs de titres de réunions à ignorer- Pile d'outils → Notes de réunion — d'où provient le contenu des réunions
Lisez le fichier d'objectifs (chemin dans agent-config) pour reconnaître les noms de projets et jalons à l'étape 4.
Instructions
Exécutez toutes les étapes en séquence. Ne demandez pas de confirmation entre les étapes sauf indication explicite de pause.
Étape 1 — Récupérer toutes les réunions non traitées du jour cible
Phase A — Calendrier : obtenir la liste des réunions
-
Calculez la date cible dans le fuseau horaire de l'utilisateur. Par défaut = aujourd'hui ; si l'utilisateur a passé "yesterday", soustrayez un jour.
-
calendar.events(début de la date cible, fin de la date cible)dans le fuseau horaire de l'utilisateur. -
Filtrez pour ne garder que les vraies réunions. Supprimez tout événement où :
summarycorrespond à un motif danscalendar_exclusions- c'est un bloc de concentration ou de lieu de travail
- la liste
attendeesest vide ou ne contient que l'utilisateur (blocs solo)
-
Triez chronologiquement (du plus ancien au plus récent). C'est la liste ordonnée des réunions à traiter.
Phase B — Vérification d'idempotence
Pour chaque réunion :
- Déduisez le nom de fichier attendu :
YYYY-MM-DD - [Nom de la réunion].mden utilisantsummaryde l'événement calendrier. Assainissez le nom : remplacez/,\,:et|par-, supprimez les emojis, réduisez les espaces répétés. - Vérifiez si un fichier portant ce nom existe déjà dans
[base_directory]/Context/Meeting Notes/. - S'il existe et contient déjà une section
## Summary→ ignorez cette réunion. Sortie : "Des notes existent déjà pour [nom de la réunion] — ignorée." - S'il existe en tant que notes brutes (pas de
## Summary) → utilisez son contenu comme source et continuez. - S'il n'existe pas → passez à la Phase C.
Phase C — Trouver le contenu de la réunion
Consultez les sources dans cet ordre et utilisez la première qui a du contenu :
- Fichier de notes brutes — de l'étape 4 de la Phase B.
- Sources configurées — chaque entrée dans agent-config → Sources de notes de réunion, dans l'ordre. Typiques :
- Pièces jointes au calendrier — un document de notes attaché à l'événement →
files.readavec son ID de fichier. "Introuvable" signifie qu'il n'est pas partagé avec l'utilisateur — ignorez silencieusement docs.meeting_notes(date)— correspondance sur le titre ou la fenêtre de temps (±30 min) ; lisez avecdocs.read
- Pièces jointes au calendrier — un document de notes attaché à l'événement →
- Description de l'événement calendrier — utilisez-la seulement si elle contient de vraies notes, pas seulement un ordre du jour ou un lien vidéo.
- Demandez à l'utilisateur — listez les réunions qui n'ont toujours pas de contenu dans un seul message : "Aucune note trouvée pour : [liste]. Collez des notes ou une transcription pour celles que vous souhaitez traiter, ou dites skip."
Si une réunion n'a toujours pas de contenu → marquez-la comme "aucune note disponible" et ignorez-la.
Phase D — Rapport
Après avoir traité toutes les réunions, rapportez :
- Combien ont été traitées
- Combien ont été ignorées (avec la raison : existe déjà / aucune note)
Étape 2 — Lire le contexte
Avant de traiter le contenu des notes, lisez :
GOALS.md— pour comprendre les projets et objectifs actifsContext/Memory/brain.md— pour comprendre comment l'utilisateur pense, son vocabulaire, et ce qu'il considère comme une décision vs. une discussion
Étape 3 — Analyser le contenu des notes
Pour chaque réunion avec contenu, extrayez quatre éléments :
A. Résumé 2–3 phrases. Priorité au signal : de quoi parlait la réunion et quel a été le résultat ou changement clé. Pas une liste de sujets abordés — un énoncé de résultat cohérent. Utilisez la voix de l'utilisateur : direct, sans formulation d'effort, axé sur le résultat.
B. Décisions Engagements explicites qui ont changé de direction, verrouillé quelque chose, ou clos une question ouverte. Seules les vraies décisions — pas des suggestions, pas des "peut-être". Format : ce qui a été décidé, et qui a pris la décision (si attribuable).
C. Éléments d'action Prochaines étapes concrètes avec un responsable nommé. Appliquez cette logique par élément :
- Si la note nomme une personne spécifique comme responsable avec une confiance élevée → attribuez à cette personne
- Si la responsabilité est ambiguë ou partagée → attribuez à l'utilisateur
- N'incluez un élément ou un projet de gestion de projet que s'il a été explicitement mentionné dans la réunion (par clé, nom ou référence claire). N'inférez pas et ne devinez pas — si rien n'a été mentionné, laissez la colonne Projet vide (
—) - Notez la date d'échéance suggérée si mentionnée dans la réunion, sinon laissez vide
D. Questions ouvertes / blocages Questions non résolues, blocages soulevés, ou sujets mis en attente pour une réunion future. Ceux-ci vont uniquement dans le fichier de notes.
Étape 4 — Références de projet
N'enregistrez une clé d'élément ou un nom de projet que lorsqu'il a été explicitement mentionné dans la réunion — par clé (ex. ENG-123), par nom (ex. "le jalon de refonte de l'intégration"), ou par référence sans ambiguïté.
N'inférez pas, ne cherchez pas et ne devinez pas les projets à partir du contexte de la réunion. Il vaut mieux laisser vide que d'en attribuer un erroné.
Étape 5 — Écrire le fichier de notes de réunion
Enregistrez le résumé dans Context/Meeting Notes/ en utilisant ce format de nom de fichier :
YYYY-MM-DD - [Nom de la réunion].md
Utilisez summary de l'événement calendrier comme nom de la réunion.
Format du fichier :
# [Nom de la réunion]
*[YYYY-MM-DD] | [Durée si disponible] | [Participants du calendrier si disponible]*
## Résumé
[Résumé de 2–3 phrases priorité au signal. Ce qui s'est passé et ce qui a changé.]
## Décisions
- [Décision 1 — qui l'a prise si connu]
- [Décision 2]
## Éléments d'action
| # | Tâche | Responsable | Projet | Échéance |
|---|------|-------|---------|-----|
| 1 | [Description de la tâche] | [Nom / moi] | [Nom du projet (KEY-123) ou —] | [Date ou —] |
| 2 | ... | ... | ... | ... |
## Questions ouvertes & Blocages
- [Question ou blocage — ce qui n'est pas résolu et pourquoi c'est important]
## Contexte
[Tout contexte, liens ou cadre de la réunion utile pour référence future. Limitez à 3–5 puces max.]
Si les notes brutes étaient la source (Phase B étape 4), conservez-les sous une section ## Notes brutes en bas — ne supprimez jamais les notes de l'utilisateur.
Avant d'enregistrer, ajoutez des [[wiki-liens]] à la note pour la connectivité du graphe Obsidian :
- Toutes les personnes mentionnées par leur nom →
[[Nom]] - Toutes les clés d'élément →
[[KEY-123]] - Concepts clés, projets et thèmes récurrents dans les notes →
[[Concept]] - Liez uniquement les mentions significatives — pas chaque mot, pas à l'intérieur des blocs de code ou des URL
Confirmez à l'utilisateur : "Notes de réunion enregistrées dans Context/Meeting Notes/[nom du fichier].md"
Étape 6 — Connexion contextuelle
Après l'enregistrement :
- Vérifiez si une décision ou un blocage de cette réunion est lié à une tâche ouverte dans
Tasks/— si oui, notez-le en ligne. - Si un blocage a été soulevé qui existe déjà dans
GOALS.mdcomme blocage connu, signalez-le : "Ce blocage ([nom]) a également été soulevé dans [contexte précédent]. Réfléchissez s'il est systémique." - Si la réunion est un 1:1 récurrent avec une personne nommée qui a un document dans
Context/121s/, ajoutez une entrée de journal de session à son document : date, résumé d'une ligne, toutes les boucles ouvertes ajoutées.
Les notes de réunion contiennent des données personnelles et ne sont jamais commitées ni poussées.
Étape 7 — Afficher le résumé dans le chat
Après avoir enregistré toutes les notes localement, affichez un résumé combiné pour le digest complet de la journée.
Structure : réunion → sujet → décisions + actions sous chaque sujet.
📝 **Digest de réunions terminé — [YYYY-MM-DD]** | [N] traitées | [N] ignorées
*[Nom de la réunion]*
[Sujet / objectif ou jalon]
Décisions
- [Décision]
- [Décision]
Éléments d'action
- [tâche] → [responsable] [échéance si connue]
[Sujet 2]
Décisions
- [Décision]
Éléments d'action
- [tâche] → [responsable]
Notes enregistrées dans `Context/Meeting Notes/`
Règles de regroupement :
- Premier niveau : nom de la réunion
- Deuxième niveau : sujet, objectif ou jalon discuté dans cette réunion — utilisez le nom simple, jamais une clé de ticket nue
- Troisième niveau : Décisions et Éléments d'action en sous-sections étiquetées sous chaque sujet
- Si un sujet n'a pas de décisions, omettez la sous-section Décisions. S'il n'a pas d'éléments d'action, omettez la sous-section Éléments d'action.
- Si une réunion n'a qu'un seul sujet, affichez quand même le nom du sujet — ne le réduisez pas
- Omettre la colonne Projet des éléments d'action dans le résumé du chat — elle appartient au fichier de notes uniquement
Étape 8 — Proposer la mise à jour du journal des décisions
Cette étape ne s'exécute que si au moins une décision a été extraite de toutes les réunions traitées.
Demandez une fois, dans un seul message :
"Voulez-vous enregistrer certaines de ces décisions dans un journal des décisions d'un PRD ?
Décisions d'aujourd'hui :
[Nom de la réunion] [Sujet] 1. [Décision] 2. [Décision]
Si oui, dites-moi quel document (un fichier local dans
Context/Document Hub/ou une page dans l'outil de documentation) et quels numéros de décision ajouter."
Numérotez les décisions séquentiellement dans toutes les réunions afin que l'utilisateur puisse s'y référer par numéro.
Attendez la réponse de l'utilisateur.
- Si non / ignorer : terminez la compétence.
- Si oui : exécutez les étapes ci-dessous pour chaque document spécifié.
Pour chaque document fourni :
A. Récupérez le document
- Fichier local → lisez-le.
- Page de l'outil de documentation →
docs.read.
B. Localisez le journal des décisions
Scannez une section dont l'en-tête contient "Decision Log", "Decisions Log" ou "Decisions" (insensible à la casse).
- Si une section Journal des décisions avec un tableau existe : de nouvelles lignes y seront ajoutées.
- Si une section Journal des décisions existe mais sans tableau : insérez le tableau juste après l'en-tête.
- Si aucune section Journal des décisions n'existe : insérez une nouvelle section
## Journal des décisionset un tableau en bas du document.
C. Construisez les lignes
Pour chaque décision sélectionnée par l'utilisateur, créez une ligne de tableau :
| [YYYY-MM-DD] | [Texte de la décision] | [Statut] |
- Date : la date de la réunion.
- Décision : texte exact du résumé — ne paraphrasez pas.
- Statut :
Décidéesi explicite et final.En attentesi le texte contient "TBD", "à confirmer", "en attente", "dans l'attente de", ou a été marqué comme non résolu.
Si le tableau n'existe pas encore, créez-le d'abord avec cette ligne d'en-tête :
| Date | Décision | Notes/Statut |
|------|----------|--------------|
D. Prévisualisez, puis mettez à jour
Affichez les lignes à ajouter. Pour un fichier local, écrivez-les. Pour une page d'outil de documentation, attendez l'accord explicite de l'utilisateur, puis docs.update(ref, "Journal des décisions", lignes) — modifiez uniquement cette section.
E. Confirmez
"Journal des décisions mis à jour sur [titre du document] — [N] décision(s) ajoutée(s)."
Cas particuliers
- Aucune décision trouvée : Écrivez "Aucune décision prise — réunion de discussion/mise à jour." N'inventez pas de décisions.
- Aucun élément d'action trouvé : Écrivez "Aucun élément d'action."
- La réunion est un standup ou dure <5 min : Exécutez quand même le résumé, mais limitez le résumé à une phrase.
- Plusieurs notes correspondent au même événement : Utilisez celle la plus proche de l'heure de début de l'événement.
- Une source est indisponible : Ignorez-la silencieusement et passez à la suivante dans la Phase C.
- Page de documentation introuvable (Étape 8) : Signalez l'erreur, demandez à l'utilisateur de vérifier l'URL et proposez de réessayer.
- Section Journal des décisions ambiguë (Étape 8) : Si plusieurs en-têtes pourraient correspondre (ex. "Décisions clés" et "Journal des décisions"), affichez les deux et demandez à laquelle ajouter.
- Décisions en double (Étape 8) : Avant d'insérer, scannez les lignes existantes. Si le même texte de décision apparaît déjà, ignorez-le et notez l'ignorance.