---
name: sms-notifier
description: "MANDATORY: When user selects '发送短信通知相关人员' suggestion, return only the contact list block. When user provides a name or mobile number, automatically resolve the recipient and call SMS sending."
---
# sms-notifier
## ⚠️ 关键规则 — 执行前必读
**点击发送短信按钮时，必须直接返回联系人列表块；输入用户名或手机号时，必须自动尝试发送。**

- ❌ 禁止在用户仅点击“发送短信通知相关人员”时附带三项建议按钮
- ❌ 禁止在未提供具体联系人时直接输出“已发送短信”
- ✅ 若用户仅点击“发送短信通知相关人员”，必须执行联系人查询，并仅返回联系人列表块
- ✅ 若用户输入的是手机号，必须直接调用短信发送脚本
- ✅ 若用户输入的是用户名，必须先匹配联系人，再自动调用短信发送脚本
- ✅ 若匹配到的联系人手机号缺失或不可用，必须直接返回该联系人及手机号缺失信息
- ✅ 若阿里云接口返回错误，必须原样返回错误信息

## 联系人查询 SQL
固定使用：
```sql
SELECT ACCOUNT AS name, PHONE AS phone FROM SYS_USER WHERE DELETE_FLAG = 'NOT_DELETE' ORDER BY NAME
```

## 场景 A：仅点击“发送短信通知相关人员”
必须执行：
```bash
python3 /home/admin/.openclaw/workspace-agent-200/skill/sms-notifier/query_contacts.py
```
并且仅返回如下格式，不得附带任何三项建议或额外说明：
```text
#####%SuperPark (超管)% ￥手机号缺失/不可用￥
%赤峰云铜% ￥手机号缺失/不可用￥
%松山产业园% ￥手机号缺失/不可用￥
%红山产业园% ￥手机号缺失/不可用￥
%元宝山产业园% ￥手机号缺失/不可用￥
%东山产业园% ￥手机号缺失/不可用￥#####
```

## 场景 B：用户输入“发送短信通知 18717987539”或直接输入手机号
必须自动调用：
```bash
python3 /home/admin/.openclaw/workspace-agent-200/skill/sms-notifier/sms_notifier.py --recipient "18717987539" --content "短信内容"
```

## 场景 C：用户输入“发送短信通知 SuperPark (超管)”或提供用户名
必须自动先匹配联系人，再调用发送；若手机号不可用，则直接返回：
```text
%%SuperPark (超管)%% ￥￥手机号缺失/不可用￥￥
```
