gh-bulklisted
Install: claude install-skill fadymondy/gh-pms
# gh-bulk
Run a controlled bulk operation across a query'd set of issues. The skill never applies anything until the user confirms the target list.
## When to use
- Backlog hygiene: "close all `type:request` issues from before Q1"
- Re-tagging after a service rename: "everything currently `svc:bridge` becomes `svc:api`"
- Reassigning after a team change: "all issues assigned to @alice → @bob"
- Severity recalibration: "all open `type:bug` without a severity → `severity:medium`"
## Inputs
```
gh-bulk --query "<github-search-query>" --action <action> [--value <value>] [--reason <text>] [--yes]
```
| Flag | Required | Effect |
|---|---|---|
| `--query` | yes | A GitHub search query (`gh issue list --search`). Examples: `is:open type:request created:<2026-01-01`, `is:open svc:bridge no:assignee`. |
| `--action` | yes | One of: `label`, `unlabel`, `close`, `reassign`, `set-severity`, `set-effort`, `comment`. |
| `--value` | depends | The argument for the action: label name (`label`/`unlabel`), assignee handle (`reassign`), severity name (`set-severity`), effort tier (`set-effort`), comment body (`comment`). Not used for `close`. |
| `--reason` | for `close` | Free-text close reason; appended to a `## Bulk close reason` section in the issue body and posted as a one-line comment for audit. |
| `--yes` | no | Skip the confirmation prompt. **Use only when scripting**; default flow always confirms. |
## What it does
### Step 1 — Resolve the target list
```bash
gh issue list --