前言¶
維護 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.mdfrontmatter、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)。