ANTIGRAVITY LABEN
記事一覧/連携・プラグイン
連携・プラグイン/2026-06-19中級

Antigravity CLI を無人で動かすとき、失敗だけを静かに知らせる仕組み

Antigravity CLI をスケジュール実行する際、成功時は沈黙し、人が対応すべき失敗だけを通知する小さなラッパーの作り方を、終了コードの扱い・一過性エラーの切り分け・重複抑制まで含めて整理します。

Antigravity CLI9自動化19通知スケジュール実行2シェルスクリプト2

プレミアム記事

先日の深夜、自分の自動化が原因で眠りを妨げられました。スケジュールに載せた処理がほんの少し詰まっただけで、手元のスマートフォンが何度も短く震えたのです。翌朝ログを開くと、本当に対処が必要だった失敗は一件だけ。残りはすべて、数分後には自然に回復していた一過性の揺れでした。

Gemini CLI の提供が 6 月 18 日に終わり、後継として Go で書き直された Antigravity CLI へ移行したことで、私自身が手元に持っていた無人実行のスクリプトも一斉に載せ替えることになりました。新しい CLI は応答が速く、起動も軽い。けれど「何を通知するか」という設計は CLI が変わっても自分で決めなければなりません。今日は、成功時は黙り、人が動くべき失敗だけを静かに知らせる、その小さな仕組みを共有します。

鳴りすぎる通知は、鳴らない通知と同じくらい危ない

無人実行を組み始めた頃、私は「とにかく結果を全部通知する」設定にしていました。成功も失敗も、すべて手元に届く。安心できそうに見えて、実際には逆でした。

毎回届く成功通知に目が慣れてしまうと、その中に紛れた一件の失敗を見落とします。四つのブログサイトの自動更新と、いくつかのアプリの AdMob 収益チェックを並行で回していた時期は、一日に数十件の通知が積み上がり、肝心な異常がスクロールの彼方へ消えていきました。

通知の価値は、数ではなく「届いたら必ず手が止まる」という信頼にあります。だからこそ、設計の出発点は足し算ではなく引き算に置きます。届けないものを先に決め、残ったものだけを鳴らす、という順序です。

成功時の沈黙を、終了コードで担保する

最初の土台は、Antigravity CLI の終了コードです。シェルから起動した CLI は、正常終了で 0 を、異常終了で 0 以外を返します。この値こそが、通知するかしないかを分ける一次判定になります。

標準出力と標準エラーは一つのログファイルへ集約しておきます。後で失敗の中身を読むときも、通知の本文を組み立てるときも、この一本のログが頼りになるためです。

#!/usr/bin/env bash
set -uo pipefail
 
LOG_DIR="${HOME}/.agy-runs"
STATE_DIR="${HOME}/.agy-state"
mkdir -p "$LOG_DIR" "$STATE_DIR"
 
# 第1引数をタスク名として受け取り、残りを CLI へ素通しする
TASK="${1:?task name required}"
shift
 
LOG="${LOG_DIR}/${TASK}-$(date +%Y%m%d-%H%M%S).log"
 
# Antigravity CLI を実行し、出力をすべてログへ集約する
agy run "$@" >"$LOG" 2>&1
CODE=$?
 
echo "task=${TASK} exit=${CODE} log=${LOG}"

ここで大切なのは set -e を使わない判断です。CLI が失敗した瞬間にスクリプト全体が止まってしまうと、その後の「失敗を分類して通知するかどうか決める」処理に進めません。失敗は止める対象ではなく、観察して扱う対象です。set -uo pipefail だけを残し、終了コードは自分の手で受け取ります。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
終了コードと標準ログを土台に、成功時は沈黙する無人実行ラッパーの実装
一過性のレート制限・認証切れと、人が見るべき失敗を切り分ける分類ロジック
同じ失敗を6時間鳴らさない重複抑制で、アラート疲れを防ぐ運用設計
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

連携・プラグイン2026-06-17
Antigravity CLI が無人実行中に 401 で止まるとき — 認証切れと再ログイン待ちを切り分ける
Antigravity CLI を無人のスケジュール実行に組み込んだあと、ある朝から 401 が一度出て止まる症状の原因と、認証切れと再ログイン待ちを切り分けて自動運用を立て直す手順をまとめます。
連携・プラグイン2026-06-17
スケジュール実行の直前に、Antigravity CLI が本当に応答するかを1回だけ確かめる
6月18日の Gemini CLI 提供終了で Antigravity CLI へ載せ替えると、認証切れや当日の不調が無人のジョブを静かに空振りさせます。スケジュール本体を起動する前に CLI の生存を1回だけ確かめ、失敗を種類で振り分けて止める preflight の設計と実装をまとめました。
連携・プラグイン2026-06-13
Antigravity CLI を非対話で回す — CI と cron に載せる前の設計
Go 製になった Antigravity CLI を対話ではなく CI・cron で無人実行するための設計を、終了コード・冪等性・タイムアウト・出力パースの観点からまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →