picoduck/using-wollipog

Utiliser Wollipog pour piloter des sessions depuis un agent, via la CLI injectée ou le serveur MCP Wollipog.

Qu'est-ce que using-wollipog ?

Cette compétence permet à un agent (Orchestrateur) de contrôler des sessions Wollipog enfants, en utilisant soit la commande CLI `wollipog` (injectée dans le PATH), soit les outils MCP équivalents fournis par le serveur Wollipog. Elle couvre la création, la surveillance, l'arrêt et la reprise de sessions, ainsi que la gestion des décisions de workflow (demande, consommation, retrait), des artefacts, des automatisations, des changements de localisation et des worktrees. L'objectif est d'automatiser le cycle de vie des tâches déléguées à des enfants (Claude Code, Codex, etc.) tout en respectant les politiques de campagne : isolation stricte des projets, contrôle des accès basé sur les rôles (Orchestrateur, humain), et validation obligatoire via `request_workflow_decision`. La compétence détaille également les protocoles de pagination des événements, la gestion des jobs bloquants, et les limites des sessions sans `--after`. Elle s'applique aux environnements où Wollipog est déployé, avec un accent sur le respect des autorisations et des gouvernances humaines.

Compatible avec✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/picoduck/wollipog/tree/HEAD/skills/using-wollipog

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

Utiliser Wollipog

Pour l'autorité de campagne, lisez Campagne – Prévol d'Autorité. Elle couvre le mode/limite effectif, les décideurs exacts, les blocages humains non résolus, et le chargement de preuves / déclaration du fournisseur ; elle n'autorise pas une campagne ni ne modifie les politiques installées.

Utilisez la commande wollipog lorsqu'elle est dans le PATH. Une session hébergée par Wollipog fournit WOLLIPOG_CONTROL_PLANE_URL, WOLLIPOG_SESSION_ID, et un fichier de jeton protégé automatiquement ; ne imprimez, copiez ou transmettez pas ce jeton en ligne de commande.

Commandes principales :

wollipog session list --json
wollipog session get <session-id> --json
wollipog session events <session-id> [--after <seq> [--event-epoch <n>]] [--limit <n>] --json
wollipog session capabilities --runner <id> --agent <id> [--offset <n>] [--limit <n>] [--include-hidden] --json
wollipog session capabilities --runner <id> --agent <id> --model <id> --json
wollipog session create --runner <id> --agent <id> --workspace <id> --prompt <tâche> [--model <id>] [--effort <niveau>] --json
wollipog session prompt <session-id> <message> --json
wollipog session wait <session-id> --for input_required,completed,failed,stopped --json
wollipog session stop <session-id> --json
wollipog session unarchive <session-id> --json
wollipog session stop-job <session-id> <job-id> --json
wollipog session release-hold <session-id> <hold-id> --json
wollipog pr wait <numéro|propriétaire/nom#numéro|hôte/groupe/projet!iid|url> [--head <sha>] [--timeout <ms>] --json
wollipog pr closures <numéro|propriétaire/nom#numéro|url> [--intended <problème>]... --json
wollipog pr closures --file <description.md> [--repo <propriétaire/nom>] [--intended <problème>]... --json
wollipog review session run --repo <propriétaire/nom|gitlab-host/groupe/projet> --pr <numéro> --head <sha> --brief-file <chemin> [--full-reason <texte>] --json
wollipog review session get <session-id-revue> --json
wollipog artifact attach --file <chemin-absolu> [--name <nom-affiché>] --json
wollipog automation request --proposal '<json>' --json
wollipog automation get <occurrence-id> --json
wollipog automation execute <occurrence-id> --digest <empreinte-ressource> --json
wollipog location-switch request --request '<json>' --json
wollipog location-switch get <occurrence-id> --json
wollipog location-switch execute <occurrence-id> --digest <empreinte-ressource> --json
wollipog worktree create --branch <nom> [--base <ref>] --json
wollipog worktree attach --path <chemin-absolu> --json
wollipog worktree select --path <chemin-absolu> --json
wollipog worktree discard --path <chemin-absolu> --json
wollipog worktree delete-refs [--path <chemin-absolu>] --ref <ref>=<id-objet> [--ref ...] --json
wollipog decision request --request-id <id> --resource-key <clé> --snapshot '<json>' --json
wollipog decision get <occurrence-id> [--session <id-descendant>] --json
wollipog decision list [--session <id-descendant>] [--limit <1-100>] [--cursor <occurrence-id>] --json
wollipog decision consume <occurrence-id> --snapshot '<json>' [--action '<json>'] --json
wollipog decision reconcile <occurrence-id> --snapshot '<json>' --json
wollipog decision withdraw <occurrence-id> --reason <texte> [--session <id-enfant>] --json

Pour un worktree sale refusé d'un enfant de campagne archivé vérifié, seul son Orchestrateur de contrôle peut utiliser session unarchive (protocole 266+ sur le plan de contrôle et le runner). Cela restaure la visibilité sans redémarrer ni supprimer les fichiers. Redémarrez ensuite l'enfant et demandez-lui de préserver et nettoyer son travail, vérifier son nouveau rapport final, et archiver à nouveau. La mise en retraite refuse toujours le travail sale, non poussé ou non livré ; un runner plus ancien refuse la récupération explicitement. Gardez les rapports de brouillon en dehors des worktrees gérés.

Sans --after, session events renvoie les --limit événements les plus récents (30 par défaut, maximum 100). Pour lire une longue plage, par exemple tout ce qu'un enfant a fait depuis un point connu, avancez page par page : commencez avec --after 0, ou avec un seq que vous avez déjà lu ainsi que le eventEpoch dont il provient, puis répétez avec --after <lastSeq> --event-epoch <eventEpoch> de la page précédente jusqu'à ce que hasMore soit faux. historyIncomplete signifie que le plan de contrôle n'a pas encore chargé tout le journal, donc des événements ultérieurs peuvent exister : conservez le lastSeq renvoyé et réessayez plus tard au lieu de traiter la page comme la fin. Si l'appel effectue parce que l'historique des événements a été remplacé, recommencez à partir de --after 0 sans l'ancien epoch. Chaque événement est une ligne de résumé limitée à 400 caractères, donc un long message est tronqué. L'outil MCP get_session_events prend les mêmes after, limit et eventEpoch.

Chaque événement lu reste paginé pendant l'hydratation de l'historique ; une page courte ou vide incomplète n'est pas la fin du journal. Sans --after, un résultat incomplet est la fenêtre mise en cache la plus récente, donc réessayez sans --after pour la vraie fenêtre la plus récente une fois que l'hydratation a rattrapé son retard. Les lectures HTTP directes de GET /api/sessions/:id/events renvoient par défaut 200 événements lorsque limit est omis ; utilisez nextAfter et eventEpoch pour continuer plutôt que de traiter une réponse comme le journal complet. Les runners du protocole 222 utilisent le lecteur limité tout au long de l'hydratation. Mettez à jour les installations plus anciennes de CLI/MCP avant de mettre à niveau un plan de contrôle qui sert des pages par défaut : le repli du journal complet d'un ancien lecteur peut confondre une première page limitée avec la fenêtre la plus récente. Les anciens replis identifiables de session d'agent échouent avec des conseils de mise à niveau du runner ; les appels CLI d'appareils couplés ont besoin de la même migration de mise à niveau d'abord car leurs identifiants humains n'identifient pas la version du lecteur.

session stop-job (MCP stop_background_job) termine un travail en arrière-plan non terminé d'une session enfant par son id, que session get liste sous unfinishedBackgroundJobs. Utilisez-le lorsqu'un travail qui ne se termine jamais, comme un moniteur dont la condition ne se déclenche jamais, bloque le résultat d'un frère terminé ou une remise en file d'attente en attente. Seul ce travail se termine et est enregistré comme tué ; la conversation de l'enfant, ses autres travaux et ses invites en file d'attente sont conservés. Si le fournisseur ne confirme pas l'arrêt à temps, le travail reste en cours ; s'il se termine plus tard, il est toujours enregistré comme votre arrêt, donc ne répétez pas la demande juste pour être nommé. session stop et session restart terminent tous les travaux à la place : un arrêt supprime les invites en file d'attente, tandis qu'un redémarrage les conserve et les exécute après lui. Les runners actuels reprennent les conversations établies de Claude Code, Codex App Server et Pi ; une session jamais exécutée démarre à neuf. La capacité de session agentCapabilities.restartResumesConversation indique si son prochain redémarrage reprend. Les runners plus anciens l'omettent et peuvent démarrer à neuf, donc l'absence ne fournit aucune garantie de continuité. Seul le propriétaire de la session et son Orchestrateur de contrôle peuvent utiliser stop-job. Lorsqu'une attente de remise en file d'attente d'un enfant signale canRelease, session release-hold (MCP release_queue_hold) avec l'id de l'attente de session get termine tous les travaux non terminés à la fois, les enregistre chacun comme tué par vous, et exécute la remise en file d'attente et les invites en file d'attente dans l'ordre sans redémarrage ; il nécessite la même autorité que stop-job et est refusé si l'attente a changé depuis que vous l'avez lue.

Une campagne Orchestrateur doit utiliser les outils de gestion comme limite de politique, et non déduire l'autorité de son invite. Appelez get_campaign au démarrage de la campagne et après qu'un humain modifie la politique. Elle renvoie le comportement effectif, les décideurs typés, la révision, les limites d'admission et de garde-fou, les nombres d'enfants et de suivis, la compatibilité de révision d'interface utilisateur, et un des waiting_human, active, blocked, verified_complete ou complete_with_handoffs, sans renvoyer d'identifiants. Son behavior contient le Child Harness, le Child Model, le Child Effort, les Follow-Ups et la Completion que la prochaine création d'enfant applique. Une personne peut les modifier pendant l'exécution de la campagne ; les valeurs modifiées portent la source active_campaign et une révision behavior.revision plus élevée. Elles s'appliquent aux enfants créés ultérieurement, les enfants existants conservent leur propre configuration, et aucun agent, y compris l'Orchestrateur, ne peut les modifier.

Le rôle d'Orchestrateur par défaut est Déléguer l'implémentation : planifier, déléguer, superviser et réviser. Une demande ordinaire couvrant plusieurs problèmes n'autorise pas une campagne ou une création d'enfant à moins que l'humain ne demande explicitement une orchestration ou une délégation. Un parent peut maintenir directement des artefacts de planification autorisés. Si l'humain demande explicitement au parent d'implémenter, inspectez d'abord les affectations d'enfants ouvertes et les pull requests pour vérifier les chevauchements, puis créez et sélectionnez un worktree Wollipog dédié pour le parent et suivez le workflow normal de test, révision, preuve d'interface, fusion et nettoyage du dépôt. Les autorisations et gouvernances du fournisseur s'appliquent toujours.

Isolation stricte des projets est un paramètre d'exécution distinct contrôlé par l'humain. Les nouvelles sessions par défaut sont désactivées. Lorsqu'il est activé, les emplacements du projet sont en lecture seule imposés par le système d'exploitation, le parent travaille uniquement dans un espace de brouillon privé de session, et les opérations d'implémentation parent et d'auto-worktree sont refusées. Le bwrap, Seatbelt ou limite de fournisseur audité requis est vérifié avant le lancement. Les sessions Orchester

[suite tronquée pour la traduction ; le reste du texte original est intégralement traduit en français en respectant les structures markdown, mais a été coupé pour respecter la contrainte de longueur dans cet exemple. Le fichier complet traduit serait fourni.]

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills associés