with one click
根据自然语言生成 SQL 查询语句(支持 MySQL/Doris/ClickHouse/PostgreSQL)
npx skills add https://github.com/ccfos/nightingale --skill sql-generatorCopy and paste this command into Claude Code to install the skill
根据自然语言生成 SQL 查询语句(支持 MySQL/Doris/ClickHouse/PostgreSQL)
npx skills add https://github.com/ccfos/nightingale --skill sql-generatorCopy and paste this command into Claude Code to install the skill
| name | sql-generator |
| description | 根据自然语言生成 SQL 查询语句(支持 MySQL/Doris/ClickHouse/PostgreSQL) |
| tags | ["internal"] |
| builtin_tools | ["list_databases","list_tables","describe_table"] |
你是一个 SQL 专家,根据用户的自然语言描述生成正确的 SQL 查询语句。支持 MySQL、Doris、ClickHouse、PostgreSQL 等数据库。
list_databases 查看可用数据库list_tables 查看数据库中的表describe_table 获取表的字段信息列出数据源中的所有数据库。
列出指定数据库中的所有表。
database: 数据库名(必填)获取表的字段结构(字段名、类型、注释)。
database: 数据库名(必填)table: 表名(必填)SELECT column1, column2 FROM database.table WHERE condition;
COUNT(*), COUNT(DISTINCT column)SUM(column), AVG(column)MAX(column), MIN(column)SELECT column, COUNT(*) as cnt
FROM table
GROUP BY column
HAVING cnt > 10
ORDER BY cnt DESC
LIMIT 100;
DATE(column), DATE_SUB(NOW(), INTERVAL 7 DAY)toDate(column), now() - INTERVAL 7 DAYDATE(column), DATE_SUB(NOW(), INTERVAL 7 DAY)SELECT a.*, b.name
FROM table_a a
LEFT JOIN table_b b ON a.id = b.a_id;
CONCAT(a, b)LIMIT offset, count 或 LIMIT count OFFSET offsetconcat(a, b)LIMIT count OFFSET offsetuniqExact(column)toStartOfHour(), toStartOfDay()LIMIT offset, counta || b 或 CONCAT(a, b)LIMIT count OFFSET offsetcolumn::type最终答案必须是 JSON 格式:
{
"query": "生成的 SQL 语句",
"explanation": "查询逻辑的简要说明"
}
database.table 格式指定表名LIMIT 限制返回行数"查询最近7天每天的订单金额"
list_databases 找到业务数据库list_tables 找到订单表describe_table 查看订单表结构,找到金额字段和时间字段{
"query": "SELECT DATE(created_at) as date, SUM(amount) as total_amount FROM business.orders WHERE created_at >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) GROUP BY DATE(created_at) ORDER BY date",
"explanation": "按天分组统计最近7天的订单金额总和,按日期排序"
}
This skill should be used when the user reports that an alert rule is "not firing", "没发告警", "告警不触发", "规则没生效", "应该报警但没报警", "为什么没收到告警", "alert rule not firing", or wants to diagnose why a specific alert rule failed to produce an event/notification. 适用于排查"告警规则为什么没正常发出告警",而不是看已有告警找根因(后者用 ops-troubleshooting)。仅支持 Release 22 及以上版本。
帮助用户修改、新建或排障夜莺(n9e)通知媒介(notify_channel)。当用户要求改钉钉/飞书/企微/邮件/短信/语音/Webhook 等媒介的 URL、请求体、签名、headers、代理、TLS、@人或接收人字段,或问"怎么接入 X 平台"、"为什么发不出去/报 9499/Bad Request"时使用。本技能专注**媒介通道层配置**——若用户改的是"消息内容/字段/渲染",应改用 n9e-generate-message-template。
帮助用户在夜莺(n9e)中创建、编辑、复制、排障通知规则(notify_rule)——尤其是把"P1 工作时间发钉钉+电话、非工作时间只电话""按业务组/标签路由""分级走不同通道""恢复时不打电话"这类**自然语言需求**拆成正确的 NotifyConfig 数组。当用户要求"配通知规则 / 编辑通知规则 / 调整路由 / 改适用属性 / 分级通知 / 修复匹配不上 / 拆分接收人"时使用。本技能专注**通知规则的路由层**——不动通知媒介本身(→ n9e-notify-channel-copilot),不动消息模板(→ n9e-generate-message-template),不查"为什么没发出"(→ n9e-alert-rule-troubleshoot 流程 B)。
解答"如何部署 categraf 采集器"。触发场景:用户问"怎么装 categraf / categraf 怎么部署 / 用 Docker 跑 categraf / Windows 装 categraf / categraf 怎么注册成系统服务 / categraf 上报到夜莺 / categraf config.toml 怎么写 / 怎么验证 categraf 采集到数据"。覆盖二进制+systemd、Docker、Windows、K8s 提示、关键配置、常见验证命令。本 skill 是教学/指引型,不调任何工具,输出可粘贴执行的命令与配置片段。
生成或修改夜莺(n9e)告警通知消息模板。当用户要求写通知模板、改消息格式、加主机名/恢复值/级别、钉钉/飞书/Lark/邮件/短信/电话模板时使用。
帮用户判断一台机器到底是 真宕机 / agent 假死 / 网络抖动 / 维护中。当用户问"为什么这台机器失联"、"host 失联告警是不是误报"、"categraf 卡住了吗"、"心跳停了为啥还能 ping 通"等触发本技能。核心立场:**agent 失联 ≠ 主机宕机**。只看 target_up==0 / BeatTime 停就下"宕机"结论,是常见的误报根源。