## 何を見つけたか #1953 で external-ai・cross-review・cross-refactoring の agy の起動を `--output-format json` へ切り替えた。成功したときの JSON の形(本文が `response` の鍵か、使用量が `usage` の鍵か、`conversation_id`)を、認証の通る環境で 1 度も確かめないまま 10.17.74 で出ている。 - `plugins/ndf/skills/external-ai/scripts/external-ai.py:153` は agy のとき `payload.get("response")` を本文として読む。鍵が違えば本文は空になり、worker の答えが黙って失われる - `plugins/ndf/scripts/lib/usage_capture.py` の `agy_usage` は `usage` と `conversation_id` を前提に読む。違えば使用量が `unknown` になる - 設計(`issues/issue-1953-design.md:394`)は「実装で認証の通る環境で 1 回確かめる」と書いた - スプリント PR 1973 のラウンド 2 で kiro が同じ点を指摘した(https://github.com/devbasex/ai-plugins/pull/1973#pullrequestreview-5498454078 )。ラウンド 4 でも「証跡は無いまま」と書かれている - リリース後テスト(https://github.com/devbasex/ai-plugins/pull/1975#issuecomment-6142258615 の #1953 の条件 4・9)でも agy は認証が無く、`status: error`・`usage: "unknown"` の行しか見られなかった 手がかりは失敗のときの形だけである(#1603 の表: `conversation_id` / `status` / `response` / `error` / `duration_seconds` / `num_turns` / `usage`)。 2026-10-15 に agy 1.3.4で認証の無い環境から `agy -p … --output-format json` を打つと、終了コード 1 で `{"conversation_id":"","status":"ERROR","response":"","error":"authentication failed or timed out",…,"usage":{"input_tokens":0,"output_tokens":0,"thinking_tokens":0,"cache_read_tokens":0,"total_tokens":0}}` が出た。失敗時の鍵は 1.3.4 でも同じである。成功時の形は、確かめる時点の agy の版(版を記録に残す)で、認証の通る環境(#1603 と同じ前提)で確かめる。 ## どこで見つけたか スプリント m1953 の振り返り(release PR 1975)。PR 1973 のレビュー本文にだけある指摘を、起票と突き合わせて見つけた。 ## 受け入れ条件 - [ ] 1. 認証の通る環境で `launch-cli.sh` の形の agy を 1 回成功させ、`--output-format json` の出力の本文と使用量の鍵を記録する - [ ] 2. 鍵が `response` / `usage` と違えば、`external-ai.py` と `usage_capture.agy_usage` を実物の形へ直し、その形をテストの入力にする - [ ] 3. 本文の鍵が無い成功の出力で、答えが空のまま成功として扱われない ## 関連 - 由来: PR #1973(スプリント m1953 の検査)、issue #1953 - 関係: #1603(agy の認証済みの環境での確認)
Activity