Problem
The controller records blocked rows and review evidence, but there is no general repeated-blocker cap for reviewer redispatch. If the same reviewer role keeps producing the same reject/comment class for the same PR/head, the loop may keep spawning new reviewers instead of taking the next productive action.
Confirmed missing behavior
- No normalized repeated-blocker signature.
- No threshold for same blocker repeated N times.
- No forced transition from repeated review blocker to review-fix or human-blocked.
Evidence
/Users/chronoai/.claude/skills/consensus-loop/scripts/codex_refactor_loop/wakeup_runner.py: _blocked() records blocked rows but does not enforce a repeated-blocker threshold.
/Users/chronoai/.claude/skills/consensus-loop/scripts/codex_refactor_loop/wakeup_runner.py: _record() writes ledger entries without a repeated-blocker cap.
/Users/chronoai/.claude/skills/consensus-loop/scripts/codex_refactor_loop/wakeup_plan.py: redispatch planning is based on missing/stale live-head evidence, not blocker signature repetition.
Suggested fix
- Store normalized blocker signatures keyed by PR number, head SHA, role, verdict, and concise blocker reason.
- After the same blocker repeats 2 or 3 times, stop review redispatch.
- If the blocker is actionable, dispatch review-fix.
- If the blocker is non-actionable or requires maintainer judgment, mark human-blocked.
Acceptance criteria
- Repeating the same role/verdict/blocker does not produce unlimited new reviewer rounds.
- The controller records a durable
repeated_review_blocker decision.
- Tests cover repeated reject and repeated comment outcomes.
Review status
This was independently reviewed in /Users/chronoai/Desktop/proposed-main-repo-issues-review-gate.md and classified high confidence.
⟦AI:AUTO-LOOP⟧
ISSUE_RAISED:review-gate-hardening:repeated-review-blockers
Problem
The controller records blocked rows and review evidence, but there is no general repeated-blocker cap for reviewer redispatch. If the same reviewer role keeps producing the same reject/comment class for the same PR/head, the loop may keep spawning new reviewers instead of taking the next productive action.
Confirmed missing behavior
Evidence
/Users/chronoai/.claude/skills/consensus-loop/scripts/codex_refactor_loop/wakeup_runner.py:_blocked()records blocked rows but does not enforce a repeated-blocker threshold./Users/chronoai/.claude/skills/consensus-loop/scripts/codex_refactor_loop/wakeup_runner.py:_record()writes ledger entries without a repeated-blocker cap./Users/chronoai/.claude/skills/consensus-loop/scripts/codex_refactor_loop/wakeup_plan.py: redispatch planning is based on missing/stale live-head evidence, not blocker signature repetition.Suggested fix
Acceptance criteria
repeated_review_blockerdecision.Review status
This was independently reviewed in
/Users/chronoai/Desktop/proposed-main-repo-issues-review-gate.mdand classified high confidence.⟦AI:AUTO-LOOP⟧
ISSUE_RAISED:review-gate-hardening:repeated-review-blockers