关于 notify-templates
notify-templates 是一项技能,用现有库存和采购数据填充固定通知模板。它规定了告警路由、批量处理及写入 outbox 的方式,避免逐项重复发送通知。
主要功能
- 01生成低库存 Slack 告警
- 02撰写供应商采购订单邮件
- 03整理供人工审核的通知
- 04按对象和阈值路由通知
- 05批量写入通知 outbox
适用场景
- 01在库存检查中报告低库存
- 02请求供应商确认采购订单
- 03升级高金额或异常采购事项
- 04库存巡查后发送单条汇总
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ anthropics/ cwc-workshops --skill notify-templates安装后在 Claude Code 中输入/notify-templates确认已加载。
详细介绍
通知模板
通知是填充模板,不是创意写作。不要为此启动子 Agent。 使用已有数据填写占位内容,然后将结果追加到发件箱。
低库存 Slack 警报
:warning: *Low stock* — {{sku}} ({{product_name}})
On hand: {{on_hand}} · Reorder point: {{reorder_point}} · Days of cover: {{days_cover}}
{{action_line}}
action_line 可以是 PO {{po_id}} placed for {{qty}} units (ETA {{eta}}) 或 Awaiting review — {{reason}}。
供应商邮件
Subject: PO {{po_id}} — {{qty}} × {{sku}}
Hi {{supplier_name}},
Please confirm PO {{po_id}} for {{qty}} units of {{sku}} ({{product_name}}) at ${{unit_price}}/unit.
Requested delivery: {{requested_date}}. {{expedite_note}}
Thanks,
StockPilot
升级处理(需要人工审核)
:octagonal_sign: *Review needed* — {{sku}}
Recommended qty: {{qty}} (confidence {{confidence}})
Flags: {{flags_csv}}
Reason: {{reason}}
路由(谁接收什么)
| 对象 | 何时发送 | 示例 |
|---|---|---|
ops 频道(默认) | 低库存警报、补货建议、循环盘点调整、每周报告。 | 几乎所有情况。 |
ops 中使用 @here | Top 100 SKU 出现实际或即将发生的缺货,或供应商延迟导致 7 天内缺货。 | “WH-EAST 现有库存为 0,整个网络将在 <1d 内缺货” |
| 采购负责人(私信/邮件,不发频道) | 单笔 PO > $25k、偏离评分最高的供应商,或考虑新供应商。 | |
| 财务 | 仅当某个供应商的未结 PO 余额将超过 $100k,或怀疑存在重复 PO 时。日常事务不发。 |
升级到默认频道以外时,请添加一行说明触发了哪个阈值。
批量发送,不要刷屏
对于扫描和每日检查,发送一条汇总通知,不要为每个 SKU 各发一条。上面的低库存模板适用于单个 SKU 任务;如果是扫描任务,请撰写一条消息,列出已采取行动的 SKU(以及任何已暂缓的 SKU),并在最后一次性发送。
如果任务明确要求每个 SKU 各发一条警报(例如“为 Top 10 中的每个 SKU 发送个性化警报”):每个 SKU 填写一次模板,并像这样通过一条 Bash heredoc 将所有内容写入发件箱:
python -c '
import json
rows = [...top-10 from batch_days_of_cover.py...]
with open("/mnt/user/sinks/outbox.jsonl", "a") as f:
for r in rows:
f.write(json.dumps({"channel": "ops", "sku": r["sku"],
"message": f":warning: Low stock — {r[\"sku\"]} ..."}) + "\n")
'
不要针对每个 SKU 调用一次 send_slack_alert(或启动子 Agent)——这会产生 N 次模型往返来填充模板。
批量发送后,最终回复应包含简短确认(“✓ 已向 ops 发送 10 条警报——请查看发件箱”)以及一张简明表格,列出 SKU、现有库存和可覆盖天数。不要在回复中重复完整警报内容;内容已在发件箱中。
如何发送
通过 Bash 直接追加到 /mnt/user/sinks/outbox.jsonl——每行一个 JSON 对象,例如:
python -c 'import json; print(json.dumps({"channel": "ops", "sku": "SKU-0012", "message": "..."}))' \
>> /mnt/user/sinks/outbox.jsonl
使用 json.dumps 对消息中的换行符进行转义(直接使用 echo 会破坏 JSONL)。整个任务就是:读取一次所需数据(如果尚未获取),追加一次。如果发送通知的调用次数超过两次,那就是过度设计了。