Community程式設計與開發github.com

picoduck/using-wollipog

在 AI 代理會話中操作 Wollipog 工作階段,可透過注入的 CLI 或通用的 Wollipog MCP 伺服器進行。

using-wollipog 是什麼?

此技能詳盡說明如何在 AI 代理(如 Claude Code、Cursor、Codex)的會話中操作 Wollipog 工作階段。其核心功能是讓 Orchestrator 能夠建立、管理、監控及與子工作階段互動,透過 `wollipog` CLI 命令或 Wollipog MCP 伺服器提供的工具來實現。使用時,系統會自動注入 `WOLLIPOG_CONTROL_PLANE_URL`、`WOLLIPOG_SESSION_ID` 及受保護的 token 檔案,使用者不得直接在命令列上列印或傳遞 token。此技能支援廣泛的操作,包括列舉、建立、提示、等待及停止工作階段;管理背景任務與佇列暫停;處理審查會話與合併請求;附加工件;以及執行自動化請求或位置切換。此外,它也詳細說明了工作流程決策的機制,子工作階段須透過 MCP 工具或等效的 CLI 命令來請求、取得、消費及撤回工作流程決策,以處理實作問題、PR 合併、分支刪除等事項。該技能特別強調嚴格的專案隔離設定、Orchestrator 的委派實作角色,以及關於事件歷史分頁、工作階段存檔與背景任務優雅停止等進階行為的處理。它也明確劃分了僅限人類操作的範圍,例如驗證、機密、預算變更與工具護欄。

相容平台✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/picoduck/wollipog/tree/HEAD/skills/using-wollipog

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

使用 Wollipog

若要了解戰役權限,請參閱戰役權限預檢。 該文件涵蓋有效模式/邊界、確切決策擁有者、未解決的人員關卡,以及證據上傳/提供者揭露;它並不授權一場戰役或變更已安裝的政策。

當 wollipog 命令位於 PATH 上時,即可使用它。一個由 Wollipog 主控的工作階段會自動提供 WOLLIPOG_CONTROL_PLANE_URL、WOLLIPOG_SESSION_ID 以及一個受保護的 token 檔案;請勿 在命令列上列印、複製或傳遞該 token。

核心命令:

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

對於一個已驗證、完全歸檔的戰役子工作階段被拒絕的髒工作目錄,只有其控制 Orchestrator 可以使用 session unarchive (控制平面與執行器上的 protocol 266+)。這可在不重新啟動或刪除檔案的情況下恢復可見性。然後重新啟動子工作階段,要求其保留並清理工作、驗證其新的最終報告,並再次歸檔。退役仍然會拒絕髒的、未推送或未交付的工作;舊的執行器會明確拒絕恢復。請將暫存報告保留在受管理工作目錄之外。

若無 --after,session events 會回傳最新的 --limit 個事件(預設 30,最大 100)。 若要讀取長範圍,例如子工作階段自某個已知點以來所作的一切,請向前分頁:從 --after 0 開始,或從你已讀取的序列連同其來源的 eventEpoch 開始,然後重複 使用上一頁的 --after <lastSeq> --event-epoch <eventEpoch> 直到 hasMore 為 false。 historyIncomplete 表示控制平面尚未載入完整的日誌,因此後續事件可能 存在:請保留回傳的 lastSeq 並稍後重試,而不是將該頁視為結束。如果呼叫因事件歷史被取代而失敗,請在沒有舊紀元的情況下從 --after 0 重新開始。 每個事件是一行不超過 400 個字元的摘要,因此長訊息會被截斷。MCP get_session_events 工具接受相同的 after、limit 和 eventEpoch。

每個事件讀取在歷史資料匯入期間都會保持分頁狀態;一個短或空的未完成頁面並非 日誌的結尾。若無 --after,不完整的結果是最近期的快取視窗,因此請在匯入追上進度後,不帶 --after 重試以取得真正的最新視窗。直接 HTTP 讀取 GET /api/sessions/:id/events 在省略 limit 時預設回傳 200 個事件;請使用 nextAfter 和 eventEpoch 來繼續,而不是將一個回應視為完整日誌。 Protocol-222 執行器在整個匯入過程中皆使用有界讀取器。在升級提供預設頁面的控制平面之前,請先更新較舊的 CLI/MCP 安裝:舊讀取器的 完整日誌回退可能將有界的第一頁誤認為最新視窗。可識別的舊 代理工作階段回退會失敗並顯示執行器升級指引;配對裝置的 CLI 呼叫需要 相同的先升級後遷移,因為其人類憑證無法識別讀取器版本。

session stop-job(MCP stop_background_job)透過其 ID 結束一個子工作階段的一個未完成的背景任務, 該 ID 由 session get 列在 unfinishedBackgroundJobs 中。當一個永不結束的任務, 例如一個條件從未觸發的監控器,導致已完成的兄弟工作階段的結果或 佇列中的交接等待時,請使用此命令。只有該任務會結束並被記錄為已終止;子工作階段的對話、其 他任務以及佇列中的提示都會保留。如果提供者未及時確認停止,該 任務會繼續執行;若它後來結束,仍會被記錄為你的停止,因此不要為了被指名而重複請求。session stop 和 session restart 則會結束所有 任務:stop 會丟棄佇列中的提示,而 restart 會保留它們並在之後執行。 當前執行器會恢復已建立的 Claude Code、Codex App Server 和 Pi 對話;一個從未執行的 工作階段會重新開始。工作階段能力 agentCapabilities.restartResumesConversation 報告 其下一次 Restart 是否恢復對話。較舊的執行器會省略此項,並可能重新開始,因此缺少此項不提供連續性保證。 只有工作階段的擁有者及其控制 Orchestrator 才能使用 stop-job。當子工作階段的佇列交接暫停報告 canRelease 時,session release-hold (MCP release_queue_hold)使用 session get 中的暫停 ID 會立即結束所有未完成的任務, 將每個任務記錄為由你終止,並按順序執行交接和佇列中的提示而不重新啟動; 它與 stop-job 具有相同的權限,並且如果你讀取後暫停已變更,則會被拒絕。

Orchestrator 戰役必須使用管理工具作為政策邊界,而不是從其提示中推斷權限。 在戰役開始時以及人類變更政策後呼叫 get_campaign。它回傳 有效行為、類型化決策擁有者、修訂版本、准入和護欄限制、子工作和 後續工作計數、UI 審查相容性,以及 waiting_human、active、blocked、 verified_complete 或 complete_with_handoffs 之一,而不回傳憑證。其 behavior 包含下一次建立子工作階段時 將強制執行的 Child Harness、Child Model、Child Effort、Follow-Ups 和 Completion。人類可以在戰役執行時 變更它們;變更後的值帶有 active_campaign 來源和更高的 behavior.revision。它們適用於之後建立的子工作階段,現有子工作階段保留其自己的設定,而且沒有代理(包括 Orchestrator)可以變更它們。

Orchestrator 角色預設為委派實作:規劃、委派、監控和審查。 除非人類明確要求協調或委派,否則涵蓋數個議題的一般請求不會授權建立戰役或子工作階段。 父工作階段可以直接維護允許的規劃工件。 如果人類明確要求父工作階段進行實作,請先檢查開放的子工作分配和拉取請求是否有重疊,然後為 父工作階段建立並選擇一個專用的 Wollipog 工作目錄,並遵循儲存庫的一般測試、審查、UI 證據、合併和 清理工作流程。提供者權限和治理仍全程適用。

嚴格的專案隔離是一個獨立的人類控制執行設定。新工作階段預設為停用。 啟用時,專案位置將由作業系統強制設為唯讀,父工作階段僅能在工作階段私有的暫存區域中工作,且父工作階段的實作和自工作目錄操作將被拒絕。 在啟動前會檢查所需的 bwrap、Seatbelt 或經稽核的提供者邊界。 沒有執行政策欄位的現有 Orchestrator 工作階段將被視為嚴格,且無法自行放寬。

每次建立子工作階段時,其初始分配中都會收到一個由伺服器衍生的戰役政策區塊。 對於自動模型或努力,請使用 get_agent_capabilities 並在同一個 create_session 呼叫中發送選定的配對;固定值由伺服器強制執行。 該區塊並非空白核准。子工作階段必須使用 request_workflow_decision、get_workflow_decision 和 consume_workflow_decision 來處理 實作問題、PR 合併、合併分支刪除、後續工作發布和 UI 證據。 當這些 MCP 工具不可用時,請使用上面等效的自我限定 wollipog decision request、 get 和 consume 命令;確切的資源快照和可選的 PR 合併動作是 JSON 物件。CLI 拒絕 request、consume 和 reconcile 的 --session,並且不公開解析操作。 唯讀 get_workflow_decision 接受可選的 sessionId;list_workflow_decisions 列舉待處理和已核准的決策,並提供可選的 sessionId、limit 和 cursor。 省略目標時會讀取自身。Orchestrator 可以定位一個可存取的後代, 這需要對兩個工作階段的存取權。精確讀取包含終端狀態;404 永遠不表示已被消費。 請遵循 nextCursor 直到其不存在。頁面反映當前狀態,因此在分頁期間已確定的決策 可能會消失;當其結果重要時,請精確讀取已知的出現。 後代讀取和列表需要控制平面 protocol v214。沒有該工具的較舊執行器 可以使用更新的 CLI 或唯讀 HTTP 端點 GET /api/sessions/:id/workflow-decisions/:occurrenceId 和 GET /api/sessions/:id/workflow-decisions?limit=50&cursor=<occurrence-id>,並使用其現有的 工作階段憑證(如果已佈建 token)。提供者隔離的工作階段僅持有執行器中繼金鑰, 無法驗證直接的 HTTP 呼叫;請升級執行器/CLI 以使用工具,而不是 尋求 bearer token。較舊的控制平面僅透過 list_descendant_requests 公開待處理的請求;請更新它們以進行權威的後代狀態檢查。 只有當前擁有者可以解析確切的待處理出現。

對於一個不必要的待處理、由人類擁有的 review_round_extension,控制的 Orchestrator 可以改為使用子工作階段的 sessionId、確切的 occurrenceId 和非空白的 reason 來呼叫 withdraw_descendant_workflow_decision,說明撤回原因並給予子工作階段後續 指示(控制平面 v265+)。它只會移除該請求,稽核 Orchestrator 的 撤回,並透過持久的恢復路徑傳遞原因,而不會停止或重新啟動 子工作階段。該決策顯示為 revoked 並帶有 withdrawal 來源;它不授予任何核准且 無法被消費。已核准的決策和未指定用於撤回的類別將被拒絕。 使用 get_workflow_decision 取得確切結果;一個仍需人員處理的請求仍會保留給他們。

當一個待處理或已核准的決策不再需要且從未被消費或武裝時,請使用非空白的 reason 透過 withdraw_workflow_decision(decision withdraw)將其退役(控制平面 v269+);切勿使用過時的快照消費它以使其被撤銷。省略 sessionId 以撤回你自己的。 控制的 Orchestrator 可以傳遞其子工作階段的 sessionId 來撤回一個 Orchestrator 擁有的決策;一個由人類擁有的決策仍保留給請求者來撤回。撤回不會核准或消費任何東西:該決策顯示為 revoked,並以 withdrawal 命名撤回的工作階段及其原因,之後無法再被消費,並且不再阻止 verify_campaign_child。一個仍在等待待處理決策的子工作階段會以該原因恢復;一個已持有核准的子工作階段則不會被喚醒。已消費的決策、已武裝的 pr_merge(請改為 reconcile),以及由人類擁有的問題關閉、範圍定義、後續工作准入和自動化請求將被拒絕。

驗證、機密、 持久授權、治理變更、預算增加和工具護欄仍然是僅限人類操作。 單獨建立的人類預算權限可能允許有界限的受管理工作者預訂和 分配;切勿從戰役名稱推斷它,或使用無計量的工作者來規避會計。 停止或重新啟動會撤銷工作階段尚未消費的每個決策。重新啟動後,工作階段 會收到一條 [Wollipog Session Restart] 訊息,列出每個被撤銷的出現:不要在 其先前的核准上採取行動,並重新請求你仍然需要的東西。 如果一個確切的已武裝 PR 合併命令已經成功,但其已核准的出現仍未 被消費,請使用 reconcile_workflow_decision(或 wollipog decision reconcile)搭配該 出現的未更改資源快照。 它永遠不會重新執行該命令。對於 Codex App Server 子工作階段,它證明確切的已完成准入、 提供者命令和合併後的 forge head;請先恢復同一個 App Server 工作階段。Claude Code 子工作階段的排隊在自動或完整存取模式下不會產生權限收據,

...

[此處原內容被截斷以利翻譯]

Individual skills in this repo

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

相關技能