Skill Sync

Polar Sponsor
爱发电 赞助
.NET 9.0

自动同步本地技能至 ClawHub 与 GitHub,检测变更、发布提交并维护同步状态。

Skill Sync - 自动同步 Skills 到 ClawHub & GitHub

功能概述

Skill Sync - 自动同步 Skills 到 ClawHub & GitHub是一项面向实际任务的技能,主要用于一键同步你的所有 skills;✨ 核心功能;

核心要点

  • 🔄 自动同步;
  • ✅ 检测新增的 skills;
  • ✅ 检测修改的 skills;

使用与执行

✅ 自动发布到 ClawHub;✅ 自动提交到 GitHub;✅ 记录同步状态;📊 状态管理;✅ 跟踪每个 skill 的同步状态;✅ 记录 ClawHub 发布 ID;✅ 记录 GitHub c。

结果检查与注意事项

它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

Skill Sync - 自动同步 Skills 到 ClawHub & GitHub

一键同步你的所有 skills

✨ 核心功能

🔄 自动同步

  • ✅ 检测新增的 skills
  • ✅ 检测修改的 skills
  • ✅ 自动发布到 ClawHub
  • ✅ 自动提交到 GitHub
  • ✅ 记录同步状态

📊 状态管理

  • ✅ 跟踪每个 skill 的同步状态
  • ✅ 记录 ClawHub 发布 ID
  • ✅ 记录 GitHub commit hash
  • ✅ 提供同步报告

🔍 智能检测

  • ✅ 检测 SKILL.md 文件变化
  • ✅ 检测 scripts 文件变化
  • ✅ 检测 package.json 变化
  • ✅ 忽略临时文件和缓存

🚀 使用方法

1. 手动触发同步

node /Users/xufan65/.openclaw/workspace/skills/skill-sync/scripts/sync.cjs

功能:

  • 扫描所有 skills
  • 检测需要同步的 skills
  • 发布到 ClawHub
  • 提交到 GitHub
  • 推送同步报告

2. 自动监控模式(推荐)

创建定时任务,每小时自动检查并同步:

openclaw cron add 
  --name "skill-sync" 
  --cron "0 * * * *" 
  --tz "Asia/Shanghai" 
  --session isolated 
  --wake now 
  --deliver 
  --message "运行 skill-sync: 检查所有 skills 的变化,自动同步到 ClawHub 和 GitHub。报告格式用中文。"

运行频率:

  • 每小时检查一次(0 * * * *)
  • 或每 30 分钟检查一次(*/30 * * * *)

3. 查看同步状态

cat /Users/xufan65/.openclaw/workspace/memory/skill-sync-status.json

包含内容:

  • 每个 skill 的同步状态
  • ClawHub 发布 ID
  • GitHub commit hash
  • 最后同步时间
  • 版本信息

📋 工作流程

┌─────────────────┐
│  扫描 Skills    │
│  - 检测新增     │
│  - 检测修改     │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  生成同步列表   │
│  - 新 skills    │
│  - 修改的 skills│
└────────┬────────┘
         │
         ▼
     有需要同步的?
         │
    ┌────┴────┐
   Yes       No
    │          │
    ▼          ▼
┌───────┐  ┌──────────┐
│同步流程│  │推送报告  │
└───┬───┘  │无需同步  │
    │      └──────────┘
    ▼
┌─────────────────┐
│  1. Git Commit  │
│  2. ClawHub Pub │
│  3. Git Push    │
│  4. 更新状态    │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  推送同步报告   │
│  - 成功列表     │
│  - 失败列表     │
│  - 状态更新     │
└─────────────────┘

🔧 配置选项

config/settings.json

{
  "skillsDir": "/Users/xufan65/.openclaw/workspace/skills",
  "statusFile": "/Users/xufan65/.openclaw/workspace/memory/skill-sync-status.json",
  "gitRepo": "/Users/xufan65/.openclaw/workspace",
  "clawhubConfig": {
    "autoPublish": true,
    "requireConfirmation": false
  },
  "gitConfig": {
    "autoCommit": true,
    "autoPush": true,
    "commitMessage": "Auto-sync skills to ClawHub"
  },
  "ignorePatterns": [
    "node_modules",
    ".git",
    "*.log",
    "*.tmp"
  ]
}

📊 同步状态文件

memory/skill-sync-status.json

{
  "lastSync": "2026-03-12T14:30:00+08:00",
  "skills": {
    "deals-hunter": {
      "version": "3.0.0",
      "clawhubId": "k97c0kee4b0t8rmf4490m9r9bn82s082",
      "clawhubPublished": "2026-03-12T10:00:00+08:00",
      "gitCommit": "7779310",
      "gitPushed": "2026-03-12T14:30:00+08:00",
      "status": "synced"
    },
    "failure-monitor": {
      "version": "1.0.0",
      "clawhubId": "k973cr1p4k5g3mh36yjp24agg182rcsa",
      "clawhubPublished": "2026-03-12T14:30:00+08:00",
      "gitCommit": "22b355d",
      "gitPushed": "2026-03-12T14:35:00+08:00",
      "status": "synced"
    }
  }
}

🎯 同步条件

需要同步的情况:

  1. 新增 Skill

    • skills/ 目录下出现新的 skill 文件夹
    • 包含 SKILL.md 文件
  2. 版本更新

    • SKILL.md 中的 version 字段变化
    • package.json 中的 version 字段变化
  3. 文件修改

    • SKILL.md 被修改
    • scripts/ 目录下的文件被修改
    • config/ 目录下的文件被修改
  4. 未同步状态

    • 状态文件中没有该 skill 的记录
    • 状态为 pending 或 failed

🔒 安全考虑

  • ✅ 只同步 skills 目录:不会修改其他文件
  • ✅ 保留 Git 历史:使用 git add + git commit
  • ✅ ClawHub 验证:发布前检查 skill 格式
  • ✅ 错误处理:发布失败不会中断整个流程
  • ✅ 回滚支持:可以通过 Git 回滚到之前的状态

📝 Discord 推送格式

同步成功

# ✅ Skills 同步完成

**同步时间**: 2026-03-12 14:30:00
**总计**: 3 个 skills

## 📦 成功同步

### 1. **failure-monitor** v1.0.0
- ✅ ClawHub: k973cr1p4k5g3mh36yjp24agg182rcsa
- ✅ GitHub: commit 22b355d
- 📅 发布时间: 2026-03-12 14:30:00

### 2. **deals-hunter** v3.0.0
- ✅ ClawHub: k97c0kee4b0t8rmf4490m9r9bn82s082
- ✅ GitHub: commit 7779310
- 📅 发布时间: 2026-03-12 10:00:00

---

**🔗 快速链接**:
- ClawHub: https://clawhub.com/skill/failure-monitor
- GitHub: https://github.com/sunnyhot/deals-hunter

无需同步

# ℹ️ Skills 检查完成

**检查时间**: 2026-03-12 15:00:00
**总计**: 10 个 skills

✅ 所有 skills 已是最新状态,无需同步

部分失败

# ⚠️ Skills 同步完成(部分失败)

**同步时间**: 2026-03-12 14:30:00
**成功**: 2 个 | **失败**: 1 个

## ✅ 成功同步
- failure-monitor v1.0.0
- deals-hunter v3.0.0

## ❌ 失败列表
### skill-name v1.0.0
- **错误**: ClawHub API rate limit exceeded
- **建议**: 稍后重试或手动发布

---

**建议**: 检查失败的 skills 并手动修复

📁 文件结构

skills/skill-sync/
├── SKILL.md                      # 技能说明
├── scripts/
│   ├── sync.cjs                  # 主同步脚本
│   ├── scan-skills.cjs           # 扫描 skills
│   ├── publish-clawhub.cjs       # 发布到 ClawHub
│   └── git-sync.cjs              # Git 同步
├── config/
│   └── settings.json             # 配置选项
└── package.json                  # 依赖管理

🔧 命令行选项

完整同步

node scripts/sync.cjs --all

同步所有需要同步的 skills

指定 Skill

node scripts/sync.cjs --skill failure-monitor

只同步指定的 skill

仅 ClawHub

node scripts/sync.cjs --clawhub-only

只发布到 ClawHub,不提交到 GitHub

仅 GitHub

node scripts/sync.cjs --git-only

只提交到 GitHub,不发布到 ClawHub

Dry Run

node scripts/sync.cjs --dry-run

只检查需要同步的 skills,不实际执行

🎯 最佳实践

1. 运行频率

  • ✅ 推荐:每小时检查一次
  • ✅ 可接受:每 30 分钟检查一次
  • ❌ 不推荐:超过 2 小时(可能错过更新)

2. 版本管理

  • ✅ 每次修改后更新 version 字段
  • ✅ 使用语义化版本(SemVer)
  • ✅ 在 SKILL.md 中记录更新日志

3. 提交信息

  • ✅ 使用清晰的 commit message
  • ✅ 包含 skill 名称和版本
  • ✅ 描述主要修改内容

🚨 故障排除

Q: ClawHub 发布失败怎么办?

A: 检查以下几点:

  1. ClawHub CLI 是否已登录(clawhub login)
  2. SKILL.md 格式是否正确
  3. 是否有网络问题
  4. 可以稍后重试或手动发布

Q: Git 推送失败怎么办?

A: 检查以下几点:

  1. Git 仓库是否正确配置
  2. 是否有网络问题
  3. 是否有冲突需要解决
  4. 可以手动 git push 解决

Q: 如何查看详细日志?

A: 查看日志文件:

cat /Users/xufan65/.openclaw/workspace/memory/skill-sync-log.json

📝 更新日志

v1.0.0 (2026-03-12)

  • ✅ 初始版本
  • ✅ 支持自动检测 skills 变化
  • ✅ 支持自动发布到 ClawHub
  • ✅ 支持自动提交到 GitHub
  • ✅ 支持同步状态跟踪
  • ✅ 支持 Discord 推送通知

🤝 贡献

欢迎提交 Issue 和 Pull Request!

GitHub: https://github.com/sunnyhot/skill-sync

🎉 让你的 skills 管理更加自动化!

相关专题

更多
Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

0

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

0

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

0

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习