在前文中,我们详细探讨了如何从零开始创建高质量的自定义 Skills——从经验抽象到 SKILL.md 格式规范,从知识库组织到工作流定义,再到八大常见陷阱的避坑指南。你已经掌握了**编写一个好 Skill**的全部技能。

发布与共享 Skills —— Registry 发布流程、版本管理、语义化版本、社区贡献与私有源搭建

简介

在前文中,我们详细探讨了如何从零开始创建高质量的自定义 Skills——从经验抽象到 SKILL.md 格式规范,从知识库组织到工作流定义,再到八大常见陷阱的避坑指南。你已经掌握了编写一个好 Skill的全部技能。

但写完 Skill 只是第一步。如果你把它锁在本地,它的价值就只限于你自己。

想象一下:你花了一周时间编写的 Kubernetes 故障排查 Skill,包含了你三年运维经验的精华。如果发布到 Skills Hub,可能被成千上万的开发者使用。你的一次知识沉淀,可以帮到无数遇到同样问题的人。

本文将带你走完从本地到全球分发的完整旅程:

  • Registry 发布流程:从准备到发布到审核的完整步骤
  • 语义化版本管理:MAJOR.MINOR.PATCH 的正确使用方式
  • 发布前检查清单:确保你的 Skill 达到发布标准
  • 社区贡献指南:如何参与官方技能的维护和改进
  • 私有 Registry 搭建:企业内部技能分发方案
  • CI/CD 自动化发布:让发布流程自动化
  • 发布后的维护:用户反馈、bug 修复、版本迭代

核心观点:发布不是终点,而是技能生命周期的真正开始。

目录

Registry 发布流程

发布架构概览

text
┌──────────────────────────────────────────────────────────────────┐
│                    Skills Registry 发布架构                        │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│  本地 Skill ──→ 验证 ──→ 打包 ──→ 上传 ──→ 审核 ──→ 发布         │
│                                                                  │
│  ┌─────────┐   ┌─────────┐   ┌──────┐   ┌─────────┐   ┌───────┐ │
│  │ SKILL.md│──→│ validate│──→│ pack │──→│ upload  │──→│ publish│ │
│  │ + 知识库 │   │ + test  │   │ .tar │   │ + sign  │   │  + CDN │ │
│  └─────────┘   └─────────┘   └──────┘   └─────────┘   └───────┘ │
│       │             │            │            │            │      │
│       │             │            │            │            ▼      │
│       │             │            │            │      ┌─────────┐ │
│       │             │            │            │      │ Skills  │ │
│       │             │            │            │      │  Hub    │ │
│       │             │            │            │      │ (CDN)   │ │
│       │             │            │            │      └─────────┘ │
│       │             │            │            │            │      │
│       ▼             ▼            ▼            ▼            ▼      │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │                   用户端:hermes skills install              │   │
│  └──────────────────────────────────────────────────────────┘   │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘

第一步:注册开发者账号

bash
# 注册 Skills Hub 开发者账号
hermes registry register

# 交互式注册流程:
# ═══════════════════════════════════════════════════
#  Hermes Skills Registry - 开发者注册
# ═══════════════════════════════════════════════════
#
#  用户名: zhangsan
#  邮箱: zhangsan@example.com
#  显示名称: 张三
#  组织 (可选): 可以不填,或填写你的团队/公司名称
#  个人主页 (可选): https://github.com/zhangsan
#
#  [?] 请阅读并同意开发者协议 (Y/n): Y
#
#  ✅ 注册成功!
#  验证邮件已发送到 zhangsan@example.com
#  请在 24 小时内完成邮箱验证
bash
# 验证邮箱后登录
hermes registry login

# 交互式登录:
# 用户名或邮箱: zhangsan@example.com
# 密码: ********
#
# ✅ 登录成功!
# Token 已保存到 ~/.hermes/registry-token
# 有效期: 30 天

第二步:本地验证

在发布之前,必须通过完整的本地验证:

bash
# 完整验证
hermes skills validate ./react-performance-audit/ --strict

# 输出:
# ═══════════════════════════════════════════════════
#  Skill 验证报告: react-performance-audit
# ═══════════════════════════════════════════════════
#
#  [1/8] SKILL.md 格式检查...    ✅
#  [2/8] Frontmatter 验证...      ✅ (所有必需字段完整)
#  [3/8] 知识库文件检查...        ✅ (8/8 文件存在)
#  [4/8] 工作流定义检查...        ✅ (1 个工作流定义有效)
#  [5/8] 工具依赖检查...          ✅ (4 required + 1 optional)
#  [6/8] 依赖兼容性检查...        ✅ (node >= 18 满足)
#  [7/8] 命名冲突检查...          ✅ (名称可用)
#  [8/8] 内容质量检查...          ✅
#         ├── 描述长度: 42 字符 ✅
#         ├── 标签数量: 4 个 ✅
#         ├── 知识库覆盖率: 85% ✅
#         └── 触发词质量: 4 个精准词 ✅
#
#  ✅ 所有检查通过!Skill 符合发布标准。

第三步:预览发布效果

bash
# 预览发布后的展示效果
hermes skills preview ./react-performance-audit/

# 输出:
# ═══════════════════════════════════════════════════
#  发布预览: react-performance-audit v1.0.0
# ═══════════════════════════════════════════════════
#
#  ┌──────────────────────────────────────────────┐
#  │ 📦 react-performance-audit                   │
#  │                                              │
#  │ ⭐ Not yet rated                             │
#  │ 📥 0 downloads                               │
#  │ 📐 35KB                                      │
#  │                                              │
#  │ React 18+ 组件性能审计与优化,自动检测       │
#  │ 重渲染、memo 误用、虚拟列表等问题             │
#  │                                              │
#  │ 标签: react, performance, frontend, audit    │
#  │ 作者: Hermes Community                       │
#  │ 许可: MIT                                    │
#  │                                              │
#  │ 📁 包含 8 个知识文件,1 个工作流             │
#  └──────────────────────────────────────────────┘
#
#  此预览与 Skills Hub 上的实际展示一致。
#  确认无误后使用 'hermes skills publish' 发布。

第四步:打包与签名

bash
# 打包 Skill
hermes skills package ./react-performance-audit/

# 输出:
# ═══════════════════════════════════════════════════
#  打包: react-performance-audit v1.0.0
# ═══════════════════════════════════════════════════
#
#  [1/3] 收集文件...
#        ├── SKILL.md ✅
#        ├── knowledge/ (8 files, 28KB) ✅
#        └── workflows/ (1 file, 2KB) ✅
#
#  [2/3] 生成清单...
#        ├── manifest.json ✅
#        └── checksums.sha256 ✅
#
#  [3/3] 压缩打包...
#        └── react-performance-audit-1.0.0.tar.gz (18KB) ✅
#
#  ✅ 打包完成!
#     文件: ./dist/react-performance-audit-1.0.0.tar.gz
#     大小: 18KB
bash
# 签名包(使用你的开发者密钥)
hermes skills sign ./dist/react-performance-audit-1.0.0.tar.gz

# 输出:
# ✅ 签名完成
#    签名文件: react-performance-audit-1.0.0.tar.gz.sig
#    签名算法: Ed25519
#    签名者: zhangsan (Hermes Community)

第五步:发布到 Registry

bash
# 发布到公共 Registry
hermes skills publish ./dist/react-performance-audit-1.0.0.tar.gz

# 输出:
# ═══════════════════════════════════════════════════
#  发布: react-performance-audit v1.0.0
# ═══════════════════════════════════════════════════
#
#  [1/5] 上传到 Registry...
#        ✓ 上传完成 (18KB / 18KB)
#
#  [2/5] 验证签名...
#        ✓ 签名验证通过
#
#  [3/5] 自动化检查...
#        ✓ 格式检查通过
#        ✓ 安全检查通过(无恶意代码)
#        ✓ 质量检查通过
#
#  [4/5] 创建版本记录...
#        ✓ 版本 v1.0.0 已注册
#
#  [5/5] CDN 同步...
#        ✓ 已分发到 12 个边缘节点
#
#  ✅ 发布成功!
#     技能页面: https://skills.hermes.ai/skills/react-performance-audit
#     安装命令: hermes skills install react-performance-audit
#
#  📊 你的技能将在 5-10 分钟内出现在搜索结果中。

发布到私有 Registry

bash
# 发布到企业内部 Registry
hermes skills publish ./dist/react-performance-audit-1.0.0.tar.gz \
  --registry https://skills.internal.company.com \
  --token $COMPANY_REGISTRY_TOKEN

# 输出:
# ✅ 已发布到私有 Registry
#    地址: https://skills.internal.company.com/skills/react-performance-audit

发布状态与审核

bash
# 查看发布状态
hermes skills publish-status react-performance-audit

# 输出:
# ═══════════════════════════════════════════════════
#  发布状态: react-performance-audit
# ═══════════════════════════════════════════════════
#
#  当前状态: ✅ 已发布
#  版本: v1.0.0
#  发布时间: 2025-06-20 14:30:00
#  审核状态: ✅ 自动审核通过
#
#  统计数据:
#  ├── 下载量: 127
#  ├── 评分: ⭐4.8/5.0 (12 评价)
#  ├── 安装成功率: 100%
#  └── 报告问题: 0
#
#  历史版本:
#  ┌──────────┬────────────┬────────┬────────┐
#  │ 版本     │ 发布日期   │ 下载量 │ 状态   │
#  ├──────────┼────────────┼────────┼────────┤
#  │ v1.0.0   │ 2025-06-20 │ 127    │ 当前   │
#  └──────────┴────────────┴────────┴────────┘

语义化版本管理

版本命名规范

Hermes Skills 严格遵循 Semantic Versioning 2.0.0(语义化版本)规范:

text
版本号格式: MAJOR.MINOR.PATCH
示例:      1.2.3

MAJOR (主版本号): 不兼容的 API/行为变更
  - SKILL.md 结构变更
  - 工作流步骤增删或重命名
  - 注入模式变更
  - 必需工具变更

MINOR (次版本号): 向后兼容的功能新增
  - 新增知识库文件
  - 新增工作流
  - 新增触发词
  - 新增可选工具
  - 优化现有知识库内容

PATCH (补丁版本): 向后兼容的 bug 修复
  - 修正错别字
  - 修复知识库中的错误信息
  - 修正代码示例
  - 更新过时的引用链接

版本变更决策树

text
你要做的变更是什么类型?
│
├─ 会破坏现有用户的体验吗?
│   └─ 会 ──→ MAJOR 版本 (+1.0.0)
│       示例:重命名工作流、移除注入文件、改变工具需求
│
├─ 是新增功能吗?
│   └─ 是 ──→ MINOR 版本 (0.+1.0)
│       示例:添加新的知识库、新的工作流、新的触发词
│
└─ 是修复错误吗?
    └─ 是 ──→ PATCH 版本 (0.0.+1)
        示例:修正错别字、修复代码示例、更新链接

版本升级命令

bash
# 自动增加版本号
hermes skills version bump patch    # 1.0.0 → 1.0.1
hermes skills version bump minor    # 1.0.0 → 1.1.0
hermes skills version bump major    # 1.0.0 → 2.0.0

# 设置指定版本
hermes skills version set 2.0.0

# 查看当前版本
hermes skills version
# 输出: react-performance-audit v1.0.0

发布新版本

bash
# 完整发布流程:版本 bump → 验证 → 打包 → 发布
hermes skills release --bump minor

# 等价于执行:
# 1. hermes skills version bump minor   (v1.0.0 → v1.1.0)
# 2. hermes skills validate --strict     (验证)
# 3. hermes skills package               (打包)
# 4. hermes skills sign                  (签名)
# 5. hermes skills publish               (发布)
# 6. git tag v1.1.0 && git push --tags   (打标签)

# 输出:
# ═══════════════════════════════════════════════════
#  发布新版本: react-performance-audit
# ═══════════════════════════════════════════════════
#
#  版本: v1.0.0 → v1.1.0
#  类型: MINOR (向后兼容的功能新增)
#
#  变更内容:
#  + 新增 React 19 兼容性支持
#  + 新增 Suspense 性能模式知识库
#  + 优化虚拟列表检测算法
#
#  [?] 确认发布? (y/N): y
#
#  ✅ v1.1.0 发布成功!
#     技能页面: https://skills.hermes.ai/skills/react-performance-audit

废弃版本管理

bash
# 标记某个版本为已废弃(不删除,但推荐用户升级)
hermes skills deprecate react-performance-audit v1.0.0 \
  --message "请使用 v1.1.0+,此版本存在已知的检测遗漏问题"

# 用户安装时会看到警告:
# ⚠️  v1.0.0 已废弃,请使用 v1.1.0+
#     废弃原因: 此版本存在已知的检测遗漏问题
#     自动安装: v1.1.0 (最新版本)

版本兼容性矩阵

yaml
# 在 SKILL.md 中声明版本兼容性
---
name: react-performance-audit
version: 2.0.0

# 声明与其他技能的兼容版本
compatibility:
  react-testing: ">=1.0.0 <3.0.0"    # 兼容 react-testing 1.x 和 2.x
  react-security: ">=2.0.0"           # 需要 react-security 2.0+

# 声明与 Hermes Agent 的版本要求
min_hermes_version: 0.10.0
max_hermes_version: 1.0.0             # 可选:上限约束
---

发布前检查清单

在发布之前,逐项检查以下内容:

✅ 必备检查项

bash
# 发布前检查清单

# [ ] 1. SKILL.md 格式正确
hermes skills validate ./my-skill/SKILL.md --strict

# [ ] 2. 所有知识库文件存在且可读
find ./my-skill/knowledge/ -type f -name "*.md" | while read f; do
  echo "Checking: $f"
  head -5 "$f"
done

# [ ] 3. 工作流定义有效
hermes skills validate ./my-skill/ --check-workflows

# [ ] 4. 没有敏感信息泄漏
# 检查是否包含 API Key、密码、私钥等
grep -r "AKIA\|password\|secret\|token" ./my-skill/

# [ ] 5. 版本号格式正确
hermes skills version

# [ ] 6. 描述清晰准确
# 重新阅读 description 字段,确认别人能看懂

# [ ] 7. 标签相关准确
# 确保 tags 反映技能的核心领域

# [ ] 8. 许可证明确
# 确认 license 字段填写正确

# [ ] 9. 作者信息完整
# 确认 author 字段包含可联系的方式

# [ ] 10. 本地测试通过
hermes skills test ./my-skill/

📋 推荐检查项

markdown
# [ ] 代码示例经过验证
# 确保知识库中的代码示例可以正确运行

# [ ] 知识库内容时效性
# 检查引用的文档版本、API 是否过时

# [ ] 多语言支持
# 如果你的技能支持多语言,确保翻译完整

# [ ] README 补充
# 建议在仓库根目录添加 README.md,包含:
# - 快速开始指南
# - 开发说明
# - 贡献指南
# - 变更日志

# [ ] 截图/演示
# 准备技能使用的截图或录屏,用于 Skills Hub 展示

# [ ] 更新 Changelog
# 记录本次版本的所有变更

发布前检查脚本

bash
#!/bin/bash
# pre-publish-check.sh
# 发布前自动检查脚本

SKILL_DIR="${1:-.}"

echo "╔══════════════════════════════════════════════════╗"
echo "║  发布前检查: $SKILL_DIR                            "
echo "╚══════════════════════════════════════════════════╝"
echo ""

PASS=0
FAIL=0
WARN=0

check() {
  local name="$1"
  local result="$2"
  if [ "$result" -eq 0 ]; then
    echo "✅ $name"
    PASS=$((PASS + 1))
  else
    echo "❌ $name"
    FAIL=$((FAIL + 1))
  fi
}

warn() {
  local name="$1"
  echo "⚠️  $name"
  WARN=$((WARN + 1))
}

# 检查 SKILL.md
[ -f "$SKILL_DIR/SKILL.md" ]
check "SKILL.md 存在" $?

# 检查 Frontmatter
grep -q "^---" "$SKILL_DIR/SKILL.md"
check "Frontmatter 标记" $?

# 检查必需字段
grep -q "^name:" "$SKILL_DIR/SKILL.md"
check "name 字段" $?

grep -q "^version:" "$SKILL_DIR/SKILL.md"
check "version 字段" $?

grep -q "^description:" "$SKILL_DIR/SKILL.md"
check "description 字段" $?

# 检查知识库目录
[ -d "$SKILL_DIR/knowledge" ]
check "knowledge 目录存在" $?

# 检查敏感信息
if grep -rq "AKIA\|password.*=.*['\"]" "$SKILL_DIR/"; then
  warn "可能包含敏感信息"
else
  check "无敏感信息" 0
fi

echo ""
echo "═══════════════════════════════════════════════════"
echo "  结果: ✅ $PASS 通过  ❌ $FAIL 失败  ⚠️  $WARN 警告"
echo "═══════════════════════════════════════════════════"

if [ $FAIL -gt 0 ]; then
  echo ""
  echo "❌ 存在 $FAIL 个失败项,请修复后再发布。"
  exit 1
fi

社区贡献指南

贡献方式

Hermes Skills 是一个开放的生态系统,你可以通过以下方式贡献:

text
贡献路径:

1. 发布自己的 Skill
   └── 在 Skills Hub 发布你的原创技能

2. 改进现有 Skill
   └── Fork → 修改 → Pull Request

3. 报告 Bug
   └── 提交 Issue,帮助改进

4. 审核他人的 Skill
   └── 成为社区审核员

5. 编写文档
   └── 改进官方文档和教程

Fork & PR 工作流

bash
# 第一步:Fork 官方仓库
# 在 Skills Hub 上点击 "Fork" 按钮

# 第二步:克隆到本地
hermes skills fork react-performance-audit
# 等价于:
# git clone https://github.com/hermes-skills/react-performance-audit.git
# cd react-performance-audit

# 第三步:创建功能分支
git checkout -b fix/memory-leak-detection

# 第四步:进行修改
# 编辑知识库文件...
vim knowledge/anti-patterns/memory-leaks.md

# 第五步:本地验证
hermes skills validate --strict
hermes skills test

# 第六步:提交并推送
git add .
git commit -m "fix: 修正内存泄漏检测的描述错误"
git push origin fix/memory-leak-detection

# 第七步:创建 Pull Request
hermes skills pr create \
  --title "fix: 修正内存泄漏检测的描述错误" \
  --body "修复了 memory-leaks.md 中关于 useEffect 清理函数的描述错误。" \
  --base main

PR 模板

markdown
## PR 类型
- [ ] Bug 修复
- [ ] 新功能
- [ ] 文档改进
- [ ] 性能优化

## 变更描述
简要描述你做了什么变更,以及为什么。

## 测试
- [ ] 已通过 `hermes skills validate --strict`
- [ ] 已通过 `hermes skills test`
- [ ] 已在本地验证功能正常

## 相关 Issue
Fixes #123

社区审核流程

text
PR 提交流程:

提交 PR ──→ 自动检查 ──→ 社区审核 ──→ 维护者合并 ──→ 发布新版本
              │              │
              ▼              ▼
         格式检查        至少 2 人审核
         安全检查        功能验证
         测试检查        变更合理性评估

成为维护者

bash
# 申请成为官方技能维护者
hermes registry apply-maintainer

# 申请条件:
# 1. 至少发布过 3 个社区技能
# 2. 至少合并过 5 个 PR
# 3. 社区评分 >= 4.5
# 4. 活跃时间 >= 3 个月

# 审核流程:
# 1. 提交申请
# 2. 社区投票(7 天)
# 3. 核心团队审核
# 4. 授予维护者权限

私有 Registry 搭建

为什么需要私有 Registry?

text
企业使用场景:

公共 Registry (skills.hermes.ai)
├── 社区分享的通用技能
├── 官方维护的高质量技能
└── 任何人都可以安装

私有 Registry (skills.internal.company.com)
├── 企业内部编码规范
├── 项目特定的工作流
├── 包含内部 API 地址的技能
├── 包含内部认证方式的技能
└── 仅限企业内部访问

搭建私有 Registry

bash
# 方案一:使用官方提供的私有 Registry 服务
hermes registry setup-private \
  --name "my-company-registry" \
  --auth ldap \
  --users-file ./users.yaml

# 方案二:自建 Registry 服务
docker run -d \
  --name hermes-registry \
  -p 8080:8080 \
  -v /data/registry:/data \
  -e REGISTRY_AUTH=true \
  -e REGISTRY_AUTH_FILE=/data/auth.yaml \
  hermesai/registry:latest

配置私有源

bash
# 添加私有 Registry 源
hermes registry add my-company \
  --url https://skills.internal.company.com \
  --token $COMPANY_TOKEN

# 查看已配置的源
hermes registry list

# 输出:
# ═══════════════════════════════════════════════════
#  已配置 Registry 源
# ═══════════════════════════════════════════════════
#
#  ┌──────┬─────────────────────────────────────┬────────┐
#  │ 名称 │ 地址                                │ 状态   │
#  ├──────┼─────────────────────────────────────┼────────┤
#  │ hub  │ https://skills.hermes.ai            │ ✅ 连接 │
#  │ my-  │ https://skills.internal.company.com │ ✅ 连接 │
#  │ comp │                                     │        │
#  └──────┴─────────────────────────────────────┴────────┘
#
#  搜索优先级: my-company → hub
#  安装默认源: my-company (企业技能优先)

源优先级配置

yaml
# ~/.hermes/registry.yaml
registries:
  - name: my-company
    url: https://skills.internal.company.com
    priority: 1              # 优先级最高
    token_env: COMPANY_TOKEN
    ssl_verify: true

  - name: hub
    url: https://skills.hermes.ai
    priority: 2              # 公共 Hub 作为备选
    token_env: HERMES_TOKEN

# 搜索策略:
# - 先搜索优先级高的源
# - 如果多个源有同名技能,优先高优先级的
# - 安装时默认使用最高优先级的版本

企业技能发布流程

bash
# 企业内部 CI/CD 中的发布流程
# .github/workflows/publish-skill.yml

name: Publish Internal Skill

on:
  push:
    branches: [main]
    paths:
      - 'skills/**'

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Hermes CLI
        run: curl -sSL https://hermes.ai/install.sh | sh

      - name: Validate Skills
        run: |
          for skill in skills/*; do
            hermes skills validate "$skill" --strict
          done

      - name: Package & Publish
        run: |
          for skill in skills/*; do
            name=$(basename "$skill")
            hermes skills release "$skill" --bump patch \
              --registry https://skills.internal.company.com \
              --token ${{ secrets.COMPANY_REGISTRY_TOKEN }}
          done

CI/CD 自动化发布

GitHub Actions 自动发布

yaml
# .github/workflows/release-skill.yml
name: Release Skill

on:
  push:
    tags:
      - 'v*'

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Hermes CLI
        run: curl -sSL https://hermes.ai/install.sh | sh

      - name: Login to Registry
        run: hermes registry login --token ${{ secrets.HERMES_TOKEN }}

      - name: Validate
        run: hermes skills validate --strict

      - name: Package
        run: hermes skills package

      - name: Sign
        run: hermes skills sign ./dist/*.tar.gz

      - name: Publish to Skills Hub
        run: hermes skills publish ./dist/*.tar.gz

      - name: Create GitHub Release
        uses: softprops/action-gh-release@v1
        with:
          files: ./dist/*.tar.gz
          generate_release_notes: true

发布自动化检查

yaml
# CI 中的质量门禁
quality-gates:
  - name: "SKILL.md 格式检查"
    command: hermes skills validate --strict
    required: true

  - name: "知识库完整性"
    command: hermes skills validate --check-knowledge
    required: true

  - name: "敏感信息扫描"
    command: hermes skills scan --secrets
    required: true

  - name: "许可证检查"
    command: hermes skills validate --check-license
    required: true

  - name: "大小检查"
    command: |
      SIZE=$(du -sk ./knowledge/ | cut -f1)
      [ "$SIZE" -lt 200000 ]  # 200KB 限制
    required: true

  - name: "社区质量评分"
    command: hermes skills quality-score
    threshold: 80  # 最低 80 分
    required: false  # 警告但不阻止发布

版本自动递增

yaml
# 自动判断版本类型并发布
name: Auto Release

on:
  pull_request:
    types: [closed]

jobs:
  auto-release:
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Determine Version Bump
        id: bump
        uses: trielinc/action-semantic-pr-labels@v1

      - name: Release
        run: |
          hermes skills release --bump ${{ steps.bump.outputs.type }}
        env:
          HERMES_TOKEN: ${{ secrets.HERMES_TOKEN }}

发布后的维护与运营

监控与统计

bash
# 查看技能统计数据
hermes skills stats react-performance-audit

# 输出:
# ═══════════════════════════════════════════════════
#  技能统计: react-performance-audit
# ═══════════════════════════════════════════════════
#
#  📊 下载趋势 (30 天)
#  ┌────────────────────────────────────────────────┐
#  │ ████  Week 1: 45 downloads                    │
#  │ ████████  Week 2: 89 downloads                │
#  │ ████████████  Week 3: 134 downloads           │
#  │ ████████████████  Week 4: 187 downloads       │
#  └────────────────────────────────────────────────┘
#
#  📍 地理分布
#  ├── 🇨🇳 中国: 42%
#  ├── 🇺🇸 美国: 28%
#  ├── 🇯🇵 日本: 12%
#  └── 其他: 18%
#
#  ⭐ 评分: 4.8/5.0 (56 评价)
#  ├── 5 星: 42 (75%)
#  ├── 4 星: 10 (18%)
#  ├── 3 星: 3 (5%)
#  └── 1-2 星: 1 (2%)
#
#  🐛 报告问题: 2 (已解决 2)

处理用户反馈

bash
# 查看技能相关问题
hermes skills issues react-performance-audit

# 输出:
# ═══════════════════════════════════════════════════
#  技能问题: react-performance-audit
# ═══════════════════════════════════════════════════
#
#  ┌──────┬───────────────┬──────────┬────────────┐
#  │ #    │ 标题          │ 严重性   │ 状态       │
#  ├──────┼───────────────┼──────────┼────────────┤
#  │ #15  │ 检测遗漏:     │ 中       │ 已修复     │
#  │      │ useEffect 依  │          │ (v1.1.0)   │
#  │      │ 赖数组        │          │            │
#  │ #12  │ React 19 兼   │ 低       │ 已修复     │
#  │      │ 容性问题      │          │ (v1.1.0)   │
#  │ #8   │ 文档中链接    │ 低       │ 已修复     │
#  │      │ 404           │          │ (v1.0.1)   │
#  └──────┴───────────────┴──────────┴────────────┘

响应流程

text
用户反馈处理流程:

用户报告问题
    │
    ▼
[1] 确认问题 ──→ 无法复现 ──→ 请求更多信息
    │
    ▼ 可以复现
[2] 分类问题
    ├── Bug (代码/逻辑错误) ──→ 安排修复
    ├── 文档问题 ──→ 更新知识库
    ├── 功能请求 ──→ 加入 Roadmap
    └── 误报 ──→ 优化检测规则
    │
    ▼
[3] 修复并发布 PATCH/MINOR 版本
    │
    ▼
[4] 通知报告者
    │
    ▼
[5] 更新 Changelog

维护者建议

markdown
## 技能维护最佳实践

### 1. 定期更新
- 每月至少检查一次依赖和引用链接
- React/Next.js 等大版本发布后一周内更新兼容性
- 每 3 个月审查一次知识库内容时效性

### 2. 响应及时
- 48 小时内回应用户问题
- Bug 修复在 2 周内发布
- 功能请求在 1 个月内给出 roadmap 反馈

### 3. 保持兼容
- MINOR 和 PATCH 版本必须向后兼容
- 破坏性变更必须发 MAJOR 版本
- 提供迁移指南

### 4. 文档先行
- 每次更新先更新文档
- Changelog 详细记录变更
- README 保持最新

### 5. 社区互动
- 回应 PR 和 Issue
- 感谢贡献者
- 参与讨论

撤销发布

bash
# 在极少数情况下(如发现安全漏洞),可以撤销发布
hermes skills unpublish react-performance-audit v1.0.0 \
  --reason "安全漏洞:知识库中包含过时的内部 API 地址"

# ⚠️ 注意:
# - 已安装的用户不会自动卸载
# - 撤销后该版本不可再安装
# - 需要在下一个版本中修复问题
# - 建议同时发布修复版本

总结

本文完整覆盖了 Hermes Agent Skills 的发布与共享全流程:

  1. Registry 发布流程:注册账号 → 本地验证 → 预览效果 → 打包签名 → 发布 → 审核
  2. 语义化版本管理:MAJOR.MINOR.PATCH 的严格定义、升级命令、兼容性声明
  3. 发布前检查清单:10 项必备检查 + 6 项推荐检查 + 自动化脚本
  4. 社区贡献指南:Fork & PR 工作流、PR 模板、审核流程、维护者申请
  5. 私有 Registry 搭建:Docker 自建、源配置、优先级管理、企业 CI/CD
  6. CI/CD 自动化发布:GitHub Actions 完整配置、质量门禁、自动版本递增
  7. 发布后维护:数据统计、问题处理、响应流程、维护者建议

核心原则:

  • 发布不是终点,是技能生命周期的开始:持续维护比一次性发布更重要
  • 语义化版本是信任的基础:严格遵守版本规范,让用户安心升级
  • 质量门禁不能少:验证 → 测试 → 签名 → 审核,缺一不可
  • 社区是技能的放大器:积极互动、及时响应、拥抱贡献
  • 私有与公开并重:企业内规走私有源,通用能力贡献社区

📌 下篇预告

高级工作流编排 —— 多步骤流水线、条件分支、并行执行、错误重试、人工审批节点。当单个 Skill 无法满足复杂任务时,如何将多个 Skill 和工具组合成强大的工作流?下一篇将深入探讨 Hermes Agent 的工作流编排引擎,让你的 Agent 能够自动完成从代码审查到部署上线的完整 DevOps 流程。