mcpField
N
notify

notify

github.com/prathamdby生产力6137 次安装4 天前更新
代码仓库

关于 notify

notify 是通过脚本向 Discord 发送嵌入消息的技能,供需要报告任务进度或发送一般通知的工作流使用。它规定了消息分类、Webhook 配置和发送后的状态处理。

主要功能

  1. 01发送 Discord 嵌入消息
  2. 02区分任务通知与一般通知
  3. 03支持标题、描述、链接和字段
  4. 04提供 dry-run 预览
  5. 05验证 Webhook 并处理发送状态

适用场景

  1. 01报告任务完成并附上 PR 或工单链接
  2. 02发送需要输入的通知
  3. 03预览消息负载后再发送

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/prathamdby/skills --skill notify

安装后在 Claude Code 中输入/notify确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

REFERENCE.md
webhook.url.example
scripts/
notify.py

详细介绍

通知

使用 ./scripts/notify.py send 发送 Discord 嵌入消息。绝不使用 curl。绝不手动构造 JSON。

标志

技能标志对应 send 的 CLI 标志:

标志CLI 标志效果
--task--task任务通知。需要 --link。
--link <url>--link嵌入消息中的 URL。与 --task 搭配时必填。
--webhook <path>--webhook-fileURL 文件。默认值:<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 时跳过此步骤。

  1. 确定路径:--webhook <path> 或 <anchor>/webhook.url。
  2. 如果文件存在,读取文件。如果文件缺失或仅包含空白字符,询问用户 Discord Webhook URL。暂时不要运行 send。等待用户回复。
  3. 用户回复后:将 URL 作为单行写入确定的路径。如有需要,创建父目录。URL 必须以 https://discord.com/api/webhooks/ 开头。如果无效,要求用户重新提供,并说明此前缀要求。
  4. 文件包含有效的 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