Skip to content

Wire /agent-review council=true into the review job#629

Merged
gnovak merged 1 commit into
devfrom
review-council-wiring
May 27, 2026
Merged

Wire /agent-review council=true into the review job#629
gnovak merged 1 commit into
devfrom
review-council-wiring

Conversation

@gnovak

@gnovak gnovak commented May 27, 2026

Copy link
Copy Markdown
Owner

The parser already enabled council mode for `/agent-review` (`lib/config.py:593` treats `council=true` as setting `council_models` output for review mode), but the `review:` workflow job had no council branch — it unconditionally ran the single-reviewer agentic loop. `/agent-review` with `council=true` parsed fine but produced exactly one review.

Found on bridge-analysis PR #438 (issue #436):

```
/agent-review
council = true
```

→ one review from claude-small only.

Wiring

  • New "Run council code review" step in the review job, guarded `if: council_models != '[]' && council_models != ''`. Calls `run_build_council` (already used by build Stage 2 and delegate Stage 5) with /agent-review-flavored labels.
  • Existing "Run review loop" and "Post review comment" steps get the opposite guard so they only run in single-reviewer mode.
  • "Post cost comment (fallback)" stays unguarded; the new council step writes `/tmp/llm_usage.json` the same way single-reviewer does, so the fallback picks up cost in both modes.

Label parameterization on run_build_council

The function previously hard-coded "Build Stage 2 — Council Code Review" / "`/agent-build` Stage 2" in banner, per-reviewer attribution, and completion message. Now parameterized:

Caller banner_label attribution_label
Build Stage 2 (defaults) "Build Stage 2 — Council Code Review" "/agent-build Stage 2"
Delegate Stage 5 "Delegate Stage 5/6 — Council Code Review" "/agent-delegate Stage 5"
/agent-review council=true "Council Code Review" "/agent-review council=true"

Test plan

  • 664 unit tests pass (+2 for label-parameterization assertions)
  • YAML syntactically valid
  • Empirical: `/agent-review` + `council = true` on a PR posts 3 council reviewer comments (one per configured council model), not one single-reviewer comment

🤖 Generated with Claude Code

The parser already enabled council mode for /agent-review (lib/config.py:593
treats council=true as setting council_models output for review mode),
but the `review:` workflow job had no council branch — it unconditionally
ran the single-reviewer agentic loop. /agent-review with council=true
parsed fine but produced exactly one review.

Found on bridge-analysis PR #438 (issue #436): user invoked
    /agent-review
    council = true
Got one review from claude-small only.

## Wiring

- New "Run council code review" step in the review job, guarded
  `if: council_models != '[]' && council_models != ''`. Calls
  run_build_council (already used by build Stage 2 and delegate Stage 5)
  with /agent-review-flavored labels.
- Existing "Run review loop" and "Post review comment" steps get the
  opposite guard so they only run in single-reviewer mode.
- "Post cost comment (fallback)" stays unguarded; the new council step
  writes /tmp/llm_usage.json the same way single-reviewer does, so the
  fallback picks up cost in both modes.

## Label parameterization on run_build_council

The function previously hard-coded "Build Stage 2 — Council Code Review"
and "/agent-build Stage 2" in its banner / per-reviewer attribution /
completion message. Build Stage 2 keeps the defaults. Delegate Stage 5
now passes explicit "Delegate Stage 5/6" labels (was already shipping
duplicated banners — the workflow's pre-banner + the function's banner;
this commit makes them deliberate). The new review-council path uses
plain "Council Code Review" / "/agent-review council=true" labels so
users see the command they actually invoked.

664 unit tests pass (was 662; +2 for label parameterization).
@gnovak gnovak merged commit dd97c0b into dev May 27, 2026
@gnovak gnovak deleted the review-council-wiring branch June 13, 2026 03:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant