# Mk Jira Bulk

> Bulk JIRA ops (10+ issues): transition/assign/priority/clone/delete via jira-as; dry-run mandatory. NOT single-issue ops (mk:jira-issue, mk:jira-lifecycle).

- Skill: `ngocsangyem/mk-jira-bulk-2` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add ngocsangyem/mk-jira-bulk-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ngocsangyem/mk-jira-bulk-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ngocsangyem (https://skillmd.com/u/ngocsangyem)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ngocsangyem/mk-jira-bulk-2

---


# mk:jira-bulk

Forks to the `jira-bulk` agent. The agent enforces a hard dry-run-first rule at runtime.

## Dry-Run Workflow (MANDATORY)

```
Step 1: invocation + --dry-run
Step 2: agent shows would_* JSON keys + impacted-count
Step 3: explicit user "yes" → re-invoke without --dry-run
```

Skipping Step 1 is a hard violation. The agent will refuse if asked to skip the dry-run.

## Triggers

- "bulk update N issues"
- "mass transition"
- "transition 50+ issues matching JQL to Done"
- "bulk-clone all PROJ stories tagged 'epic-x' into PROJ2"
- "bulk-delete tickets older than 2 years matching JQL"

## Examples

- Mass transition: "transition all PROJ tickets in 'In Progress' for >30 days to Stalled"
- Reassignment: "reassign all open PROJ tickets from alice@ to bob@"
- Cleanup: "delete spam tickets matching JQL 'reporter = ext-bot AND created < -1y'" (dry-run + 2-step confirm)

## See also

- Agent: `../../agents/jira-bulk.md`
- Shared: `../jira/references/{install-and-auth,cli-idioms,safety-framework}.md` (Tier 4 enforcement lives in safety-framework.md)
- Domain refs:
  - `references/safety-checklist.md` — pre-flight checklist for any bulk operation >50 issues
  - `references/checkpoint-guide.md` — checkpoint + resume strategy for 500+ issue ops
- **Workflow cache (read for accurate dry-run output)**:
  - `tasks/jira-workflows/<workflow-slug>.md` — discovered statuses + transitions (run `bash $(git rev-parse --show-toplevel)/.agents/skills/jira/scripts/fetch-workflow.sh <KEY>` if absent; see `../jira-lifecycle/references/workflow-discovery.md`)
  - For `bulk transition --to "<Status>"`, validate the target status name exists in the cache; for `--id <N>`, validate the transition ID exists. Mismatch → reject before exec.
- Peer leaves: `mk:jira-search` (JQL author + `bulk-update` overlap — same dry-run discipline), `mk:jira-lifecycle` (single-issue transitions; same cache), `mk:jira-relationships` (`bulk-link` is here)

## Gotchas

- (none yet)
