You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deferred by Solace on 2026-09-18: grind has not proven itself, so the fixup contract is exercised interactively first (#267). Open this only after a few verified /pickup <PR> iterations.
Change
.local/bin/grind gains --prs, tests in grind.test.sh.
Item source: pr-label-audit --json (pr-label-audit: --json, --refresh (@mergifyio refresh), and a single-PR --pr mode #265), PRs in "Gated, unlabelled" or "Labelled but no longer green". Skip, with a WARN line naming the reason: label fixup-hard or blocked; author dependabot or a release-please app; a local worktree holds the branch; head pushed less than 4h ago. Refuse to start at all when this machine has no signing key.
Verify done against GitHub, as grind already does for issues: awaiting-human present, or the head moved and %G? is clean on base..head. Anything else is unverified. The failure path is the worker labelling fixup-hard and commenting; grind checks the label is there.
Defaults for --prs: --item-budget 1, --session-budget 5. Proposed, not ruled.
--dry-run prints the plan. Land dry-run first if the diff is large.
Depends on #267. Ownership: the skip rules above and --force-with-lease are the default until #206 rules otherwise.
Verify
Dry-run lists the conflicted and thread-open PRs with reasons and skips a branch held by a local worktree. One live run on one PR ends with the label state changed and grind's tally line.
Not yet
Deferred by Solace on 2026-09-18: grind has not proven itself, so the fixup contract is exercised interactively first (#267). Open this only after a few verified
/pickup <PR>iterations.Change
.local/bin/grindgains--prs, tests ingrind.test.sh.pr-label-audit --json(pr-label-audit: --json, --refresh (@mergifyio refresh), and a single-PR --pr mode #265), PRs in "Gated, unlabelled" or "Labelled but no longer green". Skip, with a WARN line naming the reason: labelfixup-hardorblocked; author dependabot or a release-please app; a local worktree holds the branch; head pushed less than 4h ago. Refuse to start at all when this machine has no signing key.git worktree addon that branch. The prompt ispr-label-audit --prplusbranch_brief(lib-state: branch_brief -- worktree claim, unsigned commits, and the one right rebase-or-merge command #266) plus the contract section lifted verbatim from the pickup skill (/pickup <PR>: fix up an existing PR under a brief-led contract, interactively #267). One text, two runners.doneagainst GitHub, as grind already does for issues:awaiting-humanpresent, or the head moved and%G?is clean on base..head. Anything else is unverified. The failure path is the worker labellingfixup-hardand commenting; grind checks the label is there.--prs:--item-budget 1,--session-budget 5. Proposed, not ruled.--dry-runprints the plan. Land dry-run first if the diff is large.Depends on #267. Ownership: the skip rules above and
--force-with-leaseare the default until #206 rules otherwise.Verify
Dry-run lists the conflicted and thread-open PRs with reasons and skips a branch held by a local worktree. One live run on one PR ends with the label state changed and grind's tally line.
Hand-off:
Model: opus · Effort: high.