Skip to content

Design support for overlapping repository paths across review profiles #393

Description

@rianjs

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions