Community程式設計與開發github.com

程式碼開發代理

將編碼工作委派給 Codex、Claude Code 或 OpenCode 作為背景工作者;不適用於簡單編輯或唯讀程式碼查閱。

程式碼開發代理 是什麼?

此「程式碼開發代理」技能旨在將大型編碼任務(如功能建置、大型重構、拉取請求審查和議題到拉取請求的工作流程)卸載給專門的背景工作者,而不是進行簡單的編輯或唯讀查詢。它嚴格設計用於 OpenClaw,並支援 Codex、Claude Code 和 OpenCode 作為背景代理。該技能強制執行關鍵規則,例如始終以 background:true 啟動、為某些代理使用 PTY、隔離 Codex 的家目錄以進行身份驗證、以及通過 openclaw message send 設定可靠的通知路由。對於修改 Git 儲存庫的任務,它規定了一個強制性的 Git 準備步驟,包括提取正確的分支、將來源引用分類為受信任或不受信任、建立隔離的工作樹,以及將所有編輯限制在該隔離的工作樹內,以防止對主要專案檢查出造成干擾。該技能也概述了初始化專用 Codex 身份驗證家目錄、使用範本構建提示、啟動工作者進程以及管理其生命週期的詳細啟動形式,並為長期「議題到拉取請求」工作與「臨時 Codex」工作提供了具體指引。

相容平台✓Claude Code✓Codex CLI~Cursor✓OpenCode
npx skills add https://github.com/clawdbot/clawdbot/tree/main/skills/coding-agent

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

在你喜歡的 AI 中提問

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

說明文件

程式碼開發代理 是做什麼的?

用於背景功能建置、PR 審查、大型重構和議題到 PR 循環。請勿用於簡單編輯、唯讀查詢、ACP 繫結執行緒工作,或任何在 ~/.openclaw、$OPENCLAW_STATE_DIR 或活動中的 OpenClaw 狀態目錄內執行的操作。

嚴格規則

  • 始終以 background:true 啟動。
  • Codex 和 OpenCode:使用 pty:true。
  • Codex:絕不繼承環境中的 CODEX_HOME 或預設的 ~/.codex。使用單獨驗證的編碼代理家目錄,並將其範圍限定在每個 Codex 命令。
  • Claude Code:不使用 PTY;使用 claude --permission-mode bypassPermissions --print。
  • 在產出工作者之前捕獲一個真實的通知路由。
  • 工作者必須透過 openclaw message send 發送完成/失敗訊息。
  • 不要依賴心跳、系統事件或退出通知。
  • 使用 process 進行監控;不要無故終止慢速工作者。
  • 如果使用者指定了特定代理,則使用該代理。
  • 如果工作者失敗/掛起,請重新生成或詢問;不要默默手動編碼代替。
  • 絕不要在 ~/Projects/openclaw 中簽出分支或執行背景編碼代理;使用隔離的簽出。
  • 在任何簽出或工作樹建立之前,將來源引用分類為受信任或不受信任。切勿在儲存庫已批准的不可信任 PR 沙箱/審查工作流程之外實例化貢獻者控制的引用,也切勿在其中啟動權限繞過的工作者。
  • 對於修改 Git 備份專案的任務,在啟動前準備並驗證 Git 工作樹,然後在工作者提示中包含以下強制性 Git 準備區塊。

強制性 Git 準備

在啟動 Codex、Claude Code 或 OpenCode 執行修改 Git 備份專案的工作之前:

  1. 確定目標儲存庫,然後選擇其規範遠端。當 upstream 存在且與該目標匹配時,優先使用;否則驗證 origin。動態解析所選遠端的預設分支。從明確的任務分支或權威的現有 PR 元資料中確定目標基礎;對於其他共享分支,證明配置的/追蹤的基礎或詢問。僅在沒有指定其他基礎的新工作中使用規範預設值。如果無法證明儲存庫、遠端或目標基礎,則停止。
  2. 在任何簽出或工作樹建立之前,將來源引用分類為受信任或不受信任。對於貢獻者控制的引用,請使用儲存庫已批准的不可信任 PR 沙箱/審查工作流程,該工作流程必須在沙箱內擁有引用實例化權限,否則停止。其餘步驟和啟動形式僅適用於受信任的引用。
  3. 對於受信任的新工作,在從 <canonical>/<targetBaseBranch> 建立新的隔離工作樹和分支之前,立即執行 git fetch --prune <canonical>。
  4. 對於受信任的新工作,驗證工作樹的初始 HEAD 等於提取的目標基礎 SHA。記錄規範遠端、規範預設分支、目標基礎分支、基礎 SHA、工作樹路徑和分支。
  5. 對於受信任的現有 PR 或共享分支,在從提取的來源分支建立隔離工作樹之前,立即提取規範目標基礎和來源分支。記錄該來源引用和起始 SHA,報告其與更新後的目標基礎的差異,並且不要自動重新設定基礎、合併、重置、強制推送或以其他方式重寫共享歷史記錄。
  6. 在隔離的工作樹中啟動工作者,絕不在主要簽出中。對於 OpenClaw,~/Projects/openclaw 下的主要簽出仍被禁止。

對於修改 Git 備份專案的任務,將此區塊附加到工作者提示中,並填入實際值:

Git 準備(編輯前強制執行):
- 規範遠端: <canonicalRemote>
- 規範預設分支: <canonicalDefaultBranch>
- 目標基礎分支: <targetBaseBranch>
- 提取的目標基礎 SHA: <targetBaseSha>
- 準備模式: <新工作 | 現有 PR/共享分支>
- 簽出信任: 受信任
- 準備的來源引用: <canonicalRemote/targetBaseBranch | 提取的受信任來源引用>
- 準備的起始 SHA: <preparedStartSha>
- 隔離工作樹: <worktreePath>
- 工作分支: <branch>
- 準備收據: <新工作: `git fetch --prune <canonicalRemote>` 在從 `<canonicalRemote>/<targetBaseBranch>` 建立之前立即執行 | 現有分支: 規範目標基礎和受信任來源引用在從 `<preparedSourceRef>` 在 `<preparedStartSha>` 建立工作樹之前立即被提取>

編輯前,驗證當前目錄是隔離工作樹且其初始 HEAD 等於 <preparedStartSha>。對於新工作,該 SHA 必須等於 <targetBaseSha>。永遠不要編輯主要簽出。對於現有 PR/共享分支工作,報告差異,並且除非明確要求,否則不要重新設定基礎、合併、重置、強制推送或以其他方式重寫共享歷史記錄。
在新撰寫的工作最終推送或 PR 之前,立即執行 `git fetch --prune <canonicalRemote>` 和 `git merge-base --is-ancestor <canonicalRemote>/<targetBaseBranch> HEAD`。如果祖先檢查失敗,則將新分支更新到最新的目標基礎,重新執行相關證明,然後僅在沒有強制的情況下推送。對於現有 PR/共享分支工作,報告祖先檢查失敗並遵循儲存庫工作流程,不改寫分支。

對於受信任的引用,啟動器必須在啟動編輯工作者之前建立並驗證工作樹;不要將工作樹建立委派給該工作者。經批准的不可信任 PR 工作流程則必須在其沙箱內擁有簽出和工作樹的實例化權限。絕不在 ~/Projects/openclaw 中啟動工作者。唯讀任務和非專案的臨時工作不需要 Git 準備區塊。

通知區塊

將此形狀附加到每個工作者提示中,並填入實際值:

通知路由:
- 頻道: <notifyChannel>
- 目標: <notifyTarget>
- 帳戶: <notifyAccount 或省略>
- 回覆至: <notifyReplyTo 或省略>
- 執行緒 ID: <notifyThreadId 或省略>

完成時,使用以下命令發送一條完成或失敗訊息:
openclaw message send --channel <頻道> --target '<目標>' --message '<簡要結果>'
僅在上述存在時添加 --account、--reply-to 或 --thread-id。
請勿使用 openclaw 系統事件或心跳。

如果沒有可信賴的路由,請說明完成自動通知不可用。

啟動形式

首先將工作者提示寫入暫存檔。這可以避免當所需的通知區塊包含引號或換行時出現 shell 引號錯誤。

PROMPT=$(mktemp -t openclaw-worker-prompt.XXXXXX)
cat >"$PROMPT" <<'EOF'
任務。
<強制性 Git 準備區塊>
<通知區塊>
EOF
printf '提示檔案: %s\n' "$PROMPT"

從同一個 shell/會話啟動時使用 $PROMPT。如果使用單獨的工具呼叫,請替換為列印的路徑。以下啟動形式僅適用於受信任的簽出;不可信任的貢獻者引用需要儲存庫批准的沙箱/審查工作流程。

在主機上啟動第一個 Codex 工作者之前,請在前景準備一個專用的驗證家目錄。不要從環境中的 ~/.codex 複製 auth.json 或其他憑證;單獨授權此家目錄。Codex 透過 CODEX_HOME 範圍限定檔案和金鑰環憑證。

CODEX_WORKER_HOME="$HOME/.codex-coding-agent"
mkdir -p "$CODEX_WORKER_HOME"
if ! env -u CODEX_API_KEY -u CODEX_ACCESS_TOKEN -u OPENAI_API_KEY \
  CODEX_HOME="$CODEX_WORKER_HOME" codex login status >/dev/null 2>&1; then
  printf '需要 Codex 編碼代理登入 %s\n' "$CODEX_WORKER_HOME"
  env -u CODEX_API_KEY -u CODEX_ACCESS_TOKEN -u OPENAI_API_KEY \
    CODEX_HOME="$CODEX_WORKER_HOME" codex login --device-auth
fi
printf 'Codex 工作者家目錄: %s\n' "$CODEX_WORKER_HOME"

登入是一個互動式前景設定步驟,不是背景工作者。啟動命令重複固定、帶引號的家目錄並移除環境中的 Codex 和 OpenAI 驗證覆寫。絕不將工作者家目錄匯出到 OpenClaw 閘道環境。

Codex:

bash pty:true background:true workdir:/路徑/隔離工作樹 command:"env -u CODEX_API_KEY -u CODEX_ACCESS_TOKEN -u OPENAI_API_KEY CODEX_HOME=\"$HOME/.codex-coding-agent\" codex exec - < \"$PROMPT\""

Claude Code:

bash background:true workdir:/路徑/隔離工作樹 command:"claude --permission-mode bypassPermissions --print < \"$PROMPT\""

OpenCode:

bash pty:true background:true workdir:/路徑/隔離工作樹 command:"opencode run < \"$PROMPT\""

長議題到 PR 工作

  1. 建立/重複使用 GitHub 議題作為持久規格。
  2. 包含議題 URL、儲存庫、規範遠端/預設分支、目標基礎分支/SHA、隔離工作樹、工作分支、預期 PR、證明和通知路由。
  3. 包含強制性 Git 準備區塊,然後告訴工作者實作、測試、執行審查直到沒有接受的可操作發現,並開啟 PR。
  4. 立即返回議題 URL 和 sessionId。
  5. 使用 process 監控;如果已鏡像,則透過任務註冊表取消。

臨時 Codex

Codex 需要一個受信任的 git 儲存庫。這個一次性的支架不是專案工作,也沒有規範遠端,因此 Git 準備區塊不適用:

SCRATCH=$(mktemp -d)
git -C "$SCRATCH" init
PROMPT=$(mktemp -t openclaw-worker-prompt.XXXXXX)
cat >"$PROMPT" <<'EOF'
建置 X。
<通知區塊>
EOF
printf '提示檔案: %s\n' "$PROMPT"
bash pty:true background:true workdir:$SCRATCH command:"env -u CODEX_API_KEY -u CODEX_ACCESS_TOKEN -u OPENAI_API_KEY CODEX_HOME=\"$HOME/.codex-coding-agent\" codex exec - < \"$PROMPT\""

進程操作

  • list:執行中/最近的會話。
  • poll:狀態。
  • log:輸出。
  • submit:發送輸入 + Enter。
  • write:原始標準輸入。
  • paste:貼上文字。
  • kill:終止。

狀態通知使用者

  • 告知已啟動的內容、位置和 sessionId。
  • 僅在里程碑、工作者問題、錯誤、需要使用者操作或完成時更新。
  • 如果被終止,說明原因。

Individual skills in this repo

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

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

相關技能