关于 notify
notify 是通过脚本向 Discord 发送嵌入消息的技能,供需要报告任务进度或发送一般通知的工作流使用。它规定了消息分类、Webhook 配置和发送后的状态处理。
主要功能
- 01发送 Discord 嵌入消息
- 02区分任务通知与一般通知
- 03支持标题、描述、链接和字段
- 04提供 dry-run 预览
- 05验证 Webhook 并处理发送状态
适用场景
- 01报告任务完成并附上 PR 或工单链接
- 02发送需要输入的通知
- 03预览消息负载后再发送
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ prathamdby/ skills --skill notify安装后在 Claude Code 中输入/notify确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
REFERENCE.mdwebhook.url.examplescripts/notify.py详细介绍
通知
使用 ./scripts/notify.py send 发送 Discord 嵌入消息。绝不使用 curl。绝不手动构造 JSON。
标志
技能标志对应 send 的 CLI 标志:
| 标志 | CLI 标志 | 效果 |
|---|---|---|
--task | --task | 任务通知。需要 --link。 |
--link <url> | --link | 嵌入消息中的 URL。与 --task 搭配时必填。 |
--webhook <path> | --webhook-file | URL 文件。默认值:<anchor>/webhook.url。 |
--color <int|hex> | --color | 嵌入消息颜色。默认值 5814783。 |
--field "N|V" | --field | 可重复。最多 10 个。 |
--content <text> | --content | 嵌入消息上方的消息内容。 |
--dry-run | --dry-run | 打印负载。不执行 POST。 |
| 位置参数 | --description | 未通过标志传入时,作为嵌入消息正文。 |
CLI 中始终必须提供 --title 和 --description。
锚点
存放此 SKILL.md 的目录。脚本:<anchor>/scripts/notify.py。
第 1 步:判断分支类型
- 任务工作(实现、修复、审查、PR、工单、CI):使用
--task+--link。 - 一般通知:省略
--task。--link可选。
第 2 步:撰写嵌入消息
--title:简短标签(“任务已完成”“需要输入”)。--description:位置参数或单行会话摘要。--link:使用--task时提供真实 URL。GitHub PR/提交、Linear 工单、CI 运行、仓库树链接均可。--field:仅在能补充有效信息时使用(分支、工单、状态)。
标题和描述均已设置,且 --task 已提供 --link,即表示完成。
第 3 步:确保 Webhook 配置
使用 --dry-run 时跳过此步骤。
- 确定路径:
--webhook <path>或<anchor>/webhook.url。 - 如果文件存在,读取文件。如果文件缺失或仅包含空白字符,询问用户 Discord Webhook URL。暂时不要运行
send。等待用户回复。 - 用户回复后:将 URL 作为单行写入确定的路径。如有需要,创建父目录。URL 必须以
https://discord.com/api/webhooks/开头。如果无效,要求用户重新提供,并说明此前缀要求。 - 文件包含有效的 Webhook URL 前缀后,此步骤完成。
首次设置帮助:Discord 频道 → 集成 → Webhooks → 新建 Webhook →
复制 URL。参见 ./REFERENCE.md。
第 4 步:运行 CLI
python3 <anchor>/scripts/notify.py send --title "..." --description "..." [flags]
负载不明确时使用 --dry-run。查看 send --help 中的示例。
第 5 步:检查退出代码
只有退出代码为 0 才表示已发送(或 dry-run 成功)。退出代码为 2/3 时:将 stderr 原样提供给用户。停止操作。不得静默重试。
第 3 步之后若退出代码为 1:文件中的 URL 未通过 POST 时的验证。请用户提供新的 Webhook URL,重写文件,然后重新运行一次 send。
第 6 步:报告
解析 stdout 中的 status:、title:、link:。绝不回显 Webhook URL。
限制
- 始终使用嵌入消息。脚本会强制执行。
- 绝不提交
webhook.url。 - 退出代码为 3 时,按照
./REFERENCE.md中的故障排除说明操作。
评论
支持 Markdown