Repository navigation
Move the Abandon Discard to the Orchestrator, Align the Abandoned-Branch Delete, and Hold a Grown Agent-Safety Set - #3822
Conversation
…Branch Delete The orchestrator, not the worker, discards an abandoned worker's uncommitted edits once a live worktree listing and the dispatch mechanism confirm the path and that the worker ended. The abandoned-group local branch delete uses update-ref against the tip the is-ancestor check judged, and a grown file set entering host-setup/agent-safety/ gets the Ranking hold and no-merge line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rop Its Tracking Config Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… Mode Parks 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
Approval is blocked by active critical and moderate issues in the backlog-burndown cleanup and away-mode procedures, including stranded standalone clones, incorrectly continued approved growth during away runs, and premature worktree removal before guarded cleanup completes.
3 open issues
What changed in this PR
This pull request moves abandoned-worktree cleanup to the orchestrator, aligns local branch deletion with its ancestry check, and applies agent-safety holds when claimed files expand into host-setup/agent-safety/. It also updates governance guidance and regenerated skill distributions.
Changes:
- Moves abandoned-worker discard responsibility to the orchestrator after worker termination.
- Replaces
git branch -dwith tip-checkedgit update-refcleanup and tracking-section removal. - Propagates agent-safety hold and cleanup-rule changes across canonical and generated skills.
Open findings:
[P1][moderate, 2 votes]Standalone-clone cleanup is not handled; the reported path needs equivalent exact-branch and live-state checks.[P1][critical, 4 votes]Away-mode holds must apply before continuing when approved file-set growth reacheshost-setup/agent-safety/.[P2][nit, 1 vote]Correct the missing article in the hold condition.[P2][moderate, 1 vote]Treat the branch name literally when querying branch configuration with--get-regexp.[P1][critical, 1 vote]Complete guarded remote cleanup before removing the local worktree, or provide rollback/retention handling for later refusals.
This pull request requires changes.
| File | Description |
|---|---|
GOVERNANCE.md |
Updates the destructive-cleanup exception to name the orchestrator. |
.github/skills/git-commit-conventions/SKILL.md |
Generated GitHub skill guidance for orchestrator-owned cleanup. |
.github/skills/backlog-burndown/SKILL.md |
Generated GitHub backlog-burndown guidance for cleanup and agent-safety holds. |
.claude-plugin/fleet-skills/skills/git-commit-conventions/SKILL.md |
Generated Claude skill distribution for commit guidance. |
.claude-plugin/fleet-skills/skills/backlog-burndown/SKILL.md |
Generated Claude skill distribution for backlog-burndown guidance. |
.claude-plugin/fleet-skills/.source-digests/git-commit-conventions |
Updated source digest for commit guidance. |
.claude-plugin/fleet-skills/.source-digests/backlog-burndown |
Updated source digest for backlog-burndown guidance. |
.agents/skills/git-commit-conventions/SKILL.md |
Canonical commit guidance for orchestrator-owned discard cleanup. |
.agents/skills/backlog-burndown/SKILL.md |
Canonical cleanup, branch-deletion, and agent-safety hold rules. |
Review effort: Lite
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #3822 +/- ##
===========================================
+ Coverage 81.60% 82.91% +1.30%
===========================================
Files 26 29 +3
Lines 9070 9750 +680
===========================================
+ Hits 7402 8084 +682
+ Misses 1668 1666 -2
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:
|
…afety 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 |
|
Answers to the review round on 11c370b: the 5 findings under its overview's "Open findings:" label, which the reader left unplaced. #3824 is filed so the reader picks up that label.
|
…rge on a Running Hosted Review, and Gate Skill Description Length (#3843) Promotes the changes merged into `develop` since promotion #3797 to `main`, the end of an away-mode backlog burndown. - [#3803](#3803) exempts the Roslyn embedded-language marker (`// lang=json`, `language=`) from the prose gate's comment rules as a tool directive. - [#3807](#3807) has `local_review.py record` take `--report`, the file the reviewer wrote, bind the pass to its sha256, and derive the finding count from it. `status` gains `reportPath`. - [#3809](#3809) holds `pr_review.py merge` while a hosted review is still running on the head, and routes a declined Qodo finding to a dismiss request. - [#3811](#3811) dates an anchored `intentRef` by the section its anchor names, and lets a `driftNote` acknowledge a verified intent advisory. - [#3816](#3816) moves the null GraphQL node check into the shared `gh_graphql` transport as `NullNodeError`. - [#3818](#3818) explains the workspace-edit default in `GOVERNANCE.md` and names the aggregator's expression form. - [#3822](#3822) moves the abandon discard to the `backlog-burndown` orchestrator, aligns the abandoned-branch delete, and holds a grown agent-safety set. - [#3823](#3823) scopes the Husky prose gate to staged paths and adds `--skip-generated` so a named file inside a generated tree is skipped. - [#3828](#3828) reads Copilot's `Open findings:` label, drops the duplicate `null_node`, and matches `scripts/README.md` to the Merge Gate. - [#3829](#3829) bumps the two stale hub caller snippet pins and documents the fallback's mixed-pair refusal. - [#3831](#3831) keeps an inherited `GIT_DIR` from rerooting the prose gate's subdirectory git reads. - [#3832](#3832) gives `backlog-burndown` a disposition for a worker's standalone clone and keeps the agent-safety hold past a park. - [#3835](#3835) makes `carry.py check-sections` refuse what `apply-sections` would, and name an open fence. - [#3836](#3836) pins the reusable-workflow stubs by placeholder and ticks the PlexCleaner gates item. - [#3838](#3838) has the `runtime-secrets` audit dimension detect a bare `secrets/` directory from the tracked files that name it. - [#3839](#3839) gates skill descriptions at the 1024-character limit and trims every one over it. - [#3846](#3846) fixes an adjacent doc, an in-file pre-existing defect, and an edge case on new code in the open pull request instead of filing an issue for each, and keeps filing for code that runs elsewhere. - [#3847](#3847) refuses skill frontmatter that parses to a list or a scalar, so the description length gate cannot be bypassed. Fixes #3770 Fixes #3699 Fixes #3705 Fixes #3789 Fixes #1819 Fixes #727 Fixes #3710 Fixes #3706 Fixes #3623 Fixes #3687 Fixes #3617 Fixes #3757 Fixes #3790 Fixes #3786 Fixes #3785 Fixes #3772 Fixes #1657 Fixes #3443 Fixes #3824 Fixes #3817 Fixes #3805 Fixes #1666 Fixes #3700 Fixes #3821 Fixes #3771 Fixes #3794 Fixes #3825 Fixes #3690 Fixes #1472 Fixes #3813 Fixes #3719 Fixes #1592 Fixes #3845 🤖 Generated with [Claude Code](https://claude.com/claude-code)


Summary
This changes
backlog-burndown's "Cleanup Is the Orchestrator's" section, the re-verify bullet in its "Grouping and File Claims" section, and the abandon-discard exception thatgit-commit-conventionsandGOVERNANCE.md"Git and Commit Rules" both state.git worktree list --porcelainfor a linked worktree whosebranchline names the claimed branch, and runsgit -C <path> reset --hardandgit -C <path> clean -fdin that entry's ownworktreepath. Where no such entry exists, the group stops for the maintainer.git-commit-conventionsand the one sentence inGOVERNANCE.mdnow name the orchestrator instead of the worker. Nothing in agent-safety is edited.refs/remotes/origin/develop. Both happen before anything is removed.git update-ref -d refs/heads/<branch> <tip>. That command refuses only if the branch has moved off the tip the check judged.git config --remove-sectionstep drops the branch's tracking section, whichgit branch -dwould have removed.git branch -djudged a branch with no upstream against the base clone'sHEAD. The fetch does not advance thatHEAD, so a branch with no commits of its own could be refused even though deleting it discarded nothing.host-setup/agent-safety/gets the agent-safety hold.host-setup/agent-safety/, the orchestrator applies the "Ranking" hold as though it were ranking the issue now.Closes on promotion: #3786, #3785, #3772
Verification
uv run --script scripts/build_dist.py --check: generated skill distributions are current.origin/develop: no violations.scripts/repo_gate.py --check eol: 0 issues.spec/validate.py: OK.Pre-existing findings, filed
.agents/skills/backlog-burndown/SKILL.md"Cleanup Is the Orchestrator's", the discard path for a standalone clone (pre-existing). The base text already limited the discard to a linked worktree. Tracked in Give backlog-burndown a Path to a Dead or Abandoned Worker's Standalone Clone #3771..agents/skills/backlog-burndown/SKILL.md"Ranking" (the resuming-group sentence) and the resume paragraph in "Parking Instead of Asking" state no precedence against "Ranking"'s away-mode agent-safety hold (pre-existing). A worker could already park on an agent-safety edit through "Needs the Maintainer" before this change. Filed as State That Releasing a Parked Group Never Lifts backlog-burndown's Away-Mode Agent-Safety Hold #3825.🤖 Generated with Claude Code