From 4fe53197c4aaf768b09060d116e2aed1cb37280d Mon Sep 17 00:00:00 2001 From: sinohqb Date: Wed, 1 Jul 2026 19:23:58 +0800 Subject: [PATCH] Initial commit: SkillSpace project structure - 5 agent frameworks: Qoder, Claude Code, Codex, OpenClaw, Hermes Agent - 9 lifecycle skills: lifecycle router, discover, create, test, audit, debug, update, publish, retire - 5 framework-specific meta-skills with specs and guides - OpenClaw meta-skill enriched with ClawHub official ecosystem data - Per-framework directories with skills/, versions/, publish/, docs/ --- .gitignore | 19 ++ README.md | 215 ++++++++++++++++++ claude-code/publish/registry.json | 5 + codex/publish/registry.json | 5 + hermes-agent/publish/registry.json | 5 + .../create-claude-code-skill/CHANGELOG.md | 6 + .../create-claude-code-skill/prompt.md | 21 ++ .../create-claude-code-skill/skill.json | 8 + meta-skills/create-claude-code-skill/spec.md | 47 ++++ meta-skills/create-codex-skill/CHANGELOG.md | 6 + meta-skills/create-codex-skill/prompt.md | 21 ++ meta-skills/create-codex-skill/skill.json | 8 + meta-skills/create-codex-skill/spec.md | 48 ++++ .../create-hermes-agent-skill/CHANGELOG.md | 6 + .../create-hermes-agent-skill/prompt.md | 21 ++ .../create-hermes-agent-skill/skill.json | 8 + meta-skills/create-hermes-agent-skill/spec.md | 56 +++++ .../create-openclaw-skill/CHANGELOG.md | 15 ++ meta-skills/create-openclaw-skill/prompt.md | 162 +++++++++++++ meta-skills/create-openclaw-skill/skill.json | 15 ++ meta-skills/create-openclaw-skill/spec.md | 112 +++++++++ meta-skills/create-qoder-skill/CHANGELOG.md | 6 + meta-skills/create-qoder-skill/prompt.md | 21 ++ meta-skills/create-qoder-skill/skill.json | 8 + meta-skills/create-qoder-skill/spec.md | 46 ++++ openclaw/publish/registry.json | 5 + qoder/publish/registry.json | 5 + skills/skill-auditor/CHANGELOG.md | 10 + skills/skill-auditor/prompt.md | 93 ++++++++ skills/skill-auditor/skill.json | 8 + skills/skill-debugger/CHANGELOG.md | 8 + skills/skill-debugger/prompt.md | 90 ++++++++ skills/skill-debugger/skill.json | 8 + skills/skill-discover/CHANGELOG.md | 8 + skills/skill-discover/prompt.md | 77 +++++++ skills/skill-discover/skill.json | 8 + skills/skill-lifecycle/CHANGELOG.md | 8 + skills/skill-lifecycle/prompt.md | 100 ++++++++ skills/skill-lifecycle/skill.json | 17 ++ skills/skill-publisher/CHANGELOG.md | 10 + skills/skill-publisher/prompt.md | 119 ++++++++++ skills/skill-publisher/skill.json | 8 + skills/skill-retire/CHANGELOG.md | 10 + skills/skill-retire/prompt.md | 112 +++++++++ skills/skill-retire/skill.json | 8 + skills/skill-router/CHANGELOG.md | 9 + skills/skill-router/prompt.md | 196 ++++++++++++++++ skills/skill-router/skill.json | 27 +++ skills/skill-tester/CHANGELOG.md | 8 + skills/skill-tester/prompt.md | 95 ++++++++ skills/skill-tester/skill.json | 8 + skills/skill-updater/CHANGELOG.md | 10 + skills/skill-updater/prompt.md | 97 ++++++++ skills/skill-updater/skill.json | 8 + 54 files changed, 2060 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 claude-code/publish/registry.json create mode 100644 codex/publish/registry.json create mode 100644 hermes-agent/publish/registry.json create mode 100644 meta-skills/create-claude-code-skill/CHANGELOG.md create mode 100644 meta-skills/create-claude-code-skill/prompt.md create mode 100644 meta-skills/create-claude-code-skill/skill.json create mode 100644 meta-skills/create-claude-code-skill/spec.md create mode 100644 meta-skills/create-codex-skill/CHANGELOG.md create mode 100644 meta-skills/create-codex-skill/prompt.md create mode 100644 meta-skills/create-codex-skill/skill.json create mode 100644 meta-skills/create-codex-skill/spec.md create mode 100644 meta-skills/create-hermes-agent-skill/CHANGELOG.md create mode 100644 meta-skills/create-hermes-agent-skill/prompt.md create mode 100644 meta-skills/create-hermes-agent-skill/skill.json create mode 100644 meta-skills/create-hermes-agent-skill/spec.md create mode 100644 meta-skills/create-openclaw-skill/CHANGELOG.md create mode 100644 meta-skills/create-openclaw-skill/prompt.md create mode 100644 meta-skills/create-openclaw-skill/skill.json create mode 100644 meta-skills/create-openclaw-skill/spec.md create mode 100644 meta-skills/create-qoder-skill/CHANGELOG.md create mode 100644 meta-skills/create-qoder-skill/prompt.md create mode 100644 meta-skills/create-qoder-skill/skill.json create mode 100644 meta-skills/create-qoder-skill/spec.md create mode 100644 openclaw/publish/registry.json create mode 100644 qoder/publish/registry.json create mode 100644 skills/skill-auditor/CHANGELOG.md create mode 100644 skills/skill-auditor/prompt.md create mode 100644 skills/skill-auditor/skill.json create mode 100644 skills/skill-debugger/CHANGELOG.md create mode 100644 skills/skill-debugger/prompt.md create mode 100644 skills/skill-debugger/skill.json create mode 100644 skills/skill-discover/CHANGELOG.md create mode 100644 skills/skill-discover/prompt.md create mode 100644 skills/skill-discover/skill.json create mode 100644 skills/skill-lifecycle/CHANGELOG.md create mode 100644 skills/skill-lifecycle/prompt.md create mode 100644 skills/skill-lifecycle/skill.json create mode 100644 skills/skill-publisher/CHANGELOG.md create mode 100644 skills/skill-publisher/prompt.md create mode 100644 skills/skill-publisher/skill.json create mode 100644 skills/skill-retire/CHANGELOG.md create mode 100644 skills/skill-retire/prompt.md create mode 100644 skills/skill-retire/skill.json create mode 100644 skills/skill-router/CHANGELOG.md create mode 100644 skills/skill-router/prompt.md create mode 100644 skills/skill-router/skill.json create mode 100644 skills/skill-tester/CHANGELOG.md create mode 100644 skills/skill-tester/prompt.md create mode 100644 skills/skill-tester/skill.json create mode 100644 skills/skill-updater/CHANGELOG.md create mode 100644 skills/skill-updater/prompt.md create mode 100644 skills/skill-updater/skill.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e49ca30 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +# macOS +.DS_Store +.AppleDouble +.LSOverride +._* + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Node +node_modules/ +npm-debug.log* + +# Qoder +.qoder/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..21ce39e --- /dev/null +++ b/README.md @@ -0,0 +1,215 @@ +# SkillSpace — 智能体技能全生命周期管理中心 + +SkillSpace 是一个通用的智能体技能工作目录,用于**创建、验证、发布和版本管理**各类智能体框架的技能(Skills / Tools / Capabilities)。 + +--- + +## 定位 + +- 技能的**全生命周期管理**:从设计、开发、测试到发布上线 +- 技能的**全版本管理**:支持多版本并存、灰度发布、回滚 +- **分框架独立管理**:不同智能体框架的技能编写规范存在差异,按框架隔离目录,各自遵循对应框架的规范 + +--- + +## 支持的智能体框架 + +| 框架名称 | 说明 | +|---------|------| +| **Qoder** | Qoder CLI 智能体框架,支持技能(Skills)、子智能体(Agents)、MCP 服务器等扩展机制 | +| **Claude Code** | Anthropic 的 Claude Code 智能体,支持工具调用和自定义指令扩展 | +| **Codex** | OpenAI Codex 智能体框架,支持函数定义和工具集成 | +| **OpenClaw** | 开源智能体框架,提供灵活的技能编排和插件体系 | +| **Hermes Agent** | Hermes 系列智能体,支持结构化输出和工具调用协议 | + +--- + +## 目录结构(规划) + +``` +SkillSpace/ +├── README.md # 本说明文档 +│ +├── skills/ # 生命周期管理技能(用户唯一入口) +│ ├── skill-lifecycle/ # 🎯 总路由器(唯一入口,意图识别 + 分发) +│ ├── skill-discover/ # 🔍 调研(搜索已有技能、可行性分析) +│ ├── skill-router/ # ➕ 创建(交互式向导,路由到各框架 meta-skill) +│ ├── skill-tester/ # 🧪 测试(静态检查 + 动态测试引导) +│ ├── skill-auditor/ # 🛡️ 审计(安全扫描 + 合规检查) +│ ├── skill-debugger/ # 🐛 排查(问题分类 + 根因定位 + 修复) +│ ├── skill-updater/ # 🔄 更新(SemVer 升级 + CHANGELOG + 回归提醒) +│ ├── skill-publisher/ # 🚀 发布(发布到 SkillHub + 各平台) +│ └── skill-retire/ # 📦 归档(废弃标记 + 替代方案 + 归档) +│ +├── meta-skills/ # 技能的技能(创建技能的指导技能) +│ │ # 每个子目录是一个"如何为某框架创建技能"的技能 +│ ├── create-qoder-skill/ +│ │ ├── skill.json # 技能元信息 +│ │ ├── prompt.md # 指导 Prompt:如何创建 Qoder 技能 +│ │ ├── spec.md # Qoder 技能规范摘要 +│ │ ├── examples/ # 官方或社区参考技能示例 +│ │ └── CHANGELOG.md +│ ├── create-claude-code-skill/ +│ ├── create-codex-skill/ +│ ├── create-openclaw-skill/ +│ └── create-hermes-agent-skill/ +│ +├── qoder/ # ===== Qoder 框架技能目录 ===== +│ ├── skills/ # 技能源码 +│ │ └── / +│ │ ├── skill.json # 技能元信息(名称、版本等) +│ │ ├── prompt.md # 技能 Prompt / 指令定义 +│ │ ├── tools/ # 工具定义或 MCP 配置 +│ │ ├── tests/ # 验证用例 +│ │ └── CHANGELOG.md # 版本变更记录 +│ ├── versions/ # 版本归档(语义化版本快照) +│ │ └── /v1.0.0/ +│ ├── publish/ # 发布配置与脚本 +│ │ └── registry.json +│ └── docs/ # 框架适配文档 +│ +├── claude-code/ # ===== Claude Code 框架技能目录 ===== +│ ├── skills/ +│ ├── versions/ +│ ├── publish/ +│ └── docs/ +│ +├── codex/ # ===== Codex 框架技能目录 ===== +│ ├── skills/ +│ ├── versions/ +│ ├── publish/ +│ └── docs/ +│ +├── openclaw/ # ===== OpenClaw 框架技能目录 ===== +│ ├── skills/ +│ ├── versions/ +│ ├── publish/ +│ └── docs/ +│ +└── hermes-agent/ # ===== Hermes Agent 框架技能目录 ===== + ├── skills/ + ├── versions/ + ├── publish/ + └── docs/ +``` + +--- + +## meta-skills:技能的技能 + +`meta-skills/` 是一个特殊目录,存放的是**"如何创建技能"的技能**,即技能创建指南。 + +### 用途 + +- 当你需要为某个框架新建技能时,调用对应的 meta-skill,它会引导你完成: + - 该框架的技能**规范和要求**(格式、字段、限制) + - 该框架的**官方参考技能**或社区最佳实践 + - 技能的**标准开发流程**和检查清单 + +### 每个 meta-skill 包含 + +| 文件 | 说明 | +|------|------| +| `skill.json` | 技能元信息(名称、版本、目标框架) | +| `prompt.md` | 核心指导 Prompt,描述如何为该框架创建技能 | +| `spec.md` | 该框架的技能规范摘要(字段定义、格式要求、限制条件) | +| `examples/` | 官方或社区参考技能示例(可运行的最小示例) | +| `CHANGELOG.md` | 版本变更记录 | + +### 示例 + +``` +# 想创建一个 OpenClaw 技能? +# 调用 meta-skills/create-openclaw-skill/ +# → 它会告诉你 OpenClaw 技能需要遵循什么规范、 +# 有哪些官方参考技能、标准的创建步骤是什么 +``` + +--- + +## 技能生命周期 + +用户通过 **`skill-lifecycle`**(唯一入口)即可覆盖技能的全部生命周期,系统自动识别意图并路由到对应子技能。 + +``` +用户 ──→ skill-lifecycle(总路由)──→ 自动分发到子技能 + + discover → create → test → audit → publish + ↑ ↑ │ + └──── retire ←───────┴── update ←┘ + debug +``` + +| 阶段 | 子技能 | 职责 | +|------|--------|------| +| 🔍 调研 | `skill-discover` | 搜索已有技能、分析框架能力、评估可行性 | +| ➕ 创建 | `skill-router` | 交互式向导创建新技能,路由到各框架 meta-skill | +| 🧪 测试 | `skill-tester` | 静态文件检查 + 真实环境动态测试 | +| 🛡️ 审计 | `skill-auditor` | 安全扫描(注入、权限、数据泄露)+ 合规检查 | +| 🐛 排查 | `skill-debugger` | 问题分类、根因定位、修复方案 | +| 🔄 更新 | `skill-updater` | SemVer 版本升级、CHANGELOG 生成、回归提醒 | +| 🚀 发布 | `skill-publisher` | 发布到 SkillHub 和各平台 | +| 📦 归档 | `skill-retire` | 废弃标记、替代方案、版本归档 | + +### 阶段衔接建议 + +``` +discover → "调研完成,是否创建?" → create +create → "技能已创建,建议测试" → test +test → "测试通过,建议审计" → audit +audit → "审计通过,可以发布" → publish +debug → "问题已修复,重新测试" → test +update → "更新完成,重新测试" → test +publish → "发布成功" → 结束 +retire → "已归档" → 结束 +``` + +--- + +## 版本管理规范 + +- 采用 **语义化版本(SemVer)**:`MAJOR.MINOR.PATCH` + - `MAJOR`:不兼容的重大变更 + - `MINOR`:向下兼容的功能新增 + - `PATCH`:向下兼容的问题修复 +- 每次发布在 `/versions//vX.Y.Z/` 保留完整快照 +- `CHANGELOG.md` 记录每个版本的变更摘要 + +--- + +## 快速开始 + +``` +# 所有操作都通过 skill-lifecycle 这一个入口 + +# 想创建新技能? +→ 调用 skill-lifecycle,说"创建一个 OpenClaw 的 PDF 处理技能" + +# 想测试已有技能? +→ 调用 skill-lifecycle,说"帮我测试 qoder/skills/my-skill" + +# 想发布到平台? +→ 调用 skill-lifecycle,说"发布 openclaw/skills/my-skill 到 ClawHub" + +# 想了解已有技能? +→ 调用 skill-lifecycle,说"帮我调研有没有现成的 Docker 调试技能" +``` + +--- + +## 后续规划 + +- [x] 搭建完整目录结构(5 个框架 + 9 个生命周期技能) +- [x] 构建 skill-lifecycle 总路由器和 8 个子技能 +- [x] OpenClaw meta-skill 规范整理(基于 ClawHub 官方生态) +- [ ] 补充各框架 meta-skill 的详细规范(Qoder / Claude Code / Codex / Hermes Agent) +- [ ] 为各框架 meta-skill 的 `examples/` 补充官方参考技能示例 +- [ ] 补充 SkillHub 发布规范到 `skill-publisher` +- [ ] 为每个框架编写适配指南(`/docs/`) +- [ ] 建设技能示例库(提供参考实现) + +--- + +## 说明 + +本目录当前处于**初始化阶段**,目录结构和工具链将随技能开发实践逐步完善。如有建议或贡献,请在项目仓库中提交 Issue 或 PR。 diff --git a/claude-code/publish/registry.json b/claude-code/publish/registry.json new file mode 100644 index 0000000..3fcc71e --- /dev/null +++ b/claude-code/publish/registry.json @@ -0,0 +1,5 @@ +{ + "framework": "claude-code", + "skills": [], + "lastUpdated": "2026-07-01" +} diff --git a/codex/publish/registry.json b/codex/publish/registry.json new file mode 100644 index 0000000..1907ff0 --- /dev/null +++ b/codex/publish/registry.json @@ -0,0 +1,5 @@ +{ + "framework": "codex", + "skills": [], + "lastUpdated": "2026-07-01" +} diff --git a/hermes-agent/publish/registry.json b/hermes-agent/publish/registry.json new file mode 100644 index 0000000..11e7e24 --- /dev/null +++ b/hermes-agent/publish/registry.json @@ -0,0 +1,5 @@ +{ + "framework": "hermes-agent", + "skills": [], + "lastUpdated": "2026-07-01" +} diff --git a/meta-skills/create-claude-code-skill/CHANGELOG.md b/meta-skills/create-claude-code-skill/CHANGELOG.md new file mode 100644 index 0000000..1169708 --- /dev/null +++ b/meta-skills/create-claude-code-skill/CHANGELOG.md @@ -0,0 +1,6 @@ +# Changelog + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- 创建 Claude Code 技能创建指南框架 diff --git a/meta-skills/create-claude-code-skill/prompt.md b/meta-skills/create-claude-code-skill/prompt.md new file mode 100644 index 0000000..33d4f82 --- /dev/null +++ b/meta-skills/create-claude-code-skill/prompt.md @@ -0,0 +1,21 @@ +# 如何创建 Claude Code 技能 + +本技能指导你为 Claude Code 框架创建符合规范的技能和自定义指令。 + +## 创建流程 + +1. **了解 Claude Code 规范**:阅读 `spec.md`,了解 Claude Code 的工具调用和指令扩展机制 +2. **参考官方示例**:查看 `examples/` 目录中的参考实现 +3. **创建技能目录**:在 `claude-code/skills//` 下新建目录 +4. **编写技能文件**: + - `skill.json`:技能元信息 + - `prompt.md`:自定义指令 / 系统提示 + - 按需添加工具定义和测试用例 +5. **验证技能**:在 Claude Code 环境中加载并测试 +6. **发布技能**:更新版本号,归档到 `versions/` + +## 注意事项 + +- Claude Code 通过自定义指令(Custom Instructions)扩展行为 +- 工具调用遵循 Anthropic 的 Tool Use 协议 +- 建议参考 `examples/` 中的示例了解指令格式 diff --git a/meta-skills/create-claude-code-skill/skill.json b/meta-skills/create-claude-code-skill/skill.json new file mode 100644 index 0000000..ab3539c --- /dev/null +++ b/meta-skills/create-claude-code-skill/skill.json @@ -0,0 +1,8 @@ +{ + "name": "create-claude-code-skill", + "version": "0.1.0", + "description": "指导如何为 Claude Code 创建技能(Skill)", + "targetFramework": "claude-code", + "type": "meta-skill", + "tags": ["claude-code", "skill-creation", "guide"] +} diff --git a/meta-skills/create-claude-code-skill/spec.md b/meta-skills/create-claude-code-skill/spec.md new file mode 100644 index 0000000..a87ceb6 --- /dev/null +++ b/meta-skills/create-claude-code-skill/spec.md @@ -0,0 +1,47 @@ +# Claude Code 技能规范摘要 + +> 本文件摘要整理 Claude Code 技能的核心规范,供快速参考。完整规范请参阅 Anthropic 官方文档。 + +## 技能目录结构 + +``` +/ +├── skill.json # 技能元信息(必填) +├── prompt.md # 自定义指令 / Prompt(必填) +├── tools/ # 工具定义(可选) +├── tests/ # 验证用例(可选) +└── CHANGELOG.md # 版本变更记录(推荐) +``` + +## skill.json 字段 + +| 字段 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `name` | string | 是 | 技能名称 | +| `version` | string | 是 | 语义化版本号 | +| `description` | string | 是 | 技能功能描述 | +| `instructions` | string | 否 | 自定义指令的简要说明 | +| `tools` | array | 否 | 依赖的工具列表 | +| `tags` | array | 否 | 标签 | + +## prompt.md 格式 + +Claude Code 的技能核心是自定义指令: + +- 使用 Markdown 格式编写 +- 描述技能的执行规则和约束 +- 明确指定 Claude 在特定场景下的行为方式 +- 可包含示例对话或指令模板 + +## 工具调用 + +Claude Code 使用 Anthropic 的 Tool Use 协议: + +- 工具以 JSON Schema 格式定义 +- 支持函数调用和结果返回 +- 工具定义可放在 `tools/` 目录 + +## 参考链接 + +- [Anthropic Claude Code 文档](https://docs.anthropic.com) +- `examples/` 目录中的参考实现 diff --git a/meta-skills/create-codex-skill/CHANGELOG.md b/meta-skills/create-codex-skill/CHANGELOG.md new file mode 100644 index 0000000..1e464c3 --- /dev/null +++ b/meta-skills/create-codex-skill/CHANGELOG.md @@ -0,0 +1,6 @@ +# Changelog + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- 创建 Codex 技能创建指南框架 diff --git a/meta-skills/create-codex-skill/prompt.md b/meta-skills/create-codex-skill/prompt.md new file mode 100644 index 0000000..22ca796 --- /dev/null +++ b/meta-skills/create-codex-skill/prompt.md @@ -0,0 +1,21 @@ +# 如何创建 Codex 技能 + +本技能指导你为 OpenAI Codex 框架创建符合规范的技能(函数定义和工具集成)。 + +## 创建流程 + +1. **了解 Codex 规范**:阅读 `spec.md`,了解 Codex 的函数定义和工具调用格式 +2. **参考官方示例**:查看 `examples/` 目录中的参考实现 +3. **创建技能目录**:在 `codex/skills//` 下新建目录 +4. **编写技能文件**: + - `skill.json`:技能元信息 + - `prompt.md`:技能指令和行为定义 + - 按需添加工具定义和测试用例 +5. **验证技能**:在 Codex 环境中加载并测试 +6. **发布技能**:更新版本号,归档到 `versions/` + +## 注意事项 + +- Codex 通过函数定义(Function Calling)扩展能力 +- 工具定义遵循 OpenAI 的 JSON Schema 格式 +- 建议参考 `examples/` 中的示例了解函数定义格式 diff --git a/meta-skills/create-codex-skill/skill.json b/meta-skills/create-codex-skill/skill.json new file mode 100644 index 0000000..32c959a --- /dev/null +++ b/meta-skills/create-codex-skill/skill.json @@ -0,0 +1,8 @@ +{ + "name": "create-codex-skill", + "version": "0.1.0", + "description": "指导如何为 OpenAI Codex 创建技能(Skill)", + "targetFramework": "codex", + "type": "meta-skill", + "tags": ["codex", "skill-creation", "guide"] +} diff --git a/meta-skills/create-codex-skill/spec.md b/meta-skills/create-codex-skill/spec.md new file mode 100644 index 0000000..ca4217c --- /dev/null +++ b/meta-skills/create-codex-skill/spec.md @@ -0,0 +1,48 @@ +# Codex 技能规范摘要 + +> 本文件摘要整理 OpenAI Codex 技能的核心规范,供快速参考。完整规范请参阅 OpenAI 官方文档。 + +## 技能目录结构 + +``` +/ +├── skill.json # 技能元信息(必填) +├── prompt.md # 技能指令定义(必填) +├── tools/ # 函数定义 / 工具配置(可选) +├── tests/ # 验证用例(可选) +└── CHANGELOG.md # 版本变更记录(推荐) +``` + +## skill.json 字段 + +| 字段 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `name` | string | 是 | 技能名称 | +| `version` | string | 是 | 语义化版本号 | +| `description` | string | 是 | 技能功能描述 | +| `functions` | array | 否 | 依赖的函数定义列表 | +| `tools` | array | 否 | 依赖的工具列表 | +| `tags` | array | 否 | 标签 | + +## prompt.md 格式 + +Codex 的技能指令定义: + +- 使用 Markdown 格式编写 +- 描述技能的触发条件和执行逻辑 +- 可指定函数调用的时机和参数 +- 建议包含使用示例 + +## 函数定义(Function Calling) + +Codex 使用 OpenAI 的函数调用格式: + +- 函数以 JSON Schema 定义 +- 包含 `name`、`description`、`parameters` 字段 +- 支持 `function_call` 指定调用方式 +- 函数定义可放在 `tools/` 目录 + +## 参考链接 + +- [OpenAI Function Calling 文档](https://platform.openai.com/docs/guides/function-calling) +- `examples/` 目录中的参考实现 diff --git a/meta-skills/create-hermes-agent-skill/CHANGELOG.md b/meta-skills/create-hermes-agent-skill/CHANGELOG.md new file mode 100644 index 0000000..88bd599 --- /dev/null +++ b/meta-skills/create-hermes-agent-skill/CHANGELOG.md @@ -0,0 +1,6 @@ +# Changelog + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- 创建 Hermes Agent 技能创建指南框架 diff --git a/meta-skills/create-hermes-agent-skill/prompt.md b/meta-skills/create-hermes-agent-skill/prompt.md new file mode 100644 index 0000000..3775e51 --- /dev/null +++ b/meta-skills/create-hermes-agent-skill/prompt.md @@ -0,0 +1,21 @@ +# 如何创建 Hermes Agent 技能 + +本技能指导你为 Hermes Agent 框架创建符合规范的技能,特别是结构化输出和工具调用协议。 + +## 创建流程 + +1. **了解 Hermes Agent 规范**:阅读 `spec.md`,了解结构化输出和工具调用协议 +2. **参考官方示例**:查看 `examples/` 目录中的参考实现 +3. **创建技能目录**:在 `hermes-agent/skills//` 下新建目录 +4. **编写技能文件**: + - `skill.json`:技能元信息 + - `prompt.md`:技能指令和输出格式定义 + - 按需添加工具定义和测试用例 +5. **验证技能**:在 Hermes Agent 环境中加载并测试 +6. **发布技能**:更新版本号,归档到 `versions/` + +## 注意事项 + +- Hermes Agent 强调结构化输出,技能需定义输出 Schema +- 工具调用协议有特定格式要求 +- 建议参考 `examples/` 中的示例了解输出格式 diff --git a/meta-skills/create-hermes-agent-skill/skill.json b/meta-skills/create-hermes-agent-skill/skill.json new file mode 100644 index 0000000..4156441 --- /dev/null +++ b/meta-skills/create-hermes-agent-skill/skill.json @@ -0,0 +1,8 @@ +{ + "name": "create-hermes-agent-skill", + "version": "0.1.0", + "description": "指导如何为 Hermes Agent 创建技能(Skill)", + "targetFramework": "hermes-agent", + "type": "meta-skill", + "tags": ["hermes-agent", "skill-creation", "guide"] +} diff --git a/meta-skills/create-hermes-agent-skill/spec.md b/meta-skills/create-hermes-agent-skill/spec.md new file mode 100644 index 0000000..3b47218 --- /dev/null +++ b/meta-skills/create-hermes-agent-skill/spec.md @@ -0,0 +1,56 @@ +# Hermes Agent 技能规范摘要 + +> 本文件摘要整理 Hermes Agent 技能的核心规范,供快速参考。完整规范请参阅 Hermes Agent 官方文档。 + +## 技能目录结构 + +``` +/ +├── skill.json # 技能元信息(必填) +├── prompt.md # 技能指令和输出定义(必填) +├── tools/ # 工具定义(可选) +├── tests/ # 验证用例(可选) +└── CHANGELOG.md # 版本变更记录(推荐) +``` + +## skill.json 字段 + +| 字段 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `name` | string | 是 | 技能名称 | +| `version` | string | 是 | 语义化版本号 | +| `description` | string | 是 | 技能功能描述 | +| `outputSchema` | object | 否 | 结构化输出的 JSON Schema | +| `tools` | array | 否 | 依赖的工具列表 | +| `tags` | array | 否 | 标签 | + +## prompt.md 格式 + +Hermes Agent 的技能指令定义: + +- 使用 Markdown 格式编写 +- **必须明确定义输出格式**(JSON Schema 或示例) +- 描述技能的执行规则和约束 +- 指定工具调用的条件和参数 +- 建议包含输入输出示例 + +## 结构化输出 + +Hermes Agent 的核心特性: + +- 技能输出必须符合预定义的 JSON Schema +- 在 `skill.json` 的 `outputSchema` 字段定义 +- 或在 `prompt.md` 中明确描述输出格式 +- 支持嵌套对象和数组类型 + +## 工具调用协议 + +- 工具以标准化接口定义 +- 支持同步和异步调用 +- 工具定义可放在 `tools/` 目录 +- 需声明工具参数的 JSON Schema + +## 参考链接 + +- [Hermes Agent 官方文档](https://docs.hermes-agent.dev)(待确认) +- `examples/` 目录中的参考实现 diff --git a/meta-skills/create-openclaw-skill/CHANGELOG.md b/meta-skills/create-openclaw-skill/CHANGELOG.md new file mode 100644 index 0000000..e1e162b --- /dev/null +++ b/meta-skills/create-openclaw-skill/CHANGELOG.md @@ -0,0 +1,15 @@ +# Changelog + +## 0.2.0 - 2026-07-01 + +- 基于 ClawHub 官方生态更新规范 +- 添加完整的 SKILL.md 和 _meta.json 规范 +- 添加渐进式披露三层加载机制 +- 添加描述编写规范和常见陷阱 +- 添加工具链和官方参考技能列表 +- 添加安全验证标准和发布流程 + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- 创建 OpenClaw 技能创建指南框架 diff --git a/meta-skills/create-openclaw-skill/prompt.md b/meta-skills/create-openclaw-skill/prompt.md new file mode 100644 index 0000000..395716b --- /dev/null +++ b/meta-skills/create-openclaw-skill/prompt.md @@ -0,0 +1,162 @@ +# 如何创建 OpenClaw 技能 + +本技能指导你为 OpenClaw 框架创建符合规范的技能,基于 ClawHub 官方生态和多个高人气参考技能的最佳实践。 + +## 核心概念 + +OpenClaw 技能(Skill)是一个自包含的指令包,由 `SKILL.md`(核心指令文件)和 `_meta.json`(元数据文件)组成,支持模块化结构、渐进式披露和 Token 高效设计。 + +## 创建流程 + +### 1. 前置准备 + +- 检查是否已有同类技能:在 [ClawHub](https://clawhub.ai) 搜索,避免重复 +- 明确技能功能边界、适用场景和触发条件 +- 参考 `spec.md` 了解完整规范 + +### 2. 创建技能目录 + +```bash +# 方式一:手动创建 +mkdir -p openclaw/skills/ +touch openclaw/skills//SKILL.md +touch openclaw/skills//_meta.json + +# 方式二:使用脚手架工具(推荐) +npm install -g skill-scaffold +skill-scaffold --author --description "描述" +``` + +### 3. 编写 SKILL.md + +`SKILL.md` 是技能的核心,结构如下: + +```markdown +--- +name: my-skill-name +description: Process, merge, and extract PDF content +--- + +## When to Use +- 用户提到 X 时触发 +- 用户需要 Y 时触发 + +## Core Rules +1. 规则一 +2. 规则二 +3. 规则三 + +## Quick Start +最小可行示例... + +## Workflow +复杂任务的步骤清单... + +## Advanced +链接至独立参考文件... +``` + +### 4. 编写 _meta.json + +```json +{ + "name": "my-skill-name", + "version": "1.0.0", + "description": "Process, merge, and extract PDF content", + "tags": ["pdf", "extraction", "utility"] +} +``` + +### 5. 按需添加辅助文件 + +- `references/` — 详细参考文档(按需加载) +- `scripts/` — 辅助脚本 +- `examples/` — 使用示例 + +### 6. 本地验证 + +```bash +# 重启 OpenClaw 网关以识别新技能 +openclaw gateway restart +``` + +### 7. 发布到 ClawHub + +```bash +# 认证(需 GitHub 账号,注册满 2 周) +openclaw auth login + +# 发布 +openclaw skills publish \ + --slug \ + --name \ + --version 1.0.0 \ + --tags "tag1,tag2" +``` + +## 关键规范 + +### 描述(Description)编写规范 + +描述是代理识别并加载技能的**唯一依据**,至关重要: + +- 上限 1024 字符 +- 采用第三人称 +- 首句阐述核心能力(15-25 词,以动作动词开头) +- 次句明确触发条件,必须包含 `"Use when..."` + +| 错误示例 | 正确示例 | +|---------|---------| +| "Use when user needs PDFs" | "Process, merge, and extract PDF content" | +| "Helper for Docker" | "Build, deploy, and debug Docker containers" | +| "Helps with documents." | "Extract text and tables from PDF files. Use when processing PDFs or when user mentions form extraction." | + +### 核心规则 + +1. **保持简短**:核心文件 30-50 行,上限 80 行 +2. **渐进式披露**:元数据始终加载 → 核心主体触发时加载 → 辅助文件按需加载 +3. **辅助文件优先**:超过 20 行的内容拆分至独立文件 +4. **避免冗余**:信息仅存一处,通过引用避免重复 +5. **发布前测试**:以全新代理视角审查指令是否清晰且必要 + +### 常见陷阱 + +| 陷阱 | 说明 | +|------|------| +| 解释基础概念 | 模型已知,应说明何时及如何使用 | +| 描述中使用触发条件 | 浪费字符,仅用动作动词 | +| 描述中堆砌关键词 | 像垃圾邮件,写精炼的一句话 | +| 模板内联 | 核心文件臃肿,分离到独立文件 | +| 模糊的"观察"指令 | 易被标记可疑,需明确具体数据 | +| 未声明的文件创建 | 触发安全警告,需添加数据存储说明 | + +## 安全验证标准 + +技能发布需通过: +- 静态扫描:检查格式、字段完整性 +- LLM 分析:审查用途匹配度、安装机制、权限需求 +- 触发词范围:避免过宽导致意外激活 +- 文件操作:修改工作区前需获取用户明确批准 + +## 工具链 + +| 工具 | 用途 | +|------|------| +| [skill-scaffold](https://clawhub.ai/nextfrontierbuilds/skill-scaffold) | CLI 脚手架工具,快速生成技能目录结构 | +| [skill-builder](https://clawhub.ai/ivangdavila/skill-builder) | 交互式技能构建引导,审查质量 | +| [skill-factory](https://clawhub.ai/smallkeyboy/smallkeyboy-create-skill) | 程序化批量创建技能 | +| `openclaw skills install` | 安装技能 | +| `openclaw gateway restart` | 重启网关识别新技能 | +| `openclaw skills publish` | 发布技能到 ClawHub | + +## 官方参考技能 + +| 技能名称 | 作者 | 说明 | +|---------|------|------| +| [Skill Builder / Creator](https://clawhub.ai/ivangdavila/skill-builder) | ivangdavila | 模块化与渐进式披露设计,质量把控 | +| [Skill Scaffold](https://clawhub.ai/nextfrontierbuilds/skill-scaffold) | nextfrontierbuilds | 多平台兼容 CLI 脚手架工具 | +| [OpenClaw Skill Creator](https://clawhub.ai/yejay7/create-skill-openclaw) | yejay7 | OpenClaw 专属创建指南 | +| [Write A Skill](https://clawhub.ai/liyafeichina/write-a-skill) | liyafeichina | 技能编写规范与渐进式披露 | +| [Skill 创建工厂](https://clawhub.ai/smallkeyboy/smallkeyboy-create-skill) | smallkeyboy | 程序化批量创建 | +| [Create Skills](https://clawhub.ai/ryanallen/document-skills) | ryanallen | 技能文档编写指导 | +| [Clawhub Skill Creator](https://clawhub.ai/erview/clawhub-skill-creator) | erview | ClawHub 平台发布指南 | diff --git a/meta-skills/create-openclaw-skill/skill.json b/meta-skills/create-openclaw-skill/skill.json new file mode 100644 index 0000000..03f4032 --- /dev/null +++ b/meta-skills/create-openclaw-skill/skill.json @@ -0,0 +1,15 @@ +{ + "name": "create-openclaw-skill", + "version": "0.2.0", + "description": "指导如何为 OpenClaw 创建技能(Skill),包含规范、工具链和官方参考", + "targetFramework": "openclaw", + "type": "meta-skill", + "tags": ["openclaw", "skill-creation", "guide"], + "sources": [ + "https://clawhub.ai/ivangdavila/skill-builder", + "https://clawhub.ai/nextfrontierbuilds/skill-scaffold", + "https://clawhub.ai/yejay7/create-skill-openclaw", + "https://clawhub.ai/liyafeichina/write-a-skill", + "https://clawhub.ai/smallkeyboy/smallkeyboy-create-skill" + ] +} diff --git a/meta-skills/create-openclaw-skill/spec.md b/meta-skills/create-openclaw-skill/spec.md new file mode 100644 index 0000000..3b8188f --- /dev/null +++ b/meta-skills/create-openclaw-skill/spec.md @@ -0,0 +1,112 @@ +# OpenClaw 技能规范摘要 + +> 基于 ClawHub 官方生态和多个高人气参考技能整理。完整规范请参阅 [ClawHub](https://clawhub.ai)。 + +## 文件结构 + +``` +/ +├── SKILL.md # 核心指令文件(必填) +├── _meta.json # 元数据文件(必填) +├── references/ # 按需加载的参考文档(可选) +├── scripts/ # 辅助脚本(可选) +├── examples/ # 使用示例(可选) +└── CHANGELOG.md # 版本变更记录(推荐) +``` + +## SKILL.md 规范 + +### YAML 前置信息(Frontmatter) + +```yaml +--- +name: my-skill-name # 小写 + 连字符,全局唯一 +description: 15-25 词描述 # 上限 160 字符(ClawHub 搜索摘要) +--- +``` + +**注意**:YAML 前置信息**仅需** `name` 和 `description` 两个字段,不要添加多余字段。 + +### 核心章节结构 + +| 章节 | 说明 | +|------|------| +| `## When to Use` | 定义激活触发条件(关键词、场景) | +| `## Core Rules` | 3-7 条编号规则,约束技能行为 | +| `## Quick Start` | 最小可行示例 | +| `## Workflow` | 复杂任务的步骤清单 | +| `## Advanced` | 链接至独立参考文件(渐进式披露) | + +### 编写原则 + +- 核心文件控制在 **30-50 行**,上限 80 行 +- 超过 20 行的内容拆分至独立文件 +- 信息仅存一处,通过引用避免重复 +- 以全新代理视角审查指令是否清晰且必要 + +## _meta.json 规范 + +```json +{ + "name": "my-skill-name", + "version": "1.0.0", + "description": "Process, merge, and extract PDF content", + "tags": ["pdf", "extraction", "utility"] +} +``` + +| 字段 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `name` | string | 是 | 小写 + 连字符,与 YAML 一致 | +| `version` | string | 是 | 语义化版本号 | +| `description` | string | 是 | 与 YAML 一致 | +| `tags` | array | 否 | 搜索关键词 | + +## Description 编写规范 + +描述是代理识别并加载技能的**唯一依据**: + +- 上限 1024 字符 +- 第三人称 +- 首句:15-25 词,以动作动词开头,描述能力 +- 次句:触发条件,包含 `"Use when..."` + +## 渐进式披露(三层加载机制) + +| 层级 | 内容 | 加载时机 | +|------|------|---------| +| L1 元数据 | `name`、`description` | 始终加载 | +| L2 核心主体 | `SKILL.md` 正文 | 触发时加载 | +| L3 辅助文件 | `references/`、`scripts/` | 按需加载 | + +## 安全验证标准 + +发布时技能需通过: + +1. **静态扫描**:YAML 格式、字段完整性、文件结构 +2. **LLM 分析**:用途匹配度、安装机制、权限需求 +3. **触发词审查**:范围不能过宽,防止意外激活 +4. **文件操作审查**:修改工作区前需用户明确批准 + +## 发布流程 + +```bash +# 认证(GitHub 账号,注册满 2 周) +openclaw auth login + +# 发布 +openclaw skills publish \ + --slug \ + --name \ + --version 1.0.0 \ + --tags "tag1,tag2" +``` + +## 常见问题 + +| 问题 | 原因 | 解决方案 | +|------|------|---------| +| 无效目录路径 | 使用了相对路径 | 使用绝对路径 | +| 认证失败 | GitHub 账号不满 2 周 | 等待或换账号 | +| 技能不可见 | YAML 前置信息字段过多 | 只保留 `name` 和 `description` | +| 技能未被识别 | 网关未重启 | 执行 `openclaw gateway restart` | diff --git a/meta-skills/create-qoder-skill/CHANGELOG.md b/meta-skills/create-qoder-skill/CHANGELOG.md new file mode 100644 index 0000000..37b3d14 --- /dev/null +++ b/meta-skills/create-qoder-skill/CHANGELOG.md @@ -0,0 +1,6 @@ +# Changelog + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- 创建 Qoder 技能创建指南框架 diff --git a/meta-skills/create-qoder-skill/prompt.md b/meta-skills/create-qoder-skill/prompt.md new file mode 100644 index 0000000..34d0efa --- /dev/null +++ b/meta-skills/create-qoder-skill/prompt.md @@ -0,0 +1,21 @@ +# 如何创建 Qoder 技能 + +本技能指导你为 Qoder CLI 框架创建符合规范的技能(Skill)。 + +## 创建流程 + +1. **了解 Qoder 技能规范**:阅读 `spec.md`,了解技能文件的格式和字段要求 +2. **参考官方示例**:查看 `examples/` 目录中的参考实现 +3. **创建技能目录**:在 `qoder/skills//` 下新建目录 +4. **编写技能文件**: + - `skill.json`:技能元信息 + - `prompt.md`:技能的核心 Prompt 定义 + - 按需添加工具定义(`tools/`)和测试用例(`tests/`) +5. **验证技能**:在 Qoder CLI 中加载并测试技能行为 +6. **发布技能**:更新版本号,归档到 `versions/` + +## 注意事项 + +- Qoder 技能的核心是 `prompt.md`,它定义了技能的触发条件和执行行为 +- 技能可以通过 MCP 服务器扩展工具能力 +- 参考 `examples/` 中的示例快速上手 diff --git a/meta-skills/create-qoder-skill/skill.json b/meta-skills/create-qoder-skill/skill.json new file mode 100644 index 0000000..3912634 --- /dev/null +++ b/meta-skills/create-qoder-skill/skill.json @@ -0,0 +1,8 @@ +{ + "name": "create-qoder-skill", + "version": "0.1.0", + "description": "指导如何为 Qoder CLI 创建技能(Skill)", + "targetFramework": "qoder", + "type": "meta-skill", + "tags": ["qoder", "skill-creation", "guide"] +} diff --git a/meta-skills/create-qoder-skill/spec.md b/meta-skills/create-qoder-skill/spec.md new file mode 100644 index 0000000..01a5fe2 --- /dev/null +++ b/meta-skills/create-qoder-skill/spec.md @@ -0,0 +1,46 @@ +# Qoder 技能规范摘要 + +> 本文件摘要整理 Qoder CLI 技能的核心规范,供快速参考。完整规范请参阅官方文档。 + +## 技能目录结构 + +``` +/ +├── skill.json # 技能元信息(必填) +├── prompt.md # 技能 Prompt 定义(必填) +├── tools/ # 工具定义或 MCP 配置(可选) +├── tests/ # 验证用例(可选) +└── CHANGELOG.md # 版本变更记录(推荐) +``` + +## skill.json 字段 + +| 字段 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `name` | string | 是 | 技能名称,全局唯一 | +| `version` | string | 是 | 语义化版本号 | +| `description` | string | 是 | 技能功能描述 | +| `triggers` | array | 否 | 触发条件(关键词、模式等) | +| `tools` | array | 否 | 依赖的工具列表 | +| `tags` | array | 否 | 标签,用于分类和检索 | + +## prompt.md 格式 + +`prompt.md` 是技能的核心,定义了技能的执行逻辑: + +- 使用 Markdown 格式编写 +- 明确描述技能的触发场景和执行步骤 +- 可引用工具(通过工具名称) +- 建议包含输入输出示例 + +## 工具集成 + +Qoder 支持通过 MCP(Model Context Protocol)服务器扩展工具: + +- 在 `tools/` 目录下放置 MCP 配置文件 +- 或在 `skill.json` 中声明依赖的 MCP 服务器 + +## 参考链接 + +- [Qoder 官方文档](https://docs.qoder.ai)(待确认) +- `examples/` 目录中的参考实现 diff --git a/openclaw/publish/registry.json b/openclaw/publish/registry.json new file mode 100644 index 0000000..f64a39c --- /dev/null +++ b/openclaw/publish/registry.json @@ -0,0 +1,5 @@ +{ + "framework": "openclaw", + "skills": [], + "lastUpdated": "2026-07-01" +} diff --git a/qoder/publish/registry.json b/qoder/publish/registry.json new file mode 100644 index 0000000..642d794 --- /dev/null +++ b/qoder/publish/registry.json @@ -0,0 +1,5 @@ +{ + "framework": "qoder", + "skills": [], + "lastUpdated": "2026-07-01" +} diff --git a/skills/skill-auditor/CHANGELOG.md b/skills/skill-auditor/CHANGELOG.md new file mode 100644 index 0000000..c8b885c --- /dev/null +++ b/skills/skill-auditor/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- Prompt 注入风险扫描 +- 权限与文件操作审查 +- 数据泄露风险检查 +- 多平台合规性检查(ClawHub、Qoder 等) +- 结构化审计报告输出 diff --git a/skills/skill-auditor/prompt.md b/skills/skill-auditor/prompt.md new file mode 100644 index 0000000..9bca8d6 --- /dev/null +++ b/skills/skill-auditor/prompt.md @@ -0,0 +1,93 @@ +# Skill Auditor — 技能安全审计助手 + +你是技能安全审计助手,帮助用户在发布前对技能进行安全扫描和合规检查。 + +## 核心职责 + +1. 扫描安全风险(注入、权限、数据泄露) +2. 检查合规性(平台发布规范) +3. 输出审计报告和修复建议 + +--- + +## 审计流程 + +### Step 1: 确定审计目标 + +询问用户: +- 要审计的技能名称和路径 +- 目标框架 +- 审计级别(快速扫描 / 完整审计) + +### Step 2: 安全风险扫描 + +#### 2.1 Prompt 注入风险 + +| 检查项 | 风险等级 | 说明 | +|--------|---------|------| +| 是否包含可执行代码片段 | 🔴 高 | Prompt 中不应包含可直接执行的代码 | +| 是否有未过滤的用户输入引用 | 🔴 高 | 用户输入直接拼入 Prompt 可能导致注入 | +| 是否包含外部 URL 加载指令 | 🟡 中 | 从外部加载内容可能引入恶意指令 | +| 是否有绕过安全限制的指令 | 🔴 高 | 如"忽略之前的指令"类模式 | + +#### 2.2 权限与文件操作 + +| 检查项 | 风险等级 | 说明 | +|--------|---------|------| +| 是否声明了文件写入操作 | 🟡 中 | 写入操作需明确声明并获得用户同意 | +| 是否访问敏感路径 | 🔴 高 | 如 `.env`、`credentials`、SSH 密钥等 | +| 是否有网络请求 | 🟡 中 | 外部请求需声明目标和用途 | +| 是否执行系统命令 | 🔴 高 | 命令执行需严格限制范围 | + +#### 2.3 数据泄露风险 + +| 检查项 | 风险等级 | 说明 | +|--------|---------|------| +| 是否包含硬编码密钥/Token | 🔴 高 | 任何凭证不应出现在技能文件中 | +| 是否记录用户敏感数据 | 🟡 中 | 日志或输出中不应包含个人信息 | +| 是否将数据发送到外部 | 🟡 中 | 数据传输需声明并加密 | + +### Step 3: 合规性检查 + +根据目标平台的发布规范检查: + +| 平台 | 合规要求 | +|------|---------| +| **ClawHub** | YAML frontmatter 仅含 name/description、触发词范围合理、文件操作需用户批准 | +| **Qoder** | 技能描述不含垃圾关键词、MCP 配置合法 | +| **通用** | 版本号 SemVer 合规、CHANGELOG 已更新、无版权争议内容 | + +### Step 4: 输出审计报告 + +```markdown +## 审计报告: + +### 风险摘要 +- 🔴 高风险:X 项 +- 🟡 中风险:X 项 +- ✅ 通过:X 项 + +### 详细发现 +| # | 检查项 | 风险 | 位置 | 修复建议 | +|---|--------|------|------|---------| +| 1 | | 🔴 | prompt.md:12 | ... | + +### 合规性 +| 平台 | 状态 | 备注 | +|------|------|------| +| ClawHub | ✅/❌ | | + +### 结论 +- 🟢 可发布(无高风险、合规通过) +- 🟡 修复后可发布(有中风险项需处理) +- 🔴 阻断发布(有高风险项必须修复) + +### 修复优先级 +1. (必须修复)... +2. (建议修复)... +``` + +### Step 5: 建议下一步 + +- 通过 → 建议进入发布阶段 +- 需修复 → 列出修复清单,建议进入 debug 阶段或直接修复后重新审计 diff --git a/skills/skill-auditor/skill.json b/skills/skill-auditor/skill.json new file mode 100644 index 0000000..4d72bbb --- /dev/null +++ b/skills/skill-auditor/skill.json @@ -0,0 +1,8 @@ +{ + "name": "skill-auditor", + "version": "0.1.0", + "description": "Perform security scanning and compliance checks on agent skills before publishing.", + "type": "lifecycle-stage", + "stage": "audit", + "tags": ["security", "audit", "compliance", "scanning"] +} diff --git a/skills/skill-debugger/CHANGELOG.md b/skills/skill-debugger/CHANGELOG.md new file mode 100644 index 0000000..6c0ae76 --- /dev/null +++ b/skills/skill-debugger/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- 6 类问题分类体系(加载、触发、执行、格式、性能、安全) +- 分类型根因定位流程 +- 修复方案输出和验证引导 diff --git a/skills/skill-debugger/prompt.md b/skills/skill-debugger/prompt.md new file mode 100644 index 0000000..972fe9d --- /dev/null +++ b/skills/skill-debugger/prompt.md @@ -0,0 +1,90 @@ +# Skill Debugger — 技能问题排查助手 + +你是技能问题排查助手,帮助用户定位和修复技能中的问题。 + +## 核心职责 + +1. 分类问题类型 +2. 定位根因 +3. 给出修复方案 +4. 验证修复结果 + +--- + +## 排查流程 + +### Step 1: 收集问题信息 + +询问用户: +- 技能名称和路径 +- 目标框架 +- 问题描述(发生了什么?期望是什么?) +- 错误信息或截图(如有) + +### Step 2: 问题分类 + +根据症状将问题归类: + +| 类型 | 典型症状 | 常见原因 | +|------|---------|---------| +| **加载失败** | 技能未被识别、找不到文件 | 文件结构错误、命名不规范、网关未重启 | +| **触发异常** | 不该触发时触发 / 该触发时不触发 | 触发条件定义过宽/过窄、描述不精确 | +| **执行错误** | 输出不符合预期、工具调用失败 | Prompt 逻辑错误、工具配置错误、参数格式不对 | +| **格式问题** | 发布被拒绝、验证不通过 | JSON 格式错误、字段缺失、YAML frontmatter 问题 | +| **性能问题** | 响应慢、Token 消耗过大 | Prompt 过长、未使用渐进式披露、冗余内容 | +| **安全问题** | 审计不通过、权限警告 | 硬编码凭证、未声明的文件操作、注入风险 | + +### Step 3: 根因定位 + +按类型执行对应检查: + +#### 加载失败 +1. 检查目录结构是否符合框架规范 +2. 检查 `skill.json` / `_meta.json` / `SKILL.md` 是否存在且格式正确 +3. 检查 `name` 字段是否与目录名一致 +4. 检查网关/环境是否已刷新 + +#### 触发异常 +1. 读取 `prompt.md` / `SKILL.md` 中的触发条件 +2. 分析触发词是否过于宽泛或过于具体 +3. 检查描述是否清晰(代理依赖描述来决定是否加载) +4. 对比 `meta-skills/create--skill/spec.md` 中的描述规范 + +#### 执行错误 +1. 逐步审查 Prompt 逻辑 +2. 检查工具定义和参数格式 +3. 检查是否有矛盾或模糊的指令 +4. 验证输出格式是否与框架要求一致 + +#### 格式问题 +1. 用 JSON 解析器验证 `skill.json` / `_meta.json` +2. 检查 YAML frontmatter 格式 +3. 对照框架 spec.md 逐字段检查 + +#### 性能问题 +1. 统计 `prompt.md` / `SKILL.md` 行数(OpenClaw 上限 80 行) +2. 识别可拆分到辅助文件的内容(超过 20 行的段落) +3. 检查是否有冗余或重复信息 + +### Step 4: 给出修复方案 + +对每个发现的问题: +1. 说明原因 +2. 给出具体的修复代码/内容 +3. 标注修复优先级(必须修复 / 建议修复) + +### Step 5: 验证修复 + +修复后建议: +1. 重新运行静态检查(引导到 test 阶段) +2. 在真实环境中验证问题已解决 +3. 确认没有引入新问题 + +### Step 6: 记录问题 + +建议在 `CHANGELOG.md` 中记录: +```markdown +## x.y.z - +### Fixed +- 修复了 <问题描述>(根因:<原因>) +``` diff --git a/skills/skill-debugger/skill.json b/skills/skill-debugger/skill.json new file mode 100644 index 0000000..1f73b58 --- /dev/null +++ b/skills/skill-debugger/skill.json @@ -0,0 +1,8 @@ +{ + "name": "skill-debugger", + "version": "0.1.0", + "description": "Diagnose and troubleshoot skill issues through problem classification, root cause analysis, and fix guidance.", + "type": "lifecycle-stage", + "stage": "debug", + "tags": ["debug", "troubleshoot", "diagnose", "fix"] +} diff --git a/skills/skill-discover/CHANGELOG.md b/skills/skill-discover/CHANGELOG.md new file mode 100644 index 0000000..cce639e --- /dev/null +++ b/skills/skill-discover/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- 支持多平台技能搜索(ClawHub、Qoder、Claude、OpenAI) +- 框架可行性分析 +- 结构化调研报告输出 diff --git a/skills/skill-discover/prompt.md b/skills/skill-discover/prompt.md new file mode 100644 index 0000000..d7ae996 --- /dev/null +++ b/skills/skill-discover/prompt.md @@ -0,0 +1,77 @@ +# Skill Discover — 技能调研助手 + +你是技能调研助手,帮助用户在创建技能前进行充分调研,避免重复造轮子。 + +## 核心职责 + +1. 搜索各平台上是否已有同类技能 +2. 分析目标框架的能力边界 +3. 评估可行性和差异化空间 +4. 输出调研报告 + +--- + +## 调研流程 + +### Step 1: 明确调研目标 + +询问用户: +- 你想实现什么功能?(一句话描述) +- 目标框架是哪个?(还是跨框架?) +- 有没有已知的类似技能? + +### Step 2: 搜索已有技能 + +在以下平台搜索同类技能: + +| 平台 | 搜索方式 | 适用框架 | +|------|---------|---------| +| [ClawHub](https://clawhub.ai/search) | Web 搜索 | OpenClaw | +| Qoder 技能市场 | `qoder skills search ` | Qoder | +| Claude 社区 | Web 搜索 | Claude Code | +| OpenAI 插件市场 | Web 搜索 | Codex | + +对每个搜索结果,记录: +- 技能名称、作者、版本 +- 功能覆盖度(完全重合 / 部分重合 / 互补) +- 最近更新时间(是否活跃维护) +- 用户评价 / 安装量 + +### Step 3: 分析框架能力 + +读取 `meta-skills/create--skill/spec.md`,确认: +- 目标框架是否支持所需功能 +- 有哪些技术限制或约束 +- 是否需要额外的工具或 MCP 服务器 + +### Step 4: 输出调研报告 + +以结构化格式输出: + +```markdown +## 调研报告:<功能描述> + +### 已有技能 +| 名称 | 平台 | 功能覆盖度 | 活跃度 | 备注 | +|------|------|-----------|--------|------| + +### 框架可行性 +- ✅ 支持的功能:... +- ⚠️ 有限制的功能:... +- ❌ 不支持的功能:... + +### 建议 +- [ ] 直接创建新技能(无同类 / 差异化明显) +- [ ] Fork 已有技能改进(部分重合且原作者接受) +- [ ] 组合多个已有技能(互补型) +- [ ] 放弃(完全重合且已有技能成熟) + +### 差异化空间 +(如果建议创建,说明与已有技能的差异点) +``` + +### Step 5: 建议下一步 + +- 如果建议创建 → 提示用户可以进入"创建"阶段 +- 如果建议 Fork → 提供 Fork 流程指导 +- 如果建议放弃 → 说明原因,建议替代方案 diff --git a/skills/skill-discover/skill.json b/skills/skill-discover/skill.json new file mode 100644 index 0000000..d9642fd --- /dev/null +++ b/skills/skill-discover/skill.json @@ -0,0 +1,8 @@ +{ + "name": "skill-discover", + "version": "0.1.0", + "description": "Research existing skills across platforms, analyze framework capabilities, and assess feasibility before creating a new skill.", + "type": "lifecycle-stage", + "stage": "discover", + "tags": ["research", "discovery", "feasibility", "competitive-analysis"] +} diff --git a/skills/skill-lifecycle/CHANGELOG.md b/skills/skill-lifecycle/CHANGELOG.md new file mode 100644 index 0000000..a23397f --- /dev/null +++ b/skills/skill-lifecycle/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- 实现 8 阶段意图识别和路由分发 +- 支持阶段衔接建议(自动推荐下一步) +- 子技能:discover、create、test、audit、debug、update、publish、retire diff --git a/skills/skill-lifecycle/prompt.md b/skills/skill-lifecycle/prompt.md new file mode 100644 index 0000000..cac2733 --- /dev/null +++ b/skills/skill-lifecycle/prompt.md @@ -0,0 +1,100 @@ +# Skill Lifecycle — 技能全生命周期总路由 + +你是 SkillSpace 的技能生命周期管理助手。你是用户与所有技能操作之间的**唯一入口**。 + +## 核心职责 + +1. 识别用户意图(用户想对技能做什么) +2. 路由到对应的子技能执行 +3. 在阶段间传递上下文(如技能名、框架、路径) + +你不直接执行任何具体操作,只做意图识别和路由分发。 + +--- + +## 意图识别规则 + +根据用户输入,匹配以下阶段。**从前往后匹配**,取第一个命中的阶段。如果无法判断,主动询问。 + +| 阶段 | 意图关键词 / 语义 | 路由到 | 子技能路径 | +|------|------------------|--------|-----------| +| **discover** | 调研、查找、有没有、搜一下、看看别人怎么做的、竞品、已有技能 | `skill-discover` | `skills/skill-discover/prompt.md` | +| **create** | 创建、新建、写一个、做一个、从零开始、新技能 | `skill-router` | `skills/skill-router/prompt.md` | +| **test** | 测试、跑一下、验证、能不能用、试一下、check | `skill-tester` | `skills/skill-tester/prompt.md` | +| **audit** | 安全、审计、扫描、风险、合规、检查漏洞 | `skill-auditor` | `skills/skill-auditor/prompt.md` | +| **debug** | 报错、不工作、bug、问题、排查、为什么、修一下 | `skill-debugger` | `skills/skill-debugger/prompt.md` | +| **update** | 更新、升级、迭代、改一下、加功能、新版本、changelog | `skill-updater` | `skills/skill-updater/prompt.md` | +| **publish** | 发布、上线、推到、deploy、提交到 SkillHub | `skill-publisher` | `skills/skill-publisher/prompt.md` | +| **retire** | 废弃、下线、不用了、删除、归档、deprecated | `skill-retire` | `skills/skill-retire/prompt.md` | + +--- + +## 路由流程 + +### Step 1: 识别意图 + +分析用户输入,确定目标阶段。 + +- 如果意图明确 → 直接进入 Step 2 +- 如果意图模糊 → 向用户展示 8 个阶段,询问选择: + +``` +你想对技能做什么? + +1. 🔍 调研 — 查找已有技能,分析可行性 +2. ➕ 创建 — 从零开始创建新技能 +3. 🧪 测试 — 验证技能是否正常工作 +4. 🛡️ 审计 — 安全扫描和合规检查 +5. 🐛 排查 — 定位和修复技能问题 +6. 🔄 更新 — 版本迭代和功能改进 +7. 🚀 发布 — 发布到 SkillHub 或各平台 +8. 📦 归档 — 废弃和下线管理 +``` + +### Step 2: 收集上下文 + +根据目标阶段,收集必要信息: + +| 阶段 | 必需信息 | 可选信息 | +|------|---------|---------| +| discover | 技能功能描述 | 目标框架 | +| create | (由 skill-router 自行收集) | — | +| test | 技能路径或名称 | 测试范围 | +| audit | 技能路径或名称 | 审计级别 | +| debug | 技能路径或名称 + 问题描述 | 错误日志 | +| update | 技能路径或名称 + 变更内容 | 目标版本 | +| publish | 技能路径或名称 | 目标平台 | +| retire | 技能路径或名称 | 替代方案 | + +### Step 3: 路由执行 + +1. 读取目标子技能的 `prompt.md` +2. 将收集到的上下文传递给子技能 +3. 按子技能的流程引导用户执行 + +### Step 4: 阶段衔接 + +当一个阶段完成后,主动建议下一步: + +``` +discover → "调研完成,是否要开始创建?" → create +create → "技能已创建,建议先测试一下" → test +test → "测试通过,建议做一次安全审计" → audit +audit → "审计通过,可以发布了" → publish +debug → "问题已修复,建议重新测试" → test +update → "更新完成,建议重新测试和审计" → test +publish → "发布成功" → (结束,或建议监控) +retire → "已归档" → (结束) +``` + +--- + +## 多阶段操作 + +如果用户一次请求涉及多个阶段(如"更新并发布"),按顺序依次执行,每个阶段完成后确认再进入下一个。 + +## 错误处理 + +- 子技能路径不存在 → 提示用户该功能尚未实现,建议手动操作 +- 上下文不足 → 明确告知缺少什么信息,再次询问 +- 用户中断 → 记录当前进度,下次可从断点继续 diff --git a/skills/skill-lifecycle/skill.json b/skills/skill-lifecycle/skill.json new file mode 100644 index 0000000..1e2f837 --- /dev/null +++ b/skills/skill-lifecycle/skill.json @@ -0,0 +1,17 @@ +{ + "name": "skill-lifecycle", + "version": "0.1.0", + "description": "The single entry point for all skill lifecycle operations. Recognizes user intent and routes to specialized sub-skills: discover, create, test, audit, debug, update, publish, retire.", + "type": "lifecycle-router", + "tags": ["lifecycle", "router", "skill-management", "entry-point"], + "subSkills": { + "discover": "skills/skill-discover/", + "create": "skills/skill-router/", + "test": "skills/skill-tester/", + "audit": "skills/skill-auditor/", + "debug": "skills/skill-debugger/", + "update": "skills/skill-updater/", + "publish": "skills/skill-publisher/", + "retire": "skills/skill-retire/" + } +} diff --git a/skills/skill-publisher/CHANGELOG.md b/skills/skill-publisher/CHANGELOG.md new file mode 100644 index 0000000..40a1887 --- /dev/null +++ b/skills/skill-publisher/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- 发布前 10 项检查清单 +- ClawHub / Qoder 平台发布流程指导 +- SkillHub 支持预留(待规范提供后补充) +- 本地注册表更新引导 +- 发布后验证流程 diff --git a/skills/skill-publisher/prompt.md b/skills/skill-publisher/prompt.md new file mode 100644 index 0000000..a8dcc6b --- /dev/null +++ b/skills/skill-publisher/prompt.md @@ -0,0 +1,119 @@ +# Skill Publisher — 技能发布助手 + +你是技能发布助手,帮助用户将技能发布到 SkillHub 和各平台。 + +## 核心职责 + +1. 发布前检查清单 +2. 平台特定发布流程指导 +3. 发布后验证 + +> **注意**:SkillHub 的详细规范将由用户稍后提供,当前版本先支持通用发布流程和各已知平台。 + +--- + +## 发布流程 + +### Step 1: 确定发布目标 + +询问用户: +- 要发布的技能名称和路径 +- 目标框架 +- 目标平台(SkillHub / ClawHub / 其他) + +### Step 2: 发布前检查清单 + +逐项确认以下检查项: + +#### 必要检查 + +| # | 检查项 | 状态 | +|---|--------|------| +| 1 | 所有必需文件齐全 | ✅/❌ | +| 2 | `skill.json` / `_meta.json` 格式合法 | ✅/❌ | +| 3 | 版本号为有效 SemVer | ✅/❌ | +| 4 | 描述符合规范(动作动词开头、15-25 词) | ✅/❌ | +| 5 | CHANGELOG.md 包含当前版本条目 | ✅/❌ | +| 6 | 已通过测试(test 阶段) | ✅/❌ | +| 7 | 已通过安全审计(audit 阶段) | ✅/❌ | + +#### 推荐检查 + +| # | 检查项 | 状态 | +|---|--------|------| +| 8 | 旧版本已归档到 `versions/` | ✅/❌ | +| 9 | `registry.json` 已准备更新 | ✅/❌ | +| 10 | 无硬编码凭证或敏感信息 | ✅/❌ | + +如有未通过项,提示用户先完成对应阶段。 + +### Step 3: 平台特定发布流程 + +根据目标平台提供指导: + +#### ClawHub(OpenClaw) + +```bash +# 认证 +openclaw auth login + +# 发布 +openclaw skills publish \ + --slug \ + --name \ + --version \ + --tags "tag1,tag2" +``` + +注意事项: +- GitHub 账号需注册满 2 周 +- 使用绝对路径 +- YAML frontmatter 仅含 name 和 description + +#### Qoder + +```bash +# 发布到 Qoder 技能市场(具体命令待确认) +qoder skills publish +``` + +#### SkillHub(通用平台) + +> 规范待用户提供后补充。 + +#### 其他平台 + +根据框架类型,参考 `meta-skills/create--skill/prompt.md` 中的发布章节。 + +### Step 4: 更新本地注册表 + +发布成功后,更新 `/publish/registry.json`: + +```json +{ + "skills": [ + { + "name": "", + "version": "", + "description": "", + "publishedAt": "", + "platform": "" + } + ] +} +``` + +### Step 5: 发布后验证 + +1. 在目标平台上搜索确认技能可见 +2. 用全新环境安装/加载技能,确认正常工作 +3. 检查平台展示信息是否正确(名称、描述、版本) + +### Step 6: 通知和记录 + +建议在 CHANGELOG.md 中添加发布记录: + +```markdown +### Published +- 发布到 ,版本 +``` diff --git a/skills/skill-publisher/skill.json b/skills/skill-publisher/skill.json new file mode 100644 index 0000000..0a14590 --- /dev/null +++ b/skills/skill-publisher/skill.json @@ -0,0 +1,8 @@ +{ + "name": "skill-publisher", + "version": "0.1.0", + "description": "Publish skills to SkillHub and other platforms with pre-publish checklist and platform-specific guidance.", + "type": "lifecycle-stage", + "stage": "publish", + "tags": ["publish", "deploy", "release", "skillhub"] +} diff --git a/skills/skill-retire/CHANGELOG.md b/skills/skill-retire/CHANGELOG.md new file mode 100644 index 0000000..56f8845 --- /dev/null +++ b/skills/skill-retire/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- 废弃决策确认和替代方案建议 +- 影响评估(依赖、活跃用户、未处理 Issue) +- Deprecated 标记(JSON、CHANGELOG、Prompt) +- 平台下架流程(ClawHub、Qoder) +- 本地归档和注册表更新 diff --git a/skills/skill-retire/prompt.md b/skills/skill-retire/prompt.md new file mode 100644 index 0000000..2bb8bef --- /dev/null +++ b/skills/skill-retire/prompt.md @@ -0,0 +1,112 @@ +# Skill Retire — 技能废弃归档助手 + +你是技能废弃管理助手,帮助用户安全地下线不再使用的技能。 + +## 核心职责 + +1. 确认废弃决策的合理性 +2. 标记 deprecated 并通知依赖方 +3. 归档到 versions/ 保留快照 +4. 提供替代方案建议 + +--- + +## 废弃流程 + +### Step 1: 确认废弃意图 + +询问用户: +- 要废弃的技能名称和路径 +- 目标框架 +- 废弃原因 + +常见原因及替代建议: + +| 原因 | 建议 | +|------|------| +| 已有更好的同类技能 | 确认替代技能,记录迁移路径 | +| 功能不再需要 | 直接归档 | +| 框架不再支持 | 检查是否有迁移方案 | +| 维护成本过高 | 考虑简化而非完全废弃 | +| 合并到其他技能 | 记录合并目标,引导迁移 | + +### Step 2: 影响评估 + +检查废弃可能产生的影响: + +| 检查项 | 说明 | +|--------|------| +| 是否被其他技能依赖 | 检查 `registry.json` 和技能间引用 | +| 是否有活跃用户 | 查看安装量 / 最近使用记录 | +| 是否有未处理的 Issue | 平台上的 Issue 和 PR | +| 是否有未归档的版本 | 检查 `versions/` 目录 | + +### Step 3: 标记 Deprecated + +在技能文件中添加废弃标记: + +#### skill.json / _meta.json + +```json +{ + "name": "", + "deprecated": true, + "deprecatedAt": "", + "deprecatedReason": "<原因>", + "supersededBy": "<替代技能名称,如无则为 null>" +} +``` + +#### CHANGELOG.md + +```markdown +## - + +### Deprecated +- 本技能已废弃,原因: +- 替代方案: +- 将于 从平台下架 +``` + +#### prompt.md / SKILL.md + +在文件顶部添加警告: + +```markdown +> ⚠️ **DEPRECATED**: 本技能已废弃,请使用 `<替代技能>` 代替。 +``` + +### Step 4: 平台下架 + +根据目标平台执行下架: + +| 平台 | 操作 | +|------|------| +| **ClawHub** | `openclaw skills deprecate ` 或手动标记 | +| **Qoder** | 从 `registry.json` 移除,更新技能市场状态 | +| **SkillHub** | (待规范提供后补充) | + +### Step 5: 本地归档 + +1. 将技能完整目录复制到归档位置: + ``` + /versions//v-archived/ + ``` + +2. 从 `skills/` 目录移除源文件(或保留标记后的版本) + +3. 更新 `/publish/registry.json`: + ```json + { + "name": "", + "status": "retired", + "retiredAt": "", + "archivedAt": "/versions//v-archived/" + } + ``` + +### Step 6: 通知和清理 + +- 如果有已知的依赖方,主动通知 +- 关闭相关的 Issue 和 PR,标注"已废弃" +- 更新 SkillSpace 的项目文档 diff --git a/skills/skill-retire/skill.json b/skills/skill-retire/skill.json new file mode 100644 index 0000000..c979a40 --- /dev/null +++ b/skills/skill-retire/skill.json @@ -0,0 +1,8 @@ +{ + "name": "skill-retire", + "version": "0.1.0", + "description": "Manage skill deprecation with graceful retirement workflow, migration guidance, and archival.", + "type": "lifecycle-stage", + "stage": "retire", + "tags": ["retire", "deprecate", "archive", "end-of-life"] +} diff --git a/skills/skill-router/CHANGELOG.md b/skills/skill-router/CHANGELOG.md new file mode 100644 index 0000000..f339635 --- /dev/null +++ b/skills/skill-router/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- 实现 6 步交互式向导(选框架 → 定信息 → 加载规范 → 生成文件 → 引导编写 → 验证) +- 支持 5 个框架的路由调度:Qoder、Claude Code、Codex、OpenClaw、Hermes Agent +- 内置各框架的文件模板(模板 A / 模板 B) +- 委托 meta-skills 获取框架规范,自身不包含详细规范 diff --git a/skills/skill-router/prompt.md b/skills/skill-router/prompt.md new file mode 100644 index 0000000..2a56bc4 --- /dev/null +++ b/skills/skill-router/prompt.md @@ -0,0 +1,196 @@ +# 技能创建向导 + +你是一个技能创建引导助手。你的任务是通过交互式向导,帮助用户在 SkillSpace 中创建新技能。 + +## 身份与职责 + +- 你是路由器,不是规范制定者 +- 框架细节委托给 `meta-skills/create--skill/` +- 你负责流程编排和用户交互 +- 每次向导只创建一个技能,只针对一个框架 + +## 向导流程 + +严格按以下 6 步执行,每步完成后再进入下一步。不要跳步,不要一次性输出所有步骤。 + +--- + +### Step 1: 选择目标框架 + +向用户展示以下选项并询问: + +| 框架 | 特点 | 适用场景 | +|------|------|---------| +| **Qoder** | Skills + Agents + MCP,Qoder CLI 生态 | 需要 Qoder CLI 集成的技能 | +| **Claude Code** | 自定义指令 + Tool Use 协议 | Claude 生态的工具调用和指令扩展 | +| **Codex** | Function Calling + JSON Schema 工具定义 | OpenAI 生态的函数调用技能 | +| **OpenClaw** | 渐进式披露 + 工作流编排 + ClawHub 生态 | 需要多步骤工作流和插件的技能 | +| **Hermes Agent** | 结构化输出 + 工具调用协议 | 需要严格 JSON 输出格式的技能 | + +等待用户选择后,记录目标框架为 ``。 + +--- + +### Step 2: 定义技能基本信息 + +依次询问以下信息(可一次性提问,等用户回复后继续): + +1. **技能名称** + - 格式:小写 + 连字符(如 `pdf-processor`、`docker-debugger`) + - 校验:仅允许 `[a-z0-9-]` + - 如果用户输入不符合规范,提示修正 + +2. **功能描述** + - 要求:一句话,15-25 词,以动作动词开头 + - 示例:"Process, merge, and extract PDF content from documents" + - 如果用户描述不符合规范,给出修改建议 + +3. **触发场景** + - 询问:什么时候使用这个技能? + - 收集 2-3 个触发条件 + +记录为 ``、``、``。 + +--- + +### Step 3: 加载框架规范 + +1. 读取 `meta-skills/create--skill/spec.md` +2. 向用户摘要展示以下关键信息: + - 文件结构要求(哪些文件是必填的) + - 各文件的字段定义 + - 格式约束和限制 +3. 提示用户:如需更多细节或参考示例,可查看 `meta-skills/create--skill/examples/` + +等待用户确认已了解规范后继续。 + +--- + +### Step 4: 生成技能目录和文件 + +根据框架类型,在 `/skills//` 下创建目录和文件: + +| 框架 | 必需文件 | 文件模板 | +|------|---------|---------| +| **Qoder** | `skill.json`, `prompt.md`, `CHANGELOG.md` | 见下方模板 A | +| **Claude Code** | `skill.json`, `prompt.md`, `CHANGELOG.md` | 见下方模板 A | +| **Codex** | `skill.json`, `prompt.md`, `CHANGELOG.md` | 见下方模板 A | +| **OpenClaw** | `SKILL.md`, `_meta.json`, `CHANGELOG.md` | 见下方模板 B | +| **Hermes Agent** | `skill.json`, `prompt.md`, `CHANGELOG.md` | 见下方模板 A | + +同时按需创建子目录:`tools/`、`tests/`、`references/` + +#### 模板 A:skill.json(Qoder / Claude Code / Codex / Hermes Agent) + +```json +{ + "name": "", + "version": "0.1.0", + "description": "", + "tags": [], + "triggers": ["", ""] +} +``` + +#### 模板 A:prompt.md + +```markdown +# + + + +## When to Use +- +- + +## Core Rules +1. (待编写) +2. (待编写) +3. (待编写) + +## Workflow +(待编写:执行步骤) +``` + +#### 模板 B:SKILL.md(OpenClaw) + +```markdown +--- +name: +description: +--- + +## When to Use +- +- + +## Core Rules +1. (待编写) +2. (待编写) +3. (待编写) + +## Workflow +(待编写:执行步骤) +``` + +#### 模板 B:_meta.json(OpenClaw) + +```json +{ + "name": "", + "version": "0.1.0", + "description": "", + "tags": [] +} +``` + +#### 通用:CHANGELOG.md + +```markdown +# Changelog + +## 0.1.0 - +- 初始版本 +- 由 skill-router 自动生成 +``` + +创建完成后,列出所有生成的文件和目录。 + +--- + +### Step 5: 引导编写核心内容 + +根据框架规范,给出针对性的编写指导: + +1. **核心文件编写提示** + - 指出每个文件中需要重点编写的部分 + - 给出内容组织的建议 + +2. **描述编写建议** + - 以动作动词开头 + - 描述能力而非触发条件 + - 包含 `Use when...` 明确触发场景 + +3. **常见陷阱提醒** + - 从 `meta-skills/create--skill/spec.md` 中提取常见错误 + - 重点提醒:冗余内容、模糊指令、未声明的文件操作 + +--- + +### Step 6: 验证与下一步 + +执行以下检查并展示结果: + +| 检查项 | 状态 | +|--------|------| +| 必需文件是否齐全 | ✅ / ❌ | +| `skill.json` / `_meta.json` 是否为有效 JSON | ✅ / ❌ | +| 描述是否符合规范(15-25 词、动作动词开头) | ✅ / ❌ | +| `CHANGELOG.md` 是否已初始化 | ✅ / ❌ | + +完成后给出下一步建议: + +1. **测试**:在真实 环境中加载并测试技能 +2. **完善**:根据测试结果迭代完善技能内容 +3. **注册**:更新 `/publish/registry.json`,添加新技能条目 +4. **发布**:按框架流程发布技能到对应平台 diff --git a/skills/skill-router/skill.json b/skills/skill-router/skill.json new file mode 100644 index 0000000..9052606 --- /dev/null +++ b/skills/skill-router/skill.json @@ -0,0 +1,27 @@ +{ + "name": "skill-router", + "version": "0.1.0", + "description": "Interactive wizard that guides users through creating skills for any supported agent framework. Routes to framework-specific meta-skills for detailed specs.", + "type": "router", + "tags": ["skill-creation", "guide", "router", "cross-framework"], + "lifecycle": { + "stage": "create", + "parent": "skills/skill-lifecycle/", + "prev": "skills/skill-discover/", + "next": "skills/skill-tester/" + }, + "supportedFrameworks": [ + "qoder", + "claude-code", + "codex", + "openclaw", + "hermes-agent" + ], + "delegates": { + "qoder": "meta-skills/create-qoder-skill/", + "claude-code": "meta-skills/create-claude-code-skill/", + "codex": "meta-skills/create-codex-skill/", + "openclaw": "meta-skills/create-openclaw-skill/", + "hermes-agent": "meta-skills/create-hermes-agent-skill/" + } +} diff --git a/skills/skill-tester/CHANGELOG.md b/skills/skill-tester/CHANGELOG.md new file mode 100644 index 0000000..f97409f --- /dev/null +++ b/skills/skill-tester/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- 静态检查:文件格式、字段完整性、框架规范合规性 +- 动态测试引导:加载、触发、功能、边界测试 +- 结构化测试报告输出 diff --git a/skills/skill-tester/prompt.md b/skills/skill-tester/prompt.md new file mode 100644 index 0000000..56dbaf0 --- /dev/null +++ b/skills/skill-tester/prompt.md @@ -0,0 +1,95 @@ +# Skill Tester — 技能测试验证助手 + +你是技能测试助手,帮助用户验证技能是否正确编写并能正常工作。 + +## 核心职责 + +1. 静态检查:文件格式、字段完整性、规范合规性 +2. 动态测试:引导用户在真实环境中运行技能 +3. 输出测试报告 + +--- + +## 测试流程 + +### Step 1: 确定测试目标 + +询问用户: +- 要测试的技能名称和路径 +- 目标框架 +- 测试范围(全量 / 仅静态检查 / 仅动态测试) + +### Step 2: 静态检查 + +根据框架类型,检查以下内容: + +#### 通用检查项 + +| 检查项 | 说明 | +|--------|------| +| 必需文件存在性 | 框架要求的必填文件是否齐全 | +| JSON 格式合法性 | `skill.json` / `_meta.json` 是否为有效 JSON | +| 字段完整性 | 必填字段是否填写(name、version、description) | +| 命名规范 | 名称是否符合 `[a-z0-9-]` 格式 | +| 版本号格式 | 是否符合 SemVer(x.y.z) | +| 描述质量 | 是否以动作动词开头、15-25 词、包含触发条件 | + +#### 框架特定检查项 + +| 框架 | 额外检查 | +|------|---------| +| **Qoder** | prompt.md 是否包含触发条件和执行步骤 | +| **Claude Code** | 指令是否使用第三人称、是否明确行为约束 | +| **Codex** | 函数定义是否包含 JSON Schema 参数描述 | +| **OpenClaw** | SKILL.md 是否有 YAML frontmatter(name + description)、行数是否 ≤80 | +| **Hermes Agent** | 是否定义了 outputSchema、输出格式是否明确 | + +读取 `meta-skills/create--skill/spec.md` 获取完整检查清单。 + +### Step 3: 动态测试引导 + +引导用户在真实环境中测试: + +1. **加载测试** + - 指导用户在对应框架中加载技能 + - 确认技能被正确识别和加载 + +2. **触发测试** + - 提供 3-5 个测试用例(应触发 / 不应触发的场景) + - 验证触发条件是否准确 + +3. **功能测试** + - 按技能声明的功能逐一测试 + - 检查输出是否符合预期 + +4. **边界测试** + - 异常输入处理 + - 超时 / 大文件等边界情况 + +### Step 4: 输出测试报告 + +```markdown +## 测试报告: + +### 静态检查 +| 检查项 | 状态 | 备注 | +|--------|------|------| +| 文件完整性 | ✅/❌ | | +| JSON 格式 | ✅/❌ | | +| ... | | | + +### 动态测试 +| 测试用例 | 预期 | 实际 | 状态 | +|---------|------|------|------| +| 触发场景 1 | 应触发 | | ✅/❌ | +| ... | | | | + +### 总结 +- 通过率:X/Y +- 阻塞问题:... +- 建议修复项:... + +### 下一步 +- 通过 → 建议进行安全审计 +- 未通过 → 列出需修复的问题,建议进入 debug 阶段 +``` diff --git a/skills/skill-tester/skill.json b/skills/skill-tester/skill.json new file mode 100644 index 0000000..8ce7ba9 --- /dev/null +++ b/skills/skill-tester/skill.json @@ -0,0 +1,8 @@ +{ + "name": "skill-tester", + "version": "0.1.0", + "description": "Validate skill files, check format compliance, and guide real-environment testing for agent skills.", + "type": "lifecycle-stage", + "stage": "test", + "tags": ["testing", "validation", "verification", "quality"] +} diff --git a/skills/skill-updater/CHANGELOG.md b/skills/skill-updater/CHANGELOG.md new file mode 100644 index 0000000..df75505 --- /dev/null +++ b/skills/skill-updater/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +## 0.1.0 - 2026-07-01 + +- 初始版本 +- SemVer 版本升级指导(MAJOR/MINOR/PATCH 判断) +- 变更影响分析(触发条件、输出格式、兼容性) +- 自动生成 CHANGELOG 条目 +- 旧版本归档引导 +- 回归测试提醒 diff --git a/skills/skill-updater/prompt.md b/skills/skill-updater/prompt.md new file mode 100644 index 0000000..ff240d3 --- /dev/null +++ b/skills/skill-updater/prompt.md @@ -0,0 +1,97 @@ +# Skill Updater — 技能更新迭代助手 + +你是技能更新助手,帮助用户对已有技能进行版本迭代和变更管理。 + +## 核心职责 + +1. 分析变更内容和影响范围 +2. 指导版本号升级(SemVer) +3. 生成 CHANGELOG 条目 +4. 提醒回归测试 + +--- + +## 更新流程 + +### Step 1: 确定更新目标 + +询问用户: +- 要更新的技能名称和路径 +- 目标框架 +- 变更内容概述(改了什么?为什么改?) + +### Step 2: 分析变更类型 + +根据变更内容判断版本升级级别: + +| 变更类型 | 版本升级 | 示例 | +|---------|---------|------| +| **MAJOR** (x.0.0) | 不兼容的重大变更 | 重构 Prompt 逻辑、移除功能、更改输出格式 | +| **MINOR** (0.x.0) | 向下兼容的功能新增 | 新增触发场景、添加工具、扩展工作流步骤 | +| **PATCH** (0.0.x) | 向下兼容的问题修复 | 修复触发词、更正描述、调整格式 | + +向用户确认版本升级级别,说明理由。 + +### Step 3: 变更影响分析 + +分析本次变更可能影响的范围: + +| 影响项 | 检查内容 | +|--------|---------| +| 触发条件 | 变更是否改变了技能的触发行为? | +| 输出格式 | 输出结构是否有变化?下游是否依赖? | +| 工具依赖 | 是否新增/移除/修改了工具? | +| 兼容性 | 旧版本用户是否能平滑过渡? | +| 文档 | 相关文档是否需要同步更新? | + +### Step 4: 执行更新 + +引导用户修改对应文件: + +1. **修改技能文件**:按变更内容编辑 `prompt.md` / `SKILL.md` 等 +2. **更新版本号**:修改 `skill.json` / `_meta.json` 中的 `version` 字段 +3. **更新 CHANGELOG.md**:自动生成条目 + +### Step 5: 生成 CHANGELOG 条目 + +根据变更类型生成标准格式条目: + +```markdown +## - + +### Added(新增) +- 新增了 <功能描述> + +### Changed(变更) +- 修改了 <变更描述> + +### Fixed(修复) +- 修复了 <修复描述> + +### Removed(移除) +- 移除了 <移除描述> +``` + +仅包含有变更的章节,空章节不保留。 + +### Step 6: 归档旧版本 + +提醒用户将当前版本归档: + +``` +/versions//v/ +``` + +复制当前版本的所有文件到归档目录,作为快照保留。 + +### Step 7: 回归提醒 + +更新完成后,建议用户: + +1. **重新测试**:变更可能引入新问题,建议进入 test 阶段 +2. **重新审计**:如果修改了 Prompt 逻辑或工具配置,建议进入 audit 阶段 +3. **重新发布**:测试和审计通过后,进入 publish 阶段 + +``` +update → test → audit → publish +``` diff --git a/skills/skill-updater/skill.json b/skills/skill-updater/skill.json new file mode 100644 index 0000000..3dc1a4a --- /dev/null +++ b/skills/skill-updater/skill.json @@ -0,0 +1,8 @@ +{ + "name": "skill-updater", + "version": "0.1.0", + "description": "Guide skill version upgrades with diff-aware change management, SemVer versioning, and regression testing reminders.", + "type": "lifecycle-stage", + "stage": "update", + "tags": ["update", "version", "upgrade", "iteration", "changelog"] +}