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
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,7 @@ All notable changes to this portable workflow pack are documented here.
8
8
9
9
#### Added
10
10
11
+
- **Add `skills/pr-batch/bin/stale-assignment-sweep`, a dry-run-first warn-then-release sweep that decays inactive single-human assignments (nudge → 4-day grace → release) using anti-squatting and inactivity clocks renewed only by the assignee's own comments, reviews, and issue-referencing commits or linked-PR events, pausing on exempt labels, skipping `agent-claimed` items, surfacing items with two or more human assignees for manual review instead of auto-sweeping them, skipping closed/merged items, layering `--exempt-label` on top of the built-in defaults, re-checking live state before every comment or release, recognizing its own prior nudges by the union of the gh-authenticated login and any configured comment identity, degrading gracefully so one item's or repo's gh failure is reported as `UNKNOWN`/skipped rather than aborting the run, validating that day-count flags are non-negative, and never touching automation-set assignees — any `[bot]`-suffixed login when `trusted_bots` is empty (the packaged-fallback default) or an allowlisted bot otherwise — failing closed when the automation set or its posting identity is unresolved.** [issue 209](https://github.com/shakacode/agent-workflows/issues/209).
11
12
-**Make batch selection and triage assignee-aware: a human assignee reserves an issue or PR (owned means skip), reserved items are listed with their assignee names instead of silently dropped, and items with no assignee or only an automation identity stay eligible.**
12
13
-**Add a bounded exact-head PR merge helper that safely selects direct merge or merge-queue submission, reconciles ambiguous outcomes, and preserves unknown provenance.**
13
14
-**Add Codex picker metadata (`agents/openai.yaml`) for `continue`, `status`, `tdd`, `run-ci`, `verify-pr-fix`, and `untrusted-contributor-intake`, and document `qa-stress` as the deliberate picker-metadata exclusion.**
Copy file name to clipboardExpand all lines: docs/pr-batch-skills.md
+66Lines changed: 66 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,6 +62,72 @@ The `agents/openai.yaml` file under a skill is optional Codex UI metadata for sk
62
62
63
63
Beyond permissions, selection itself is assignee-aware: a human assignee — any assignee outside the repo's resolved automation set — marks an issue or PR as reserved: owned means skip. The automation set is resolved from the trust config's `trusted_bots` plus `[bot]`-suffixed logins via the `pr-security-preflight` chain (`trusted_users` are human actors and stay reservable), failing closed to skip when unresolved. `$plan-pr-batch`, `$triage`, and `$plan-issue-triage` classify assignees after fetching the full scoped set (`no:assignee` alone omits automation-only-assigned eligible items), exclude reserved items from actionable batches, and list them with their assignee names; items with no assignee, or only an automation identity, stay eligible.
64
64
65
+
## Stale-Assignment Sweep
66
+
67
+
Because owned means skip, an assignment left with no follow-through would block
68
+
that work forever. `skills/pr-batch/bin/stale-assignment-sweep` treats assignment
69
+
as a lease, not a deed: it nudges, then (only after an unanswered grace) releases
70
+
inactive human assignments back to the batch pool. It is the human-timescale
71
+
analog of the coordination backend's agent heartbeat leases.
72
+
73
+
-**Default is dry-run.** With no `--apply`, it makes zero GitHub mutations and
74
+
only prints a digest of would-nudge / would-release items, each with its clock,
75
+
days inactive, and assignee. Run it report-only for ~2 weeks to tune TTLs
76
+
before enabling writes. `--apply` posts the nudge/audit comments and removes
0 commit comments