ClawHub Skill Creator
Este skill proporciona instrucciones completas para crear y publicar skills en ClawHub con el formato correcto desde el primer intento.
🎯 Cuándo Usar Este Skill
Usa este skill cuando el usuario quiera:
- - Crear un skill nuevo para ClawHub
- Publicar un skill existente en ClawHub
- Corregir el formato de un skill mal estructurado
- Aprender la estructura correcta de un skill
- Entender el proceso de publicación paso a paso
📁 Estructura de Archivos Requerida
Un skill de ClawHub debe tener esta estructura mínima:
CODEBLOCK0
Archivos opcionales:
nombre-del-skill/
├── README.md # Documentación adicional
├── scripts/ # Scripts ejecutables
├── references/ # Referencias y ejemplos
└── assets/ # Recursos adicionales
📝 Formato Correcto de SKILL.md
YAML Frontmatter (OBLIGATORIO)
El archivo SKILL.md DEBE comenzar con YAML frontmatter en este formato exacto:
CODEBLOCK2
Campos requeridos:
- -
name: Nombre del skill (kebab-case, sin espacios, minúsculas) - INLINECODE2 : Descripción breve (aparece en ClawHub search)
Ejemplo real:
CODEBLOCK3
Contenido del SKILL.md
Después del frontmatter, incluye:
CODEBLOCK4 bash
npx clawhub install nombre-del-skill
## Notas Adicionales
Información extra, advertencias, o referencias.
📋 Formato de _meta.json
El archivo _meta.json debe tener esta estructura:
CODEBLOCK6
Campos requeridos:
- -
name: Mismo nombre que en el YAML frontmatter - INLINECODE5 : Misma descripción que en el YAML frontmatter
- INLINECODE6 : Versión semántica (recomendado: "1.0.0" para inicio)
- INLINECODE7 : Array de tags para búsqueda (mínimo 1, máximo 5)
Ejemplo real:
{
"name": "lossless-claw-skill",
"description": "Wrapper seguro para el plugin lossless-claw (LCM). Proporciona interfaz para lcm_grep, lcm_describe, lcm_expand_query.",
"version": "1.0.0",
"tags": ["latest", "lcm", "memory", "context"]
}
🚀 Proceso de Publicación Paso a Paso
Paso 1: Preparar el Skill
CODEBLOCK8
Paso 2: Verificar Formato
Antes de publicar, verifica:
- - [ ]
SKILL.md tiene YAML frontmatter (--- al inicio y fin) - [ ]
name en YAML coincide con name en INLINECODE12 - [ ]
description en YAML coincide con description en INLINECODE15 - [ ] El nombre usa kebab-case (guiones, sin espacios)
- [ ]
_meta.json es JSON válido (puedes validar en jsonlint.com)
Paso 3: Autenticar CLI de ClawHub
CODEBLOCK9
Nota: Debes tener una cuenta de GitHub con más de 14 días de antigüedad.
Paso 4: Publicar el Skill
CODEBLOCK10
Ejemplo real:
CODEBLOCK11
Paso 5: Verificar Publicación
Después de publicar, verás un mensaje como:
CODEBLOCK12
URL del skill:
https://clawhub.ai/{ID}/{slug}
Ejemplo: https://clawhub.ai/k97b6tvrydfc8ez4z02h8aamc9840cg2/lossless-claw-skill
⚠️ Errores Comunes y Soluciones
Error 1: "Path must be a folder"
Causa: La ruta no es absoluta o la carpeta no existe.
Solución:
CODEBLOCK14
Error 2: "Not logged in. Run: clawhub login"
Causa: La CLI no está autenticada.
Solución:
CODEBLOCK15
Error 3: "GitHub API rate limit exceeded"
Causa: Límite temporal de API de GitHub.
Solución: Esperar 30-60 segundos y reintentar.
Error 4: "GitHub account must be at least 14 days old"
Causa: La cuenta de GitHub fue creada recientemente.
Solución: Usar una cuenta de GitHub con más de 14 días de antigüedad.
Error 5: Skill no aparece en ClawHub panel después de instalar
Causa: Formato incorrecto de YAML frontmatter.
Solución: Verificar que el frontmatter sea exactamente:
CODEBLOCK16
NO usar este formato incorrecto:
# ❌ INCORRECTO - Muy complejo
name: skill-name
description: ...
author: ...
version: ...
📚 Ejemplos de Skills Reales
Ejemplo 1: Skill Simple (Wrapper)
SKILL.md:
CODEBLOCK18
_meta.json:
CODEBLOCK19
Ejemplo 2: Skill con Scripts
SKILL.md:
---
name: weather-skill
description: Obtén el clima actual y pronósticos vía wttr.in o Open-Meteo.
---
# Weather Skill
Obtén información meteorológica para cualquier ubicación.
## Cuándo Usar
- Cuando el usuario pregunta sobre el clima
- Para pronósticos de 1-7 días
- Para temperaturas actuales
## Comandos
bash
curl wttr.in/Ciudad
CODEBLOCK21
_meta.json:
{
"name": "weather-skill",
"description": "Obtén el clima actual y pronósticos vía wttr.in o Open-Meteo.",
"version": "1.0.0",
"tags": ["weather", "forecast", "utility"]
}
🎓 Checklist de Publicación
Antes de publicar, verifica:
- - [ ] Estructura de archivos
- [ ]
SKILL.md existe
- [ ]
_meta.json existe
- [ ] Ambos están en la misma carpeta
- [ ] Comienza con
---
- [ ] Tiene campo
name
- [ ] Tiene campo
description
- [ ] Termina con
---
- [ ] No hay otros campos innecesarios
- [ ] Es JSON válido
- [ ] Tiene campo
name (mismo que YAML)
- [ ] Tiene campo
description (mismo que YAML)
- [ ] Tiene campo
version
- [ ] Tiene campo
tags (array)
- [ ]
npx clawhub login ejecutado
- [ ] URL de auth navegada en browser
- [ ] Mensaje "OK. Logged in as @usuario" apareció
- [ ] Cuenta tiene más de 14 días de antigüedad
- [ ] No hay rate limit activo (esperar 60s si hay error)
🔗 Recursos Adicionales
- - ClawHub: https://clawhub.ai
- Documentación OpenClaw: https://docs.openclaw.ai
- Skills existentes: https://clawhub.ai/skills
- GitHub: https://github.com/openclaw/openclaw
💡 Consejos Profesionales
- 1. Mantén el frontmatter simple - Solo
name y description son requeridos - Usa kebab-case -
nombre-del-skill, no NombreDelSkill ni INLINECODE32 - Descripciones claras - Máximo 160 caracteres, explica qué hace el skill
- Tags relevantes - Usa 3-5 tags que describan la funcionalidad
- Versiona correctamente - Empieza en 1.0.0, usa semver para updates
- Prueba localmente - Verifica que el skill funcione antes de publicar
- Documenta bien - Un SKILL.md claro ayuda a otros a usar tu skill
Creado con ❤️ para la comunidad OpenClaw
ClawHub Skill Creator
此技能提供完整说明,用于以正确格式一次性创建并发布ClawHub技能。
🎯 何时使用此技能
当用户想要以下操作时,请使用此技能:
- - 为ClawHub创建新技能
- 在ClawHub上发布现有技能
- 修正格式错误的技能
- 学习正确的技能结构
- 了解分步发布流程
📁 所需文件结构
一个ClawHub技能必须包含以下最小结构:
nombre-del-skill/
├── SKILL.md # 必需 - 技能文档
└── _meta.json # 必需 - 技能元数据
可选文件:
nombre-del-skill/
├── README.md # 附加文档
├── scripts/ # 可执行脚本
├── references/ # 参考和示例
└── assets/ # 附加资源
📝 SKILL.md的正确格式
YAML前置元数据(必需)
SKILL.md文件必须以此精确格式的YAML前置元数据开头:
yaml
name: nombre-del-skill
description: 清晰简洁的技能描述(最多160个字符)
必填字段:
- - name:技能名称(kebab-case,无空格,小写)
- description:简短描述(显示在ClawHub搜索中)
实际示例:
yaml
name: lossless-claw-skill
description: lossless-claw(LCM)插件的安全包装器。提供lcm
grep、lcmdescribe、lcm
expandquery接口。
SKILL.md内容
在前置元数据之后,包含:
markdown
技能名称
技能用途的扩展描述。
描述
详细说明技能的功能及其有用性。
何时使用此技能
具体用例列表:
使用方法
分步说明或命令示例。
示例
bash
npx clawhub install nombre-del-skill
附加说明
额外信息、警告或参考。
📋 _meta.json格式
_meta.json文件必须具有以下结构:
json
{
name: nombre-del-skill,
description: 清晰简洁的技能描述,
version: 1.0.0,
tags: [类别, 实用工具, 功能]
}
必填字段:
- - name:与YAML前置元数据中的名称相同
- description:与YAML前置元数据中的描述相同
- version:语义化版本(建议:首次使用1.0.0)
- tags:用于搜索的标签数组(最少1个,最多5个)
实际示例:
json
{
name: lossless-claw-skill,
description: lossless-claw(LCM)插件的安全包装器。提供lcmgrep、lcmdescribe、lcmexpandquery接口。,
version: 1.0.0,
tags: [latest, lcm, memory, context]
}
🚀 分步发布流程
步骤1:准备技能
bash
1. 创建目录
mkdir -p /path/to/skills/nombre-del-skill
2. 创建带有正确YAML前置元数据的SKILL.md
3. 创建结构有效的_meta.json
步骤2:验证格式
发布前,请验证:
- - [ ] SKILL.md包含YAML前置元数据(以---开头和结尾)
- [ ] YAML中的name与meta.json中的name一致
- [ ] YAML中的description与meta.json中的description一致
- [ ] 名称使用kebab-case(连字符,无空格)
- [ ] _meta.json是有效的JSON(可在jsonlint.com验证)
步骤3:认证ClawHub CLI
bash
执行登录命令
npx clawhub login
浏览器中将打开一个URL:
https://clawhub.ai/cli/auth?redirect_uri=...
在浏览器中导航到该URL
CLI进程将自动等待回调
注意: 您必须拥有一个注册超过14天的GitHub账户。
步骤4:发布技能
bash
npx clawhub publish /完整路径/到/技能 \
--slug nombre-del-skill \
--name 技能显示名称 \
--version 1.0.0 \
--tags tag1,tag2,tag3
实际示例:
bash
npx clawhub publish /mnt/data/openclaw/workspace/.openclaw/workspace/skills/lossless-claw-skill \
--slug lossless-claw-skill \
--name Lossless Claw Skill \
--version 1.0.0 \
--tags latest,lcm,memory,context
步骤5:验证发布
发布后,您将看到类似以下消息:
✔ OK. Published nombre-del-skill@1.0.0 (k97b6tvrydfc8ez4z02h8aamc9840cg2)
技能URL:
https://clawhub.ai/{ID}/{slug}
示例:https://clawhub.ai/k97b6tvrydfc8ez4z02h8aamc9840cg2/lossless-claw-skill
⚠️ 常见错误及解决方案
错误1:Path must be a folder
原因: 路径不是绝对路径或文件夹不存在。
解决方案:
bash
使用完整绝对路径
npx clawhub publish /mnt/data/openclaw/workspace/.openclaw/workspace/skills/nombre-del-skill
错误2:Not logged in. Run: clawhub login
原因: CLI未认证。
解决方案:
bash
npx clawhub login
导航到输出中显示的URL
错误3:GitHub API rate limit exceeded
原因: GitHub API临时限制。
解决方案: 等待30-60秒后重试。
错误4:GitHub account must be at least 14 days old
原因: GitHub账户创建时间过短。
解决方案: 使用注册超过14天的GitHub账户。
错误5:安装后技能未出现在ClawHub面板中
原因: YAML前置元数据格式错误。
解决方案: 验证前置元数据是否完全正确:
yaml
name: nombre-del-skill
description: 技能描述
不要使用此错误格式:
yaml
❌ 错误 - 过于复杂
name: skill-name
description: ...
author: ...
version: ...
📚 实际技能示例
示例1:简单技能(包装器)
SKILL.md:
yaml
name: lossless-claw-skill
description: lossless-claw(LCM)插件的安全包装器。
Lossless Claw Skill
OpenClaw的lossless-claw插件包装器技能。
描述
为LCM工具提供安全接口。
何时使用
- - 当您需要搜索对话历史时
- 当您需要展开压缩摘要时
- 用于复杂内存查询
_meta.json:
json
{
name: lossless-claw-skill,
description: lossless-claw(LCM)插件的安全包装器。,
version: 1.0.0,
tags: [latest, lcm, memory]
}
示例2:带脚本的技能
SKILL.md:
yaml
name: weather-skill
description: 通过wttr.in或Open-Meteo获取当前天气和预报。
Weather Skill
获取任何位置的天气信息。
何时使用
命令
bash
curl wttr.in/城市
_meta.json:
json
{
name: weather-skill,
description: 通过wttr.in或Open-Meteo获取当前天气和预报。,
version: 1.0.0,
tags: [weather, forecast, utility]
}
🎓 发布检查清单
发布前,请验证:
- [ ] SKILL.md存在
- [ ] _meta.json存在
- [ ] 两者位于同一文件夹中
- [ ] 以