Configure Codex and Claude reviewer models and efforts independently - #754
Conversation
|
Review verdict: Blocking Independent reviewer model/effort selection is threaded cleanly through resolve_invocation, both backends, the registry signature, the recovery command, and the implementation handoff, with solid new coverage in tests/test_role_models.py. One behavior/documentation mismatch blocks merge: the discuss agenda analyzer turn runs with role="reviewer", so it silently picks up the reviewer overrides even though README and docs state the analyzer is excluded, and its prompt signature is computed without the role, so the instructed signature disagrees with the model that actually runs. GitHub PR checks are reported passing; I ran no tests locally. Blocking issues
Same-PR follow-ups
-- Anthropic Claude: claude-opus-5 (medium) |
|
Review verdict: Approved The reviewer-specific Codex and Claude model/effort overrides are applied consistently across plan, PR, and discussion reviewer turns, remain independent from coder and analyzer selection, survive implementation handoff and recovery-command rendering, and are covered by focused tests and updated documentation. GitHub checks are passing. -- OpenAI Codex: gpt-5.6-sol (medium) |
|
PR review round 1 reconciliation: settled reviewers: Claude, Codex. Finalization continues after reconciliation. |
Coder follow-upImplemented and pushed both requested model-role consistency fixes to PR #754 in commit 81439ea. Addressed items
Remaining items
Tests run
-- OpenAI Codex: gpt-5.6-sol (medium) |
|
Review verdict: Approved Round 2 resolves both round-1 items. The discuss agenda turn now runs with role="analyzer" (src/coding_review_agent_loop/orchestrator.py:10228), so the analyzer keeps one identity across its agenda, round-synthesis, final-synthesis, reconciliation, and semantic-comparison turns, and it now matches the role-free signature that build_discuss_agenda_prompt instructs and the documented contract in README.md and docs/local_agent_loop.md. Prior-item attribution passes role="reviewer" through _public_reviewer_name, so an item raised by a reviewer-specific model is no longer labeled with the coder model. Both changes are pinned by new tests, and I found no test elsewhere that depended on the old analyzer role. The rest of the feature (resolve_invocation role precedence, backend model/effort wiring, registry signatures, arg-conflict validation, recovery-command preservation, and the implementation handoff) is unchanged from round 1 and reads correct. GitHub PR checks are still pending (test in_progress); I ran no tests locally, so this approval does not assert a green suite. Prior unresolved item dispositions
-- Anthropic Claude: claude-opus-5 (medium) |
|
Review verdict: Approved The round-1 analyzer-role and reviewer-attribution defects are fixed with focused regression coverage, and the full diff shows consistent reviewer model/effort propagation across CLI configuration, backends, prompts, handoff recovery, and documentation. No blocking issues were found in this read-only review; tests were not run as instructed, and the authoritative GitHub test check remains pending. Prior unresolved item dispositions
-- OpenAI Codex: gpt-5.6-sol (medium) |
|
PR review round 2 reconciliation: settled reviewers: Claude, Codex. Finalization continues after reconciliation. |
|
Reviewers approved PR #754; watching GitHub checks in the foreground. No coder or reviewer agents will run while checks remain pending. -- coding-review-agent-loop |
Why
When Codex is both coder and reviewer,
--codex-modelcurrently selects both seats. Issue mode compounds this: the approved-implementation handoff replaces that shared model with--implementation-coder-model, so a Luna implementation also makes the Codex reviewer use Luna. PR mode has no independent reviewer selection either.This PR adds explicit reviewer overrides without changing existing defaults or checkout ownership.
Changes
--reviewer-codex-modeland--reviewer-codex-reasoning-effort.--reviewer-claude-modeland--reviewer-claude-effortoptions.Example
Luna/xhigh implements and addresses feedback; Sol/medium reviews:
For issue planning, keep the desired planning model in
--codex-model, put Luna in--implementation-coder-model, and retain the same reviewer options. Model-only overrides preserve effort fallback; effort-only overrides preserve model fallback. Separate resume invocations must repeat the desired options.Scope
This does not separate coder/reviewer checkouts, change permissions, select a new repair backend, modify the installed tool, or restart the audit queue. Existing behavior is retained when no reviewer overrides are supplied.
Validation
python -m pytest -qpassed, 2,641 tests in 176.84 seconds, using the installed project virtualenv with a 300-second shell timeout. Some existing config tests require user-cache access, so the full suite was run with that permission.git diff --checkpassed. No live model calls were needed.-- OpenAI Codex