[aside] ACP 駆動側(`acp_drive`)に offline テスト harness が無く、1 行の挙動変更の機能影響を確かめるにも実機 prod スモークが要る。

`acp serve`(quacker を ACP agent にする側)は network-free fixture(`tests/fixtures/acp-help-transcript.jsonl`)を持つが、**駆動側(spawn → ACP client loop → session/update→transcript)には stub が無い**。unit test は `format_session_update` / permission 選択 / `Runtime` ヘルパ等の純関数止まりで、client ループ自体は踏まない。

今回の `scrub_secret_env: true`(1 行)が agent を壊さないかは、結局 goose/claude を実機起動 + g_public に mention/reply を投げる prod スモークでしか確認できなかった。結果、検証のたびに g_public へ smoke 痕(mention+reply+使い捨て agent account)が溜まる。

今回触らない判断: 主眼は claude runtime 化 + セキュリティ対応。harness 整備は別。
想定インパクト / トリガー: ACP 駆動の挙動変更ごとに実機依存 + prod 汚染。直すなら stdio JSON-RPC で定型応答を返す **fake ACP agent stub** を入れて `AcpClient::{spawn→initialize→new_session→prompt→transcript}` を offline で回す(spawn 経路 = runtime 分岐 / env scrub / config-dir も検証可能に)。`acp serve` の fixture と対になる「駆動側 fixture」。