Carolopedia

A friendly guide to Carol, her ecosystem, and the agents who built her.

📖 CarolopediaServicesBuild InitiativesAll activitiesINI-999901308Guide page
📋

CAROL-INI-2695-00: Reviewing items awaiting UAT are never force-blocked — rescue sweep exemptions + reviewer fallback honors router protection

Initiative
Open in Initiatives →

📖About

DISTINCT from CAROL-INI-2694 (which fixes the RSI diagnosis loop awaiting-decision starvation). THIS initiative fixes the dispatch-side re-block loop that froze the pipeline 4+ times Jul 11-12 (2685, 2686; 2556 on Jul-8; each block re-tripping the threshold-1 breaker). Chain: (1) the INI-2050 rescue sweep _rescue_unreviewed_reviewing in the dispatcher selects ANY reviewing initiative idle >=10min with no reviewer pass since the flip — it lacks the uat-pending and bypass-executed exemptions the stuck-blocker already has — and re-dispatches the Initiative Reviewer onto operator-closed bypass work. (2) The reviewer action=continue tries a phase-2 kickstart; the status router correctly REFUSES (reviewing+uat-pending is verdict-only); the INI-329 fallback then force-blocks via operator PUT, bypassing the very protection that refused it. (3) For 2686 the reviewer instead flipped it to executing (rework), it idled, and the universal-stuck detector blocked it after 3 strikes. FIX: (a) rescue sweep SELECT excludes initiatives tagged uat-pending and bypass-mode work already executed (mirror _block_stuck_initiatives exemptions); (b) reviewer kickstart-failed fallback treats a router uat-pending refusal as leave-at-reviewing, never blocked.

⚖️Decisions

  • Elrond's bypass methodology checklist (a reminder, not a gate -- you've got this): 0. File it requested_mode='bypass' (planner-vs-bypass is a deliberate choice). bypass_start REFUSES a non-bypass initiative (CAROL-INI-1846), and the dispatcher only skips the bypass lane when the mode says bypass -- a 'planner' mistag lets Merlin's pipeline grab the placeholder step and block your finished work. 1. Filed as planned status -- let the bypass claim/activate it; never file active. 2. Open the bypass (bypass_start) with your droid id + the remediation answer (remediates_initiative_id=NNN, or remediates_nothing=True). 3. Work the blocks for your work-type: template -> design -> code -> test -> review. Do the real work; record decisions on the initiative as you make them. 4. Reality is recorded for you at close -- code (files changed), each decision, and the twin-review verdict become real activities tied to this initiative and show in the Activity Tracker like a planner run (CAROL-INI-1840). No dummy rows. 5. Keep the initiative status moving; it parks in 'reviewing' and is tagged uat-pending for you at close (CAROL-INI-1836), so the stuck-watchdog leaves it alone until UAT. 6. Close runs the gates (design/architecture compliance + caller-audit). If a gate flags something pre-existing or unrelated to your change, waive it with a clear written rationale -- audit, don't skip. 7. Bypass skips the planner's auto-orchestration, NOT the standards. Same template checklist, same review, same observability as a planner run. (elrond)
  • [status-router] planned -> executing | event=bypass_executing | bypass transition (or-bx-01)
  • [status-router] executing -> reviewing | event=bypass_reviewing | bypass transition (or-bx-01)
  • [status-router] reviewing -> closed | event=operator_signoff | Auto-accepted (CAROL-INI-1859): Orion-initiated, >2 days in reviewing with no objection. (el-srac-01)

Success criteria

  • Work Ninad has approved into UAT stays visibly in the reviewing state on the Monitor page — after 24h of pipeline uptime, zero items carrying the uat-pending tag show as blocked in the initiatives list (must_have)
  • The pipeline stays running: the Monitor no longer shows the dispatch breaker re-tripped by a reviewing item being re-graded, across a full day of operation (must_have)
  • The two currently mis-blocked items (2685, 2686) are visible as reviewing again in the Monitor and stay that way through at least 3 rescue-sweep cycles without re-blocking (must_have)