git-sync:把 Skill 與 Agent 一次發佈到多平臺

前言

維護 Skill 或 Agent 時,常見做法是分別往 Gitee、GitHub 推代碼,再手動跑 ClawHub、SkillHub、PyPI 的發佈命令,並在發佈前自己篩掉不該上傳的文件、檢查 token 和本地路徑是否泄露。平臺越多,步驟越碎,版本號也容易在 _meta.json、SKILL.md 和 changelog 之間對不齊。

下面介紹 SkillHub 上的 git-sync(@user_800d68d6/git-sync,當前頁面版本 2.48.0)。它把多倉庫同步、市場發佈和 Release 創建收進一條 Agent Skill 工作流,並用 LLM 參與文件過濾與脫敏決策。

這是什麼

git-sync 在 SkillHub 上的定位是:全平臺統一發布工具,支持 skills 和 agents 在 Gitee / GitHub / ClawHub / SkillHub / PyPI 的同步與 Release 創建,並提供 LLM 驅動的文件過濾與脫敏。

  • 座標:@user_800d68d6/git-sync
  • 來源:community(社區發佈)
  • 分類:dev-programming
  • 發佈者:user_800d68d6
  • 標籤:requires_api_key=true(涉及各平臺 API 與憑證時需自行配置)
  • 官方入口:SkillHub 技能頁、API 座標頁

Skill 本身遵循通用 SKILL.md 格式:SKILL.md 爲入口,詳細說明拆在 references/*.md 中按需加載。

核心功能

以下能力與 ClawHub 上同版本(2.48.0)、同簡介的公開文檔一致,可與 SkillHub 簡介交叉覈對。

全平臺發佈與類型識別

  • 將 skill 或 agent 規範化推送到 Gitee、GitHub,並可繼續發佈到 ClawHub、SkillHub、PyPI,支持創建 Release(git tag + 平臺 API)。
  • 自動區分 skill(存在 _meta.json)與 agent(通過含 __version__ 的 __init__.py 等規則識別),版本分別從 _meta.json 或 __init__.py 讀取。
  • git-sync all:按 config.json 裏 repos 註冊表遍歷配置下的全部 skill/agent 項目(默認區分 skills 與 agents 兩類倉庫)。

LLM 讓位式過濾與脫敏

  • 文件過濾:同步前掃描源目錄,列出文件與規則後 exit 3 讓位,由調用方(AI 助手)寫入 file_filter_{name}.decisions.json,再重跑同一命令從斷點續跑,只複製允許的文件。
  • 敏感脫敏(強制):同步後掃描郵箱、token、路徑等;發現敏感項同樣讓位,寫入 sensitive_scan_{name}.decisions.json 後續跑。決策文件須在 git-sync 腳本環境下通過 _paths.py 的路徑函數寫入,且 讓位 → 寫決策 → 重跑應在同一條命令中完成(拆成多條命令可能導致 temp 路徑不一致、反覆 exit 3)。

版本、規範與打包

  • 版本號三方對比:_meta.json、SKILL.md frontmatter、changelog(僅處理 x.y.z 格式)。
  • SKILL.md 規範審查:內聯檢查版本一致性與腳本引用等規則。
  • ZIP 打包 + HTML 索引:可爲 skill 生成安裝包與索引頁;agent 側打包行爲按技能文檔約定跳過 ZIP。

各平臺發佈差異(摘要)

平臺 版本讀取源 要點
Gitee / GitHub _meta.json(skill)或 __init__.py(agent) git push;憑證 SSH/HTTPS 解析;衝突不自動合併
ClawHub _meta.json 的 slug/version/tags npx clawhub publish <絕對路徑>
SkillHub 需顯式傳 --version skills_store_cli.py publish;勿僅依賴 SKILL.md frontmatter 讀版本
PyPI __init__.py 的 __version__ 隔離構建後 twine upload --disable-progress
Release 同步後當前版本 tag:skill 爲 {name}-v{ver},agent 爲 v{ver}

網絡操作超時閾值一般爲 60 秒;單倉庫規模文檔約定爲 1–50 個項目、每個 ≤ 500MB。狀態記錄在數據目錄下的 manifest.json。

安裝與啓用

1. 安裝 SkillHub CLI(若尚未安裝)

先檢查是否已有 CLI:

command -v skillhub && skillhub --version

未安裝時,可按 SkillHub 安裝文檔 執行完整安裝:

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

2. 安裝 git-sync 到當前 Agent 的 skills 目錄

安裝時必須用 --dir 指向當前客戶端識別的 skills 目錄,否則默認裝到 ./skills/ 可能不會被 Agent 加載。

Cursor 常用路徑爲 ~/.cursor/skills/:

skillhub install user_800d68d6/git-sync --dir ~/.cursor/skills/

也可讓 AI 按官方提示安裝(與 SkillHub 頁面一致):

請根據 https://skillhub.cn/install/skillhub.md,安裝 `@user_800d68d6/git-sync`。

Claude Code、Codex 等路徑不同,安裝文檔中列出的示例包括 ~/.claude/skills/、~/.codex/skills/ 或項目下的 .agents/skills/;將 --dir 換成對應目錄即可,命令形式相同。

3. 數據與配置目錄

技能運行期數據(以安裝後的 $SKILLS_DIR 爲準)大致爲:

$SKILLS_DIR/.standardization/git-sync/
├── data/
│   ├── config.json     # repos 註冊表、平臺用戶名、gitee_token 等
│   └── manifest.json   # 同步狀態清單
└── backup/

config.json 中配置目標倉庫與平臺憑證;SkillHub 標籤標明需要 API Key 時,應在此或環境變量中準備好,勿把密鑰提交進同步倉庫。

典型用法

執行入口推薦 Python(與 git-sync.sh 等價;無 rsync 時腳本也會走 Python 流程)。路徑中的 $SKILLS_DIR 爲 git-sync 所在 skills 根目錄。

推送單個 skill 到 Gitee / GitHub

python "$SKILLS_DIR/git-sync/scripts/git-sync.py" novel-weaver

流程上依次經過觸發判斷、安全校驗、清單與版本檢查、(可選)LLM 文件過濾與脫敏、README 更新、雙平臺 push、打包索引等步驟;若遇 exit 3,按技能內 references/guide.md 寫入決策 JSON 後 在同一條 Bash 命令中 重跑。

僅打包、不推送

python "$SKILLS_DIR/git-sync/scripts/git-sync.py" git-sync --pack-only

僅推送、不打包

python "$SKILLS_DIR/git-sync/scripts/git-sync.py" workday-calendar --push-only

批量

python "$SKILLS_DIR/git-sync/scripts/git-sync.py" all

在對話中觸發

適合向 Agent 明確表達發佈意圖,例如:「把某某 skill 同步到 GitHub 和 Gitee」「發佈到 SkillHub / PyPI」「創建 Release」「全量同步」。僅「幫我看一下這個文件」或「用 git 提交代碼」一類通用 git 操作,不應指望本 Skill 接管。

適用場景與注意

適合誰

  • 同時維護多個 Skill/Agent,需要在 Gitee + GitHub 雙遠程保持一致,並偶爾發 ClawHub、SkillHub、PyPI 或打 Release 的作者。
  • 希望發佈前由工作流強制走 文件白名單 與 脫敏決策,而不是手工 copy 目錄。

限制與坑

  • 不是 日常 feature 分支與 main 的 merge/rebase 同步工具;名稱相近的其他 git-sync Skill 職責不同,安裝時以座標 @user_800d68d6/git-sync 爲準。
  • git merge 衝突 不自動解決,需人工處理後再跑。
  • requires_api_key:各市場與 Git 託管憑證需自行配置且注意脫敏結果是否滿足合規要求。
  • LLM 讓位機制依賴前臺會話;決策文件路徑必須用 _paths.py,避免跨命令寫入導致死循環式重複 exit 3。
  • SkillHub 頁面統計(截至資料抓取):評分 100000,下載約 3189;以 技能頁 實時數據爲準。

結尾

git-sync 把「拷文件 → 查版本 → 脫敏 → 推 Git → 發市場 → 打 Release」串成可斷點續跑的一條鏈路,減輕多平臺重複勞動。完整命令與子命令以安裝後的 references/reference.md 爲準。

官方地址:https://www.skillhub.cn/skills/user_800d68d6/git-sync(API:https://api.skillhub.cn/user_800d68d6/git-sync)。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜