BennyKok/omg.dev

Poser une question à l'humain sans bloquer. À utiliser lorsqu'une décision nécessite réellement l'avis de l'utilisateur (actions irréversibles, intention ambiguë, compromis concurrents, tout ce qui est risqué) et que vous ne pouvez pas décider seul. Déclenche une notification push ; la réponse est renvoyée dans votre session sous forme de nouveau message utilisateur dès que l'utilisateur répond.

Qu'est-ce que omg.dev ?

Cette compétence, `BennyKok/omg.dev`, implémente un modèle **human-in-the-loop** pour les agents IA fonctionnant en mode headless. Elle permet à l'agent de poser une question à l'utilisateur de manière *fire-and-forget* (déclenche et oublie) : la question est envoyée via un outil MCP, un identifiant est retourné immédiatement, et l'agent peut continuer son travail ou terminer son tour sans attendre ni bloquer. Lorsque l'utilisateur répond (via une notification push), la réponse est injectée dans la session en tant que nouveau message utilisateur, permettant à l'agent de l'honorer comme décision finale. Elle est utile pour les actions risquées ou irréversibles (déploiement, suppression, force-push), les intentions ambiguës, ou les jugements de compromis. La compétence recommande de ne poser qu'une question par exécution et de ne pas interroger pour des décisions que l'agent peut prendre seul. Elle supporte les plateformes MCP (outil `lfg_ask_user`) et propose une solution de repli via API REST. Cela garantit que l'utilisateur reste maître des décisions critiques tout en permettant à l'agent de fonctionner de manière autonome.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/BennyKok/omg.dev/tree/HEAD/.claude/skills/ask-user

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Demander à l'utilisateur (humain dans la boucle)

Vous fonctionnez en mode headless, mais certaines décisions ne vous appartiennent pas. Lorsque vous en rencontrez une, demandez à l'humain plutôt que de deviner. Demander est fire-and-forget : vous envoyez la question, recevez un identifiant immédiatement, et continuez (ou terminez votre tour). Il n'y a pas d'attente, pas de polling, pas de timeout — l'utilisateur peut répondre des heures plus tard, et sa réponse est injectée dans votre session sous forme de nouveau message utilisateur.

Quand demander

Demandez uniquement lorsque cela vaut la peine d'interrompre quelqu'un :

  • Actions irréversibles ou risquées (déploiement, suppression, force-push, dépenses).
  • Intention réellement ambiguë où une mauvaise supposition gaspillerait du travail réel.
  • Un jugement entre des compromis que seul l'utilisateur peut peser.

Ne pas demander pour des choses que vous pouvez déterminer vous-même en toute sécurité, et ne posez jamais plus d'une question par exécution. Le silence reste la valeur par défaut — la plupart des exécutions ne demandent rien.

Comment demander

Appelez l'outil MCP lfg_ask_user :

  • question — prose concise et claire. Commencez par la décision en une phrase ; au maximum quelques lignes de contexte courtes après. Pas de titres Markdown, pas de murs de texte — cela s'affiche sur une petite carte.
  • options — suggestions facultatives à une tape (l'utilisateur peut toujours taper du texte libre, donc gérez toute réponse).
  • sessionId / user — généralement omis ; ils prennent par défaut votre session et l'utilisateur qui lui est assigné.

Solution de repli sans MCP (rare) :

curl -s -X POST http://localhost:8766/api/ask \
  -H 'Content-Type: application/json' \
  -d '{"question":"…","options":["…"],"sessionId":"<votre session id>","pushback":true,"wait":false}'

Après avoir demandé

  • Ne bloquez pas, ne faites pas de polling, ne mettez pas en veille. Continuez d'autres tâches sûres ou terminez votre tour.
  • Ne prenez pas l'action que vous avez demandée avant que la réponse n'arrive.
  • La réponse arrive sous forme de message utilisateur commençant par [ask-user answer <id>]. C'est la décision de l'utilisateur dans ses propres mots — respectez-la même si elle diffère de votre recommandation.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Skills associés