PostgreSQL码农集散地

手把手教你如何给龙蜥社区 SkillHub 提交 SKILL

龙蜥是一款通过国测的国产操作系统, 为了提高在龙蜥操作系统之上运行软件的部署、管理、运维效率, 龙蜥社区搞了这个 SkillHub 的活动, 鼓励生态产品提交 SKILL, 有效解决产品在龙蜥运行环境中的最后一公里难题. 

刚好最近给龙蜥提交了十来个 PostgreSQL 的 SKILL, 涵盖日常的集群部署、健康诊断、SQL 审查、性能优化、风险评估等多个维度. 

快来吧, 我都提交17个技能了, 别的数据库不好说, 但在龙蜥上面使用 PostgreSQL 肯定很丝滑. 

Image

下面记录一下提交过程, 给想参与这个活动的朋友做个参考.

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 搞起啊.

活动详见: 「Skill 创造营」—— 龙蜥 SkillHub 技能与最佳实践征集