hello
Briefing de début de session — état du projet, tâches en cours, prochaines actions.
Hello — Briefing de début de session
Stratégie d'exécution
Objectif : briefing en 2 batches, zéro appel superflu.
RÈGLE ANTI-CASCADE : ; exit 0 sur toute commande réseau/optionnelle.
Batch 1 — Collecter (tout en parallèle)
Read:TODO.mdRead:~/.claude/settings.json(statusline)Read:${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json(version installée)Bash:git status --short && echo "---BRANCH---" && git branch --show-current && echo "---LOG---" && git log --oneline -5 && echo "---DATE---" && date '+%Y-%m-%d %H:%M' && echo "---WEEK---" && git log --since="7 days ago" --oneline 2>/dev/null | wc -l && echo "---HOTSPOTS---" && git log --since="7 days ago" --pretty=format: --name-only 2>/dev/null | grep -v '^$' | sort | uniq -c | sort -rn | head -3Bash:node -e "require('https').get('https://raw.githubusercontent.com/vendeesign/codebloom/main/.claude-plugin/plugin.json',r=>{let d='';r.on('data',c=>d+=c);r.on('end',()=>console.log(d))}).on('error',()=>{})" 2>/dev/null; exit 0Bash:wc -l CLAUDE.md 2>/dev/null | awk '{print $1}'; grep -c '<!-- codebloom:format:lean' CLAUDE.md 2>/dev/null; grep -c '<!-- codebloom:rules:start' CLAUDE.md 2>/dev/null; test -f .claude/settings.local.json && echo "LOCAL=1" || echo "LOCAL=0"; exit 0— comptage rapide pour le health-check + détection settings.local.json parasite
Batch 2 — Écrire (après analyse)
- Edit DEV_TIME.md (marqueur chrono) — créer depuis template si absent
- Bash : screenshot watcher
- Conditionnel : CHANGELOG distant si MAJ disponible
Puis afficher le briefing.
Actions
1. Contexte
CLAUDE.mdest déjà en contexte → ne PAS relireTODO.md→ batch 1
2. Mise à jour
Version installée = plugin.json local (batch 1). Version distante = plugin.json remote (batch 1). Version projet = ligne **Codebloom** dans CLAUDE.md (déjà en contexte).
- Distante > installée → "🌸 Codebloom v[distante] disponible —
/plugin marketplace add vendeesign/codebloompuis/codebloom:update" - Installée > projet → "🌸 Codebloom mis à jour → v[installée] —
/codebloom:updatepour intégrer" - Tout aligné → silence
- Réseau absent → silence
Si MAJ détectée et CHANGELOG nécessaire → lire dans le batch 2.
3. Briefing
"🌸 [Nom] — Briefing
🔹 Branche : [branche] 🔹 Dernier commit : [hash + message] 🔹 État : [✅ propre / ⚠️ modifs non commitées] 🔹 Backlog : [X bugs, Y tâches, Z idées] (si TODO.md) 🔹 Vélocité 7j : [X commits] — hotspots : [fichier1] ([N]), [fichier2] ([N]), [fichier3] ([N]) 🔹 CLAUDE.md : [voir règle ci-dessous — afficher uniquement si non-OK]
On fait quoi ?"
Règle vélocité :
À partir des blocs ---WEEK--- et ---HOTSPOTS--- du batch 1 :
- 0 commit sur 7j → afficher
🔹 **Vélocité 7j :** aucune activité — reprise de projet ? - ≥1 commit sur 7j → afficher le nombre et les top 3 hotspots au format :
X commits — hotspots : path/file1.ts (5), path/file2.ts (3), path/file3.ts (2) - Ligne hotspots vide ou erreur git → afficher uniquement le nombre de commits sans hotspots
- Pas de repo git (erreur sur toute la commande) → ne pas afficher la ligne Vélocité du tout
Cette ligne est une source de vérité rapide pour l'utilisateur : il voit immédiatement sur quoi il a travaillé dans la semaine, sans avoir à lancer l'agent git-historian. Si un fichier en top hotspot est inquiétant (candidat refactor, récurrence de bugs), il sait qu'il peut lancer git-historian à la demande pour une analyse profonde.
Règle CLAUDE.md (ligne conditionnelle) :
À partir des résultats du batch 1 (étape 6 — wc, grep format:lean, grep rules:start) :
| Situation | Ligne à afficher |
|---|---|
wc ≤ 120 + format:lean présent + rules:start présent | Silence (ligne omise) |
wc 121-150 + markers OK | 🟡 {X} lignes — ça commence à être long |
wc 151-199 + markers OK | 🟠 {X} lignes — risque de dilution, à slim manuellement |
wc ≥ 200 + markers OK | 🔴 {X} lignes — règles risquent d'être ignorées, slim CLAUDE.md en priorité |
format:lean absent (ancien format) | 🔄 Format ancien détecté — /codebloom:update pour migrer |
rules:start absent | 🛡️ Bloc règles inviolables absent — /codebloom:update pour ajouter |
CLAUDE.md absent (wc retourne rien) | 📋 Pas de CLAUDE.md — /codebloom:setup (déjà géré dans les alertes § 7) |
Si plusieurs situations s'appliquent : afficher uniquement la plus grave (format ancien > bloc rules absent > taille ≥ 200 > taille 151-199 > taille 121-150).
4. Statusline
~/.claude/settings.jsondéjà lu (batch 1)statusLineabsent → ajouter silencieusement, mentionner dans le briefingstatusLineprésent → rien
5. Chrono
DEV_TIME.mdà la racine du projet → ajouter/remplacer> Session en cours depuis : [YYYY-MM-DD HH:MM]- Fichier absent → le créer depuis
${CLAUDE_PLUGIN_ROOT}/references/DEV_TIME.md
6. Screenshot watcher
node "${CLAUDE_PLUGIN_ROOT}/hooks/screenshot.js" > /dev/null 2>&1 &
Premier démarrage → mentionner. Sinon silence.
7. Alertes (si applicable)
Modifs non commitées (git status non vide) — afficher la ligne contextuelle :
- Update Codebloom en attente (version installée > version projet, cf. §2) → "🔄 Update Codebloom dispo :
/codebloom:updated'abord, tes modifs partiront avec le/pushen fin de session" - Pas d'update → "📝 Modifs non commitées en attente (reprise de session ou travail en cours)" — pas d'action prescrite,
/pushest end-of-session
Autres alertes :
- Pas de CLAUDE.md → "📋
/codebloom:setup?" - Branche != main → "🔀 Tu continues sur
[branche]?" LOCAL=1(settings.local.json détecté, cf. batch 1 étape 6) → "⚠️.claude/settings.local.jsondétecté — écrase les permissions Codebloom,/codebloom:updatepour nettoyer"
La ligne CLAUDE.md (taille / format / bloc rules) est gérée directement dans le briefing § 3 à partir du batch 1, pas ici.
Règles
- Bref et direct — pas de prose
- Ne commence aucune tâche
- Ne modifie rien sauf : chrono DEV_TIME.md, statusline settings, screenshot watcher