# Review Convergence Implementation Plan

> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.

**Goal:** Make review loops converge by separating blocking defects from advisory acceptance findings.

**Architecture:** Extend the existing review artifact and apply one filtering rule at the shared `_enter_fix` boundary. Keep the current state machine and persistence model.

**Tech Stack:** Python 3.12, Pydantic, pytest

**Spec:** `docs/superpowers/specs/2026-09-14-review-convergence-design.md`

## Global Constraints

- Preserve old review artifacts by defaulting missing kinds to `CODE_BLOCKER`.
- Do not weaken blocker, test, security, or regression handling.
- Do not add dependencies.

### Task 1: Review issue classification

**Files:** Modify `dual_agent/domain.py`; test `tests/test_review_convergence.py`.

- [ ] Write failing tests for blocking and advisory issue selection.
- [ ] Add `ReviewIssue.kind`, `blocking_issue_ids()`, and `advisory_issue_ids()`.
- [ ] Run focused tests.

### Task 2: Convergent stage outcomes

**Files:** Modify `dual_agent/services.py`; test `tests/test_review_convergence.py`.

- [ ] Write failing tests for advisory-only REVIEW, advisory-only FINAL_VERIFY, and mixed reviews.
- [ ] Filter at `_enter_fix`; record advisory issues and advance when no blockers remain.
- [ ] Add category instructions to reviewer handoff.
- [ ] Run focused tests.

### Task 3: Deploy and verify

**Files:** Upload `dual_agent/domain.py`, `dual_agent/services.py`, and the regression test.

- [ ] Run the complete suite with browser enforcement.
- [ ] Back up and upload files.
- [ ] Restart the exact listener and verify health/task APIs.
