前言¶
维护 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)。