Skip to content

backlog-burndown: cleanup leaves an abandoned group's claim and its pushed remote branch standing #1274

Description

@ptr727

backlog-burndown says its cleanup step exists to stop an abandoned group's worktree holding "a live claim that would collide with the very group the next round re-forms for the same issue". For the ordinary abandoned group, the procedure as written does not reach that outcome.

  • "Cleanup Is the Orchestrator's" covers "the finished ones and the abandoned ones", and gates the abandoned path on "confirm the branch carries no commit that is not already on develop". An abandoned group is by definition one that lost an adjudication after doing work, so any commit it made fails that check, cleanup "stops there", and the worktree plus its live claim stay standing. Nothing says what releases the claim in that case.
  • "with no remote branch to delete where none was pushed" leaves the pushed-abandoned case undisposed. "Grouping and File Claims" explicitly contemplates one ("Where the loser has already opened a pull request, say whether it closes or waits"), and "The Round" step 6 cleans only merged remote branches. The remote branch survives while its claim comment is released, and the next round's "A branch no claim comment covers still has to yield a file set" then reads it as an unknown set that "collides with every group", which is a stop the run inflicts on itself.
  • "the worktree and branch go the same way a merged group's do" points at the git branch -D a merged group uses under git-commit-conventions' narrow post-squash exception, and that exception "never applies to develop, an unmerged branch, an unresolved pull request, or a branch with uncommitted work". An abandoned branch has no merged pull request, so "the same way" points at a forbidden command. git branch -d is what the section's own no-unmerged-commit check licenses, and the section never says so.
  • "its claim comment released" names no action and no actor. Everywhere else the durable record is maintained by writing, and a claim comment cannot be un-posted.
  • "finished" means merged in "The Round" step 6 and work-complete-but-unmerged in "Bounding the Wait on a Worker". Cleaning up on the second sense is the case "Cleanup Is the Orchestrator's" stops on.
  • drive-pr step 4 requires the head SHA be captured before the merge, for the verify-then-delete. This skill's override leaves the merge with the worker and the verify with the orchestrator, so the capture has no owner: nothing tells the worker to report that value or the orchestrator where to read it back.

Raised by the local-strict-review passes on the pull request that added this skill, and deferred there under that skill's own review-round budget.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    proseA defect in rule or procedure textskillsAgent skill

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions