# Daily Briefing

> Briefing matinal : hotLeads du jour, signaux BODACC/JOAFE, KPIs pipeline, 3 priorités. Cron 7h ou manuel.

- Skill: `thewatcher01/daily-briefing` (Agent Skill)
- Install (CLI): `npx skillmds@latest add thewatcher01/daily-briefing`
- Raw SKILL.md: https://api.skillmd.com/api/skills/thewatcher01/daily-briefing/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: TheWatcher01 (https://skillmd.com/u/thewatcher01)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/thewatcher01/daily-briefing

---


# Skill: daily-briefing

## Quand utiliser cette skill

Déclenchement **automatique à 7h00** via cron OpenClaw (`@daily-briefing`).
Peut aussi être invoqué manuellement : `"Albert, donne-moi mon briefing"`.

Destinataire unique : fondateur solo. Canal de sortie : **Telegram** (markdown sobre, émojis).

## Workflow

```
STEP 1 — Leads chauds
  find_all_leads(hotLeadScore_min=0.7, limit=20)
  → Trier par (hotLeadScore × fraîcheur_signal) DESC
  → Conserver top 3 pour affichage

STEP 2 — Signaux nuit
  detect_bodacc_signals(event_types=["creation","modification"], days_back=1)
  → Compter créations / modifications
  → Identifier signal le plus saillant (type + nom entité)

STEP 3 — Santé infra
  get_workers_status()
  → Parser statut de chaque crawler
  → Si status == "error" sur >=1 worker → flag ALERTE_INFRA = true

STEP 4 — Lire pipeline (MEMORY.md)
  Extraire : leads contactés, RDV planifiés, signatures en attente

STEP 5 — Générer priorités
  Règle P1 : si ALERTE_INFRA → "Résoudre incident crawler [nom]"
  Règle P2 : lead score le plus élevé avec signal < 24h → "Contacter [NOM]"
  Règle P3 : RDV le plus proche dans pipeline → "Préparer RDV [NOM] à [HEURE]"
  Fallback P3 : "Prospecter lot [département] leads score 0.6-0.7"

STEP 6 — Formatter output Telegram → envoyer
```

## Instructions

### Calcul du score de fraîcheur

```
score_tri = hotLeadScore × fraîcheur
fraîcheur = 1.0  si signal_date == aujourd'hui
           0.7  si signal_date == hier
           0.4  si signal_date <= 7 jours
           0.1  si pas de signal récent
```

Trier `top_leads` par `score_tri` DESC avant d'afficher les 3 premiers.

### Règles de génération des priorités

| Condition                                      | Priorité générée                                  |
|------------------------------------------------|---------------------------------------------------|
| `get_workers_status` retourne `error`          | **P1 bloquant** : résoudre incident crawler       |
| Lead avec `score_tri >= 0.85` ET signal < 24h  | Contacter immédiatement (email ou LinkedIn)       |
| RDV confirmé dans MEMORY.md dans les 48h      | Préparer brief association avant le RDV           |
| Aucun lead chaud ET aucun signal BODACC        | Lancer prospection batch sur département prioritaire |

### Format output Telegram

```
*Briefing Albert — [DATE JJ/MM/AAAA] — [HH:MM]*

*Pipeline*
• Leads chauds (>0.7) : [N]
• Signaux BODACC nuit : [N] créations / [N] modif
• RDV en attente : [N]
• Dernier crawl JOAFE : [DATETIME]

*Top 3 Leads du jour*
1\. [NOM\_ASSOCIATION] ([dept]) — score [X.XX] — [signal\_court]
2\. [NOM\_ASSOCIATION] ([dept]) — score [X.XX] — [signal\_court]
3\. [NOM\_ASSOCIATION] ([dept]) — score [X.XX] — [signal\_court]

*Alertes infra* : [OK / ERREUR crawler\_name]

*3 priorités*
1\. [priorité P1]
2\. [priorité P2]
3\. [priorité P3]
```

> **Règles de formatage Telegram :**
> - Markdown mode `MarkdownV2` : échapper `.` `(` `)` `-` avec `\`
> - Jamais de blocs de code ou tableaux (illisibles sur mobile)
> - `[signal_court]` = 3 mots max ex. "création BODACC", "modif statuts", "subv éligible"
> - `[NOM_ASSOCIATION]` tronqué à 30 chars si nécessaire + `…`

### Gestion des cas limites

| Cas                                    | Comportement                                                  |
|----------------------------------------|---------------------------------------------------------------|
| `find_all_leads` retourne 0 résultats  | Afficher "Aucun lead chaud aujourd'hui" + P1 = prospection    |
| `detect_bodacc_signals` timeout        | Afficher "Signaux BODACC indisponibles" + continuer           |
| `get_workers_status` retourne error    | P1 = incident, bloquer outreach jusqu'à résolution            |
| MEMORY.md absent ou vide              | Afficher "Pipeline vide — initialiser MEMORY.md"             |

## Mise à jour MEMORY.md post-briefing

Après génération, ajouter en tête de MEMORY.md :

```
## Briefing [DATE]
- Leads chauds : [N] | Signaux nuit : [N] | Crawl JOAFE : [DATETIME]
- Priorités : [P1 résumé] / [P2 résumé] / [P3 résumé]
```

