Context
When a team member has a Reviewer role (e.g., Tester, Code Reviewer, Lead), they may approve or reject work from other agents. On rejection, the coordinator enforces strict lockout rules to ensure the original author does NOT self-revise. This prevents defensive feedback loops and ensures independent review.
Patterns
Reviewer Rejection Protocol
Quality and test reviewers may block a PR or merge on quality, coverage, or regression grounds. Treat that block as a rejection that enters the protocol below.
When a team member has a Reviewer role:
- Reviewers may approve or reject work from other agents.
- On rejection, the Reviewer may choose ONE of:
- Reassign: Require a different agent to do the revision (not the original author).
- Escalate: Require a new agent be spawned with specific expertise.
- The Coordinator MUST enforce this. If the Reviewer says "someone else should fix this," the original agent does NOT get to self-revise.
- If the Reviewer approves, work proceeds normally.
Strict Lockout Semantics
When an artifact is rejected by a Reviewer:
- The original author is locked out. They may NOT produce the next version of that artifact. No exceptions.
- A different agent MUST own the revision. The Coordinator selects the revision author based on the Reviewer's recommendation (reassign or escalate).
- The Coordinator enforces this mechanically. Before spawning a revision agent, the Coordinator MUST verify that the selected agent is NOT the original author. If the Reviewer names the original author as the fix agent, the Coordinator MUST refuse and ask the Reviewer to name a different agent.
- The locked-out author may NOT contribute to the revision in any form — not as a co-author, advisor, or pair. The revision must be independently produced.
- Lockout scope: The lockout applies to the specific artifact that was rejected. The original author may still work on other unrelated artifacts.
- Lockout duration: The lockout persists for that revision cycle. If the revision is also rejected, the same rule applies again — the revision author is now also locked out, and a third agent must revise.
- Deadlock handling: If all eligible agents have been locked out of an artifact, the Coordinator MUST escalate to the user rather than re-admitting a locked-out author.
Examples
Example 1: Reassign after rejection
- Runtime Engineer writes authentication module
- Quality Engineer reviews → rejects: "Error handling is missing. Another engineer should fix this."
- Coordinator: Runtime Engineer is now locked out of this artifact
- Coordinator spawns a different engineer to revise the authentication module
- The revision engineer produces v2
- Quality Engineer reviews v2 → approves
- Lockout clears for next artifact
Example 2: Escalate for expertise
- Original Author writes TypeScript config
- Lead reviews → rejects: "Need someone with deeper TS knowledge. Escalate."
- Coordinator: Original Author is now locked out
- Coordinator spawns new agent (or existing TS expert) to revise
- New agent produces v2
- Lead reviews v2
Example 3: Deadlock handling
- Original Author writes module → rejected
- Revision Engineer revises → rejected
- Quality Engineer revises → rejected
- All 3 eligible agents are now locked out
- Coordinator: "All eligible agents have been locked out. Escalating to user: [artifact details]"
Example 4: Reviewer accidentally names original author
- Original Author writes module → rejected
- Quality Engineer says: "The original author should fix the error handling"
- Coordinator: "The original author is locked out. Please name a different agent."
- Quality Engineer names a revision engineer
- Coordinator spawns the revision engineer
Anti-Patterns
- ❌ Allowing the original author to self-revise after rejection
- ❌ Treating the locked-out author as an "advisor" or "co-author" on the revision
- ❌ Re-admitting a locked-out author when deadlock occurs (must escalate to user)
- ❌ Applying lockout across unrelated artifacts (scope is per-artifact)
- ❌ Accepting the Reviewer's assignment when they name the original author (must refuse and ask for a different agent)
- ❌ Clearing lockout before the revision is approved (lockout persists through revision cycle)
- ❌ Skipping verification that the revision agent is not the original author