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を入力して読み込まれたか確認します。
詳細
通知テンプレート
通知はテンプレートへの入力であり、創作ではありません。**このためにサブエージェントを起動しないでください。**すでにあるデータで各欄を埋め、結果を送信待ちリストに追記してください。
在庫僅少の 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 チャンネル(既定) | 在庫僅少アラート、再発注の推奨、循環棚卸の調整、週次レポート。 | ほぼすべて。 |
@here を付けて ops | トップ100のSKUで在庫切れが発生中または差し迫っている場合、またはサプライヤーの遅延により7日以内に在庫切れとなる場合。 | 「WH-EASTの在庫が0、ネットワーク全体で1日未満」 |
| 購買責任者(DM/メール、チャンネルではなく) | 単一のPOが25,000ドルを超える場合、スコア評価で選ばれたサプライヤーから逸脱する場合、または新規サプライヤーを検討する場合。 | |
| 財務 | 1社のサプライヤーに対する未処理PO残高が100,000ドルを超える場合、またはPOの重複が疑われる場合のみ。定例の通知は不要です。 |
既定のチャンネルを超えてエスカレーションする場合は、どの しきい値を超えたかを示す1行を追加してください。
まとめて送信し、スパムを避ける
一括確認や日次チェックでは、SKUごとに1件ずつ送るのではなく、要約通知を1件送信してください。上記の在庫僅少テンプレートは単一SKUのタスク用です。一括確認の場合は、対応したSKU(および保留したSKU)を一覧にしたメッセージを1件作成し、最後に一度だけ送信してください。
タスクでSKUごとに1件のアラートを明示的に求められた場合(例:「トップ10の各SKUに個別のアラートを送信」)、SKUごとにテンプレートを埋め、次のように1つの Bash ヒアドキュメントですべての行を送信待ちリストに書き込んでください。
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(またはサブエージェント)を呼び出さないでください。テンプレート入力のために、モデルとの往復がN回発生します。
一括送信後の最終応答は、簡潔な確認(「✓ 10件のアラートを ops に送信しました — 送信待ちリストを確認してください」)に加えて、SKU、在庫数、在庫維持可能日数を簡潔な表にまとめてください。アラート全文を返信に繰り返さないでください。すでに送信待ちリストにあります。
送信方法
Bash を使って /mnt/user/sinks/outbox.jsonl に直接追記します。1行につきJSONオブジェクトを1つ記述します。例:
python -c 'import json; print(json.dumps({"channel": "ops", "sku": "SKU-0012", "message": "..."}))' \
>> /mnt/user/sinks/outbox.jsonl
メッセージ内の改行をエスケープするには json.dumps を使用してください(そのまま echo すると JSONL が壊れます)。作業はこれだけです。必要なデータがなければ1回読み取り、1回追記します。通知の送信に2回を超える呼び出しが必要なら、やりすぎです。