feat!: selector mode becomes the default review dispatcher#54
Merged
Conversation
…per-owner dispatch (full mode remains the deep sweep)
There was a problem hiding this comment.
{
"verdict": "approve",
"summary": "The selector-mode-as-default flip is correctly implemented across both dispatcher commands. Standard-mode per-owner Task dispatch has been properly removed, selector mode is now the default routing for all non-explicit tokens, the breaking change is clearly documented in CHANGELOG.md, acceptance.sh assertions have been updated to match the post-flip reality, and both retired scenarios correctly reference their superseding siblings.",
"comments": [
{
"file": "commands/pr-review.md",
"line": 112,
"severity": "nit",
"message": "Early exit message ('Step 4 skipped: no rule-relevant files changed') is now mode-agnostic since early exit applies to all modes, not just standard. Consider appending '(all modes)' for diagnostic clarity, though the current text is technically correct."
}
],
"concerns_addressed": [
"correctness: argument hint removes 'standard' but callers passing 'standard' now silently get selector behavior — addressed by CHANGELOG.md documenting this as a breaking change",
"correctness: Step 4d citation validation is now 'Full mode only'; selector mode's citation call lives in the external guide — verified: docs/selector-mode-guide.md lines 65-69 contain citation validation",
"security: Selector mode guide path resolved from CLAUDE_PLUGIN_ROOT/CLAUDE_CONFIG_DIR env vars — verified: GUIDE_MISSING fail-fast truly blocks and STOPS (reports 'selector guide unavailable' as Must Fix toolchain failure)",
"correctness: Early exit section no longer labeled 'standard mode' — verified: applies to all modes correctly",
"correctness: Same argument hint and mode routing changes as code-review.md — verified: both commands have consistent changes",
"correctness: acceptance.sh assertions updated for new routing — verified: new routing check and tightened per-owner block assertions present",
"tests: Scenario 002 marked 'outdated' — verified: scenarios/005-selector-clean-short-circuit.md exists with status:active, supersession reference accurate",
"tests: Scenario 004 marked 'outdated' — verified: scenarios/006-selector-findings-path.md exists with status:active, supersession reference accurate"
]
}
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Completes the AI-Selector migration (Steps 4+7, bake deliberately collapsed):
standard) → selector mode (in-session classify + adjudicate, zero spawns).shortandfullunchanged — full mode remains the per-owner deep-sweep escape hatch.status: outdated, superseded by 005/006 per their own footers); acceptance checks updated to the new dispatch reality (30/30).BREAKING-ish: callers passing
standardnow get selector behavior.Verification
Tokenless
/coding:pr-review masteron the bborbe/maintainer#2 fixture (isolated config, plugin pinned to this branch): selector path taken (GUIDE_OK), 2m36s, 19 turns, zero sub-agent spawns, all 5 seeded violations found, traceability 32 candidates → 7 applicable → 25 skipped-with-reasons.make precommit30/30.Bake-collapse rationale: 9 validation runs across 4 backends + an organic prod review since yesterday; full mode retained as the per-owner fallback; prod bot already runs selector explicitly via
REVIEW_MODE(unaffected by this flip).🤖 Generated with Claude Code