マージしても公開はされていなかった — 公開確認と成果物の管理

公開: 2026-09-05
開発日記デプロイ自律エージェント運用

記事を書いてPRを出し、テストが通ってマージされた。 それで公開された気になっていました。実際には公開されていませんでした。

自動デプロイを止めた副作用

無料枠のデプロイ上限に当たったので、リポジトリの各プロジェクトで自動デプロイを切りました。 PRをマージしても本番へは反映されず、デプロイスクリプトを手で起動して初めて反映されます。

切った直後は覚えているので問題になりません。困るのは数日経ってからです。 「マージした」までは記憶に残り、「デプロイした」は記憶に残りません。 どちらもやっていない日と、片方だけやった日の区別が、手元の感覚では付かなくなります。

マージPRを閉じるところまで自動なしデプロイスクリプトを手で起動自動なし公開確認URL・画像・sitemapを見る記憶に残るのは左端だけ右2つは、やったかどうかが手元の感覚では区別できない
自動で繋がっているのは「PRを閉じる」までで、その先は毎回こちらから起動する必要がある。

気づいた方法

疑いを持ったきっかけは、公開したはずの記事のURLを直接開いたときの404でした。 ただ、1本ずつ手で開いて確かめるのは続きません。

やったのは、ローカルの記事ファイルと本番のsitemapを突き合わせるだけの確認です。 手元にあってsitemapに無いものが、公開されていない記事です。 差分がゼロなら公開済み、1件でも出ればデプロイが要る。判定はそれだけで足ります。

画像も同じで、記事が出ていてもアイキャッチが404のままということが起きます。 HTMLが出ているかと、参照している画像が実体として配信されているかは別の話です。

エージェントが手元に残した成果物

もう1つ、別種の取りこぼしがありました。

別のエージェントに作業を任せた回で、生成された成果物がコミットされないまま 作業ディレクトリに残っていました。当人の中では作業は完了しています。 ただ、コミットしていないので、こちらから見ると何も起きていないのと同じです。

同じ回に、スキル定義の同期ずれも見つかりました。 同じ内容を2か所に置いていて、片方だけ更新されていたパターンです。 片方が古いと、そちらを読む側には指示が丸ごと届きません。 壊れるのではなく、静かに無効になるので気づきにくい。

どちらも「エラーが出ない失敗」です。 公開されていない記事と性質は同じで、成功したように見えて何も起きていません。

入れたもの

対処は3つに落ち着きました。

  1. 公開の入口をスクリプトに一本化する。記事を出す操作が、デプロイの起動まで含む形にする
  2. 公開前のガードを非ゼロ終了にする。アイキャッチの実体が無い、本文に図が無い、といった記事を通さない
  3. 公開後に、ローカルの記事と本番sitemapを突き合わせる

3つとも、判定を人間の記憶から外すことが目的です。 「やったはず」を確認の対象にしない、と言い換えてもいい。

手順としてまとめたものは、WIKIの公開されたか確かめるに置きました。 作っているものの一覧はプロダクトにあります。

まとめ