Problem
Today repository_profiles are exclusive: a GitHub host/namespace/repo route resolves to one profile. That works for unambiguous automatic profile selection, but it does not support a common workflow where the same repository path should be reviewable by multiple profiles.
Motivating example:
codex-rianjs-bot and claude-rianjs-bot may both be valid ways to review github.com/open-cli-collective/* and github.com/rianjs/*.
- The user may switch between them based on quota, model preference, or wanting different model perspectives.
- A profile is more than just an LLM runtime: it also selects reviewer entity, repository access, review policy, agent sources, and model mapping. So an LLM-only override is not the right abstraction for this workflow.
Desired direction
Explore support for overlapping repository paths across multiple review profiles, with explicit --profile as the primary disambiguation mechanism.
For example, this should be a plausible user workflow:
cr review https://github.com/open-cli-collective/codereview-cli/pull/359 --profile codex-rianjs-bot
cr review https://github.com/open-cli-collective/codereview-cli/pull/359 --profile claude-rianjs-bot
In this model, --profile should select the full review profile, including reviewer entity and review policy, not just the LLM runtime.
Open design question
The intentionally unresolved part is what cr review <PR> should do when no --profile is specified and multiple profiles match the same repository path.
Do not assume a design yet. Options to evaluate may include:
- fail fast with a clear ambiguity error and list matching profiles
- introduce an explicit preference or default-selection field
- keep exclusive automatic routing but add separate profile eligibility metadata
- another model that preserves predictability without making hidden defaults too surprising
This issue should not lock in a default or tie-break behavior before the UX is agreed.
Acceptance criteria for design
- Clarify the durable config model for overlapping repository paths.
- Define how explicit
--profile interacts with overlapping routes.
- Decide and document the no-
--profile ambiguity behavior before implementation.
- Preserve the invariant that the selected profile controls reviewer entity, repository access, review policy, agent sources, and LLM runtime.
Problem
Today
repository_profilesare exclusive: a GitHub host/namespace/repo route resolves to one profile. That works for unambiguous automatic profile selection, but it does not support a common workflow where the same repository path should be reviewable by multiple profiles.Motivating example:
codex-rianjs-botandclaude-rianjs-botmay both be valid ways to reviewgithub.com/open-cli-collective/*andgithub.com/rianjs/*.Desired direction
Explore support for overlapping repository paths across multiple review profiles, with explicit
--profileas the primary disambiguation mechanism.For example, this should be a plausible user workflow:
In this model,
--profileshould select the full review profile, including reviewer entity and review policy, not just the LLM runtime.Open design question
The intentionally unresolved part is what
cr review <PR>should do when no--profileis specified and multiple profiles match the same repository path.Do not assume a design yet. Options to evaluate may include:
This issue should not lock in a default or tie-break behavior before the UX is agreed.
Acceptance criteria for design
--profileinteracts with overlapping routes.--profileambiguity behavior before implementation.