技能開源器 是做什麼的?
將一個本機技能轉換成乾淨的公開發布套件。一般的輸入僅需 SKILL.md 路徑或技能目錄。
預設姿態:快速行動,但在發布風險前停止。若安全掃描發現機密、私人路徑、客戶資料、未公開的專有素材或所有權不明確時,會回報阻擋項目,且在用戶解決前不發布。
快速開始
- 將輸入解析為真實的技能目錄。接受
SKILL.md檔案、包含SKILL.md的資料夾,或.codex/skills、.agents/skills、.claude/skills或其他本機技能根目錄下的符號連結。 - 在封裝或發布前執行環境檢查:
SKILL_OPEN_SOURCER_DIR="${CODEX_HOME:-$HOME/.codex}/skills/skill-open-sourcer"
python3 "$SKILL_OPEN_SOURCER_DIR/scripts/check_release_env.py"
需要的本機指令包括 python3、git、node 和 npx。gh 是預設的本機 GitHub 發布介面,但可以用 GitHub MCP/app 或已認證的遠端來取代。如果沒有可用的 GitHub 發布介面,則在本機建置並驗證儲存庫,然後在缺少設定時停止。
- 讀取技能進入點,並檢查直接參考的
scripts/、references/、assets/和agents/檔案。不要複製不相關的本機資料夾。 - 執行安全掃描器:
SKILL_OPEN_SOURCER_DIR="${CODEX_HOME:-$HOME/.codex}/skills/skill-open-sourcer"
python3 "$SKILL_OPEN_SOURCER_DIR/scripts/scan_skill_release.py" /path/to/skill-or-SKILL.md
- 如果環境和安全掃描都通過,在來源技能目錄之外建立一個新的發布儲存庫。
- 對於單技能儲存庫,直接將
SKILL.md、agents/、references/、scripts/和assets/複製到儲存庫根目錄。只有對於多技能集合儲存庫,才使用skills/<skill-name>/加上skills.sh.json。 - 加入
references/release-package.md中描述的公開發布檔案,包括 README 品質門檻和 GitHub 後設資料建議。 - 在發布前驗證封裝後的技能和
npx skills列表。 - 當低風險檢查通過後發布到 GitHub,然後產生發布文案。
在開始撰寫發布儲存庫前,請先閱讀 references/release-package.md。
輸出合約
對於成功發布,回傳:
- GitHub 儲存庫網址。
- 使用
npx skills的安裝指令。 - 技能驗證和
npx skills add <owner>/<repo> --list的驗證結果。 - 簡短風險摘要:掃描了哪些內容、移除或清理了哪些項目,以及任何殘留的假設。
- 建立新的公開儲存庫時的 GitHub 描述和主題建議。
- 發布文案:至少一篇 X/Twitter 貼文,以及在使用者使用中文時可選的中文版本。
如果被阻擋,回傳:
- 阻擋列表,包含檔案路徑和原因。
- 建議的清理步驟。
- 最安全的下一步動作,通常是「清理這些檔案,然後重新執行發布」。
安全規則
當來源套件中出現以下任何項目時,立即停止:
- API 金鑰、令牌、私鑰、Cookie、憑證、
.env檔案或驗證設定。 - 絕對個人路徑,例如
/Users/...、/home/...、本機保管庫路徑或僅限機器的快取路徑,這些會混淆公開使用者。 - 客戶名稱、私人公司資料、內部文件、私人網址、未發布的提示詞,或沒有明確授權的付費/專有素材。
- 逃脫套件的符號連結、大型二進位檔、資料庫、日誌、瀏覽器設定檔、
.DS_Store、__pycache__或產生的快取檔案。 - 捆綁程式碼/素材的授權或所有權不明確。
只有在掃描器和人工審查都未發現阻擋項目時,才允許低風險自動發布。如果目標 GitHub 儲存庫已經存在且包含無關內容,請停止並在覆寫或強制推送前詢問。
封裝規則
- 保持原始技能行為不變。僅重構足以移除私人假設並確保公開安裝可靠。
- 預設使用扁平根目錄佈局來發布一個公開技能。僅在一個儲存庫發布多個技能時,才使用巢狀
skills/<skill-name>/佈局。 - 偏好精簡的
SKILL.md;僅當 Agent 確實需要時,才將詳細的公開指南移到references/。 - 不要在技能資料夾內加入 README。將面向人類的文件放在發布儲存庫根目錄。
- 保留
agents/openai.yaml(如果存在)。如果不存在,則建立它,包含display_name、short_description和明確提及$<skill-name>的default_prompt。 - 僅包括技能實際使用的確定性輔助邏輯的
scripts/。 - 僅在授權和大小對公開發布安全時,才包括
assets/。 - 僅在來源技能沒有衝突的授權且所有權明確時,使用 MIT 作為預設授權。
發布流程
- 執行
scripts/check_release_env.py。在更新現有本機儲存庫時加入--repo-dir <release-repo>。在套件/網路存取不確定時加入--check-npx-skills。 - 如果缺少必要指令,停止並回報確切的阻擋項目。如果只缺少
gh,僅在 GitHub MCP/app 可用或發布儲存庫已有已認證的origin遠端時繼續。 - 在本機建立發布儲存庫。
- 使用系統技能驗證器進行驗證(如果可用):
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" .
- 使用可用的 GitHub 介面(
gh、GitHub MCP/app 或現有遠端)建立或更新 GitHub 儲存庫。避免強制推送。 - 推送分支或
main。 - 驗證列表:
npx skills add <owner>/<repo> --list
- 如果列表正常,提供安裝指令:
npx skills add <owner>/<repo> -g -a codex --skill <skill-name> -y
當目標平台不是 Codex 時,調整 Agent 標誌和安裝用語。
發布文案
成功發布後,起草簡潔的社群文案,說明:
- 該技能解決的問題。
- 使用者給它什麼。
- 它發布或自動化了什麼。
- 安裝指令或儲存庫連結。
- 一個具體的範例請求。
對於中文使用者,包含一篇自然的中文發布貼文。保持面向人類;不要過度解釋腳本。