mode:report-only and mode:headless should short-circuit before any gh
call — they don't need PR state to emit their "cannot switch shared
checkout" messages. Previously the skip probe (gh pr view) ran first,
causing environments without gh auth to abort early instead of hitting
the documented mode behavior. Reordered: mode guard first, then skip
probe.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Demotion rule (step 6c) now requires ALL contributing reviewers to
be testing/maintainability; a finding corroborated by any other
persona (security, correctness, etc.) is kept in primary findings
regardless of severity or advisory status
- Stage 5b Option C scope corrected in both the mode table and step 1:
File-tickets path validates all pending findings regardless of
recommended action (not just Apply/Defer), since every finding is
externalized as a ticket
- Stage 5b validator input makes why_it_matters optional — included
when the artifact file exists, omitted when the write failed; a
missing artifact no longer causes a validator failure or finding drop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
gpt-4.1-mini is stale. Current OpenAI lineup is gpt-5.4 / gpt-5.4-mini
/ gpt-5.4-nano. Update mid-tier reference to gpt-5.4-mini and the
lightweight pre-check reference to gpt-5.4-nano.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
gpt-4o is stale as of April 2025; gpt-4.1-mini is the current Sonnet
equivalent — same quality, 83% cheaper, ~2x faster.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Correctness, security, and adversarial reviewers inherit the session
model (no override) -- these run the highest-stakes analysis and
should use whatever capability the user configured, typically Opus.
All other persona and CE sub-agents are explicitly pinned to mid-tier
(sonnet) since their work is more mechanical: test coverage, style,
standards compliance, learnings search, agent-native checks.
Orchestrator also inherits session model (unchanged behavior, now
explicit in the rationale).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove draft-PR skip: reviewing in-progress work is valuable, not a
reason to stop
- Remove already-reviewed skip: we don't post PR comments so there is
no reliable signal to detect prior runs
- Replace chore(deps)/chore:release regex with a Haiku (Claude) /
GPT-4.1-mini (Codex) sub-agent that judges trivial PRs by reading
title, body, and file list -- LLM judgment beats pattern matching for
lock-file bumps, release commits, and other auto-generated changes
- Update contract tests to match: verify draft is not skipped, verify
lightweight model dispatch, remove regex literal assertions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Restrict already-reviewed skip rule to comments authored by the
current authenticated user (gh api user -q .login), preventing
false skips from third-party or human comments with ## Code Review
headings
- Split walk-through Stage 5b table row: per-finding phase stays No
(user is the validator), LFG-the-rest handoff now runs Stage 5b on
the remaining action set before bulk-preview dispatch — same gate as
top-level LFG (option B)
- Update walkthrough.md LFG-the-rest routing to insert the Stage 5b
validator gate before bulk-preview dispatch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Three review-feedback fixes:
1. Move the confidence gate to after dedup, cross-reviewer promotion, and
mode-aware demotion. Previously the gate ran at step 2 and silently dropped
anchor-50 findings before promotion (50 -> 75) or demotion (advisory ->
soft buckets) could touch them, making both rules unreachable for matching
anchor-50 inputs and contradicting the persona rubric.
2. Demotion text now uses title only ("file:line -- title") instead of
"file:line -- title: why_it_matters". The compact return omits
why_it_matters and report-only mode skips artifact files entirely, so the
field was unavailable in the modes the rule applies to.
3. Update the compact-return JSON example from "confidence": 0.92 to
"confidence": 100. The float was inconsistent with the schema's integer
enum and would have been dropped by the Stage 5 validator if a persona
followed the example literally.
Tests updated for the reordered step numbering and new demotion wording.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>