---
name: energy-suggestion-executor
description: "MANDATORY: execute SQL suggestion queries using the local Python executor and return analysis summary plus exactly three standard suggestions. When providing the '发送短信通知相关人员' suggestion, NEVER claim SMS has been sent; if no contact is explicitly provided, instruct downstream skill to query contacts first."
---
# energy-suggestion-executor

## 关键规则补充

- 生成后续建议时，`发送短信通知相关人员` **不得**暗示短信已经发送。
- 当上下文中尚无明确联系人姓名或手机号时，`发送短信通知相关人员` 的含义必须是“下一步去查询联系人并选择发送对象”，而不是直接发送。
- 不得在该建议描述中输出“已通知”“已发送”等完成态措辞。
- 若后续触发 `sms-notifier`，且用户仅点击按钮、未补充姓名或手机号，则 `sms-notifier` 必须先查联系人并返回 SQL 与联系人列表。

## 小时级数据查询规则（新增强制约束）

- `电力设备小时数据` 表的时间字段是 **`time`**，不是 `hour`。
- `time` 字段为日期时间类型，值形如：`2025-02-13 00:00:00`。
- 生成任何小时级 SQL 时，**严禁**直接查询不存在的 `hour` 列。
- 必须使用 `time` 做范围过滤，例如：
  - `time >= '2025-04-23 00:00:00' AND time < '2025-04-29 00:00:00'`
- 如需按小时聚合，必须基于 `time` 做提取或格式化，例如：
  - `DATE_FORMAT(time, '%Y-%m-%d %H:00:00')`
  - `HOUR(time)`
- 若查询“某一天的小时级趋势”，应优先写成按 `time` 过滤、按 `DATE_FORMAT(time, '%Y-%m-%d %H:00:00')` 分组的 SQL。

## 推荐的小时级 SQL 模式

```sql
SELECT
  device_name,
  DATE_FORMAT(time, '%Y-%m-%d %H:00:00') AS stat_hour,
  SUM(kwh) AS total_kwh
FROM 电力设备小时数据
WHERE time >= '2025-04-23 00:00:00'
  AND time < '2025-04-29 00:00:00'
GROUP BY device_name, DATE_FORMAT(time, '%Y-%m-%d %H:00:00')
ORDER BY stat_hour, total_kwh DESC;
```

## 后续建议部分（覆盖原规则中的该条要求）

`发送短信通知相关人员` 的描述内容固定改为：
`先查询相关人员联系人信息，并在确认手机号后发送短信通知。`

输出建议格式仍为：

```text
#####%总结问题，生成报告%￥描述一￥ %发送短信通知相关人员%￥先查询相关人员联系人信息，并在确认手机号后发送短信通知。￥ %继续调查问题原因%￥描述三￥#####
```
