Skip to content

Delete an Abandoned Group's Pushed Branch on a Checked Remote Delete - #3779

Merged
ptr727 merged 4 commits into
developfrom
feature/burn-3778-fix
Nov 1, 2026
Merged

ptr727 merged 4 commits into
developfrom
feature/burn-3778-fix

Conversation

@ptr727

@ptr727 ptr727 commented Nov 1, 2026

Copy link
Copy Markdown
Owner

Summary

Fixes the two findings promotion PR #3778's review raised against backlog-burndown.

  • Checked remote delete for an abandoned group's pushed branch. "Cleanup Is the Orchestrator's" used to report such a branch to the maintainer rather than delete it, so the next round kept deferring the re-formed group. Per the maintainer's answer on backlog-burndown: cleanup leaves an abandoned group's claim and its pushed remote branch standing #1274, the orchestrator now records the local tip before removal. It deletes the remote branch only when that tip is an ancestor of 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 under GOVERNANCE.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.
  • The claim-lookup command's <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 --check passes.

Local review

Three local-strict-review passes, 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.

Pre-existing findings, not filed

  • .agents/skills/backlog-burndown/SKILL.md "Cleanup Is the Orchestrator's", the line "git branch -d refuses rather than discards where that check was wrong", class pre-existing: for a branch with an upstream, git branch -d checks 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 own git merge-base --is-ancestor check.

Closes on promotion: #1274

🤖 Generated with Claude Code

ptr727 and others added 3 commits November 1, 2026 12:14
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>
Copilot AI lite review requested due to automatic review settings November 1, 2026 20:21
@ptr727

ptr727 commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head 4e0e438079812998c1e9430cbba64321f47cafb5, the content this pull request carries at that commit against develop, and it recorded 0 findings.

@coderabbitai

coderabbitai Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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

codecov Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.34%. Comparing base (c24836e) to head (8c15548).

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           
Flag Coverage Δ
python-3.13 82.34% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ptr727

ptr727 commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head 8c15548c7ec543faba12988728617a31a6381156, the content this pull request carries at that commit against develop, and it recorded 0 findings.

@ptr727
ptr727 merged commit 5190402 into develop Nov 1, 2026
13 checks passed
@ptr727
ptr727 deleted the feature/burn-3778-fix branch November 1, 2026 20:38
ptr727 added a commit that referenced this pull request Nov 1, 2026
…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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants