Remove integrator, checker, and reviewer_unified agent roles - #1193
Remove integrator, checker, and reviewer_unified agent roles#1193james-in-a-box[bot] wants to merge 8 commits into
Conversation
Remove three agent roles per the new team roster (issue #1030): - integrator: standalone post-phase validation agent, replaced by real-time Code Reviewer + Contract Reviewer + Tester - checker: lint/type-check/auto-fix agent, responsibilities absorbed into the tester role - reviewer_unified: vestigial backwards-compat enum value Changes across 61 files: - Remove from all 5 AgentRole enums and the AgentType enum - Delete INTEGRATOR_ROLE, CHECKER_ROLE definitions and registrations - Update TESTER_ROLE with checker responsibilities (lint, type-check, auto-fix, source file write access) - Update REVIEWER_CODE_ROLE/REVIEWER_CONTRACT_ROLE dependencies from INTEGRATOR to TESTER - Remove from gateway restrictions (patterns, GH restrictions, Tier 3) - Remove checker edge from implement review graph - Delete CheckerAttestation schema - Update pipeline routes: remove integrator execution flow, re-attribute checker spawning to tester - Delete integrator-mode.md, checker-mode.md commands, integrator-agent.md reference, test_integrator_tier3.py - Update all documentation and ~20 test files
This comment has been minimized.
This comment has been minimized.
Autofix tracking{"Lint/Python": 3, "Test/Unit Tests": 2} |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
# Conflicts: # sandbox/.claude/commands/checker-mode.md
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
No agent-mode design concerns.
This is a role consolidation PR that simplifies the agent roster from 7 to 5 implement-phase agents. From an agent-mode design perspective:
- No anti-patterns introduced: No new pre-fetching, structured output requirements, post-processing pipelines, rigid procedures, prompt-level security, direct API calls, or hardcoded model IDs.
- Sandbox-enforced constraints preserved: The tester's expanded file access (absorbing checker patterns) is enforced via the gateway's
AgentFilePatternsystem, consistent with the "sandbox is the constraint" principle. - Reduced coordination complexity: Fewer agents (5 review edges → 4) means simpler BRC consensus with less overhead, aligning with avoiding unnecessary complexity.
- Integrator attestation verification removed: The integrator's post-consensus attestation cross-referencing (anti-sycophancy measure #4) is gone, but the remaining three measures (structured attestations, independent judgment sequencing, critical thinking prompts) are preserved. This is a reasonable tradeoff for the simplification gained.
— Authored by egg
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Review: Remove integrator, checker, and reviewer_unified agent roles
Thorough review of all 61 changed files. The core removal is well-executed — business logic in the orchestrator, gateway, and shared contracts is correctly updated. However, there are 2 blocking issues and several non-blocking issues that should be addressed.
Blocking Issues
1. No backward compatibility for deserialization of persisted data with removed role values
Files: shared/egg_contracts/models.py, shared/egg_contracts/checkpoints.py
AgentRoleType and AgentType are strict StrEnum types. Any persisted contract JSON or checkpoint data that contains "integrator", "checker", or "reviewer_unified" will raise a ValidationError when Pydantic attempts to deserialize it. This affects:
AgentExecutionModel.role(models.py:344) — old contracts with"role": "integrator"fail to loadMultiAgentConfig.roles_enabled(models.py:398) — old contracts with removed roles in the list fail to loadPhaseAgentConfig.roles(models.py:379) — same patternCheckpointV2.agent_typeandCheckpointSummaryV2.agent_type(checkpoints.py:235, 308) — old checkpoints with"integrator"or"checker"agent types fail to deserialize
Note: OrchestrationState.from_contract() (orchestration.py:99-107) has a try/except ValueError guard, but it never runs if the Contract model itself fails to construct.
Fix: Add field_validator(mode='before') on each affected field that either filters out unknown role strings (for lists) or maps them to a sensible fallback. For AgentType, map removed values to AgentType.UNKNOWN. For AgentExecutionModel, either skip the execution or map to a "legacy" sentinel.
2. Missing strict validation for tester-as-reviewer attestation
File: orchestrator/attestation_schemas.py:206-216
The tester is registered as a reviewer in REVIEWER_ATTESTATION_MODELS (line 87), but _validate_strict has no branch for role == "tester" in the is_producer=False (reviewer) path. When the tester submits a reviewer attestation in strict mode, no field validation occurs — it silently passes regardless of content.
The old checker role had strict validation requiring non-empty lint_results. Since the tester absorbs checker's review duties, there should be an equivalent strict check.
Fix: Add a branch in the reviewer side of _validate_strict:
elif role == "tester" and isinstance(instance, TesterAttestation):
if instance.tests_run == 0:
raise ValueError(
"Tester reviewer attestation requires tests_run > 0 in strict mode"
)Non-Blocking Issues
3. sandbox/.claude/rules/mission.md — stale references (not updated by this PR)
This file is assembled into every agent's CLAUDE.md at container startup. It still contains:
- Line 187:
### Reviewer Workflow (reviewer_code, reviewer_contract, checker)— "checker" should be removed - Line 235:
Tester/documenter/checker/reviewer— "checker" should be removed - Lines 236-237: "integrator notes the gap" / "integrator notes review gap" — stale
4. sandbox/.claude/rules/integrator.md — not deleted
This file still exists and references docs/reference/integrator-agent.md (which IS correctly deleted). Additionally, sandbox/entrypoint.py:811 still lists "integrator.md" in rules_order, so this stale file would be assembled into CLAUDE.md for integrator-roled agents (which no longer exist, so it's dead code, but should still be cleaned up).
5. sandbox/.claude/commands/README.md — stale references
Lines 43-46 and 53-56 still reference the deleted integrator-mode.md and checker-mode.md command files.
6. sandbox/.claude/commands/coder-mode.md — stale "checker" references
Lines 95, 109, 134 reference "checker" as a downstream agent waiting on coder output.
7. config/README.md — stale "checker" references
Lines 153 and 172 say "checker agent" and "checker step" where they should now say "tester".
8. gateway/README.md — stale references
Line 92 still references INTEGRATOR_TIER3_PATTERNS and the integrator role. Line 457 still lists test_integrator_tier3.py in the directory tree.
9. gateway/phase_filter.py:943 — stale docstring
Docstring says "Tester: test files only" but the tester now has source code write access for auto-fix.
10. shared/README.md:260 — stale reference
Still says "tier-aware integrator access for Tier 3".
11. docs/architecture/orchestrator.md:442 — stale reference
Says "Sandbox checker" where it should say "Sandbox tester".
12. Stale naming in orchestrator code
orchestrator/routes/pipelines.py:6715,6729: Variable namedchecker_envbut sets role to"tester"— should betester_envorchestrator/routes/pipelines.py:5312: Function_build_checker_prompt(deprecated, not called from production code, but inconsistent naming)orchestrator/devserver.py:904: Methodattach_checkerwith correct docstring saying "tester" — method name should match
13. shared/egg_contracts/orchestration.py:368 — stale docstring
Says "defaults to the 4 implement-phase roles" but the default is now 3 roles.
14. Stale test comments
orchestrator/tests/test_brc_nack_iteration.py:96: Comment says "checker ACKs" but code usesreviewer_contractorchestrator/tests/test_peer_consensus_integration.py:451,462,507,532: Multiple comments reference "checker" where code usesrev_extragateway/tests/test_phase_filter_tier3.py:5,12: References "Non-integrator roles"
15. Missing test: tester writing to .egg-state/reviews/
The old TestCheckerRole had test_can_write_reviews but the new TestTesterRole does not have an equivalent test for writing to .egg-state/reviews/ (the BRC concurrent mode path).
Summary
| # | Severity | Area | Issue |
|---|---|---|---|
| 1 | Blocking | shared/egg_contracts/ |
No backward compat for persisted data with removed role values |
| 2 | Blocking | orchestrator/attestation_schemas.py |
Tester-as-reviewer strict validation gap |
| 3-6 | Non-blocking | sandbox/ |
Stale references in agent instruction files |
| 7-11 | Non-blocking | docs, config, gateway | Stale references in documentation |
| 12-14 | Non-blocking | orchestrator | Stale variable/function names and comments |
| 15 | Non-blocking | gateway tests | Missing tester review-write test |
The core business logic — pipeline launch, dispatch, review graph, DAG visualization, gateway restrictions, role mapping — is all correctly updated. The blocking items are (1) a runtime breakage when loading old persisted data and (2) a validation gap that undermines BRC anti-sycophancy guarantees.
— Authored by egg
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Fix both blocking issues from review: 1. Add field_validator(mode='before') on AgentRoleType and AgentType fields to handle removed role values (integrator, checker, reviewer_unified) in persisted data without raising ValidationError. 2. Add tester-as-reviewer strict validation in _validate_strict() to require tests_run > 0 when tester submits reviewer attestation. Fix all non-blocking issues: - Remove stale checker/integrator references from mission.md, coder-mode.md, commands/README.md, config/README.md, gateway/README.md, shared/README.md, docs/architecture/orchestrator.md - Delete sandbox/.claude/rules/integrator.md and its entrypoint.py reference - Rename checker_env -> tester_env, _build_checker_prompt -> _build_tester_prompt, attach_checker -> attach_tester - Fix stale comments in test_brc_nack_iteration.py, test_peer_consensus_integration.py, test_phase_filter_tier3.py - Update phase_filter.py docstring for tester's expanded file access - Fix orchestration.py docstring (4 -> 3 implement-phase roles) - Add missing test_can_write_reviews for tester in test_agent_restrictions_patterns.py
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
No agent-mode design concerns.
Re-review after force-push (previous review at a09fd38). The agent-mode design aspects are unchanged — the force-push addressed backward compatibility validators and tester strict validation, which are general code concerns, not agent-mode design.
Key agent-mode design observations (unchanged from previous review):
- Sandbox-enforced constraints preserved: Tester's expanded file access (absorbing checker's patterns) is enforced via
AgentFilePatternand gateway restrictions — consistent with "sandbox is the constraint" principle. - Reduced BRC coordination complexity: Fewer agents (5 review edges → 4) means simpler consensus with less overhead.
- No anti-patterns introduced: No new pre-fetching, structured output requirements, post-processing pipelines, rigid procedures, or direct API calls.
- Agent instructions updated consistently:
mission.md,coder-mode.md, and the BRC preamble builder all correctly remove checker/integrator references.
— Authored by egg
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Re-review: Remove integrator, checker, and reviewer_unified agent roles
Reviewed delta from a09fd38 → b1cc4ed (21 files changed). Both blocking issues from the previous review are properly fixed. The backward-compatibility validators are correct and the tester-as-reviewer strict validation gap is closed.
Blocking Issues — Resolution Verified
1. Backward compatibility for deserialized data ✅
All four validators are correctly implemented:
Contract._filter_removed_agent_roles(models.py:474): Filters at the list level before Pydantic constructsAgentExecutionModel, avoidingValidationErroron removedrolevalues. Thenot isinstance(item, dict)passthrough is correct formode="before"— non-dict items (pre-constructed models) will already have valid roles.PhaseAgentConfig._filter_removed_rolesandMultiAgentConfig._filter_removed_roles(models.py:386, 412): Filter logicnot isinstance(r, str) or r in validcorrectly handles both raw strings from JSON andStrEnuminstances (which areisinstance(str)and compare against the valid set).CheckpointV2._coerce_removed_agent_typesandCheckpointSummaryV2._coerce_removed_agent_types(checkpoints.py:272, 340): Correctly map unrecognized string values toAgentType.UNKNOWN.value, returning a string for themode="before"phase so Pydantic's subsequent validation coerces it to the enum.OrchestrationState.from_contract()(orchestration.py:99-107):try/except ValueErrorsafety net retained as defense-in-depth.
2. Tester-as-reviewer strict validation ✅
New branch at attestation_schemas.py:217-221 validates tests_run > 0 for tester in the reviewer path. This matches the suggested fix exactly.
Previous Non-Blocking Issues — Status
| # | Issue | Status |
|---|---|---|
| 3 | mission.md stale references |
✅ Fixed |
| 4 | integrator.md not deleted |
✅ Deleted |
| 5 | commands/README.md stale references |
✅ Fixed |
| 6 | coder-mode.md stale references |
|
| 7 | config/README.md stale references |
✅ Fixed |
| 8 | gateway/README.md stale references |
✅ Fixed |
| 9 | phase_filter.py stale docstring |
✅ Fixed |
| 10 | shared/README.md stale reference |
✅ Fixed |
| 11 | orchestrator.md stale reference |
✅ Fixed |
| 12 | Stale naming in orchestrator code | ✅ All three renamed |
| 13 | orchestration.py stale docstring |
✅ Fixed (4 → 3) |
| 14 | Stale test comments | ✅ All flagged instances fixed |
| 15 | Missing tester review-write test | ✅ test_can_write_reviews added |
New Non-Blocking Issues
16. sandbox/.claude/commands/coder-mode.md:141 — leftover from issue #6
After you complete, the **Tester**, **Documenter**, **Checker**, **Reviewer (code)**, and **Reviewer (contract)** agents can run in parallel.
Should remove "Checker" from this list.
17. JSON schemas not updated
.egg/schemas/contract.schema.json still lists removed roles in enum definitions (lines 697, 779) and — more importantly — includes "integrator" in the default roles_enabled (line 781):
"default": ["coder", "tester", "documenter", "integrator"]Similarly, .egg/schemas/checkpoint.schema.json (lines 67, 148) and .egg/schemas/usage.schema.json (line 126) still include removed role values.
The Python validators handle this gracefully at runtime, so it won't cause failures. But external tools consuming these schemas will generate contracts with stale defaults.
18. README.md — stale architecture description
Lines 44-45 still show ✓ checker and ✓ integrator in the ASCII diagram. Line 87 describes Tier 3 as "coder → tester → documenter → checker → code reviewer" with an integrator step.
19. orchestrator/README.md — stale role references
Line 51 lists "Checker, Integrator" in the implement phase agents. Line 65 describes Tier 3 with the old agent sequence.
20. sandbox/README.md:86 — references deleted integrator-mode.md
The file tree listing still shows ├── integrator-mode.md.
21. No tests for backward-compat validators
The new validators in models.py and checkpoints.py have no dedicated test coverage. A test that deserializes a contract containing "role": "integrator" in agent_executions and verifies it's silently dropped would provide confidence against regressions.
22. Test files still use "checker" as a role name
orchestrator/tests/test_peer_consensus_integration.py (lines 1110-1363) has ~8 test functions that set up review graphs with ReviewEdge("checker", ...) and t.register_agent("checker"). orchestrator/tests/test_decisions_routes.py (lines 658-692) tests HITL decision handling with "failed_role:checker". These tests pass because the BRC tracker is string-based, but they test scenarios that can no longer occur in production.
Verdict
Both blocking issues are resolved with correct, well-structured code. The backward-compat validators handle all realistic code paths. Approving — the remaining items are documentation and test cleanup that can be addressed in a follow-up.
— Authored by egg
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…tests Remove leftover checker/integrator references from docs, JSON schemas, agent instructions, and test files. Add dedicated tests for the backward- compatibility validators that handle deserialization of old persisted data containing removed role values.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
No agent-mode design concerns.
Re-review after feedback-addressing commit (183302c). The delta since b1cc4ed is cleanup work — removing stale checker/integrator references from agent instructions (mission.md, coder-mode.md, commands/README.md), deleting checker-mode.md and integrator-mode.md, removing integrator.md from entrypoint.py rules assembly, and renaming orchestrator functions/variables from "checker" to "tester". No new agent-mode design patterns or anti-patterns introduced.
Agent instruction files are now internally consistent with the reduced 5-agent roster. The BRC preamble builder is unchanged and correctly omits removed roles.
— Authored by egg
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
egg review failed. View run logs 21 previous review(s) hidden. |
…: resolve 35 conflicts Resolve merge conflicts between PR #1193 (remove integrator, checker, reviewer_unified roles) and main branch changes (primarily e4bca17 which removed Tier 3 dispatch/integrator, and added checker role). Conflict resolution strategy: - Accept PR's removal of checker role (PR's explicit intent) - Accept main's removal of Tier 3/dispatch code - Keep PR's reviewer dependency on TESTER (core PR change) - Keep PR's tester source file write access (checker absorption) - Keep backward compat validator for removed agent roles - Delete files removed by both sides (modify/delete conflicts)
Conflict Resolution SummaryResolved merge conflicts with
Conflict Categorization & Resolution
Post-Merge FixesFixed 2 tests that referenced removed checker role / Tier 3 models:
Verification
Reviewer NotesPlease review these semantic resolutions:
— Authored by egg |
|
egg conflict resolution completed. View run logs |
The checker agent ran as a sequential post-BRC step to lint, type-check, and auto-fix code. The tester now handles these responsibilities within BRC consensus, eliminating the separate checker container spawn. - Remove CHECKER and REVIEWER_UNIFIED from all AgentRole enums (5 files) - Delete CHECKER_ROLE definition, expand TESTER_ROLE with lint/type-check responsibilities and source file write access for auto-fixes - Remove CHECKER_PATTERNS and REVIEWER_UNIFIED_PATTERNS from gateway - Expand TESTER_PATTERNS to include source code write patterns - Remove checker edge from implement review graph - Delete CheckerAttestation, add lint/type fields to TesterAttestation - Delete _build_checker_prompt, _build_autofix_prompt, and _build_check_and_fix_prompt functions - Remove sequential checker spawn from pipeline execution - Expand tester prompt with lint/type-check/auto-fix instructions - Delete sandbox/.claude/commands/checker-mode.md - Update tester-mode.md with new responsibilities - Update all documentation and schemas - Add removal validation tests for checker and reviewer_unified Issue: #1193
…#1199) * Add agent-design review verdict for #1165 refine phase: needs_revision (draft missing) * Update agent-design review for #1165 refine phase: needs_revision (draft still missing) * Add refine review verdict for #1165 refine phase: needs_revision (draft missing) * Add refine analysis for #1165: remove conditional dispatch paths * Update analysis: coordinator fully removed, drop stale decision * Update agent-design review for #1165: approved with metadata concern * Approve refine analysis for #1165: verified code refs, options, and decisions * Add agent-design review for issue #1165 refine phase * Add refine review for #1165: approved with minor line-number suggestions * Initialize SDLC contract for issue #1165 * Review 1165 refine phase: agent-design approved * Add refine review verdict for #1165: needs_revision (HITL decisions not registered) * Update refine analysis for #1165: fix line refs, register HITL decisions * Update agent-design review for #1165: re-approved after v1 revision * Update refine review for #1165: approved after HITL decisions registered and line refs fixed * Add agent-design review for #1165: approved * Add refine review verdict for #1165 — approved * Persist statefiles after refine phase * Plan review cycle 1 for #1165: needs_revision — plan draft still missing * Add implementation plan for #1165: remove per-phase dispatch * Add risk assessment for #1165: remove per-phase dispatch * Add architect analysis for #1165: remove conditional dispatch paths * Fix agent_roles.py path: orchestrator/ -> shared/egg_contracts/ * Add PhaseDependencyGraph/PhaseWave removal task (TASK-3-2b) * Plan review for #1165: approved with noted gap (PhaseDependencyGraph removal) * Plan review for #1165: needs_revision (wrong file path in TASK-2-3/2-4/2-5) * Plan review cycle 1 for #1165: needs_revision (blocking issue still unfixed) * Fix file paths in TASK-2-3/2-4/2-5: orchestrator/orchestrator.py -> orchestrator/routes/pipelines.py * Update risk assessment v2 for #1165: add RISK-8/RISK-9 from plan review * Plan review for #1165: approved (revision 4 fixes file path issue) * Update architect analysis for #1165: fix file paths, add INTEGRATOR enum handling * Add plan review verdict for issue #1165 (cycle 2): approved * Persist statefiles after plan phase * Phase 1: Prerequisite relocations and refactors - Relocate is_concurrent_execution() from multi_agent.py to concurrent_executor.py - Refactor signals.py to use direct egg_contracts calls instead of dispatch.py - Remove integrator from reviewer dependency lists and ROLE_MAP * Remove stale references to integrator, complexity tiers, short-circuit, and tier 3 dispatch from documentation Update 17 documentation files to reflect the removal of: - Integrator agent role and all references - Complexity tier system (low/mid/high) and short-circuit mode - Tier 3 phase-level dispatch and PhaseDependencyGraph - Multi-agent wave execution model - Stale reviewer re-review mechanism All phases now use concurrent BRC execution exclusively. * Add validation tests for #1165 removal of per-phase dispatch paths * Phase 2: Core orchestrator removal - Delete multi_agent.py and dispatch.py - Collapse decision tree to always use concurrent BRC execution - Remove _build_phase_scoped_prompt, _run_tier3_implement, _run_multi_agent_phase - Remove _check_short_circuit_signal and _check_high_complexity_signal - Remove short_circuit parameter from _build_phase_prompt and _build_agent_prompt - Remove ComplexityTier enum and related Pipeline model fields - Remove MultiAgentExecutor test classes from health check tests * Phase 3: Remove INTEGRATOR role and complexity_tier from all modules * Phase 4: Remove dead code - PhaseDependencyGraph, MultiAgentConfig, Tier 3 visualization, plan_phase_id params * Remove obsolete tests for deleted features (Tier 3, dispatch, short-circuit, integrator) * Fix remaining test failures: remove INTEGRATOR refs and tier3 test files * Fix tests for removed integrator role, complexity_tier, and short-circuit * Fix remaining tests referencing removed INTEGRATOR role * Remove tests for deleted _build_phase_scoped_prompt function * Remove test_short_circuit_embeds_analysis test for removed short-circuit mode * Fix indentation in test_pipeline_prompts.py * Add plan review verdict for issue #1165 (cycle 2): approved * Persist statefiles after plan phase * Phase 1: Prerequisite relocations and refactors - Relocate is_concurrent_execution() from multi_agent.py to concurrent_executor.py - Refactor signals.py to use direct egg_contracts calls instead of dispatch.py - Remove integrator from reviewer dependency lists and ROLE_MAP * Remove stale references to integrator, complexity tiers, short-circuit, and tier 3 dispatch from documentation Update 17 documentation files to reflect the removal of: - Integrator agent role and all references - Complexity tier system (low/mid/high) and short-circuit mode - Tier 3 phase-level dispatch and PhaseDependencyGraph - Multi-agent wave execution model - Stale reviewer re-review mechanism All phases now use concurrent BRC execution exclusively. * Add validation tests for #1165 removal of per-phase dispatch paths * Phase 2: Core orchestrator removal - Delete multi_agent.py and dispatch.py - Collapse decision tree to always use concurrent BRC execution - Remove _build_phase_scoped_prompt, _run_tier3_implement, _run_multi_agent_phase - Remove _check_short_circuit_signal and _check_high_complexity_signal - Remove short_circuit parameter from _build_phase_prompt and _build_agent_prompt - Remove ComplexityTier enum and related Pipeline model fields - Remove MultiAgentExecutor test classes from health check tests * Phase 3: Remove INTEGRATOR role and complexity_tier from all modules * Phase 4: Remove dead code - PhaseDependencyGraph, MultiAgentConfig, Tier 3 visualization, plan_phase_id params * Remove obsolete tests for deleted features (Tier 3, dispatch, short-circuit, integrator) * Fix remaining test failures: remove INTEGRATOR refs and tier3 test files * Fix tests for removed integrator role, complexity_tier, and short-circuit * Fix remaining tests referencing removed INTEGRATOR role * Remove tests for deleted _build_phase_scoped_prompt function * Remove test_short_circuit_embeds_analysis test for removed short-circuit mode * Fix indentation in test_pipeline_prompts.py * Fix checks: apply automated formatting fixes * Fix checks: remove orphaned skip_plan reference in _run_pipeline * Remove stale skip_plan reference from phase advancement * Fix multi_agent import in test_concurrent_integration.py The PR relocated is_concurrent_execution from multi_agent.py to concurrent_executor.py. Tests added on main still referenced the old module path. * Increase feedback workflow timeout from 20 to 30 minutes * Address review feedback: complete cleanup of removed concepts - Restore AgentType.INTEGRATOR in checkpoints for backward compat - Remove ~180 lines dead code after unconditional break in review loop - Remove integrator prompt code and tests - Remove max_parallel_agents and --multi-agent CLI plumbing - Delete test_multi_agent_orchestration.py (imports removed classes) - Remove integrator from VALID_AGENT_ROLES, entrypoint rules, docs - Clean up stale Tier 3, short-circuit, and dispatch comments - Remove complexity_tier stale mock in gateway tests * Fix: remove unused review_feedback variable in pipelines.py * Fix checks: apply automated formatting fixes * Clean up stale references to removed concepts in docs and comments Remove references to deleted files (multi_agent.py, dispatch.py, test_multi_agent_orchestration.py), removed concepts (Tier 3, multi_agent_config), and update file trees and instructions to reflect the always-BRC concurrent execution model. * Clean up remaining stale references from per-phase dispatch removal - Remove stale complexity_tier documentation from gateway/README.md - Remove deleted test_integrator_tier3.py from gateway/README.md listing - Update _run_pipeline docstring to describe concurrent BRC execution - Update _build_agent_prompt docstring to remove wave execution reference - Mark multi_agent_config in contract schema as deprecated for backward compat * Remove backwards compat code and address review feedback from #1184 * Remove checker and reviewer_unified roles, absorb checker into tester The checker agent ran as a sequential post-BRC step to lint, type-check, and auto-fix code. The tester now handles these responsibilities within BRC consensus, eliminating the separate checker container spawn. - Remove CHECKER and REVIEWER_UNIFIED from all AgentRole enums (5 files) - Delete CHECKER_ROLE definition, expand TESTER_ROLE with lint/type-check responsibilities and source file write access for auto-fixes - Remove CHECKER_PATTERNS and REVIEWER_UNIFIED_PATTERNS from gateway - Expand TESTER_PATTERNS to include source code write patterns - Remove checker edge from implement review graph - Delete CheckerAttestation, add lint/type fields to TesterAttestation - Delete _build_checker_prompt, _build_autofix_prompt, and _build_check_and_fix_prompt functions - Remove sequential checker spawn from pipeline execution - Expand tester prompt with lint/type-check/auto-fix instructions - Delete sandbox/.claude/commands/checker-mode.md - Update tester-mode.md with new responsibilities - Update all documentation and schemas - Add removal validation tests for checker and reviewer_unified Issue: #1193 * Fix checks: apply automated formatting fixes * Fix tester write test to reflect expanded role (checker absorbed) * Address review feedback on checker-to-tester PR - Add model_validator on AgentExecution and ContainerInfo to migrate persisted 'checker' -> 'tester' and 'reviewer_unified' -> 'reviewer_code' roles, preventing deserialization crashes on old pipeline state - Add deprecation warning when EGG_REPO_CHECKS env var is set but unused (checker role removed; tester discovers checks from project config files) - Document implement-results.json as deprecated in orchestrator docs - Fix reviewer_code re-ACK artifact reference in consensus integration test to cover the NACKed artifact (src/utils.py) - Fix review edge count in agent-teams docs: 5 edges (4 critical + 1 advisory) - Add checker/reviewer_unified stale patterns to Section 18 validation tests * Add missing reviewer_unified ContainerInfo migration test --------- Co-authored-by: egg <egg@localhost> Co-authored-by: james-in-a-box[bot] <246424927+james-in-a-box[bot]@users.noreply.github.com> Co-authored-by: jwbron <8340608+jwbron@users.noreply.github.com> Co-authored-by: egg-reviewer[bot] <261018737+egg-reviewer[bot]@users.noreply.github.com>
Summary
Changes
Removes integrator (standalone post-phase validator), checker (lint/type-check agent), and reviewer_unified (vestigial compat value) from all enum definitions, role registries, gateway restrictions, review graphs, attestation schemas, pipeline routes, documentation, and tests across 61 files (-2252/+352 lines).
The tester role now handles lint/type-check/auto-fix with expanded source file write access. Reviewer dependencies updated from INTEGRATOR → TESTER.
Issue: #1030
Test plan
grep -rn "integrator\|checker\|reviewer_unified" --include="*.py"returns zero hits outside of function names like_build_checker_promptand unrelatedRepoVisibilityCheckerpython -c "from egg_contracts.agent_roles import AgentRole; print(list(AgentRole))"Authored-by: egg