Codex実装完了をDiscordに通知する仕組みを入れた

最近、このリポジトリに「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:finishcodex:finish:build
  • Summary(任意)

完了/失敗でタイトルと色を切り替えるようにしている。

##Webhook URLの解決方法

DISCORD_WEBHOOK_URL は以下の順で見る。

  1. シェル環境変数
  2. .env.local
  3. .env
  4. .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通知を差し込むだけで、作業の区切りが明確になった。