From d62abd32c787eb0618822f0a34d0b8f83853b353 Mon Sep 17 00:00:00 2001 From: Dave Date: Fri, 27 Feb 2026 11:50:52 +0000 Subject: [PATCH] story-kit: create 233_story_auto_assign_backoff_for_failed_merge_items --- ...o_assign_backoff_for_failed_merge_items.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .story_kit/work/1_upcoming/233_story_auto_assign_backoff_for_failed_merge_items.md diff --git a/.story_kit/work/1_upcoming/233_story_auto_assign_backoff_for_failed_merge_items.md b/.story_kit/work/1_upcoming/233_story_auto_assign_backoff_for_failed_merge_items.md new file mode 100644 index 0000000..d170a32 --- /dev/null +++ b/.story_kit/work/1_upcoming/233_story_auto_assign_backoff_for_failed_merge_items.md @@ -0,0 +1,22 @@ +--- +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