入門:從codex-plugin-cc學(xué)命令、Agent與Hook設(shè)計(jì))
Claude Code插件開發(fā)入門從codex-plugin-cc學(xué)命令、Agent與Hook設(shè)計(jì)【免費(fèi)下載鏈接】codex-plugin-ccUse Codex from Claude Code to review code or delegate tasks.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/co/codex-plugin-cc一句話認(rèn)識這個(gè)項(xiàng)目codex-plugin-cc 是什么codex-plugin-cc是 OpenAI 官方出品的Claude Code 插件讓你直接在 Claude Code 里調(diào)用 Codex既能跑代碼評審/codex:review又能把調(diào)試、修復(fù)類任務(wù)委派給 Codex 后臺執(zhí)行/codex:rescue。它同時(shí)提供了斜杠命令Commands、子代理Agent、生命周期鉤子Hooks和內(nèi)部技能Skills四類插件組件堪稱學(xué)習(xí) Claude Code 插件開發(fā)的一份活教材。本文帶你拆解這個(gè)插件的完整架構(gòu)一個(gè)plugins/codex/目錄里命令、Agent 與 Hook 是怎么分工協(xié)作的。 插件目錄結(jié)構(gòu)一個(gè)組件齊全的參考實(shí)現(xiàn)打開倉庫核心代碼全部在plugins/codex/下結(jié)構(gòu)非常清晰plugins/codex/ ├── commands/ # 8 個(gè)斜杠命令.md 文件 ├── agents/ # 1 個(gè)子代理 codex-rescue.md 文件 ├── hooks/ # hooks.jsonHook 注冊表 ├── prompts/ # 提示詞模板如 stop-review-gate ├── schemas/ # JSON Schema評審輸出契約 ├── scripts/ # Node.js 運(yùn)行時(shí)腳本真正的執(zhí)行層 └── skills/ # 2 個(gè)內(nèi)部技能SKILL.md它提供的命令包括/codex:review—— 只讀代碼評審/codex:adversarial-review—— 可指定關(guān)注點(diǎn)的對抗式評審/codex:rescue—— 把任務(wù)委派給 Codex 子代理/codex:transfer—— 把當(dāng)前會話上下文遷移到 Codex/codex:status、/codex:result、/codex:cancel—— 后臺任務(wù)管理三件套/codex:setup—— 環(huán)境檢查與評審門禁開關(guān)整體思路可以概括為一句話Markdown 文件負(fù)責(zé)聲明Node 腳本負(fù)責(zé)執(zhí)行。下面逐個(gè)拆解。一、命令Commands設(shè)計(jì)YAML 頭 行為劇本Claude Code 的斜杠命令本質(zhì)是一個(gè) Markdown 文件由YAML frontmatter聲明區(qū) 正文行為劇本兩部分組成。以 review.md 為例--- description: Run a Codex code review against local git state argument-hint: [--wait|--background] [--base ref] disable-model-invocation: true allowed-tools: Read, Glob, Grep, Bash(node:*), Bash(git:*), AskUserQuestion ---這里藏著 4 個(gè)關(guān)鍵設(shè)計(jì)點(diǎn)allowed-tools最小授權(quán)只開放Bash(node:*)和Bash(git:*)把命令的手腳限制在最小范圍——這是插件安全設(shè)計(jì)的第一原則。disable-model-invocation: true聲明該命令只能由用戶顯式輸入觸發(fā)模型不會自己調(diào)用避免意外行為。$ARGUMENTS變量正文里用$ARGUMENTS原樣接收用戶參數(shù)并在劇本中要求不得改寫用戶意圖。行為劇本用自然語言寫死規(guī)則比如 review.md 中明確規(guī)定先估算 diff 規(guī)模 → 小規(guī)模推薦前臺等待、大規(guī)模推薦后臺運(yùn)行 → 只用AskUserQuestion問一次且推薦項(xiàng)必須標(biāo)注 (Recommended)。再對比 status.md它只用了一行!前綴命令直接執(zhí)行腳本并渲染結(jié)果表格——簡單命令不需要復(fù)雜劇本。命令復(fù)雜度與行為劇本長度成正比這是很實(shí)用的分寸感。二、Agent 設(shè)計(jì)codex-rescue的薄轉(zhuǎn)發(fā)器模式子代理定義在 codex-rescue.mdfrontmatter 聲明了它的身份--- name: codex-rescue model: sonnet tools: Bash skills: - codex-cli-runtime - gpt-5-4-prompting ---真正值得學(xué)習(xí)的是正文里的職責(zé)收窄設(shè)計(jì)Your only job is to forward the users rescue request to the Codex companion script. Do not do anything else.這個(gè) Agent 被刻意做成一個(gè)薄轉(zhuǎn)發(fā)器thin forwarding wrapper? 允許恰好一次Bash調(diào)用把請求轉(zhuǎn)發(fā)給 codex-companion.mjs可用gpt-5-4-prompting技能把用戶口語潤色成更緊湊的 Codex 提示詞? 禁止讀文件、grep、輪詢狀態(tài)、拉取結(jié)果、總結(jié)輸出等一切自作主張 輸出把腳本 stdout原樣返回不加任何評論為什么這樣設(shè)計(jì)因?yàn)?Agent 一旦聰明起來就會繞過插件的運(yùn)行時(shí)邏輯自己發(fā)揮導(dǎo)致狀態(tài)管理失控。把 Agent 收窄成純粹的協(xié)議轉(zhuǎn)換層智能被推到兩個(gè)地方上游的命令劇本rescue.md 負(fù)責(zé)--resume/--fresh路由判斷下游的 Codex 本體真正干活。中間層越薄系統(tǒng)越可控——這是本插件最值得抄的設(shè)計(jì)。三、Hook 設(shè)計(jì)Stop鉤子實(shí)現(xiàn)評審門禁插件的 Hook 注冊在 hooks.json 中一共三類Hook觸發(fā)時(shí)機(jī)作用SessionStart會話啟動(dòng)提供當(dāng)前 transcript 路徑供/codex:transfer使用SessionEnd會話結(jié)束清理會話生命周期狀態(tài)StopClaude 準(zhǔn)備停止時(shí)觸發(fā)評審門禁讓 Codex 復(fù)查上一輪的代碼改動(dòng)Stop鉤子是亮點(diǎn)。執(zhí)行腳本 stop-review-gate-hook.mjs 的工作流程是從 stdin 讀取 Claude Code 傳入的 JSON 上下文上一輪 assistant 消息、會話 ID、工作目錄若未開啟門禁stopReviewGate配置或 Codex 未就緒直接放行并打印提示否則加載提示詞模板 stop-review-gate.md注入上一輪回復(fù)調(diào)起一次 Codex 評審解析結(jié)果第一行以ALLOW:開頭則放行以BLOCK:開頭則輸出{decision:block}阻斷 Claude 的停止讓它先把問題修完這套設(shè)計(jì)的精髓在于輸出契約化提示詞里明確規(guī)定首行必須且只能是ALLOW: 原因或BLOCK: 原因Hook 腳本就能用簡單的字符串前綴判斷做機(jī)器決策而不需要再去理解一段自然語言。?? 官方也提醒評審門禁可能形成 Claude/Codex 長循環(huán)、快速消耗用量只建議在有人盯守的會話中開啟/codex:setup --enable-review-gate開、--disable-review-gate關(guān)。四、Skill 與運(yùn)行時(shí)智能的收納柜剩下的智能被收納進(jìn)了兩個(gè)內(nèi)部技能user-invocable: false用戶不可直接調(diào)用codex-cli-runtime/SKILL.md規(guī)定 rescue Agent 調(diào)用task命令的完整契約——如何剝離路由標(biāo)志位、--resume如何映射為--resume-last、spark如何映射為gpt-5.3-codex-spark等gpt-5-4-prompting/SKILL.md一套像操作員一樣給 Codex 寫提示詞的方法論用 XML 標(biāo)簽task、grounding_rules等組裝結(jié)構(gòu)化提示詞并配有 references/prompt-blocks.md 等參考文檔真正的執(zhí)行層是 scripts/ 目錄下的 Node 腳本核心是codex-companion.mjs及其 lib/ 下的模塊狀態(tài)管理state.mjs、工作區(qū)解析workspace.mjs、進(jìn)程管理process.mjs等它封裝了 Codex app server 通信與作業(yè)生命周期。評審輸出還有 JSON Schema 約束review-output.schema.json。五、5 條可直接抄走的設(shè)計(jì)要點(diǎn)聲明與執(zhí)行分離.md文件只做聲明與編排重活全部交給scripts/里的腳本便于測試與維護(hù)最小工具授權(quán)每個(gè)命令/Agent 的allowed-tools/tools字段按需開放能只給Bash就不給全套Agent 保持薄把子代理做成協(xié)議轉(zhuǎn)發(fā)器智能放在命令劇本和遠(yuǎn)端模型兩端Hook 決策必須契約化要求下游模型輸出機(jī)器可解析的固定格式如ALLOW:/BLOCK:首行而非自由文本內(nèi)部知識用 Skill 沉淀不可用戶調(diào)用的內(nèi)部技能user-invocable: false是存放運(yùn)行時(shí)契約和提示詞工程規(guī)范的好位置 自己動(dòng)手安裝體驗(yàn)這個(gè)插件要求Node.js ≥ 18.18以及 ChatGPT 訂閱含免費(fèi)或 OpenAI API key。在 Claude Code 中依次執(zhí)行/plugin marketplace add openai/codex-plugin-cc /plugin install codexopenai-codex /reload-plugins /codex:setup/codex:setup會檢查 Codex 是否就緒缺失時(shí)還會引導(dǎo)安裝。一個(gè)推薦的首次運(yùn)行組合拳/codex:review --background /codex:status /codex:result后臺發(fā)起評審 → 查看進(jìn)度 → 取回結(jié)果完整走一遍命令 后臺任務(wù) 狀態(tài)管理的閉環(huán)。想深入閱讀建議按這個(gè)順序逛源碼先讀 README.md 了解全貌再依次精讀commands/review.md、agents/codex-rescue.md、hooks/hooks.json三個(gè)文件——它們分別展示了命令、Agent、Hook 三種組件的標(biāo)準(zhǔn)寫法讀完你已具備開發(fā)自己的 Claude Code 插件的基礎(chǔ)?!久赓M(fèi)下載鏈接】codex-plugin-ccUse Codex from Claude Code to review code or delegate tasks.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/co/codex-plugin-cc創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考