Add code_review phase with approval gate, reviewer≠implementer enforcement, and structured CODE_REVIEW.md
CI / build (push) Has been cancelled

- Insert code_review phase between implement and bug_find
- Approval gate: code_review:awaiting_approval → code_review:approved
- Read-only phase — no edits, no fixes, no returning to implement
- Reviewer≠implementer: .state.implementer tracking + --claim enforcement
- Structured CODE_REVIEW.md: spec compliance, design conformance, quality
  scorecard, items found (severity/category/location/resolution), test coverage
- Updated status.py (10 data structures), dashboard (4 files), prompts (3 files),
  agent routing, tests (6 new test classes, 19 new tests)
This commit is contained in:
2026-06-16 09:00:22 -04:00
parent 42ccc7e2b7
commit 3d4c0926b4
12 changed files with 458 additions and 50 deletions
+3 -3
View File
@@ -45,7 +45,7 @@ def test_implementation_state(tmp_path: Path) -> None:
{"SPEC.md": "# Spec", "TEST_PLAN.md": "# Tests", "IMPLEMENTATION.md": "# Impl"},
)
state, _ = determine_task_state(task_dir)
assert state == TaskState.BUG_FIND
assert state == TaskState.IMPLEMENT
def test_implementation_from_test_plan(tmp_path: Path) -> None:
@@ -196,10 +196,10 @@ class TestVerdictParsing:
class TestStateMachineAlignment:
"""Tests for state machine alignment with orchestrate.md (R4)."""
def test_implementation_alone_shows_bug_find(self, tmp_path: Path) -> None:
def test_implementation_alone_shows_implement(self, tmp_path: Path) -> None:
task_dir = _make_task(tmp_path, "impl-only", {"IMPLEMENTATION.md": "# Impl"})
state, _ = determine_task_state(task_dir)
assert state == TaskState.BUG_FIND
assert state == TaskState.IMPLEMENT
def test_bug_report_without_adversarial(self, tmp_path: Path) -> None:
task_dir = _make_task(