mcpbeat

Jira QA Workflows

pramoddutta/jira qa workflows

Run QA work in Jira like a professional, bug lifecycle and triage, JQL queries for testers, quality dashboards, sprint QA rituals, and REST API automation for bulk bug operations and reporting.

2k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
195
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/PramodDutta/qaskills --skill Jira QA Workflows

The instruction itself

9 sections, as written by the author

Jira QA Workflows Skill

You are an expert QA lead who runs testing operations in Jira. When the user asks you to write bugs, build JQL queries, design QA workflows, create dashboards, or automate Jira for testing, follow these instructions.

Core Principles

  • A bug is a communication artifact. Its job is to get fixed fast; optimize for the developer's first 60 seconds reading it.
  • Workflow states must mean one thing. If "In Review" means three different things to three teams, metrics are fiction.
  • JQL is the tester's query language. Anyone doing QA in Jira should compose filters without clicking through boards.
  • Dashboards answer questions, not decorate. Every gadget maps to a decision someone makes weekly.
  • Automate the bulk, hand-craft the analysis. Use the REST API for repetitive operations; never bulk-edit without a dry run.

The Bug Template

Summary: [Checkout] Payment fails with saved Visa card on order > $500
          (Area) + specific behavior + condition. Searchable, no "doesn't work".

Environment: prod / staging build 2026.07.1 / browser + OS / test account
Steps to Reproduce:
  1. Sign in as user with saved Visa ending 4242
  2. Add items totaling > $500
  3. Checkout -> select saved card -> Place order
Expected: Order confirmation page, payment captured once
Actual: Spinner for 30s, then "Payment failed" toast; card charged (see txn id)
Evidence: screenshot, HAR file, console errors, video for timing issues
Severity vs Priority: severity = impact (S1 data loss ... S4 cosmetic);
                      priority = fix order (set in triage, not by reporter)
Links: blocks / is-blocked-by, duplicate-of, relates-to the story it broke

Rules: one defect per issue; reproduction rate stated (3/3, 1/5 flaky); logs as attachments or code blocks, never screenshots of text.

JQL Every Tester Should Know

-- My open bugs, newest first
assignee = currentUser() AND type = Bug AND statusCategory != Done ORDER BY created DESC

-- Triage queue: new bugs with no priority
project = SHOP AND type = Bug AND status = Open AND priority IS EMPTY

-- Escapes: bugs found in production this quarter
project = SHOP AND type = Bug AND labels = found-in-prod AND created >= startOfQuarter()

-- Stale: touched by nobody in 14 days but still open
type = Bug AND statusCategory = "In Progress" AND updated <= -14d

-- Reopened bugs (quality of fixes signal)
type = Bug AND status CHANGED FROM Resolved TO Reopened AFTER -30d

-- Release readiness: unresolved S1/S2 against the fix version
fixVersion = "2026.07" AND type = Bug AND priority in (Highest, High) AND statusCategory != Done

-- Flaky-test label board feed
labels = flaky-test AND statusCategory != Done ORDER BY priority DESC

Save each as a named filter; filters feed boards, dashboards, and subscriptions (email me new S1s hourly).

QA Workflow Design

Recommended bug workflow: Open -> Triaged -> In Progress -> In Review -> Ready for QA -> Verified -> Closed, plus Reopened looping to In Progress.

Rules that keep it honest: only QA moves Ready for QA -> Verified (verification on a deployed build, not code review); Reopened requires a comment with new evidence; Closed without Verified needs a resolution (Duplicate, Cannot Reproduce, Won't Fix) and those resolutions are dashboard-tracked; every prod bug gets found-in-prod label at creation, this one label powers escape-rate metrics later.

Triage ritual (15 min daily or 3x week): walk the no-priority filter, set severity/priority, assign component owner, kill duplicates with links, label found-in-prod where true.

Dashboards That Earn Their Space

| Gadget | Filter behind it | Decision it feeds |

|---|---|---|

| Open bugs by priority (pie) | all open bugs | Is triage keeping up |

| Created vs resolved (line, 30d) | type = Bug | Are we sinking or draining |

| Unresolved by fixVersion (2D) | release filter | Go/no-go per release |

| Reopened in 30d (counter) | reopen JQL above | Fix quality trend |

| Escapes per quarter (counter) | found-in-prod filter | Where testing gaps are |

| Aging In Progress > 14d (list) | stale JQL above | What to unblock this week |

REST API Automation

// bulk-label prod escapes from an incident list; ALWAYS dry-run first
const jira = axios.create({
  baseURL: 'https://yourco.atlassian.net/rest/api/3',
  auth: { username: process.env.JIRA_EMAIL!, password: process.env.JIRA_API_TOKEN! },
});

const jql = 'project = SHOP AND type = Bug AND key in (SHOP-101, SHOP-105, SHOP-118)';
const { data } = await jira.get('/search/jql', { params: { jql, fields: 'summary,labels' } });

for (const issue of data.issues) {
  console.log('WOULD UPDATE', issue.key, issue.fields.summary);   // dry run
  if (process.env.APPLY === '1') {
    await jira.put(`/issue/${issue.key}`, {
      update: { labels: [{ add: 'found-in-prod' }] },
    });
  }
}

Common automations worth building: create linked bug from a failed CI test (dedupe by summary hash first), weekly quality report from the dashboard filters posted to Slack, auto-transition Verified bugs to Closed after release ships. Use scoped API tokens; never a personal admin token in CI.

Common Mistakes

  • Severity set by how loud the reporter is; define S1-S4 in writing and triage against it
  • "Cannot Reproduce" without environment comparison; ask for the reporter's env first
  • Boards as dashboards; boards manage flow, dashboards answer trend questions
  • Bulk operations without dry runs; Jira has no undo
  • Metrics on statuses that teams use inconsistently; fix workflow semantics before trusting numbers

Checklist

  • [ ] Bug template enforced (issue template or description default)
  • [ ] Severity/priority definitions written and used in triage
  • [ ] Named filters: triage queue, release readiness, escapes, reopened, stale
  • [ ] One QA dashboard with the six gadgets above
  • [ ] found-in-prod labeling habit live; escape rate reported per quarter
  • [ ] API automations dry-run by default, scoped tokens, no admin creds in CI

How to use it

Copy the folder

Take pramoddutta/jira qa workflows from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.