---
name: "Auto-assign backoff for failed merge items"
---

# Story 233: Auto-assign backoff for failed merge items

## User Story

As a supervisor, I want auto-assign to stop retrying stories in 4_merge/ that have repeatedly failed, so that one broken merge doesn't block the entire queue and burn API credits in an infinite loop.

## Acceptance Criteria

- [ ] When a mergemaster agent completes with gates_passed=false, the story_id is added to a persistent failure set (in-memory is fine, survives across agent completions but not server restarts)
- [ ] auto_assign_available_work skips items in 4_merge/ that are in the failure set
- [ ] The failure set is cleared for a story when: a) the story file is manually moved out of 4_merge/, or b) a human explicitly calls start_agent for it
- [ ] Empty squash merges (merge succeeds but nothing staged) produce a clear, non-retryable error message explaining the feature branch has no unique changes vs master
- [ ] Regression test: mergemaster fails on story X, auto-assign runs, story X is NOT re-assigned
- [ ] Regression test: after manual start_agent clears the failure, auto-assign can pick it up again

## Out of Scope

- TBD
