| name | daily-recap |
| description | Reconstitue un résumé de ce que l'utilisateur a fait sur une journée donnée en croisant ses emails (Gmail), Slack, Linear et GitLab. Utilise ce skill dès que l'utilisateur demande un récap/résumé de sa journée, de sa semaine ou d'un jour précis — par exemple "résume ce que j'ai fait hier", "fais-moi un point sur ma journée", "qu'est-ce que j'ai fait lundi ?", "recap de la semaine" — même s'il ne mentionne aucune source explicitement. |
| disable-model-invocation | true |
Daily recap
Produit un résumé narratif et thématique de l'activité de l'utilisateur sur une période, en croisant Gmail, Slack, Linear et GitLab. But : lui redonner en quelques paragraphes ce qu'il a fait, décidé, débloqué ou attend — sans relire ses fils.
1. Période
Convertir l'expression relative en dates réelles à partir de la date du jour ("hier" = jour calendaire précédent, "cette semaine" = la plage correspondante). En cas d'ambiguïté sérieuse ("l'autre jour"), demander une fois ; sinon avancer avec l'hypothèse la plus probable et l'indiquer.
Aucune période mentionnée → prendre "hier" par défaut (ne pas demander).
Ne jamais prendre en compte le samedi et le dimanche : ce sont des jours non travaillés. Si la période par défaut (ou une borne calculée) tombe un week-end, reculer jusqu'au dernier jour ouvré — par ex. un lundi, "hier" = le vendredi précédent. Pour une plage type "cette semaine", exclure les week-ends de la collecte et de la synthèse.
2. Collecte — un subagent par source, en parallèle
Une fois la période résolue, lancer un subagent general-purpose par source, tous dans un seul message (appels parallèles). Chaque source pagine beaucoup et renvoie du JSON verbeux : en confinant ce volume dans le contexte d'un subagent, on garde le contexte principal propre et on va plus vite. Chaque subagent charge lui-même ses outils MCP via tool_search, encaisse toute la pagination, et ne renvoie qu'un digest compact déjà trié (pas de dumps bruts) : liste des éléments à valeur avec canal/ticket/MR + heure + une phrase de contenu. S'il détecte que sa source n'est pas connectée, il renvoie simplement "source non connectée" — le contexte principal l'ignore silencieusement sans échouer.
Passer à chaque subagent : les dates exactes de la période et la consigne de digest ci-dessous. Les recettes techniques par source (à inclure dans le brief du subagent concerné) :
3. Synthèse
Regrouper par sujet / chantier, pas par source ni par ordre chronologique brut. Croiser les sources sur un même sujet : un ticket Linear + sa MR GitLab + le fil Slack associé = un seul paragraphe. Pour chaque sujet, dire ce qui s'est passé et où ça en est (résolu, en attente, escaladé, à reprendre).
Joindre les sources par identifiant, jamais par horodatage : le numéro de ticket, le nom de branche et le numéro de MR (expand-2139, !27…) apparaissent dans les trois sources et sont la clé fiable pour rattacher un ticket Linear, sa MR GitLab et le fil Slack qui l'annonce. Ne pas corréler par l'heure : les sources n'utilisent pas le même fuseau — Linear renvoie de l'UTC (suffixe Z), Slack de l'heure locale, GitLab via glab s'affiche en local. Ce décalage impose aussi de garder un jour de slop au filtrage de bord (un ticket touché en soirée locale peut sortir en UTC le lendemain, ou l'inverse).
Signal > bruit : réponses d'agenda, "merci", emojis et blagues ne méritent pas un paragraphe — au plus une phrase globale, sinon ignorer. Remonter les éléments à valeur : décisions prises, blocages, engagements ("je m'en occupe vendredi"), passages de relais, et tout fil rouge transverse.
4. Sortie
Répondre directement dans la conversation (pas de fichier sauf demande), dans la langue de l'utilisateur, en prose :
- Une phrase d'ouverture situant la période et les sources.
- Un court paragraphe par sujet, le plus important d'abord (intitulé en gras en tête accepté ; éviter les listes à puces et la sur-structuration).
- Si pertinent, une dernière ligne sur le fil rouge de la journée.
- En ouverture, clore par une courte liste de tâches à effectuer (2–4 max), déduites des signaux de la période : blocages non résolus à relancer, MR encore en review à faire avancer, engagements pris ("je m'en occupe vendredi"), relances en attente de réponse, TODO explicites. Formuler chacune comme une action concrète et actionnable, pas comme un rappel vague.
- Terminer par une seule proposition d'approfondissement ciblée.
Rester factuel : ne rapporter que ce qui est dans les messages, sans extrapoler — les tâches proposées doivent découler d'éléments réellement présents (un engagement, un blocage, une MR ouverte), jamais d'une extrapolation.