Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion .agents/skills/drive-pr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,22 @@ promotion PR once the fix lands, is the early exit this skill exists to prevent.
to delete it, which fails when `develop` is already checked out somewhere else, the ordinary
case in this layout. Instead run repo-worktree's post-merge cleanup from the base clone, remove
the worktree and delete the now-merged local task branch, then verify before deleting the remote
one, which is this skill's own step rather than that one's. Both remote commands resolve `origin`,
one, which is this skill's own step rather than that one's. Delete the remote one with
`python3 scripts/pr_review.py cleanup <number> --repo <owner>/<repo>`, run from a hub checkout.
It takes the pull request rather than a branch name and does the verify-then-delete below in
code. It refuses unless the pull request merged into `develop` from a head in that same
repository, and refuses a permanent branch or one any ruleset or branch protection covers. It
checks the tip is still at the pull request's `headRefOid` before deleting, and reads the ref
back to confirm.
Exit `0` is done, the branch deleted or already gone. Any other exit stops and reports rather
than deleting by hand: `1` is a refusal, a moved tip among them, `2` a read that did not answer
or a delete it could not confirm, and `64` a target under an owner other than the hub
checkout's own `origin`, or that `origin` unreadable. A registry refusal is a `1`. It runs
under the host-safety installer's `Bash(python3 scripts/pr_review.py:*)` allow rule,
which is what lets auto mode complete it.
On a host without that rule the hand form below is the fallback, and where this seat cannot
run that either, report its commands to the maintainer, paste-ready with the values substituted.
Both remote commands of the hand form resolve `origin`,
so they hold only where the pull request's head branch lives in this repository, which step 1
guarantees by branching here. A pull request opened from a fork follows
`upstream-contribution-workflow` instead and neither command applies to it, since `origin` would
Expand Down
13 changes: 12 additions & 1 deletion .agents/skills/merge-and-release/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,18 @@ skill covers all of it, scoped down by what the maintainer actually asks for.
use `git branch -D -- "<exact-branch>"` here, safe only because the GitHub-state check just
proved that exact branch finished, the narrow post-squash exception git-commit-conventions
describes, never applied to an unverified branch. Then, only when the remote branch still
exists, delete it the same way, `git push origin --delete -- "<branch>"`.
exists, delete it with `python3 scripts/pr_review.py cleanup <number> --repo owner/repo`, run
from a hub checkout, `<number>` being the merged pull request the check above returned. It
re-reads that pull request and repeats the merged, base, head-repository, and tip checks in
code, refuses a permanent or protected branch, and confirms the delete by reading the ref
back. Exit `0` is done, and any other exit stops and reports: `1` is a refusal, `2` an
unanswered read or an unconfirmed delete, and `64` a target under an owner other than the hub
checkout's own `origin` or that `origin` unreadable, a registry refusal being a `1`. It runs
under the host-safety installer's `Bash(python3 scripts/pr_review.py:*)` allow rule,
which is what lets auto mode complete it.
On a host without that rule the fallback is `git push origin --delete -- "<branch>"` once the
tip checks above pass, and where this seat cannot run it, report it to the maintainer,
paste-ready with the values substituted.
Never `--force-with-lease` here, git-commit-conventions
forbids it unconditionally, the GitHub-state check just completed is the verification gate,
not a compare-and-swap at delete time. Never apply this sweep to `develop` or `main`
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/fleet-skills/.source-digests/drive-pr
Original file line number Diff line number Diff line change
@@ -1 +1 @@
aeb0b23f1960e8f7
227f27065490536c
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0d6d711570caaa67
f94d03359a89a1ea
17 changes: 16 additions & 1 deletion .claude-plugin/fleet-skills/skills/drive-pr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,22 @@ promotion PR once the fix lands, is the early exit this skill exists to prevent.
to delete it, which fails when `develop` is already checked out somewhere else, the ordinary
case in this layout. Instead run repo-worktree's post-merge cleanup from the base clone, remove
the worktree and delete the now-merged local task branch, then verify before deleting the remote
one, which is this skill's own step rather than that one's. Both remote commands resolve `origin`,
one, which is this skill's own step rather than that one's. Delete the remote one with
`python3 scripts/pr_review.py cleanup <number> --repo <owner>/<repo>`, run from a hub checkout.
It takes the pull request rather than a branch name and does the verify-then-delete below in
code. It refuses unless the pull request merged into `develop` from a head in that same
repository, and refuses a permanent branch or one any ruleset or branch protection covers. It
checks the tip is still at the pull request's `headRefOid` before deleting, and reads the ref
back to confirm.
Exit `0` is done, the branch deleted or already gone. Any other exit stops and reports rather
than deleting by hand: `1` is a refusal, a moved tip among them, `2` a read that did not answer
or a delete it could not confirm, and `64` a target under an owner other than the hub
checkout's own `origin`, or that `origin` unreadable. A registry refusal is a `1`. It runs
under the host-safety installer's `Bash(python3 scripts/pr_review.py:*)` allow rule,
which is what lets auto mode complete it.
On a host without that rule the hand form below is the fallback, and where this seat cannot
run that either, report its commands to the maintainer, paste-ready with the values substituted.
Both remote commands of the hand form resolve `origin`,
so they hold only where the pull request's head branch lives in this repository, which step 1
guarantees by branching here. A pull request opened from a fork follows
`upstream-contribution-workflow` instead and neither command applies to it, since `origin` would
Expand Down
13 changes: 12 additions & 1 deletion .claude-plugin/fleet-skills/skills/merge-and-release/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,18 @@ skill covers all of it, scoped down by what the maintainer actually asks for.
use `git branch -D -- "<exact-branch>"` here, safe only because the GitHub-state check just
proved that exact branch finished, the narrow post-squash exception git-commit-conventions
describes, never applied to an unverified branch. Then, only when the remote branch still
exists, delete it the same way, `git push origin --delete -- "<branch>"`.
exists, delete it with `python3 scripts/pr_review.py cleanup <number> --repo owner/repo`, run
from a hub checkout, `<number>` being the merged pull request the check above returned. It
re-reads that pull request and repeats the merged, base, head-repository, and tip checks in
code, refuses a permanent or protected branch, and confirms the delete by reading the ref
back. Exit `0` is done, and any other exit stops and reports: `1` is a refusal, `2` an
unanswered read or an unconfirmed delete, and `64` a target under an owner other than the hub
checkout's own `origin` or that `origin` unreadable, a registry refusal being a `1`. It runs
under the host-safety installer's `Bash(python3 scripts/pr_review.py:*)` allow rule,
which is what lets auto mode complete it.
On a host without that rule the fallback is `git push origin --delete -- "<branch>"` once the
tip checks above pass, and where this seat cannot run it, report it to the maintainer,
paste-ready with the values substituted.
Never `--force-with-lease` here, git-commit-conventions
forbids it unconditionally, the GitHub-state check just completed is the verification gate,
not a compare-and-swap at delete time. Never apply this sweep to `develop` or `main`
Expand Down
17 changes: 16 additions & 1 deletion .github/skills/drive-pr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,22 @@ promotion PR once the fix lands, is the early exit this skill exists to prevent.
to delete it, which fails when `develop` is already checked out somewhere else, the ordinary
case in this layout. Instead run repo-worktree's post-merge cleanup from the base clone, remove
the worktree and delete the now-merged local task branch, then verify before deleting the remote
one, which is this skill's own step rather than that one's. Both remote commands resolve `origin`,
one, which is this skill's own step rather than that one's. Delete the remote one with
`python3 scripts/pr_review.py cleanup <number> --repo <owner>/<repo>`, run from a hub checkout.
It takes the pull request rather than a branch name and does the verify-then-delete below in
code. It refuses unless the pull request merged into `develop` from a head in that same
repository, and refuses a permanent branch or one any ruleset or branch protection covers. It
checks the tip is still at the pull request's `headRefOid` before deleting, and reads the ref
back to confirm.
Exit `0` is done, the branch deleted or already gone. Any other exit stops and reports rather
than deleting by hand: `1` is a refusal, a moved tip among them, `2` a read that did not answer
or a delete it could not confirm, and `64` a target under an owner other than the hub
checkout's own `origin`, or that `origin` unreadable. A registry refusal is a `1`. It runs
under the host-safety installer's `Bash(python3 scripts/pr_review.py:*)` allow rule,
which is what lets auto mode complete it.
On a host without that rule the hand form below is the fallback, and where this seat cannot
run that either, report its commands to the maintainer, paste-ready with the values substituted.
Both remote commands of the hand form resolve `origin`,
so they hold only where the pull request's head branch lives in this repository, which step 1
guarantees by branching here. A pull request opened from a fork follows
`upstream-contribution-workflow` instead and neither command applies to it, since `origin` would
Expand Down
13 changes: 12 additions & 1 deletion .github/skills/merge-and-release/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,18 @@ skill covers all of it, scoped down by what the maintainer actually asks for.
use `git branch -D -- "<exact-branch>"` here, safe only because the GitHub-state check just
proved that exact branch finished, the narrow post-squash exception git-commit-conventions
describes, never applied to an unverified branch. Then, only when the remote branch still
exists, delete it the same way, `git push origin --delete -- "<branch>"`.
exists, delete it with `python3 scripts/pr_review.py cleanup <number> --repo owner/repo`, run
from a hub checkout, `<number>` being the merged pull request the check above returned. It
re-reads that pull request and repeats the merged, base, head-repository, and tip checks in
code, refuses a permanent or protected branch, and confirms the delete by reading the ref
back. Exit `0` is done, and any other exit stops and reports: `1` is a refusal, `2` an
unanswered read or an unconfirmed delete, and `64` a target under an owner other than the hub
checkout's own `origin` or that `origin` unreadable, a registry refusal being a `1`. It runs
under the host-safety installer's `Bash(python3 scripts/pr_review.py:*)` allow rule,
which is what lets auto mode complete it.
On a host without that rule the fallback is `git push origin --delete -- "<branch>"` once the
tip checks above pass, and where this seat cannot run it, report it to the maintainer,
paste-ready with the values substituted.
Never `--force-with-lease` here, git-commit-conventions
forbids it unconditionally, the GitHub-state check just completed is the verification gate,
not a compare-and-swap at delete time. Never apply this sweep to `develop` or `main`
Expand Down
Loading
Loading