Claude Fable 5 の公開や 6/15 の課金変更と、外側のニュースが続いた一週間でしたが、Claude Lab の誌面はむしろ内側に向かっていました。公開した記事を並べてみると、5本のうち3本が「エラーも出さずに壊れる自動化」の記録で、残る2本が Android アプリの出口まわりの立て直しです。意図して揃えたわけではないのに、どれも「動いているように見えるものを疑う」という一点でつながっていました。個人開発で複数のプロジェクトを一人で回していると、失敗をどれだけ早く検知できるかがそのまま生命線になります。今回はこの5本を、編集後記とともに振り返ります。
エラーを出さない失敗ほど根が深い
前回の記事本文が別の記事に紛れ込む — 固定名の一時ファイルに残る残骸の罠
書き込みが失敗したのに、読み出し側は前回の中身を平然と読んでしまう。固定名の一時ファイルが引き起こした、本文の取り違え事故の記録です。パイプライン全体としては「成功」のログしか残らないため、原因の特定までに想像以上の時間がかかりました。私自身、この件以降は一時ファイルをユニーク名にして、挿入直後に grep で中身を照合する二段構えを標準にしています。記事生成に限らず、状態を引き継ぐファイルを扱うバッチ処理全般に効く教訓だと考えています。
git add -A が .bak バックアップまで巻き込む — in-place 修正スクリプトと自動コミットの落とし穴
sed -i や自作の --fix スクリプトが善意で残すバックアップを、git add -A が無差別に拾って本番リポジトリへ運んでしまう話です。単体ではどちらも正しい挙動なのに、組み合わさった瞬間に事故へ変わる、という構造の指摘が読みどころだと感じています。ステージ対象を「足し算」で決める習慣と、.gitignore による構造的な防御は、複数リポジトリを並行運用している方ほど効果を実感しやすいはずです。コミット前に git status を眺める習慣だけでは防ぎきれなかった、という正直な記述も含めて読んでいただきたい一本です。
記録から予防へ — PreToolUse フックという保険
Claude Code が破壊的なコマンドを打つ前に止める — PreToolUse フックの事前検査
先の2本が「起きてしまった事故」の事後検証だとすれば、こちらは「起こさないための仕組み」です。PreToolUse フックで bash コマンドを実行前に検査し、rm -rf や force push のような取り返しのつかない操作を入口で止めます。許可ダイアログが既にあるのに、なぜもう一段の検査が要るのか——その問いに運用経験から答えている点に説得力がありました。長時間の自動実行を任せる前に読んでおくと、安心感がまるで違います。数週間の運用で誤検知をどう調整したかを記した後半は、これから導入する方への実務的な置き土産です。
アプリの「出口」を設計し直した2本
Android でペイウォールとレビュー誘導が重なって表示される競合を ModalGate で解決した実装メモ
ペイウォール・レビュー誘導・リワード広告の案内が同じ瞬間に開いてしまう競合を、優先度付きの中央ゲートで解いた実装メモです。根本原因を「自己判断するダイアログ」と言い当てた診断が秀逸で、機能を追加するたびにモーダルが増えていくアプリの育ち方を知っている方ほど、身に覚えのある内容ではないでしょうか。ゲートを一本化する時期は早いほど移行が楽になる、という指摘には私も同感です。
Android の戻るボタン広告ゲートを入れ子から並列独立構造へ — Claude Code と進めた終了フロー再設計の記録
同じ Android の出口でも、こちらは戻るボタンの終了フローです。広告が「出ない」と「出すぎる」という正反対の症状が、同じ入れ子分岐から同時に生まれていた——この整理だけでも、読む価値があります。入れ子の if は優先度を暗黙のうちに固定してしまうため、ゲートを並列・宣言的に並べ直すという再設計の筋がきれいに通っています。広告収益とユーザー体験の折り合いに悩んだ経験のある方には、遷移表で優先度を明文化する中盤が特に役立つはずです。
次の一歩
5本を読み直して残ったのは、自動化の信頼性は機能の多さではなく「失敗の扱い方」で決まる、という静かな確信でした。まずは PreToolUse フックの記事を入口に、ご自身の環境で「無言で失敗しうる箇所」を一つだけ書き出してみてください。一つ見つかれば、残りの記事がそのまま対処の手引きになります。お読みいただきありがとうございました。