| name | overnight-exec |
| description | Exécution ou exploration autonome de nuit. Mode exec : brief → découpe → delegate_task parallèle → livrable dans le vault. Mode dream : domaine → exploration multi-axes → cards backlog dans le vault. Déclenché par cron. |
| version | 1.1.0 |
| platforms | ["linux","macos"] |
| metadata | {"hermes":{"tags":["overnight","autonomous","delegate","cron","backlog","exec","dream"],"related_skills":["adversarial-review","engineering-advisor"],"model":"deepseek-v4-full","coding_delegate":"mistral-3.5","coding_runtime":"vibe-cli","cron":"0 2 * * *"}} |
overnight-exec
Adaptation de thor (74) + loki (75) — ULK → Hermes. Carte :
docs/backlog/2026-06-28-SPEC-HERMES-OVERNIGHT-EXEC/CARD.md (P2, GitHub #275).
Pipeline nocturne : cron déclenche, delegate_task parallélise, le vault reçoit le livrable.
Mode exec (thor : brief → PR) ou dream (loki : domaine → cards backlog). Combinaison
cron + delegate_task la plus naturelle du catalogue.
Runtime & modèles
Procédure
- Lire
overnight-queue.md : mode: exec|dream, brief: / domain:, axes:, due:.
- DISPATCH : valider que l'input est complet avant de lancer (fail fast).
Mode exec (thor : brief → PR draft)
- Branche : créer
overnight/<slug>-<timestamp>. Jamais de commit/merge sur la
branche par défaut (main) — le livrable part toujours en PR draft.
- Découpe : décomposer en ≥2 sous-tâches indépendantes →
delegate_task (code délégué
Mistral via vibe CLI).
- Self-heal (borné, N≤3) : après assemblage, lancer tests + lint/typecheck. Si rouge →
re-diagnostiquer et relancer un
delegate_task correctif ciblé (contrat = l'erreur à
éteindre). Boucle bornée à 3 tentatives ; au-delà, poursuivre avec le flag
🚨 needs-human-review. Timeout par round ≤10 min.
- Verify (failable) : DeepSeek relit le diff contre le brief — vérification failable
(une condition tangible par point : test qui passe, endpoint qui répond), jamais « ça a
l'air bon ». Si non conforme → 1 round correctif puis re-verify ; si ça persiste, PR draft
avec flag
🚨 verify-failed.
- PR draft : pousser la branche + ouvrir une PR draft (jamais ready-to-merge) →
consigner le lien dans
overnight-results/YYYY-MM-DD-exec.md.
Mode dream (loki : domaine → cards backlog)
- 3-5 axes →
delegate_task (DeepSeek, pas de coding) → agréger les findings.
- Scoring impact × effort × risque : scorer chaque piste sur les 3 axes (1-5), calculer
priorité = (impact × 2) / (effort + risque), trier décroissant, garder ≤5 cards. Chaque
CARD.md (dans docs/backlog/) porte impact:, effort:, risque:, score: en
frontmatter — aucune card sans le triptyque.
Commun
- REPORT : résumé exécutif dans le vault (PARA) + notification si hook de fin de cron.
- Cron
0 2 * * * par défaut, paramétrable dans la queue.
Critères d'acceptation
Pièges
- Valider la queue en amont : brief vague / domaine trop large bloque tout le pipeline.
- Mode
dream : limiter à 5 cards max par run, triées par score = (impact × 2) / (effort + risque) — qualité > quantité, jamais de card sans le triptyque.
- Self-heal : borner à 3 rounds. Une boucle non bornée grille le budget nocturne et peut osciller sans converger — flaguer et livrer quand même.
- Verify ≠ « ça a l'air bon » : chaque point du brief doit avoir une preuve d'exécution (test, sortie de commande). Un flag non vérifié est lui-même une erreur.
exec ne touche jamais main : PR draft only, l'humain valide au réveil.
- Timeout raisonnable par sous-tâche (≤30 min) pour ne pas bloquer le cron suivant.
- Tagger
mode: exec|dream dans les logs vault pour retrouver les résultats.
- Prompts de délégation coding fermés (fichier + contrat) : vibe sans LSP.