最近、このリポジトリに「Codexで実装が終わったらDiscordへ通知する」仕組みを入れたので整理しておく。
##何を解決したかったか
Codexでの実装は速い反面、どのタイミングで「一区切り」をチームや自分が把握するかが曖昧になりやすい。
そこで、実装完了時に通知を飛ばして、完了ログを残すようにした。
##仕組みの全体像
- 実装本体:
scripts/codex-finish-and-notify.ts - npm scripts:
bun run codex:finish(デフォルト。通知のみ)bun run codex:finish:build(ビルドしてから通知)
通常運用では codex:finish を使う。
必要なときだけ codex:finish:build でビルドを挟む設計。
##通知時に送っている情報
Discord webhook に送るembedへ、次を詰めている。
- Repository
- Branch
- Commit(GitHubリンク付き)
- Duration(実行秒数)
- Triggered By(実行ユーザー)
- Command(
codex:finishかcodex:finish:build) - Summary(任意)
完了/失敗でタイトルと色を切り替えるようにしている。
##Webhook URLの解決方法
DISCORD_WEBHOOK_URL は以下の順で見る。
- シェル環境変数
.env.local.env.dev.vars
スクリプト内で export KEY=value 形式も読めるようにしてあるので、ローカル運用でも扱いやすい。
##CLIオプション
bun run codex:finish -- --summary "APIのエラーハンドリングを改善"
bun run codex:finish -- --notify-only --summary "Discord notification test"
bun run codex:finish:build -- --summary "認証周りの改修"
##運用ルール
AGENTS.md に、ファイル変更を伴うタスクでは完了前に次を必須化した。
bun run codex:finish -- --summary "<short completion summary>"
通知失敗時は「1回リトライ、だめなら失敗理由を報告」までルール化。
これで「通知したつもり」を防げるようになった。
##まとめ
やっていることはシンプルだけど、実装完了の見える化としてはかなり効く。
ローカル開発フローにDiscord通知を差し込むだけで、作業の区切りが明確になった。