45395 - シコウサクゴ -

PRのCIが全ジョブ失敗と表示され、一見マージのブロッカーに見えました。しかし失敗時間が数秒と異常に短く、ステップは空でジョブログも取得できません。CIの赤を『コードが壊れている』と即断せず、失敗の性質を分類し、ローカル再現でテスト件数を突き合わせて機械検証した記録です。

あるエントリがignore設定に登録済みか検証しようとしたら、grepとcheck-ignoreの結果が矛盾した。原因はCRLF改行で、grepはエラーも出さず空結果を返す。存在・追跡・無視の判定はテキストgrepではなくgit専用コマンドを唯一の真実とすべき、という運用記録です。

PRレビュー中、docstringに書かれた使用例が実際の挙動とずれていた。AIはコードよりドキュメントの権威性を高く見積もり、古いdocstringを正として実装やテストを書いてしまう。doctestで例を実態と機械的に突合し、コードを唯一の真実とする運用の記録です。

本番でのみ実行すべき外部APIコールが、無効化対象のレコードに対して走るバグがありました。AIに『ガードを入れて』と頼むと、目の前の1経路にしか置かず別の入口から漏れます。操作に到達する全呼び出し経路を先に列挙し、症状対処と恒久対処を分けて防御を設計する、多層防御の運用記録です。

外部サービスへの書き込みが未成功のとき、APIが件数0・値0.0を正常値として返していました。コードはこの0を有効値として受け取り、下流の量計算に0が混入。`if value`ではなく`> 0`の境界検証で受けるべきという学びと、DB制約が暗黙の検出機構として働いた記録です。

新機能を実装しようとした矢先、同等のロジックが既存コードに存在していた。大規模・並行開発では『新機能=未実装』という暗黙の仮定が危険。設計の前にAIでコード全体を透視する『フェーズ0サーチ』を必須化し、DRY違反と重複工数を着手前に潰す運用の記録。

監視スクリプトは必ず偽陽性を出す。月初の空ディレクトリ、symlinkで0件返すfind、累計ログの閾値超過——これらを『減らす』のではなく『既知パターンとしてSoTに記録』する運用。エラー文字列→即時判定で、本物の障害を見逃さず判断を速くする。

上流データの識別子フォーマットが変わり、旧ロジックが新形式を誤変換して6,848件が一括エラーに。修正は全置換ではなく、旧形式だけが満たす不変条件をガード式1行で囲うこと。API移行・ID体系変更に効く最小修正パターンの記録。

AI agentが「未確認のままだとリスクです」と発言した瞬間は、セッション内で押し切らず、Issue化/Phase分離する合図として扱う。Agentの「ためらい」を無視せず外部化することで、後追いリカバリーコストが激減する運用ルール。

Explore agentが「未参照画像は2枚」と要約したが、直接grepで107枚発覚。AI agentの『該当なし』『網羅した』報告は最も誤りやすい。三層検証で大量削除事故を防ぐ運用ルール。