Repository navigation
Delete an Abandoned Group's Pushed Branch on a Checked Remote Delete - #3779
Conversation
Replace backlog-burndown's report-rather-than-delete for an abandoned group's pushed branch with a checked remote delete: the live remote tip must equal the local tip the no-merge check read, and no open pull request may use the branch as its head. The claim is released only once reading the ref back confirms the delete. Also state that `<branch>` in the claim-lookup command is replaced before it runs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ore the Delete Record the local tip before removal, require it to be an ancestor of origin/develop, read the remote tip with --exit-code, check open pull requests by head and base with a count, and name the hand-typed delete as the one this skill allows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
A recorded local strict-review pass covers head |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
There was a problem hiding this comment.
🟡 Changes recommended
Active moderate and critical findings remain in the cleanup procedure, including stale-tip checks, unsafe deletion ordering, incomplete pull-request pagination, and a non-atomic remote delete.
4 open issues
What changed in this PR
This pull request updates backlog-burndown to clean up abandoned groups with pushed branches through checked remote deletion, clarifies claim-lookup placeholder substitution, and regenerates the distributed skill files.
Changes:
- Adds ancestry, remote-tip, open pull-request, deletion, and read-back checks for pushed branches.
- Clarifies that
<branch>is replaced before running the claim lookup. - Regenerates the GitHub and Claude skill copies and updates the source digest.
- The implementation still has unresolved issues involving stale remote state, cleanup retryability, pull-request lookup completeness, and conditional deletion safety.
Review status: This pull request requires changes.
| File | Description |
|---|---|
.github/skills/backlog-burndown/SKILL.md |
Generated GitHub skill distribution. |
.claude-plugin/fleet-skills/skills/backlog-burndown/SKILL.md |
Generated Claude fleet skill distribution. |
.claude-plugin/fleet-skills/.source-digests/backlog-burndown |
Updated source digest for the generated skill. |
.agents/skills/backlog-burndown/SKILL.md |
Canonical backlog cleanup and claim-lookup procedure updates. |
Review effort: Lite
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #3779 +/- ##
========================================
Coverage 82.34% 82.34%
========================================
Files 28 28
Lines 9454 9454
========================================
Hits 7785 7785
Misses 1669 1669
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
A recorded local strict-review pass covers head |
…xcluded-Files Refusal, and Fix backlog-burndown and Prose Gate Gaps (#3778) Promotes the changes merged into `develop` since promotion #3762 to `main`, the first round of a backlog burndown. - [#3764](#3764) reads a bare push whose branch the write guard cannot read as writing every protected default (`main`, `master`, `develop`), as `--all` is. That covers a run-time `cd`, `git -C` or `env -C`, an exported `GIT_DIR`, and a command that can switch the branch before the push. It also drops the unused `_bare_push_branch` parameters. Naming the branch in the refspec is the remedy, per the maintainer's decisions on #3729 and #3730. - [#3765](#3765) has the prose gate's diff mode report what a move adds by checking a moved file at its old path and its new path, replacing the hand-kept `path_readings` table. It also reads a script whole when an edited shebang changes its lexer. - [#3776](#3776) fixes `backlog-burndown`'s ranking, claim, liveness and cleanup gaps: - An attended run holds an unapproved agent-safety issue. - Claim comments name their branch in backticks and are released by an edit. - A silent worker counts as finished only with a merged pull request. - The orchestrator removes a standalone clone after its merge. - An abandoned worker discards its own uncommitted edits. - [#3775](#3775) reads Copilot's excluded-files refusal as its own `excluded` kind, which an attested local pass covers on a pull request into a non-default branch. It aligns Merge Gate item 2 with the code on an earlier-head refusal, adds two Copilot label spellings, and states the lineless-file allowance where the prose describes table coverage. - [#3779](#3779) deletes an abandoned group's pushed branch with a checked remote delete before its claim is released, and says the claim lookup's `<branch>` is replaced before it runs. It answers this promotion's first review round. - [#3781](#3781) has a release open the claim comment with `**Released (<date>):**`, and has the claim lookup skip a comment that opens with it. It answers this promotion's second review round. - [#3782](#3782) has `pr_review.py wait` poll a pending review request past an excluded-files refusal under `--request` as well. It answers this promotion's second review round. Fixes #3729 Fixes #3730 Fixes #3723 Fixes #3711 Fixes #3714 Fixes #3761 Fixes #1275 Fixes #1274 Fixes #1306 Fixes #1301 Fixes #3733 Fixes #3571 Fixes #2180 Fixes #3732 Fixes #3713 Fixes #3726 🤖 Generated with [Claude Code](https://claude.com/claude-code)


Summary
Fixes the two findings promotion PR #3778's review raised against
backlog-burndown.origin/develop, the live remote tip equals it, and no open pull request uses the branch as its head or base. The delete is named as an outward-facing write underGOVERNANCE.md"Repository Boundaries and Write Safety". The claim is released only once reading the ref back confirms the delete. Where a check fails, the claim is kept and the group stops for the maintainer. "Bounding the Wait on a Worker" and "The Round" step 6 are aligned with it.<branch>placeholder. One sentence now states that<branch>is replaced with the branch name being looked up before the command runs.Generated trees regenerated with
scripts/build_dist.py, and--checkpasses.Local review
Three
local-strict-reviewpasses, the last over the pushed head with no findings. The first two raised findings that were fixed in this branch, apart from the two below.introduced(design, reuse):scripts/pr_review.py cleanupalready holds a verify-then-delete in code but refuses an unmerged branch. A branch-named mode there, which Give the Orchestrator a Cleanup Path for an Abandoned Branch With No Pull Request #3733 already proposes for the never-pushed case, should take the pushed case too and replace this skill's hand-typed remote delete. That needs files outside this change.Pre-existing findings, not filed
.agents/skills/backlog-burndown/SKILL.md"Cleanup Is the Orchestrator's", the line "git branch -drefuses rather than discards where that check was wrong", classpre-existing: for a branch with an upstream,git branch -dchecks against the upstream rather than develop, so it is no backstop there. The remote delete added here no longer relies on it, since it carries its owngit merge-base --is-ancestorcheck.Closes on promotion: #1274
🤖 Generated with Claude Code