戰(zhàn)指南:把Codex CLI從被動(dòng)問答變成主動(dòng)執(zhí)行)
在風(fēng)頭正熱的時(shí)候網(wǎng)上到處都在聊“superpowers”但說實(shí)話真正把它講清楚的中文資料沒幾篇。我去年底第一次接觸這個(gè)項(xiàng)目的時(shí)候也懵了看名字以為是個(gè)花里胡哨的“超能力插件”裝上以后才發(fā)現(xiàn)它干的其實(shí)是另一件事把AI編程助手從“你問一句它答一句”的狀態(tài)變成“你給它一個(gè)目標(biāo)它按規(guī)范干完”的狀態(tài)。這篇文章我就以自己在真實(shí)項(xiàng)目里的使用經(jīng)驗(yàn)為主線把superpowers是什么、怎么裝、怎么在Java項(xiàng)目里用、踩過哪些坑一次性說清楚。不管你是剛聽說這個(gè)名字、裝到一半卡住還是已經(jīng)裝好但不知道怎么用它干活這篇都適合你。1. 它不是一個(gè)超能力插件而是一套“AI工作流說明書”1.1 先弄清楚Codex CLI的痛點(diǎn)在哪里superpowers是圍繞Codex CLI工作的一組技能包所以先得說Codex CLI本身。Codex CLI是OpenAI出的一個(gè)跑在終端里的AI編程助手能讀你的代碼庫、執(zhí)行命令、改文件、跑測試非常接近一個(gè)“住在終端里的結(jié)對程序員”。我剛開始用的時(shí)候很興奮但用了一周就發(fā)現(xiàn)了幾個(gè)越來越難受的問題。第一個(gè)問題是每次會(huì)話都像失憶。你今天讓它用TDD方式寫一個(gè)模塊它寫得規(guī)規(guī)矩矩明天新開一個(gè)會(huì)話讓它寫另一個(gè)模塊它可能一上來就先把實(shí)現(xiàn)代碼寫了根本沒想著先寫測試。不是它變笨了而是你每次教它的“工作方式”沒有沉淀下來。第二個(gè)問題是上下文一長就跑偏。一個(gè)任務(wù)聊到二三十輪之后它經(jīng)常忘了最開始定下的約束比如“不要改公共接口”、“不要引入新依賴”它照樣干。第三個(gè)問題是缺少標(biāo)準(zhǔn)動(dòng)作。有經(jīng)驗(yàn)的開發(fā)者拿到需求會(huì)先拆解、再寫測試、再小步實(shí)現(xiàn)但Codex默認(rèn)沒有這套肌肉記憶你說“幫我實(shí)現(xiàn)這個(gè)功能”它就真的直奔實(shí)現(xiàn)去了。這些問題不是Codex本身能力不夠而是缺少一層“工作流層”。superpowers就是來解決這個(gè)的。1.2 superpowers的本質(zhì)用Markdown技能包把工作流固化下來superpowers的作者是Jesse Vincent網(wǎng)名obra他做過不少知名開源項(xiàng)目做superpowers的原因也很樸素他在用Codex的時(shí)候發(fā)現(xiàn)與其每次在提示詞里反復(fù)教AI“你該按什么流程走”不如把這些流程寫成一套可復(fù)用的“技能包”讓Codex在需要的時(shí)候自動(dòng)加載。這套機(jī)制簡單說就是每個(gè)技能就是一個(gè)Markdown文件文件頭部有一段YAML格式的元信息包含了技能的名字、描述、適用場景正文部分就是給Codex的詳細(xì)指令告訴它拿到什么任務(wù)后按什么步驟做、每一步有哪些注意點(diǎn)。比如TDD技能正文里會(huì)寫著類似這樣的話“當(dāng)用戶要求你實(shí)現(xiàn)一個(gè)新功能時(shí)先寫一個(gè)會(huì)失敗的測試運(yùn)行它確認(rèn)失敗再寫最小實(shí)現(xiàn)讓測試通過最后做重構(gòu)?!边@個(gè)流程對老程序員來說不稀奇但問題是Codex默認(rèn)不會(huì)自動(dòng)這么做而技能包會(huì)把這段“肌肉記憶”直接塞進(jìn)它的工作上下文里。所以我說它是一套“AI工作流說明書”一點(diǎn)不夸張。它沒有改變Codex的底層能力改變的是Codex拿到任務(wù)后的執(zhí)行方式。你可以理解成Codex本身是一個(gè)什么都會(huì)一點(diǎn)的新人程序員superpowers是給他配的SOP手冊告訴他遇到什么情況該按什么流程來。1.3 為什么說它把“被動(dòng)問答”變成了“主動(dòng)執(zhí)行”我用的時(shí)間越久越覺得這個(gè)區(qū)分特別關(guān)鍵。默認(rèn)狀態(tài)下你在Codex里說“幫我看看這段代碼”它是被動(dòng)的你說什么它做什么。但當(dāng)你裝了superpowers并且在對話里說了一句“use the review skill”之后Codex會(huì)做的就不再是“看一眼然后點(diǎn)評幾句”了而是會(huì)主動(dòng)去調(diào)用git diff、逐個(gè)文件檢查變更、按代碼審查清單逐項(xiàng)過最后給你一份結(jié)構(gòu)化的審查報(bào)告。這背后的原理不玄乎技能包把“做什么、按什么順序做、做到什么程度”都寫清楚了模型把這些指令當(dāng)成了任務(wù)約束來執(zhí)行。所以superpowers的實(shí)際效果是把你的工程經(jīng)驗(yàn)、團(tuán)隊(duì)規(guī)范、個(gè)人偏好翻譯成了AI能穩(wěn)定遵守的指令。這也是它和普通提示詞最大的區(qū)別——普通提示詞是一次性的技能包是可積累、可復(fù)用的。2. 安裝superpowers環(huán)境要求與三步初始化2.1 前置環(huán)境Node.js版本、Codex CLI版本一個(gè)都不能錯(cuò)聊安裝之前先把環(huán)境說清楚。superpowers本身是用npm發(fā)布的包所以Node.js是必須的。我個(gè)人建議Node.js版本至少1820以上更好因?yàn)榧寄馨陌惭b腳本用到了不少較新的Node特性版本太老容易在安裝階段報(bào)錯(cuò)。檢查命令是node -v和npm -v不到位的先去把Node環(huán)境補(bǔ)上。然后就是Codex CLI它是superpowers的運(yùn)行底座基本上可以理解成“沒有Codex就沒有superpowers”。安裝Codex CLI很簡單官方推薦npm install -g openai/codex裝完以后跑一下codex --version確認(rèn)版本號能正常打印出來。這里我多說一句Codex CLI本身就要求你有一個(gè)可用的OpenAI賬號并完成登錄授權(quán)如果codex本身還不能正常對話那superpowers裝得再漂亮也沒用。所以我的建議是先花十分鐘把Codex CLI從安裝到首次對話完整跑通再碰superpowers不然出了問題根本分不清是哪層的毛病。如果你已經(jīng)能正常使用Codex CLI那環(huán)境這塊就只剩一件事確認(rèn)有權(quán)限在全局目錄安裝npm包。很多人在這一步踩坑比如在Linux或macOS上直接npm install -g報(bào)EACCES權(quán)限錯(cuò)誤。我的做法是優(yōu)先用nvm管理Node版本這樣全局安裝目錄就在用戶目錄下不需要sudo。用sudo裝全局npm包短期能解決但后續(xù)很容易出現(xiàn)目錄權(quán)限混亂的問題不建議。2.2 安裝與初始化命令詳解環(huán)境就緒之后安裝superpowers就兩步。第一步是安裝superpowers本體npm install -g obra/superpowers裝上以后終端里就有了superpowers這個(gè)命令。先別急著用第二步是初始化技能庫讓它把默認(rèn)技能包安裝到Codex CLI的配置目錄里。不同時(shí)期項(xiàng)目推薦的具體命令略有變化你以倉庫README為準(zhǔn)大致是這樣superpowers install這個(gè)命令會(huì)把所有內(nèi)置技能寫進(jìn)~/.codex/skills目錄macOS和Linux是這個(gè)路徑Windows下會(huì)在用戶目錄的對應(yīng)位置。執(zhí)行完之后你可以看一眼這個(gè)目錄里面應(yīng)該會(huì)出現(xiàn)一堆以技能名命名的文件夾比如tdd、explain-code、review這些每個(gè)文件夾里都放著一個(gè)Markdown指南文件??吹竭@些文件說明技能庫已經(jīng)就位了。接下來有個(gè)容易忽略的點(diǎn)Codex CLI需要知道技能目錄在哪里。有些版本的Codex會(huì)自動(dòng)掃描~/.codex/skills有些版本則需要在Codex的配置文件里指定。我的建議是裝完superpowers之后直接打開~/.codex/config.toml看看確認(rèn)里面有類似skills [~/.codex/skills]這樣的配置。如果沒有手動(dòng)補(bǔ)上這一行再重啟Codex保守但有效。2.3 驗(yàn)證安裝是否成功的兩個(gè)信號裝完以后怎么確認(rèn)不是“假裝裝好了”我一般看兩個(gè)信號。第一個(gè)信號是文件層面ls ~/.codex/skills能看到技能文件夾說明superpowers install這一步成功。第二個(gè)信號是行為層面在Codex CLI里新建一個(gè)會(huì)話輸入一句“use the explain-code skill”如果它回應(yīng)的方式明顯是“先拆解代碼結(jié)構(gòu)、再逐行解釋、最后給總結(jié)”而不是泛泛地跟你說“這段代碼意思是……”那就說明技能已經(jīng)被加載并且生效了。這里有個(gè)很容易安心的判斷方法沒加載技能時(shí)Codex的回答風(fēng)格和平時(shí)閑聊區(qū)別不大加載技能后你會(huì)明顯感覺它做事“有章法”了會(huì)主動(dòng)分步驟、列觀察項(xiàng)、按清單走。這個(gè)體感差異比看什么日志都來得直觀。如果你在驗(yàn)證時(shí)發(fā)現(xiàn)它完全沒有技能加載的樣子別急著懷疑人生大概率是配置路徑?jīng)]對上或者版本有差異。這類問題的完整排查思路我放在第5章專門講這里你可以先回到~/.codex/config.toml檢查配置項(xiàng)是否存在。3. 上手實(shí)操技能觸發(fā)邏輯與高頻技能拆解3.1 技能怎么被觸發(fā)自然語言觸發(fā)詞的設(shè)計(jì)邏輯安裝只是開始真正用起來的第一步是理解觸發(fā)邏輯。superpowers的技能不是像插件那樣“裝了就自動(dòng)常駐”而是按需加載。它的工作方式是你在對話里明確提到某個(gè)技能Codex會(huì)去技能庫里找到對應(yīng)的Markdown文件把里面的內(nèi)容當(dāng)作工作約束來執(zhí)行。最穩(wěn)妥的觸發(fā)格式是英文use the 技能名 skill。比如use the tdd skill、use the review skill。這個(gè)格式我建議你形成肌肉記憶因?yàn)樗畈蝗菀桩a(chǎn)生歧義。我也試過純中文觸發(fā)比如“用TDD技能來寫”在多數(shù)情況下也能被正確識(shí)別但如果Codex版本較老或者技能描述里的關(guān)鍵信息是英文中文觸發(fā)的識(shí)別率會(huì)下降。你可能會(huì)問為什么superpowers不把所有技能全部塞給Codex讓它自己判斷什么時(shí)候用哪個(gè)答案很現(xiàn)實(shí)技能全部常駐會(huì)占用大量上下文窗口反而降低回答質(zhì)量。而且很多技能之間有隱含的先后關(guān)系比如“先解釋再審查”和“先審查再解釋”結(jié)果完全不同。所以按需加載這個(gè)設(shè)計(jì)看似麻煩實(shí)際是取舍之后的最優(yōu)解。3.2 高頻技能逐個(gè)拆解我在真實(shí)項(xiàng)目里用得最多的是這幾個(gè)逐個(gè)說下它們各自解決什么問題。explain-code代碼解釋讓Codex不是泛泛地講代碼“做了什么”而是按“整體結(jié)構(gòu)→關(guān)鍵函數(shù)→邊界條件→潛在問題”的結(jié)構(gòu)做一次完整講解。適合接手不熟悉的項(xiàng)目或者做技術(shù)評審前快速過代碼。tdd測試驅(qū)動(dòng)開發(fā)這是我覺得superpowers里最值錢的技能。它強(qiáng)制Codex先寫失敗的測試再實(shí)現(xiàn)再重構(gòu)。它會(huì)把“先紅燈、再綠燈、再重構(gòu)”這個(gè)節(jié)奏拆成多個(gè)小步驟每一步都停下來等你確認(rèn)。對于追求可維護(hù)性的團(tuán)隊(duì)這個(gè)技能可以說是直接給AI裝上了開發(fā)規(guī)范。review代碼審查讓Codex基于當(dāng)前分支的改動(dòng)做審查它會(huì)主動(dòng)跑git diff檢查變更文件按正確性、可讀性、安全性、性能等維度給出意見。注意它和你在聊天框里說“幫我看看這段代碼”有本質(zhì)區(qū)別——它會(huì)先明確“審查范圍”是哪些改動(dòng)再逐條過。git-workGit工作流規(guī)范化Git操作流程包括生成符合規(guī)范的提交信息、檢查分支狀態(tài)、處理合并沖突前的準(zhǔn)備工作。我通常在一個(gè)任務(wù)開始時(shí)先讓Codex用這個(gè)技能確認(rèn)當(dāng)前分支干凈避免中途提交把無關(guān)文件混進(jìn)去。這幾個(gè)技能覆蓋了我日常開發(fā)流量的八成。剩下的比如brainstorming需求拆解、debugging問題定位我用的頻率低一些但同樣值得你打開技能文件看一眼它們的觸發(fā)條件和適用場景。3.3 一次完整的TDD技能實(shí)戰(zhàn)演示光看解釋不如來一次實(shí)際操作。我在一個(gè)Java項(xiàng)目里曾經(jīng)讓Codex用TDD技能實(shí)現(xiàn)一個(gè)簡單的訂單金額計(jì)算器需求是“計(jì)算含稅金額稅率10%低于100元的訂單免運(yùn)費(fèi)”。我在Codex會(huì)話里輸入的是use the tdd skill 實(shí)現(xiàn)一個(gè)OrderCalculator方法 calculateTotal(amount) 返回含稅金額金額低于100元時(shí)額外返回免運(yùn)費(fèi)標(biāo)記。有意思的事情發(fā)生了。它沒有直接甩給我一個(gè)類文件而是先問我“這個(gè)需求有沒有邊界情況需要確認(rèn)比如金額正好等于100元時(shí)要不要收運(yùn)費(fèi)稅率是固定10%還是可配置”這一步就是技能包里的“需求澄清”步驟在起作用。我補(bǔ)充說“等于100元也免運(yùn)費(fèi)稅率先固定”。然后它就按TDD流程來了先在src/test/java下寫了OrderCalculatorTest寫了一個(gè)會(huì)失敗的測試運(yùn)行測試確認(rèn)紅燈再新建OrderCalculator.java用最簡實(shí)現(xiàn)讓測試通過最后跑一遍全量測試做了一次小的重構(gòu)把重復(fù)計(jì)算抽成方法。整個(gè)過程它都會(huì)停下來告訴我下一步是什么、為什么要這么做。這個(gè)體驗(yàn)和我平時(shí)用裸Codex完全不同。裸Codex大概率會(huì)一次性寫完實(shí)現(xiàn)類然后“好意”地問你要不要補(bǔ)個(gè)測試。而TDD技能是反過來的測試先行每一步都有明確節(jié)奏。這就是技能包的價(jià)值。4. Java項(xiàng)目里的使用心得從代碼審查到測試生成4.1 Java場景下最該先啟用的三個(gè)技能如果你和我一樣主要寫Java那superpowers里最值得你先用起來的是這三個(gè)組合review、tdd和explain-code。先說為什么是這三個(gè)組合。Java項(xiàng)目普遍比腳本語言項(xiàng)目更講究結(jié)構(gòu)和規(guī)范類職責(zé)、接口邊界、異常處理這些事默認(rèn)狀態(tài)的Codex不會(huì)主動(dòng)去管。開了review技能之后你每次提交前讓它過一遍變更它給出的審查意見會(huì)更貼近“有經(jīng)驗(yàn)的Java同事在看你的代碼”這種感覺比如會(huì)提醒你“這里應(yīng)該用Optional而不是返回null”、“這個(gè)異常不應(yīng)該吞掉”、“流式處理可以簡化這段循環(huán)”。tdd技能在Java里尤其好用因?yàn)镴ava生態(tài)的測試框架成熟JUnit 5配AssertJ已經(jīng)成了標(biāo)準(zhǔn)配置。技能讓Codex自動(dòng)生成測試類時(shí)它會(huì)按Maven/Gradle的標(biāo)準(zhǔn)目錄結(jié)構(gòu)來放測試代碼不會(huì)把測試塞到main代碼里。我第一回看到它自動(dòng)建src/test/java目錄的時(shí)候還挺感慨這就是技能包內(nèi)置的工程意識(shí)。explain-code技能則適合你剛接手一個(gè)老模塊時(shí)使用。我有個(gè)維護(hù)了三年的支付模塊接手時(shí)完全沒有文檔我就是讓Codex用這個(gè)技能把核心鏈路逐行過了一遍半小時(shí)后就對整個(gè)模塊的時(shí)序和風(fēng)險(xiǎn)點(diǎn)心里有數(shù)了。4.2 處理Java特有問題Lombok、泛型、依賴版本但Java場景不是沒有坑。我用了幾個(gè)月下來有幾個(gè)和Java特性相關(guān)的細(xì)節(jié)想單獨(dú)提醒你。第一個(gè)是Lombok。review技能經(jīng)常會(huì)對Lombok生成的代碼表示困惑因?yàn)樗吹氖窃创a文件上的Data注解看不到生成后的getter/setter。有幾次它甚至建議我“手動(dòng)補(bǔ)全getter和setter”我直接拒絕了然后在技能描述里加了一句“項(xiàng)目中使用了Lombok生成的方法不需要手動(dòng)實(shí)現(xiàn)”后續(xù)審查意見就正常多了。所以我的經(jīng)驗(yàn)是Java項(xiàng)目用superpowers越早把項(xiàng)目上下文告訴它它后續(xù)的產(chǎn)出越不容易跑偏。第二個(gè)是泛型和類型擦除。explain-code在解釋復(fù)雜的泛型嵌套時(shí)偶爾會(huì)陷入“看起來說了很多、實(shí)際沒說到點(diǎn)子上”的境地。我的處理辦法是讓它“解釋的時(shí)候給出具體類型示例”而不是停留在泛型符號層面。比如解釋List? extends T時(shí)我會(huì)讓它用List? extends Number舉兩個(gè)實(shí)際例子來說明限制。第三個(gè)是依賴版本。Codex生成的代碼有時(shí)候會(huì)引入它“記憶里”的依賴版本而這個(gè)版本可能和你項(xiàng)目里的其他依賴沖突。我后來在自定義技能里明確加了一條“生成代碼時(shí)不要自動(dòng)添加新依賴如果需要新依賴先列出建議的artifactId和groupId等確認(rèn)后再修改pom.xml?!边@個(gè)約束幫我省了很多處理依賴沖突的時(shí)間。4.3 用自定義指令補(bǔ)足Java團(tuán)隊(duì)規(guī)范說到自定義技能這里展開講一講。superpowers最被低估的能力不是它自帶的那些技能而是你能自己寫技能。在~/.codex/skills下新建一個(gè)文件夾比如叫java-project-rules在里面創(chuàng)建一個(gè)Markdown文件文件頭寫上技能的元信息正文就是你希望Codex遵守的規(guī)則。我自己就寫了一個(gè)核心內(nèi)容大概是這樣--- name: java-project-rules description: Use when working on Java backend projects in this repository --- - 所有新類必須放在 src/main/java 下對應(yīng)的包結(jié)構(gòu)中 - 所有測試必須放在 src/test/java 下測試方法使用 JUnit 5 注解 - 禁止在代碼中直接 catch Exception 后不做任何處理 - 新依賴必須經(jīng)確認(rèn)后才可加入 pom.xml - 代碼中不允許出現(xiàn) System.out.println日志請使用 SLF4J寫完之后在會(huì)話里說一句use the java-project-rules skillCodex就會(huì)把這套規(guī)則加載進(jìn)上下文。之后你再讓它寫代碼它會(huì)默認(rèn)遵守這些團(tuán)隊(duì)規(guī)范。對我來說這才是superpowers的真正用法——它不是給你一套固定的超能力而是給了你一套定義超能力的語法。有時(shí)候我會(huì)覺得這個(gè)東西的本質(zhì)是“把團(tuán)隊(duì)里隱性的開發(fā)約定顯性化成AI能讀的文檔”。以前帶新人要把這些規(guī)矩口頭說一遍現(xiàn)在直接寫成技能文件新人和AI都在同一條起跑線上。5. 我踩過的坑與完整排查思路5.1 技能不生效先查Codex配置再查技能文件最常見的問題就是明明說了use the review skill但Codex根本沒進(jìn)入審查狀態(tài)回答得像普通聊天。遇到這種問題我建議你按下面的順序排查不要亂試。第一步看~/.codex/config.toml里有沒有配置技能目錄。這是最容易被忽視的。技能裝好了不代表Codex知道去讀它配置項(xiàng)缺失的話它安安靜靜地“假裝沒看見”也不是沒可能。確認(rèn)配置里存在技能路徑后重啟Codex會(huì)話再試一次。第二步看~/.codex/skills目錄下的文件結(jié)構(gòu)。每個(gè)技能文件夾里指南文件必須在正確的位置。如果文件缺失或者文件名不對同樣會(huì)導(dǎo)致技能加載失敗??梢詫Ρ纫幌录寄芪募A里的結(jié)構(gòu)和項(xiàng)目倉庫的示例是否一致。第三步看措辭。use the review skill這個(gè)格式之所以我推薦是因?yàn)樗瑑蓚€(gè)關(guān)鍵信息觸發(fā)動(dòng)詞use、目標(biāo)技能名review。如果你只說了“幫我看看這個(gè)改動(dòng)”Codex可能沒有足夠信號把review技能調(diào)起來。這時(shí)候換個(gè)說法明確提技能名然后再試一次。這一步一步走下來絕大多數(shù)“技能不生效”的問題都能定位到上面三個(gè)環(huán)節(jié)之一。5.2 版本不兼容導(dǎo)致的行為異常第二個(gè)坑和版本有關(guān)。superpowers迭代很快Codex CLI的更新頻率也不低兩邊版本差距大了之后會(huì)出現(xiàn)一些“說不上哪里壞但就是不對勁”的異常。我自己遇到過一次升級Codex CLI之后原來能用的TDD技能突然不觸發(fā)TDD流程了它的回答變得像普通代碼生成。當(dāng)時(shí)我第一反應(yīng)是技能文件損壞檢查半天發(fā)現(xiàn)文件好好的。后來排查到這一步我本地的superpowers包版本還是幾個(gè)月前的而Codex已經(jīng)升了兩三個(gè)大版本兩者之間有些技能調(diào)用方式已經(jīng)變了。解決辦法不復(fù)雜重新安裝最新版superpowers包重新執(zhí)行初始化命令把技能文件刷新一遍。我后來養(yǎng)成了一個(gè)習(xí)慣每隔幾周看一眼superpowers和codex是否發(fā)布了新版本升級時(shí)兩邊一起動(dòng)別只升一邊。用npm outdated -g可以一次看到全局包的更新情況比較省事。5.3 “更新后行為變了”的應(yīng)對方法和5.2緊密相關(guān)的是另一種情況你沒有主動(dòng)動(dòng)任何東西但某一天突然發(fā)現(xiàn)同一個(gè)技能的行為變了。這通常不是你的配置出了問題而是技能包的內(nèi)容被上游更新了。技能本質(zhì)上是Markdown指令文本上游項(xiàng)目完全可以調(diào)整正文里的步驟順序和措辭這些改動(dòng)不需要你重新安裝也會(huì)被拉取。我遇到過的一次變化是review技能增加了“安全漏洞檢查”環(huán)節(jié)之后每次審查都會(huì)多出一節(jié)專門講安全問題范圍比之前廣了。如果你對特定項(xiàng)目的產(chǎn)出要求很嚴(yán)格不想讓技能行為悄悄變化我的建議是在確認(rèn)技能穩(wěn)定后把當(dāng)前版本記錄在項(xiàng)目README里或者干脆復(fù)制一份技能文件到項(xiàng)目目錄并改為引用本地版本。前一種做法適合大多數(shù)場景后一種更“鎖死”。我自己是兩種結(jié)合快速項(xiàng)目用默認(rèn)技能長期維護(hù)的核心項(xiàng)目用本地鎖定版本。5.4 兜底方案不用技能關(guān)鍵詞也能調(diào)用技能最后說一個(gè)兜底技巧。萬一你無論如何都觸發(fā)不了某個(gè)技能還有一個(gè)土辦法直接把技能文件的內(nèi)容告訴Codex。你不需要會(huì)說use the xx skill你只需要打開技能文件把正文里的指令原樣復(fù)制粘貼到對話里。這不是繞路而是有用意的。當(dāng)你粘貼完整技能內(nèi)容時(shí)Codex同樣會(huì)把那套步驟當(dāng)作約束來執(zhí)行效果和正常觸發(fā)幾乎一樣。我用這個(gè)方法扛過好幾次版本不穩(wěn)定的時(shí)期也用來排查過“到底是技能沒加載還是技能本身寫得不好”的問題。如果你復(fù)制了完整的技能內(nèi)容之后Codex的表現(xiàn)依然不理想那問題就不在加載機(jī)制上而在技能本身的指令質(zhì)量上。這個(gè)方法還有一個(gè)變體把自己的工作流寫成一段150字以內(nèi)的簡短指令不建技能文件直接貼在對話里。對臨時(shí)性的任務(wù)這個(gè)輕量方式比建一個(gè)完整的技能文件更快。6. 關(guān)于“worbuddy怎么用superpowers”這類問題的統(tǒng)一回答6.1 worbuddy這類平臺(tái)上的superpowers是什么這半年來我看到不少朋友在worbuddy之類的內(nèi)容聚合或?qū)Ш狡脚_(tái)上搜“superpowers怎么用”然后越搜越糊涂。這里我想統(tǒng)一說清楚你在大多數(shù)內(nèi)容平臺(tái)上看到的superpowers指的基本上還是同一個(gè)開源項(xiàng)目也就是圍繞Codex CLI的那套技能包。它不是一個(gè)獨(dú)立軟件更沒有所謂的“worbuddy專用版”。那些平臺(tái)只是內(nèi)容的搬運(yùn)工把GitHub上的項(xiàng)目說明和社區(qū)教程做了二次整理。所以如果你是在某個(gè)博客站或?qū)Ш秸究吹健皊uperpowers使用指南”內(nèi)容大概率是換了個(gè)說法介紹同一件事。判斷方法很簡單看文章里提到的安裝命令是不是npm install -g obra/superpowers如果是那就是同一個(gè)東西。6.2 圖形界面工具調(diào)用superpowers的基本鏈路也有人問我不想在終端里操作有沒有圖形界面能直接用superpowers答案是最終鏈路還是繞不開Codex CLI但你可以換一個(gè)操作入口。比如在支持Codex的編輯器集成環(huán)境里打開終端在集成面板里啟動(dòng)一個(gè)Codex會(huì)話然后在會(huì)話里使用技能。本質(zhì)上你做的事情和前面講的沒有區(qū)別啟動(dòng)Codex會(huì)話→輸入use the xx skill→開始干活。我理解大家想要“圖形化”的真實(shí)需求大多是希望減少在終端和編輯器之間切換的割裂感。這個(gè)可以通過把Codex會(huì)話窗口固定在編輯器側(cè)邊欄來解決。我在VS Code里就是拉了一個(gè)終端面板專門跑Codex寫代碼在主編輯區(qū)看Codex輸出在側(cè)邊體感上已經(jīng)非常接近“IDE內(nèi)置AI助手”了。6.3 在博客教程平臺(tái)上檢索superpowers資料的技巧最后分享幾個(gè)檢索技巧。第一搜索時(shí)帶上codex前綴搜“codex superpowers”比只搜“superpowers”精準(zhǔn)得多因?yàn)楹笳邥?huì)混進(jìn)來一大堆和“超能力”有關(guān)的無關(guān)內(nèi)容。第二搜“superpowers安裝”或“superpowers使用教程”時(shí)優(yōu)先看發(fā)布時(shí)間超過半年的教程要留意命令是否過時(shí)。第三看到任何教程先看它有沒有給出可以驗(yàn)證的步驟比如“檢查~/.codex/skills目錄是否出現(xiàn)技能文件夾”——一個(gè)可被驗(yàn)證的步驟比十句“很強(qiáng)大、很好用”都值錢。按這個(gè)方式去檢索和篩選你基本能在十分鐘內(nèi)判斷一篇教程對你的版本有沒有參考價(jià)值不至于跟著過時(shí)命令白折騰半天。我個(gè)人用了superpowers大半年最大的體會(huì)是它真正的價(jià)值不在于讓AI變得更“聰明”而在于讓AI變得“守規(guī)矩”。每次打開Codex之前我會(huì)想清楚這次任務(wù)該用哪個(gè)技能、希望它按什么步驟執(zhí)行而不是像以前那樣含糊地丟一句話。這個(gè)習(xí)慣一旦養(yǎng)成了產(chǎn)出的質(zhì)量提升是肉眼可見的。最后再分享一個(gè)小技巧如果你在某個(gè)項(xiàng)目里反復(fù)讓Codex做同一套流程把它寫成一個(gè)自定義技能文件放進(jìn)~/.codex/skills你會(huì)發(fā)現(xiàn)——整理指令的過程其實(shí)也是在幫你自己理清楚日常工作里哪些步驟是真正必要的。