-
Notifications
You must be signed in to change notification settings - Fork 2k
feat(ce-code-review): configurable model and effort for high-stakes reviewers #1301
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
7e508d6
f405875
41021d7
8f2a0ca
2b696af
5f0e257
4c6592b
ef292f4
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| # Residual Review Findings — nick/review-model-config | ||
|
|
||
| Source: ce-code-review run 20260731-214329-4ae4d74b (mode:agent, plan docs/plans/2026-07-31-005-feat-review-model-config-plan.md). All findings validated by an independent validation pass; none met the autonomous apply bar (anchor-75, single reviewer), so they are recorded here for resolution during PR review. | ||
|
|
||
| ## Residual Review Findings | ||
|
|
||
| - ~~P1 Stage 3d announce sequencing gap~~ — resolved during PR review: Stage 3d now performs a minimal inline two-key read (Codex review thread raised the same defect; fixed on the PR). | ||
| - **P2** `tests/review-skill-contract.test.ts:409` — the new contract test never pins the dispatch-time Session-model bullet that actually applies `review_model`; reverting that bullet alone would not fail any test. Suggested fix: assert the bullet's override wording directly. (testing, confidence 75) | ||
| - **P3** `tests/review-skill-contract.test.ts:417` — two-layer precedence asserted by presence (`toContain` x2), not order; reversing local-first precedence in prose would not be caught. Suggested fix: one ordered regex. (testing, confidence 75) | ||
| - **P3 (advisory)** `tests/review-skill-contract.test.ts:453` — the trio-order regex is satisfied by the pre-existing line-26 enumeration, so it does not pin the new Config override paragraph. Suggested fix: scope the regex to the new paragraph. (correctness + testing, confidence 75) | ||
|
|
||
| Tracker filing: skipped — fork has issues disabled; upstream issues inappropriate for unmerged branch residuals (no_sink). |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -481,7 +481,9 @@ When a job ID is returned and task tracking is active, add a distinct task that | |
|
|
||
| Do not proceed until the final local roster is materialized. This is a routing boundary, not a preference: a started peer and the in-process adversarial reviewer must never both receive the same review brief. | ||
|
|
||
| Announce that final team before spawning, as a user-facing summary: name the always-on reviewers plainly, and for each conditional reviewer give the one-line reason it was added (the real concern, not the keyword that matched). Do **not** put local reviewer model-tier labels (`[session model]`/`[mid-tier]`) or scope-mode codenames in this announce — those are internal. Still decide each local reviewer's tier here and keep it in working state for Stage 4. The cross-model line is separate and follows the receipt-aware model/reasoning and route wording in its reference. This is progress reporting, not a blocking confirmation. | ||
| Before this announce, resolve the config pin directly with a minimal read — do not load `references/dispatch-reviewers.md` yet (Stage 4 below still gates that load): read `review_model` and `review_effort` from `<repo-root>/.compound-engineering/config.local.yaml` first, then `config.yaml` (first non-empty value matching the model-alias shape `^[A-Za-z0-9._-]{1,64}$` wins, `#`-commented lines ignored) — the same two-layer read the `docs_root` block above uses. Use these resolved values both for this stage's tier decision and for the announce line below. `references/dispatch-reviewers.md` (loaded at Stage 4) remains the authoritative statement of precedence and degradation for these keys and consumes the same resolved values; this Stage 3d read only lets the announce state the pin without loading that reference early. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When configuration contains an unsupported but alias-shaped effort such as AGENTS.md reference: AGENTS.md:L118-L123 Useful? React with 👍 / 👎.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Parking this one for the author rather than patching a third round of resolution-edge prose. This and the sibling in-run-precedence thread share a root: how exhaustively the config-resolution prose should enumerate edge semantics (effort enum validation, effort-rejection retry, in-run precedence at Stage 3d) versus staying at the precedent's level of detail ( There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When config pins AGENTS.md reference: AGENTS.md:L144-L149 Useful? React with 👍 / 👎.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Parking for the author — same root as the effort-enum thread (see the decision context there): whether the Stage 3d inline resolver should carry the full precedence/validation spec or the prose should be consolidated into one authoritative resolution paragraph consumed by both stages. The finding itself is valid: the Stage 3d sentence should acknowledge an explicit in-run model request outranking the config keys. It will be folded into whichever consolidation shape the author picks. Leaving open. |
||
|
|
||
| Announce that final team before spawning, as a user-facing summary: name the always-on reviewers plainly, and for each conditional reviewer give the one-line reason it was added (the real concern, not the keyword that matched). Do **not** put local reviewer model-tier labels (`[session model]`/`[mid-tier]`) or scope-mode codenames in this announce — those are internal. When a `review_model` config pin is active for the high-stakes trio, include one line naming the configured model (and effort, when applied) as *requested* for those reviewers. Still decide each local reviewer's tier here and keep it in working state for Stage 4. The cross-model line is separate and follows the receipt-aware model/reasoning and route wording in its reference. This is progress reporting, not a blocking confirmation. | ||
|
npwalker marked this conversation as resolved.
|
||
|
|
||
| ### Stage 4: Dispatch and collect reviewers | ||
|
|
||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.