Workflow proposal · for PM & QA review

Jira GitHub
automated workflow

A board that tells the truth. The work itself moves the cards; people step in only at the decision points. Step a ticket through every scenario below to see who acts, when, and what happens.

for review · PM & QA tools · Jira ⇄ GitHub envs · preview → develop → staging → production status · draft for approval
📋
Proposed workflow — for your review. Today the board is run manually; the steps tagged Automated below are the planned automation — not built yet. Step through each scenario to see who does what, then approve or tell us what to change.
01

Interactive flow

Pick a scenario. Press play or step through. Teal = automated system event · amber = human gate · coral = rework · violet = blocked flag. The Automated steps are the planned target — not built yet; the board is manual today.

Automated Manual gate Backward / rework Blocked flag Dev QA PM Automation
scenario ·
ticket ·
VIAN-214
02

How each role works it

Three humans, one robot. Small, clear surface area each.

</>

Developer

drives the build
  • Pick up the ticket → move it to In Progress (by hand)
  • Open a PR to develop → Code Review
  • Add the preview label for QA
  • Fix on changes-requested (auto-bounces back)
  • Merge after CR + QA pass — the go-signal

QA

owns the verdict · Jira-only
  • Works entirely in Jira — no GitHub access needed
  • Open the preview link on the ticket; test there
  • ✓ QA Pass button → dev is green-lit on the PR
  • ✗ QA Fail button → card back to In Progress + dev pinged
  • Never touches GitHub

Product Mgr

owns the gates
  • Groom backlog → Todo
  • Internal Review: demo on develop, approve/reject
  • Promote approved work to staging
  • Ready for Production: approve for the next release
  • Owns the human judgment gates

Automation

moves the card
  • PR opened → Code Review
  • preview / develop / staging deploy → column
  • changes-requested → In Progress
  • Idempotent: N deploys move the card once
  • Nightly check fixes any drift
03

Four environments, four milestones

Each env satisfies exactly one column. The merge gate sits after Code-Review + QA. Every deploy is linked to its Jira ticket, so you can see where a ticket is deployed right on the card.

preview · pre-merge

Ready for Testing

Per-PR pr-<slug> namespace via the preview label. QA tests here.

develop · post-merge

Internal Review

Integrated :develop env (Argo-synced). PM demos here.

staging

Staging

Pre-prod validation after PM sign-off.

production

Done

Ships as a batch: approved tickets ride a release/build-… branch merged to production.

04

Who moves cards — and what a manual move does

Almost nobody drags tickets by hand. Doing the work moves them. People touch the board only where reality can't speak.

TransitionHow it happensTriggered by
Todohand-move · backlog groomingPM
In Progresshand-move · dev picks it upDev
→ Code Reviewauto · PR openedsystem (dev's PR)
→ Ready for Testingauto · preview deployedsystem (dev's label)
← In Progress · changes requestedautosystem
← In Progress · QA failQA clicks ✗ QA Fail (in Jira) → also flags the PRQA
→ Internal Reviewauto · merged to developsystem (dev's merge)
← In Progress · PM rejecthand-move back + commentPM
→ Stagingauto · staging deploysystem (after PM's promote)
Ready for Productionhand-move · approved → joins release branchPM
Donerelease · release/build-… merged to productionRelease owner

Highlighted rows are the only times a human drags a card. QA works entirely in Jira — a ✓ QA Pass / ✗ QA Fail button on the card (Pass green-lights the PR and keeps the card in Ready for Testing; Fail sends it back). Everything else, the work moves it.

If someone moves a card by hand

Drag it backward (a bounce)

Expected at the QA-fail and PM-reject gates. The automation only ever moves cards forward, so it won't fight you. When the fix is re-deployed, the card re-advances on its own.

Drag it forward, early

The board now lies — nothing was actually built or shipped. Moving a card never triggers a deploy. The nightly check catches the drift. Rule of thumb: don't drag forward — do the work and let it move.

At a real gate

Dragging into Ready for Production is the design — it's the “approved for the next release” signal. The release that follows is a separate, deliberate step.

The one rule

Reality is the source of truth; the board reflects it. Moving a card never causes a deploy or release — it only changes the label. (The single cross-over: QA's ✓/✗ from Jira adds a label + ping on the PR — still never a deploy.) Move cards only where the table says “hand-move.”

05

Assignee — set by hand per stage

The assignee is updated manually as the ticket moves (Dev → Reviewer → QA → PM). No custom field, no filters — a role finds its work in its column.

To find…Where
A role's whole queue (e.g. everything awaiting QA)the column — e.g. Ready for Testing
What I'm working onassignee = currentUser()