手把手教你如何给龙蜥社区 SkillHub 提交 SKILL
龙蜥是一款通过国测的国产操作系统, 为了提高在龙蜥操作系统之上运行软件的部署、管理、运维效率, 龙蜥社区搞了这个 SkillHub 的活动, 鼓励生态产品提交 SKILL, 有效解决产品在龙蜥运行环境中的最后一公里难题.
刚好最近给龙蜥提交了十来个 PostgreSQL 的 SKILL, 涵盖日常的集群部署、健康诊断、SQL 审查、性能优化、风险评估等多个维度.
快来吧, 我都提交17个技能了, 别的数据库不好说, 但在龙蜥上面使用 PostgreSQL 肯定很丝滑.
下面记录一下提交过程, 给想参与这个活动的朋友做个参考.
0、fork anolis-skills 项目到自己名下
https://gitee.com/anolis/anolis-skills
1、克隆自己名下的 anolis-skills
https://gitee.com/digoal/anolis-skills
2、创建某一个 SKILL 分支
比如我想发现 PostgreSQL 运行过程中的潜在风险, 不治已病治未病. 准备给这个 SKILL 起名 pg-runtime-risk
那就创建这个分支, 分支基于 anolis-skills 源头最新的一次提交作为分叉, 合并时可减少很多麻烦
git checkout -b pg-runtime-risk d33b173331128d072f6cbc955e66568cc5536fb5
3、下载创建 skill 的 SKILL : anolis-skill-creator
anolis-skill-creator 被用于创建 SKILL
https://skillhub.openanolis.cn/skill/anolis-skill-creator
将下载的内容拷贝到你本地 Agent 的技能目录中, 例如 ~/.claude/skills/anolis-skill-creator
4、编写提示词(可以先用 AI 生成初步 prompt, 然后人工确认调整)
例如
我要创建一个 SKILL : pg-runtime-risk, 用作 PostgreSQL 数据库运行时潜在风险评估:
```
事务回卷预警(数据库年龄) 连接数即将耗尽预警
序列回卷预警
冻结风暴预警
复制延迟预警
logical replication slot 推进延迟、slot 未激活、slot 未消费等预警
WAL 日志归档异常、推迟预警(需排除强制推迟参数配置情况)
WAL 日志目录堆积预警(需排除wal keep segments参数配置情况), 重点看“物理复制延迟 , slot 推进延迟, slot 未激活, slot 未消费”等原因
集群单点故障预警(你可以向我询问集群配置, 各个节点的连接串和用户密码)
大对象未被引用的空间浪费预警
```
如何写 Prompt?
这是之前的模板仅供参考:
```
你是 PostgreSQL DBA 专家, 创建技能 pg-find-bloat , 给定一个 PostgreSQL 实例的连接串和用户密码, 先列出所有数据库, 进入并分析每个数据库中表、索引膨胀情况, 根据危害经验给出一个合适的大小及比例阈值, 按膨胀大小、比例进行倒序排序, 按数据库名分组, 列出膨胀大小或膨胀比例大于阈值的表和索引; 输出库名、表名或索引名、记录数、实际大小、膨胀大小、膨胀比例、危害程度、建议; 最后总结并给出后续观察或操作建议;
```
使用以上提示词, 在任意 Chat 型的 AI 中都可以, 例如 claude, chatgpt, gemini, deepseek, qwen chat 都行.
然后你会得到一段更详细的提示词, 人工进行微调
5、用 skill ans create 创建 skill
在你的本地 Agent 中, 提交这段指令, 用于创建 pg-runtime-risk skill.
/anolis-skill-creator 粘贴以上微调后的提示词
6、人工确认微调
你会在本地 Agent 的技能目录中, 找到生成好的 SKILL, 例如 ~/.claude/skills/pg-runtime-risk
目录结构大致如下
pg-runtime-risk/
├── SKILL.md # 主文件(137 行,遵循渐进式加载)
├── scripts/
│ └── run_scan.sh # 只读扫描主脚本
└── references/
├── thresholds.md # 各维度分级阈值表
├── report_template.md # 最终报告输出模板
└── manual_checks.sql # 人工核对查询 + 破坏性操作模板(不自动执行)
如有必要人工审查并微调其中的内容.
在头信息中根据本技能的特征加入如下几行, 主要是为了符合龙蜥 SkillHub CONTRIBUTING 规范.
https://gitee.com/anolis/anolis-skills/blob/master/CONTRIBUTING.md
tags: [PostgreSQL, 运行时潜在风险分析, 连接数耗尽, 事务回卷, 序列回卷, 冻结风暴, 复制延迟, 逻辑复制槽推进延迟, 逻辑复制槽未激活, 归档日志异常, WAL堆积, 大对象泄露, 统计信息过时]
platform: [claude-code, cursor]
author: digoal
version: 1.0.0
license: GNU General Public License v2.0
homepage: https://github.com/digoal/skills
7、提交代码到 pg-runtime-risk 分支
将最终的 ~/.claude/skills/pg-runtime-risk 拷贝到 anolis-skills/skills 目录中.
然后提交代码
cd anolis-skills
git add .
git commit -m 'feat: add skill pg-runtime-risk'
git push origin pg-runtime-risk
8、pull request
https://gitee.com/digoal/anolis-skills
在你的项目中, 切换到 pg-runtime-risk 分支, 选择 pull request
源 https://gitee.com/digoal/anolis-skills/tree/pg-runtime-risk/ 目标 https://gitee.com/anolis/anolis-skills/tree/master/
在 PR 的 comment 中按规范填入
### 这个 Skill 解决什么问题
PostgreSQL 数据库运行时潜在风险评估:
```
事务回卷预警(数据库年龄) 连接数即将耗尽预警
序列回卷预警
冻结风暴预警
复制延迟预警
logical replication slot 推进延迟、slot 未激活、slot 未消费等预警
WAL 日志归档异常、推迟预警(需排除强制推迟参数配置情况)
WAL 日志目录堆积预警(需排除wal keep segments参数配置情况), 重点看“物理复制延迟 , slot 推进延迟, slot 未激活, slot 未消费”等原因
集群单点故障预警(你可以向我询问集群配置, 各个节点的连接串和用户密码)
大对象未被引用的空间浪费预警
```
### 自检
- [ ] 目录命名符合 `[a-z0-9-]+` 规范
- [ ] SKILL.md 包含完整 frontmatter(name / description)
- [ ] description ≤ 200 字
- [ ] 不含敏感信息(密码 / token / 内部链接)
9、签署 CLA
如果提示你没有签署贡献者协议, 在 https://gitee.com/anolis/anolis-skills/pulls 中找到你的 pr , 找到 CLA 相关, 有签署入口, 签署完成后, 返回刚才这个 pr , 按提示回复一条信息 /check-cla 即可再次检查.
10、等待工作人员审核
审核通过后, 可以在龙蜥的 skillhub 找到你提交的 SKILL.
https://skillhub.openanolis.cn/
现在龙蜥已经是广泛使用的国产化操作系统, 如果要让你们家的国产数据库在龙蜥中运维、管理、优化更加丝滑, 还不赶紧去提交常用的 SKILL ?
备份、恢复、优化、性能诊断、健康报告、AWR、搭建集群、修复集群 等等日常使用的任务, 都可以用 SKILL 搞起啊.