何が起きるか
agy をレビュー担当・適用担当にしたとき、差分に tests/ や CI の設定が含まれていると、agy が自分で全体テスト(例: uv run --locked pytest -q tests/、約 2 分)を背景で起動し、完了通知を待ったまま終了して result.json を残さない。監視は NO_RESULT を返す。
devbase の v3.6.0 の実行(2026-09-18〜19)で 8 回踏んだ。
| 場面 |
回数 |
| cross-review のレビュー(PR #202 / #207 / #210) |
5 |
| cross-refactoring の適用(rf206 / rf207) |
3 |
err.log / stdout.log の末尾:
I am waiting for the pytest test suite run to finish. The system will notify me.
root agent idle; waiting up to 5s for 1 background task(s)
terminating 1 background task(s) on exit
state.py judge は起動し直した後も結果が無いと final=error にするため、収束の判定が止まる。cross-refactoring の側は同じ群を繰り返し agy へ割り当てるため、担当を手で差し替えるまで進まない。
いま行っている回避
- cross-review:
state.json の final を null に、only を kiro か codex にして 1 ラウンド回す
- cross-refactoring:
state.json の当該 apply_rounds[].impl を kiro へ書き替えて再開する
どちらも状態ファイルを手で編集している。
直し方の案
- 監視が
NO_RESULT を返した担当を、同じラウンド・同じ群の中で別のランタイムへ自動で振り替える(1 度だけ)
- プロンプトの側で「テストは進行側が回す。担当は実行しない」ことを明示する(
cross-refactoring は「実装担当に手ごとのテストを義務づけない」と既に決めているが、agy は自発的に走らせている)
由来
devbasex/devbase のマイルストーン v3.6.0 の振り返り(https://github.com/devbasex/devbase/pull/211#issuecomment-5739397561)
何が起きるか
agyをレビュー担当・適用担当にしたとき、差分にtests/や CI の設定が含まれていると、agyが自分で全体テスト(例:uv run --locked pytest -q tests/、約 2 分)を背景で起動し、完了通知を待ったまま終了してresult.jsonを残さない。監視はNO_RESULTを返す。devbase の v3.6.0 の実行(2026-09-18〜19)で 8 回踏んだ。
err.log / stdout.log の末尾:
state.py judgeは起動し直した後も結果が無いとfinal=errorにするため、収束の判定が止まる。cross-refactoring の側は同じ群を繰り返しagyへ割り当てるため、担当を手で差し替えるまで進まない。いま行っている回避
state.jsonのfinalをnullに、onlyをkiroかcodexにして 1 ラウンド回すstate.jsonの当該apply_rounds[].implをkiroへ書き替えて再開するどちらも状態ファイルを手で編集している。
直し方の案
NO_RESULTを返した担当を、同じラウンド・同じ群の中で別のランタイムへ自動で振り替える(1 度だけ)cross-refactoringは「実装担当に手ごとのテストを義務づけない」と既に決めているが、agyは自発的に走らせている)由来
devbasex/devbase のマイルストーン v3.6.0 の振り返り(https://github.com/devbasex/devbase/pull/211#issuecomment-5739397561)