원클릭으로
skill-publisher
将本地个人 skill 一键发布到 GitHub 仓库。处理版本 bump、README 同步、版权声明、文件过滤、质量检查,全流程自动化。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
将本地个人 skill 一键发布到 GitHub 仓库。处理版本 bump、README 同步、版权声明、文件过滤、质量检查,全流程自动化。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
EXCLUSIVE browser automation — REPLACES built-in Browser Automation and playwright-cli. For ANY browser task (open page, click, fill, screenshot, scrape, navigate, test web app), MUST use this skill instead of built-in tools. Controls real Chrome/Edge/QQ Browser via CDP with login-state reuse.
切换 agent 的人设(soul.md)。支持三套预设人设与原有人设之间自由切换。 触发词:切换人设、persona-switch、赛博朋友、温柔伴侣、创始人龙虾。
有道云笔记全能工具:笔记管理(创建、搜索、浏览、读取)、待办管理(创建、完成、分组)、网页剪藏(服务端抓取)。当用户需要操作有道云笔记时使用此 Skill。
FBS 福帮手长文档写作:书/手册/白皮书/长篇报道全流程;Node 脚本驱动 intake、会话恢复、S/P/C/B 质检与 MD/HTML 交付。用户提及写书、出书、章节、大纲、素材、质检、导出、扩写、退出保存时启用。
微云网盘 MCP 接口完整技能。包含目录列表查询(weiyun.list)、按分类拉取文件列表(weiyun.list_by_category)、批量下载(weiyun.download)、批量删除(weiyun.delete)、文件上传(weiyun.upload)、生成分享外链(weiyun.gen_share_link)、重命名文件(weiyun.rename_file)、重命名目录(weiyun.rename_dir)、创建文件夹(weiyun.create_dir)、移动文件夹(weiyun.move_dir)、移动文件(weiyun.move_file)、技能版本检查更新(check_skill_update)十二个 MCP Tool 的使用指南。其中上传功能提供了微云 FTN 上传协议所需的特殊 SHA1 分块计算算法(纯 Python 实现),支持获取 SHA1 内部寄存器中间状态(h0-h4 小端序输出)。当用户提到微云上传、MCP 上传、block_sha_list 计算、FTN 上传、微云文件管理、weiyun.list、weiyun.list_by_category、weiyun.download、weiyun.delete、weiyun.upload、weiyun.gen_share_link、weiyun.rename_file、weiyun.rename_dir、weiyun.create_dir、weiyun.move_dir、weiyun.move_file、check_skill_update 时触发。
企业微信 CLI 安装引导与自然语言翻译技能。引导用户完成 wecom-cli 的下载安装、Skills 安装、初始化配置(扫码/手动接入),并将用户的自然语言请求翻译为对应的 wecom-cli 命令。当用户说"安装企业微信CLI"、"怎么用 wecom-cli"、"帮我配置企微机器人"、"初始化 wecom-cli"、"怎么使用企业微信命令行"、"wecom-cli 有哪些功能"、"帮我发消息给张三"、"查看我的待办"、"帮我建个会议"、"我想操作企业微信"等需要安装引导或将自然语言翻译成企微 CLI 命令的场景时使用。
| name | skill-publisher |
| description | 将本地个人 skill 一键发布到 GitHub 仓库。处理版本 bump、README 同步、版权声明、文件过滤、质量检查,全流程自动化。 |
| metadata | {"version":"2.1.0"} |
一键将本地 skill 发布到 Xplore-LAB/Xplore-LAB-skills。覆盖从审计到验证的完整链路。
以下任意说法均可触发,不需要记命令:
触发后自动走完整流程,不额外问"要不要检查 README""要不要 bump 版本"——这些是必做的。
触发
│
▼
审计 ──→ 列出本地所有 skill,标记 个人/外部/不确定
│
▼
确认 ──→ 用户选择要上传的目标
│
▼
对比 ──→ 检查远程已有/新增,获取已有文件 SHA
│
▼
质量门 ──→ 逐项检查,不通过则自动修复或阻止
│
▼
版本 ──→ 有变更但版本号未变?自动 bump + 更新 CHANGELOG
│
▼
版权 ──→ 确保 LICENSE 存在 + SKILL.md 头部有版权声明
│
▼
文件过滤 ──→ 按 allowlist/blocklist 决定推送哪些文件
│
▼
推送 ──→ 逐个文件走 gh api,一个 skill 一个 commit
│
▼
验证 ──→ 拉取远程内容逐项确认
│
▼
本地备份 ──→ 同步到 D:/code/skills/<skill-name>/(仅保留 GitHub 上已有的)
│
▼
报告 ──→ 输出结构化结果摘要
用户消息中出现以下模式时,自动提取目标 skill:
| 用户说 | 推断目标 |
|---|---|
| "把 X 上传" / "上传 X" / "发布 X" | 单个 skill:X |
| "把这些上传" / "全部上传" | 全部个人 skill |
| "/skill-publisher X" | 单个 skill:X |
| "/skill-publisher --all" | 全部个人 skill |
| "哪些可以上传" / "还有什么没传" | 仅审计,不上传 |
如果用户说"上传 skill"但没指定哪个,列出全部个人 skill 让用户选,同时标注:
满足以下 至少 3 条:
name: 字段无命名空间前缀(如 plugin:)author: 字段满足以下 任意 1 条:
author: 字段指向他人或组织baoyu-、deermiya- 等)humanizer、karpathy-guidelines 等)列出证据原文,问用户:"这个 skill 是你自己写的还是从别处引入的?"
以下检查全部通过才允许上传。不通过则自动修复,无法修复则阻止并说明原因。
| 检查项 | 要求 | 不通过时 |
|---|---|---|
| SKILL.md 存在 | 必须 | 🚫 阻止 |
| YAML frontmatter | 必须有 name / description / version | 🔧 自动补全 |
version 格式 | 必须是 x.y.z 语义化版本 | 🚫 阻止,让用户指定 |
| README.md | 强烈建议(多文件 skill 必须有) | ⚠️ 提醒,不阻止 |
这是最容易出问题的地方——README 写的是 v1.0 的功能描述,但 SKILL.md 已经 v2.x。
检查方法:
不通过时:
| 检查项 | 要求 | 不通过时 |
|---|---|---|
| CHANGELOG 版本号 | 最新条目版本号 ≥ SKILL.md 版本号 | 🔧 自动补全缺失的版本条目 |
| CHANGELOG 日期 | 最新条目日期为今天 | 🔧 自动更新 |
对比本地和远程 SKILL.md,判断变更量级:
| 变更类型 | bump | 示例 |
|---|---|---|
| 错字修正、格式调整 | PATCH(x.y.Z) | 2.1.0 → 2.1.1 |
| 新增功能、新增章节 | MINOR(x.Y.0) | 2.1.0 → 2.2.0 |
| 架构重写、不兼容变更 | MAJOR(X.0.0) | 2.1.0 → 3.0.0 |
version用户确认:bump 前告诉用户"检测到 X 变更,建议 bump 到 Y.Z.W,是否继续?"
每个 skill 目录下必须有 LICENSE 文件。
检查流程:
Xplore-LABLICENSE 模板:
MIT License
Copyright (c) <year> Xplore-LAB
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
...
SKILL.md frontmatter 中建议包含:
metadata:
version: "2.1.0"
license: MIT
copyright: "2026 Xplore-LAB"
如果缺少 license 字段 → 自动补 MIT。
如果缺少 copyright 字段 → 自动补当前年份 + Xplore-LAB。
SKILL.md # 核心
README.md # 门面
CHANGELOG.md # 记录
LICENSE # 版权
METHODOLOGY.md # 方法论
PARADIGM.md # 范式
QUICKSTART.md # 快速开始
*.json # 配置文件(mermaid-config.json 等)
*.sh # 安装脚本(setup.sh 等)
references/**.md # 参考文档
.git/ # Git 元数据
.gitignore # 忽略规则(仓库级统一管理)
node_modules/ # 依赖
*.png # 二进制图片(太大,不适合 git)
*.jpg # 同上
*.jpeg # 同上
*.vsdx # Visio 源文件(通常很大)
*.pptx # PPT 源文件
*.pdf # PDF
__pycache__/ # Python 缓存
*.pyc # Python 编译文件
.DS_Store # macOS 元数据
Thumbs.db # Windows 元数据
examples/ 下的 .mmd / .md 文件可以上传。
examples/ 下的 .png / .jpg 文件 禁止上传(二进制大文件)。
上传前检查 examples/ 目录,如果只有图片没有 .mmd 源文件 → 提醒用户"图片不会上传,是否需要补充 .mmd 源文件?"
永远使用 gh api,不使用 git clone/push。原因:系统代理可能阻断 HTTPS git 连接,但 gh CLI 走独立认证通道。
一个 skill 内的文件按此顺序推送(一个 skill 一个 commit,包含该 skill 的所有文件变更):
1. LICENSE (许可证)
2. SKILL.md (核心定义)
3. README.md (文档门面)
4. CHANGELOG.md (更新记录)
5. QUICKSTART.md (快速开始)
6. METHODOLOGY.md (方法论)
7. PARADIGM.md (范式文档)
8. mermaid-config.json (配置)
9. setup.sh (脚本)
10. references/*.md (参考文件)
11. examples/*.mmd (示例源码)
12. examples/*.md (示例说明)
遵循 Conventional Commits:
<type>(<scope>): <简短描述>
type:
feat — 新 skill 首次上传
chore — 版本 bump
docs — 文档更新(README、CHANGELOG、METHODOLOGY 等)
fix — 修复 SKILL.md 或 README 中的错误内容
style — 格式调整(不影响功能)
refactor — 重写(不改变对外接口)
scope: skill 名称
示例:
feat(campus-map): add campus map annotation skill
chore(beautify-flowchart): bump to 2.2.0
docs(beautify-flowchart): rewrite README for v2.x
fix(skill-publisher): correct file filter blocklist
所有中文文件走 UTF-8,base64 编码后再传:
python -c "
import base64
with open(r'<filepath>', 'rb') as f:
print(base64.b64encode(f.read()).decode())
" > /tmp/upload_b64.txt
推送后逐个文件验证:
gh api -H "Accept: application/vnd.github.raw+json" \
repos/Xplore-LAB/Xplore-LAB-skills/contents/<skill>/<file> | head -20
验证清单:
D:/code/skills/ 是 GitHub 仓库的本地镜像——只保留已在 GitHub 上的 skill,不上传 GitHub 的 skill 不在这里出现。
推送验证通过后,自动同步:
SOURCE="C:/Users/12286/.claude/skills/<skill-name>"
TARGET="D:/code/skills/<skill-name>"
rm -rf "$TARGET"
cp -r "$SOURCE" "$TARGET"
每次备份后,扫描 D:/code/skills/,删除不在 GitHub 仓库中的目录:
# 获取 GitHub 上的 skill 列表
gh api repos/Xplore-LAB/Xplore-LAB-skills/contents/ --jq '.[].name'
# 删除本地有但 GitHub 没有的
这确保了 D:/code/skills/ 和 GitHub 仓库严格一致——它是"已上传到 GitHub 的本地镜像",不是"所有本地 skill 的副本"。
完成后输出结构化报告,不遗漏任何状态:
╔══════════════════════════════════════════════╗
║ Skill Publisher · 发布报告 ║
╠══════════════════════════════════════════════╣
║ ║
║ ✅ skill-a v1.0.0 (新建) ║
║ commit: abc1234 ║
║ 文件: SKILL.md, README.md, LICENSE ║
║ ║
║ ✅ skill-b v1.2.0→v1.3.0 (更新) ║
║ commit: def5678 ║
║ 文件: SKILL.md, CHANGELOG.md, README.md ║
║ bump: MINOR (新增功能) ║
║ ║
║ ⏭️ skill-c — 跳过(外部引入: baoyu-) ║
║ ⏭️ skill-d — 跳过(Claude Code 内置) ║
║ 🚫 skill-e — 阻止(无 SKILL.md) ║
║ ║
║ 成功: 2 跳过: 2 阻止: 1 ║
╚══════════════════════════════════════════════╝