OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  skill-publisher-claw-skill: 准备并发布公开版 Claw 技能

skill-publisher-claw-skill: 准备并发布公开版 Claw 技能

 
  cache ·  2026-01-31 16:01:28 · 3 次点击  · 0 条评论  

name: skill-publisher-claw-skill
description: 为公开发布准备 Claw 技能。适用于将技能发布到 GitHub 或 ClawdHub 时——涵盖安全审计、可移植性、文档和 Git 规范。触发词:发布技能、发布技能、审计技能、技能清单、准备技能发布。


技能发布者

为公开发布准备技能。在发布任何技能前,请运行此清单,以确保其可重用、整洁、安全且文档完善。

何时使用

  • 将技能推送到公共仓库之前
  • 提交到 ClawdHub 之前
  • 审核他人技能时
  • 定期审计已发布的现有技能

快速清单

按顺序检查以下各项。每个部分下方有详细指南。

[ ] 1. 结构        - 必需文件存在,组织逻辑清晰
[ ] 2. 安全性      - 无密钥、密码、PII 或敏感数据
[ ] 3. 可移植性    - 无硬编码路径,可在任何机器上运行
[ ] 4. 代码质量    - 代码整洁,无调试残留
[ ] 5. 文档        - README、SKILL.md、示例完整
[ ] 6. 测试        - 已验证实际可用
[ ] 7. Git         - 历史记录干净,.gitignore 配置正确,提交信息良好
[ ] 8. 元数据      - 许可证、描述、关键词

1. 结构验证

必需文件

技能名称/
├── SKILL.md          # 必需 - 入口点,使用时机,快速参考
├── README.md         # 必需 - 面向 GitHub/人类用户
└── [内容文件]        # 实际的技能内容

SKILL.md 格式

必须包含:
- 头部:名称和一行描述
- 何时使用:加载此技能的明确触发条件
- 快速参考:最重要的信息,一目了然
- 详细章节:根据需要添加

# 技能名称

一行描述此技能的功能。

## 何时使用
- 触发条件 1
- 触发条件 2

## 快速参考
[此处放置最重要的信息]

## [其他章节]
[详细内容]

文件组织

  • 按逻辑分组相关内容
  • 使用清晰、描述性的文件名
  • 保持文件专注(单一职责)
  • 考虑加载顺序(先读取什么?)

反面模式

❌ 将所有内容塞进单个大文件
❌ 含义模糊的文件名 (data1.md, stuff.md)
❌ 文件间存在循环依赖
❌ 缺少 SKILL.md 入口点


2. 安全审计

密钥扫描

搜索并移除

# 在技能目录中运行
grep -rniE "(api[_-]?key|secret|password|token|bearer|auth)" . --include="*.md"
grep -rniE "([a-zA-Z0-9]{32,})" . --include="*.md"  # 可能是密钥的长字符串
grep -rniE "(sk-|pk-|xai-|ghp_|gho_)" . --include="*.md"  # 常见密钥前缀

个人数据扫描

搜索并移除

grep -rniE "(@gmail|@yahoo|@hotmail|@proton)" . --include="*.md"
grep -rniE "\+?[0-9]{10,}" . --include="*.md"  # 电话号码
grep -rniE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" . --include="*.md"  # IP 地址

敏感内容检查

  • [ ] 无内部公司信息
  • [ ] 无私有 URL 或端点
  • [ ] 无员工姓名(除非是公众人物)
  • [ ] 无财务数据
  • [ ] 无任何形式的凭证
  • [ ] 无会话令牌或 Cookie

示例数据

如果示例需要真实数据,请使用:
- user@example.com 作为邮箱
- 192.0.2.x 作为 IP 地址(RFC 5737 文档范围)
- example.com 作为域名
- 明确的虚构名称("Alice"、"Bob"、"Acme Corp")


3. 可移植性检查

路径硬编码

搜索并修复:

grep -rniE "(\/home\/|\/Users\/|C:\\\\|~\/)" . --include="*.md"
grep -rniE "\/[a-z]+\/[a-z]+\/" . --include="*.md"  # 绝对路径

替换为:
- 相对路径 (./config.yaml)
- 环境变量 ($HOME, $XDG_CONFIG_HOME)
- 平台无关的描述

环境假设

  • [ ] 无硬编码用户名
  • [ ] 无机器特定路径
  • [ ] 无假设已安装的软件(或记录要求)
  • [ ] 无假设的环境变量(或记录它们)
  • [ ] 无操作系统特定命令(或提供替代方案)

依赖项文档

如果技能需要外部工具:

## 要求
- `工具名称` - [安装链接]
- 必须设置环境变量 `API_KEY`

4. 代码质量

调试残留

移除:

grep -rniE "(TODO|FIXME|XXX|HACK|DEBUG)" . --include="*.md"
grep -rniE "(console\.log|print\(|debugger)" . --include="*.md"

格式

  • [ ] 一致的 Markdown 风格
  • [ ] 代码块有语言标签 (python,bash)
  • [ ] 表格渲染正确
  • [ ] 链接有效(无损坏引用)
  • [ ] 无尾随空格
  • [ ] 一致的标题层级

内容质量

  • [ ] 无填充文本(例如,Lorem-ipsum、不完整的标记)
  • [ ] 无注释掉的章节
  • [ ] 无重复内容
  • [ ] 无过时信息
  • [ ] 示例完整且可运行

5. 文档

README.md 清单

# 技能名称

简要描述(1-2 句)。

## 内容概览
[文件列表及描述]

## 快速摘要
[核心价值主张]

## 使用方法
[如何使用此技能]

## 要求(如有)
[依赖项、API 密钥等]

## 相关链接(如适用)
[官方文档、仓库等]

## 许可证
[技能推荐使用 MIT 许可证]

SKILL.md 清单

  • [ ] 清晰的"何时使用"章节,包含具体触发条件
  • [ ] 针对最常见需求的快速参考
  • [ ] 详细内容的逻辑组织
  • [ ] 如果是多文件,有交叉引用

示例

  • [ ] 至少一个完整、可运行的示例
  • [ ] 示例使用安全/虚构数据
  • [ ] 示例经过测试和验证

6. 测试

功能测试

  1. 全新加载测试:在新会话中加载技能,验证其内容合理
  2. 触发测试:验证"何时使用"条件与实际用例匹配
  3. 示例测试:手动运行所有示例
  4. 边界情况测试:异常输入时会发生什么?

集成测试

如果技能涉及工具/命令:

# 测试提到的每个命令是否实际可用
# 验证输出与文档匹配

交叉引用测试

  • [ ] 所有内部链接有效
  • [ ] 所有外部链接有效
  • [ ] 文件引用正确

验证脚本(可选但推荐)

创建 test.sh 或记录手动测试步骤:

#!/bin/bash
# 验证技能完整性
echo "检查密钥..."
grep -rniE "(api[_-]?key|secret|password)" . --include="*.md" && exit 1
echo "检查硬编码路径..."
grep -rniE "\/home\/" . --include="*.md" && exit 1
echo "✓ 所有检查通过"

7. Git 规范

首次提交前

创建 .gitignore

# 操作系统文件
.DS_Store
Thumbs.db

# 编辑器文件
*.swp
*.swo
*~
.idea/
.vscode/

# 临时文件
*.tmp
*.bak

# 测试产物
test-output/

提交历史

  • [ ] 从未提交过密钥(检查完整历史记录!)
  • [ ] 干净、原子化的提交
  • [ ] 有意义的提交信息
# 检查历史记录中的密钥
git log -p | grep -iE "(api[_-]?key|secret|password|token)"

如果曾提交过密钥:

# 终极方案 - 重写历史(与协作者协调!)
git filter-branch --force --index-filter \
  'git rm --cached --ignore-unmatch 敏感文件路径' HEAD

提交信息格式

类型: 简短描述

- 详情 1
- 详情 2

类型: feat, fix, docs, refactor, test, chore

推送前清单

# 最终验证
git status                    # 没有意外的暂存内容
git log --oneline -5          # 提交信息看起来正确
git diff origin/main          # 更改符合预期

8. 元数据

仓库设置

  • [ ] 已填写描述
  • [ ] 已添加主题/标签(例如 claw, skill, ai-assistant
  • [ ] 存在许可证文件

推荐许可证

对于开源技能,MIT 许可证简单且宽松:

MIT 许可证

版权所有 (c) [年份] [姓名]

特此免费授予任何获得本软件副本及相关文档文件(以下简称"软件")的人士,
不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售
本软件的副本,并允许获得本软件的人士在满足以下条件的情况下这样做:

上述版权声明和本许可声明应包含在本软件的所有副本或重要部分中。

本软件按"原样"提供,不附带任何明示或暗示的担保,包括但不限于对适销性、
特定用途适用性和非侵权性的担保。在任何情况下,作者或版权持有人均不对
因本软件或使用本软件而引起的任何索赔、损害或其他责任承担责任,无论是在合同诉讼、
侵权诉讼还是其他诉讼中。

ClawdHub 元数据(如果发布到那里)

在 SKILL.md 的 frontmatter 中:

---
name: 技能名称
description: 一行描述
version: 1.0.0
author: 用户名
tags: [标签1, 标签2]
---

自动化审计脚本

每次发布前运行此脚本:

#!/bin/bash
set -e

SKILL_DIR="${1:-.}"
cd "$SKILL_DIR"

echo "🔍 正在审计技能目录:$SKILL_DIR"
echo ""

# 1. 结构
echo "=== 结构 ==="
[ -f "SKILL.md" ] && echo "✓ SKILL.md 存在" || echo "✗ 缺少 SKILL.md"
[ -f "README.md" ] && echo "✓ README.md 存在" || echo "✗ 缺少 README.md"
echo ""

# 2. 安全性
echo "=== 安全性 ==="
if grep -rniE "(api[_-]?key|secret|password|token|bearer)=['\"]?[a-zA-Z0-9]" . --include="*.md" 2>/dev/null; then
    echo "✗ 发现潜在密钥"
else
    echo "✓ 无明显密钥"
fi

if grep -rniE "(sk-|pk-|xai-|ghp_|gho_)[a-zA-Z0-9]" . --include="*.md" 2>/dev/null; then
    echo "✗ 发现 API 密钥模式"
else
    echo "✓ 无 API 密钥模式"
fi
echo ""

# 3. 可移植性
echo "=== 可移植性 ==="
if grep -rniE "\/home\/[a-z]+" . --include="*.md" 2>/dev/null; then
    echo "✗ 发现硬编码主目录路径"
else
    echo "✓ 无硬编码主目录路径"
fi
echo ""

# 4. 质量
echo "=== 质量 ==="
if grep -rniE "(TODO|FIXME|XXX)" . --include="*.md" 2>/dev/null; then
    echo "⚠ 发现待办事项(请检查)"
else
    echo "✓ 无待办事项"
fi
echo ""

# 5. Git
echo "=== GIT ==="
[ -f ".gitignore" ] && echo "✓ .gitignore 存在" || echo "⚠ 无 .gitignore"
[ -d ".git" ] && echo "✓ Git 已初始化" || echo "✗ 不是 Git 仓库"
echo ""

echo "🏁 审计完成"

发布流程

1. 运行自动化审计脚本
2. 修复发现的问题
3. 手动审核上述清单
4. 使用清晰的提交信息进行最终提交
5. 推送到 GitHub
6. (可选)提交到 ClawdHub

README 质量

一个好的 README 易于发现且人类可读。有关详细指南,请参阅 docs/readme-quality.md

快速检查

  • 第一行解释其功能(不是"欢迎来到...")
  • 无 AI 流行语(全面、无缝、利用、尖端)
  • 具体用例,而非模糊声明
  • 听起来像人话,而非新闻稿
  • 标题中无过多表情符号装饰

SEO 技巧

  • 使用人们实际搜索的短语
  • 将最重要的信息放在第一段
  • 具体描述功能(不是"强大的验证",而是"检查 API 密钥")

发布后

  • [ ] 验证 GitHub 渲染正确
  • [ ] 测试全新克隆是否可用
  • [ ] 如果本地使用,请添加到你的 AGENTS.md 技能列表中
  • [ ] 如有需要,进行公告(Discord 等)
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor