Verwenden von Wollipog
Lesen Sie für Kampagnen-Autorität Campaign Authority Preflight. Es behandelt effektiven Modus/Grenzen, genaue Entscheidungsinhaber, ungelöste menschliche Gates sowie Evidenz-Upload/Anbieter-Offenlegung; es autorisiert keine Kampagne oder ändert installierte Richtlinien.
Verwenden Sie den Befehl wollipog, wenn er sich im PATH befindet. Eine Wollipog-gehostete Sitzung liefert
WOLLIPOG_CONTROL_PLANE_URL, WOLLIPOG_SESSION_ID und eine geschützte Token-Datei automatisch; geben Sie
dieses Token nicht aus, kopieren Sie es nicht und übergeben Sie es nicht in der Befehlszeile.
Kernbefehle:
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 <task> [--model <id>] [--effort <level>] --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 <number|owner/name#number|host/group/project!iid|url> [--head <sha>] [--timeout <ms>] --json
wollipog pr closures <number|owner/name#number|url> [--intended <issue>]... --json
wollipog pr closures --file <description.md> [--repo <owner/name>] [--intended <issue>]... --json
wollipog review session run --repo <owner/name|gitlab-host/group/project> --pr <number> --head <sha> --brief-file <path> [--full-reason <text>] --json
wollipog review session get <review-session-id> --json
wollipog artifact attach --file <absolute-path> [--name <display-name>] --json
wollipog automation request --proposal '<json>' --json
wollipog automation get <occurrence-id> --json
wollipog automation execute <occurrence-id> --digest <resource-digest> --json
wollipog location-switch request --request '<json>' --json
wollipog location-switch get <occurrence-id> --json
wollipog location-switch execute <occurrence-id> --digest <resource-digest> --json
wollipog worktree create --branch <name> [--base <ref>] --json
wollipog worktree attach --path <absolute-path> --json
wollipog worktree select --path <absolute-path> --json
wollipog worktree discard --path <absolute-path> --json
wollipog worktree delete-refs [--path <absolute-path>] --ref <ref>=<object-id> [--ref ...] --json
wollipog decision request --request-id <id> --resource-key <key> --snapshot '<json>' --json
wollipog decision get <occurrence-id> [--session <descendant-id>] --json
wollipog decision list [--session <descendant-id>] [--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 <text> [--session <child-id>] --json
Für einen verifizierten, vollständig archivierten Kampagnen-Kind mit verweigerter schmutziger Arbeitsumgebung darf nur dessen kontrollierender Orchestrator session unarchive verwenden
(Protokoll 266+ auf Kontrollplan und Runner). Dies stellt die Sichtbarkeit wieder her, ohne Dateien neu zu starten oder zu löschen.
Starten Sie dann das Kind neu und bitten Sie es, seine Arbeit zu bewahren und zu bereinigen, seinen neuen Abschlussbericht zu überprüfen
und erneut zu archivieren. Die Abmeldung verweigert weiterhin schmutzige, nicht gepushte oder nicht zugestellte Arbeit; ein älterer Runner
verweigert die Wiederherstellung explizit. Bewahren Sie Entwurfsberichte außerhalb verwalteter Arbeitsumgebungen auf.
Ohne --after gibt session events die neuesten --limit Ereignisse zurück (Standard 30, maximal 100).
Um einen langen Bereich zu lesen, z. B. alles, was ein Kind seit einem bekannten Punkt getan hat, blättern Sie vorwärts: Beginnen Sie mit
--after 0 oder mit einer Seq, die Sie bereits zusammen mit der eventEpoch, aus der sie stammt, gelesen haben, und wiederholen Sie dann
mit --after <lastSeq> --event-epoch <eventEpoch> von der vorherigen Seite, bis hasMore false ist.
historyIncomplete bedeutet, dass der Kontrollplan das gesamte Protokoll noch nicht geladen hat, daher können spätere Ereignisse
vorhanden sein: Behalten Sie die zurückgegebene lastSeq und versuchen Sie es später erneut, anstatt die Seite als Ende zu behandeln. Wenn der
Aufruf fehlschlägt, weil der Ereignisverlauf ersetzt wurde, starten Sie neu mit --after 0 ohne die alte Epoche.
Jedes Ereignis ist eine Zusammenfassungszeile mit maximal 400 Zeichen, daher wird eine lange Nachricht abgeschnitten. Das MCP
-Tool get_session_events verwendet dieselben after, limit und eventEpoch.
Jedes gelesene Ereignis bleibt seitenweise, während der Verlauf hydratisiert; eine kurze oder leere unvollständige Seite ist nicht das
Ende des Protokolls. Ohne --after ist ein unvollständiges Ergebnis das aktuellste zwischengespeicherte Fenster, also wiederholen Sie
den Vorgang ohne --after für das tatsächlich aktuellste Fenster, sobald die Hydratisierung aufgeholt hat. Direkte HTTP-Lesevorgänge von
GET /api/sessions/:id/events standardmäßig 200 Ereignisse, wenn limit weggelassen wird; verwenden Sie nextAfter und
eventEpoch, um fortzufahren, anstatt eine Antwort als das gesamte Protokoll zu behandeln.
Protocol-222-Runner verwenden den begrenzten Leser während der gesamten Hydratisierung. Aktualisieren Sie ältere CLI/MCP
-Installationen, bevor Sie einen Kontrollplan aktualisieren, der Standardseiten bereitstellt: Der
Rückfall auf das gesamte Protokoll eines alten Lesers kann eine begrenzte erste Seite mit dem aktuellsten Fenster verwechseln. Identifizierbare alte
Agent-Sitzungs-Rückfälle schlagen mit Runner-Upgrade-Anleitung fehl; CLI-Aufrufe von gepaarten Geräten benötigen dieselbe
Upgrade-zuerst-Migration, da ihre menschlichen Anmeldeinformationen die Leserversion nicht identifizieren.
session stop-job (MCP stop_background_job) beendet einen unvollendeten Hintergrundjob einer Kind-Sitzung
anhand seiner ID, die session get als unfinishedBackgroundJobs auflistet. Verwenden Sie es, wenn ein Job, der
niemals endet, wie z. B. ein Monitor, dessen Bedingung nie eintritt, das Ergebnis eines abgeschlossenen Geschwisters oder eine
eingereihte Übergabe blockiert. Nur dieser Job endet und wird als beendet aufgezeichnet; das Gespräch des Kindes, seine
anderen Jobs und seine eingereihten Eingabeaufforderungen bleiben erhalten. Wenn der Anbieter den Stopp nicht rechtzeitig bestätigt, bleibt der
Job laufen; sollte er später enden, wird er trotzdem als Ihr Stopp aufgezeichnet, also wiederholen Sie die
Anfrage nicht nur, um genannt zu werden. session stop und session restart beenden stattdessen jeden Job:
Ein Stopp verwirft die eingereihten Eingabeaufforderungen, während ein Neustart sie behält und nach dem Neustart ausführt.
Aktuelle Runner setzen etablierte Claude Code-, Codex App Server- und Pi-Gespräche fort; eine nie ausgeführte
Sitzung startet neu. Die Sitzungsfähigkeit agentCapabilities.restartResumesConversation gibt an,
ob ihr nächster Neustart fortgesetzt wird. Ältere Runner lassen es weg und können neu starten, daher bietet das Fehlen keine
Kontinuitätsgarantie. Nur der Besitzer der Sitzung und sein kontrollierender Orchestrator dürfen
stop-job verwenden. Wenn der eingereihte Übergabe-Hold eines Kindes canRelease meldet, beendet session release-hold
(MCP release_queue_hold) mit der Hold-ID aus session get sofort jeden unvollendeten Job,
zeichnet jeden als von Ihnen beendet auf und führt die Übergabe und eingereihten Eingabeaufforderungen ohne Neustart in der richtigen Reihenfolge aus;
es erfordert dieselbe Autorität wie stop-job und wird verweigert, wenn sich der Hold geändert hat, seit Sie ihn gelesen haben.
Eine Orchestrator-Kampagne muss die Verwaltungstools als Richtliniengrenze verwenden, nicht Autorität aus ihrer Eingabeaufforderung ableiten.
Rufen Sie get_campaign zu Kampagnenbeginn und nachdem ein Mensch die Richtlinie geändert hat, auf. Es gibt
das effektive Verhalten, die typisierten Entscheidungsinhaber, die Revision, die Zulassungs- und Schutzlimits, die Anzahl der
Kinder und Folgeaktionen, die UI-Review-Kompatibilität und einen der Werte waiting_human, active, blocked,
verified_complete oder complete_with_handoffs zurück, ohne Anmeldeinformationen zurückzugeben. Sein
behavior enthält das Child Harness, Child Model, Child Effort, Follow-Ups und Completion, die die nächste Kind-Erstellung erzwingt. Eine Person kann sie
ändern, während die Kampagne läuft; geänderte Werte tragen die Quelle active_campaign und eine höhere
behavior.revision. Sie gelten für danach erstellte Kinder, bestehende Kinder behalten ihre eigene
Konfiguration, und kein Agent, einschließlich des Orchestrators, kann sie ändern.
Die Rolle des Orchestrators ist standardmäßig Delegate Implementation: Planen, delegieren, überwachen und überprüfen. Eine normale Anfrage, die mehrere Probleme abdeckt, autorisiert keine Kampagne oder Kind-Erstellung, es sei denn, der Mensch bittet explizit um Orchestrierung oder Delegation. Ein Elternteil darf genehmigte Planungsartefakte direkt pflegen. Wenn der Mensch das Elternteil explizit auffordert zu implementieren, überprüfen Sie zuerst offene Kind-Zuweisungen und Pull-Requests auf Überschneidungen, erstellen und wählen Sie dann einen dedizierten Wollipog-Arbeitsbereich für das Elternteil und folgen Sie dem normalen Test-, Review-, UI-Evidenz-, Merge- und Bereinigungsworkflow des Repositorys. Anbieterberechtigungen und Governance gelten weiterhin.
Strict Project Isolation ist eine separate, von Menschen kontrollierte Ausführungseinstellung. Neue Sitzungen standardmäßig
ist es deaktiviert. Wenn aktiviert, sind Projektverzeichnisse betriebssystem-seitig schreibgeschützt, das Elternteil arbeitet nur
in sitzungsprivatem Scratch, und Elternimplementierungs- und Selbst-Arbeitsbereichsoperationen werden verweigert.
Die erforderliche bwrap-, Seatbelt- oder geprüfte Anbietergrenze wird vor dem Start überprüft. Bestehende
Orchestrator-Sitzungen ohne ein Ausführungsrichtlinienfeld werden als strikt behandelt und können sich nicht selbst lockern.
Jede Kind-Erstellung erhält einen serverabgeleiteten Kampagnenrichtlinienblock in ihrer anfänglichen Zuweisung.
Für automatisches Modell oder Aufwand verwenden Sie get_agent_capabilities und senden Sie das ausgewählte Paar im selben
create_session-Aufruf; feste Werte werden server-seitig erzwungen. Der Block ist keine pauschale Genehmigung. Kinder müssen
request_workflow_decision, get_workflow_decision und consume_workflow_decision für
Implementierungsfragen, PR-Merge, Merge-Branch-Löschung, Follow-Up-Veröffentlichung und UI-Evidenz verwenden.
Wenn diese MCP-Tools nicht verfügbar sind, verwenden Sie die entsprechenden selbstbezogenen wollipog decision request-,
get- und consume-Befehle oben; die genaue Ressourcen-Snapshot und optionale PR-Merge-Aktion sind
JSON-Objekte. Die CLI verweigert --session für request, consume und reconcile und legt keine Auflösungsoperation offen.
Read-only get_workflow_decision akzeptiert ein optionales sessionId; list_workflow_decisions
zählt ausstehende und genehmigte Entscheidungen mit optionalem sessionId, limit und cursor auf.
Das Weglassen des Ziels liest sich selbst. Ein Orchestrator kann ein zugängliches untergeordnetes Element anvisieren, wobei Zugriff auf
beide Sitzungen erforderlich ist. Exakte Lesevorgänge schließen Endzustände ein; ein 404 beweist niemals Konsum.
Folgen Sie nextCursor, bis es fehlt. Seiten spiegeln den aktuellen Zustand wider, daher können sich während des Blätterns erledigte Entscheidungen
verschwinden; lesen Sie ein bekanntes Vorkommen genau dann, wenn sein Ergebnis wichtig ist.
Untergeordnete Lesevorgänge und Auflistungen erfordern Kontrollplan-Protokoll v214. Ältere Runner ohne das Tool
können eine aktualisierte CLI oder die schreibgeschützten HTTP-Endpunkte
GET /api/sessions/:id/workflow-decisions/:occurrenceId und
GET /api/sessions/:id/workflow-decisions?limit=50&cursor=<occurrence-id> mit ihrem vorhandenen
Sitzungsnachweis verwenden, wo ein Token bereitgestellt wird. Anbieterisolierte Sitzungen enthalten nur einen Runner-Relay-Schlüssel,
der keine direkten HTTP-Aufrufe authentifizieren kann; aktualisieren Sie den Runner/die CLI für die Tools, anstatt
nach einem Bearer-Token zu suchen. Ältere Kontrollpläne legen nur ausstehende Anfragen durch
list_descendant_requests offen; aktualisieren Sie sie für eine autoritative Überprüfung des untergeordneten Zustands.
Nur der aktuelle Besitzer kann das genaue ausstehende Vorkommen auflösen.
Für eine unnötige ausstehende, menschenbesessene review_round_extension kann der kontrollierende Orchestrator
stattdessen withdraw_descendant_workflow_decision mit der sessionId des Kindes, der genauen
occurrenceId und einem nicht leeren reason aufrufen, der den Entzug erklärt und dem Kind die nächsten
Anweisungen gibt (Kontrollplan v265+). Es entfernt nur diese Anfrage, prüft den Entzug des Orchestrators
und liefert den Grund über den dauerhaften Wiederaufnahmepfad, ohne das Kind zu stoppen oder neu zu starten.
Die Entscheidung lautet revoked mit withdrawal-Herkunft; sie gewährt keine Genehmigung und kann
nicht konsumiert werden. Genehmigte Entscheidungen und Kategorien, die nicht für den Entzug vorgesehen sind, werden verweigert.
Verwenden Sie get_workflow_decision für das genaue Ergebnis; eine Anfrage, die noch eine Person benötigt, bleibt deren.
Wenn eine ausstehende oder genehmigte Entscheidung nicht mehr benötigt wird und nie konsumiert oder aktiviert wurde, ziehen Sie sie zurück
mit withdraw_workflow_decision (decision withdraw) und einem nicht leeren reason (Kontrollplan
v269+); konsumieren Sie sie niemals mit einem veralteten Snapshot, um sie widerrufen zu lassen. Lassen Sie sessionId weg, um Ihre eigene zurückzuziehen.
Ein kontrollierender Orchestrator kann die sessionId seines Kindes übergeben, um eine zurückzuziehen, die der Orchestrator
besitzt; eine Entscheidung, die einer Person gehört, bleibt dem Antragsteller zum Zurückziehen. Ein Entzug genehmigt und konsumiert
nichts: Die Entscheidung lautet revoked mit withdrawal, das die zurückziehende Sitzung und ihren
Grund benennt, sie kann danach nie konsumiert werden und blockiert nicht länger verify_campaign_child. Ein
Kind, das noch auf eine ausstehende Entscheidung wartet, wird mit dem Grund fortgesetzt; eines, das bereits eine Genehmigung hält, wird nicht aufgeweckt.
Konsumierte Entscheidungen, ein aktiviertes pr_merge (gleichen Sie es stattdessen ab) und menschenbesessene
Issue-Schließung, Umfang, Follow-Up-Zulassung und Automatisierungsanfragen werden verweigert.
Authentifizierung, Geheimnisse,
dauerhafte Berechtigungen, Governance-Änderungen, Budgeterhöhungen und Tool-Schutzmaßnahmen bleiben menschenexklusiv.
Separate, von Menschen festgelegte Budgetautorität kann begrenzte verwaltete Worker-Reservierungen und
-Zuweisungen erlauben; leiten Sie dies niemals aus einem Kampagnennamen ab oder verwenden Sie einen ungemessenen Worker, um die Abrechnung zu umgehen.
Ein Stopp oder Neustart widerruft jede Entscheidung, die die Sitzung nicht konsumiert hat. Nach einem Neustart erhält die Sitzung
eine [Wollipog Session Restart]-Nachricht, die jedes widerrufene Vorkommen benennt: Handeln Sie nicht auf eine
frühere Genehmigung davon, und fordern Sie erneut an, was Sie noch benötigen.
Wenn ein genauer aktivierter PR-Merge-Befehl bereits erfolgreich war, aber sein genehmigtes Vorkommen
unkonsumiert blieb, verwenden Sie reconcile_workflow_decision (oder wollipog decision reconcile) mit dem
unveränderten Ressourcen-Snapshot dieses Vorkommens.
Es führt den Befehl nie erneut aus. Für ein Codex App Server-Kind beweist es den genauen abgeschlossenen Zugang,
Anbieterbefehl und gemergte Forge-Spitze; setzen Sie dieselbe App Server-Sitzung zuerst fort. Ein Claude Code-Kind
s Einreihen erzeugt keine Berechtigungsquittung im Auto- oder Full Access-Modus, s
…
[für die Übersetzung gekürzt]