Humain dans la boucle — le pipeline vous attend
Vous allez construire : la couture de revue dont tout pipeline qui agit a besoin — les brouillons s'arrêtent dans une file d'approbation, un relecteur approuve ou rejette (CLI, ou le lien de la notification Slack/WhatsApp/email), et le brouillon résolu est émis sur un topic que le stage suivant consomme. Approuvé → l'action part. Rejeté → non. Chaque décision est journalisée : qui, quand.
Prérequis
- Une app déployée dont le stage d'action passe par le plugin d'approbation humaine (le pipeline qui agit du tutoriel MCP est la base naturelle — les templates qui l'utilisent embarquent
HumanApprovalPlugin). pulse approvalsdemande un Pulse ≥ le build portant B-199 (vérifiez :pulse approvals --help).
1 · Voyez ce qui vous attend
pulse approvals list
2 approbation(s) :
ap-7c1… pending via slack 2026-07-14T09:02:11Z
La réponse au ticket #4821 dépasse le seuil de remboursement
ap-8d0… pending via email 2026-07-14T09:05:37Z
2 · Lisez le brouillon sur lequel le pipeline s'est arrêté
pulse approvals show ap-7c1…
Le brouillon complet produit par le stage, le canal qui a notifié, et le resolvedTopic où le verdict atterrira.
3 · Décidez
pulse approvals approve ap-7c1… --feedback "remboursement justifié, le client a raison"
# ou
pulse approvals reject ap-8d0… --feedback "ton — escalader à un agent humain"
approved ap-7c1… status=approved → emitted on drafts.resolved
À l'instant où vous répondez, le plugin émet le brouillon (verdict et feedback attachés) sur son topic résolu — le pipeline suspendu reprend au stage suivant. Le même répondeur alimente les liens de notification : CLI et relecteurs Slack partagent une seule file.
4 · Vérifiez la reprise et la piste d'audit
pulse events tail --topic drafts.resolved
pulse audit --limit 5 # APPROVAL_GRANTED / APPROVAL_REJECTED, avec relecteur et horodatage
Ce qui vient de se passer
L'humain est un stage, pas un spectateur : la topologie du pipeline garantit que rien n'agit sans verdict, la file survit aux redémarrages (une table persistée, pas un callback), et la gouvernance obtient ce qu'elle demande vraiment — qui a approuvé quoi, quand, avec quel raisonnement — sous forme de données, pas de captures d'écran.
Ensuite
- Agir avec MCP — la forme de stage qui alimente cette file
- Replay déterministe — auditez le trajet qui a mené au brouillon