A Wakeel agent that turns a Jira ticket into reviewable acceptance test scenarios — not automation code.
What we'll cover: how to trigger it, what it produces, how to refine its output, and where it stops so you stay in control.
It's an author, not an automation engineer. You stay the gatekeeper for what gets scripted.
TC-IDs
Think of it as a senior QA peer that drafts the scenario doc for every ticket so you spend your time reviewing and challenging instead of typing.
That's the whole hand-off. The label is the contract.
wakeel-qa-scenarios
Add this label to a Jira ticket that has Acceptance Criteria. The agent wakes up on the label-added event — not on every subsequent ticket edit.
wakeel-refine-test-scenarios
Add this on the scenarios PR after you've left review comments. Agent re-reads feedback and updates Markdown in place. Removes itself after the run.
If your Jira project is linked to 2+ QA repos
Set the
Wakeel QA Target Repo
field on the ticket
before labelling — value is
owner/repo
(GitHub URL also works). No default; the agent won't guess.
Wakeel resolves a single PR target before any agent work starts.
1 link → auto-selected. 2+ links → Wakeel QA Target Repo field decides. No default — Wakeel refuses to guess.
no_qa_repo
No QA repo linked to this Jira project → ask Wakeel admin to link one in Sources, then re-add the label.
missing_target_repo
2+ QA repos linked but the ticket has no Wakeel QA Target Repo — set it and re-label.
invalid_target_repo
Field value isn't a valid
owner/repo or isn't in
the linked list — comment lists what's valid.
field_not_configured
Wakeel admin hasn't wired the custom field ID yet — ping #wakeel.
Good news: every failure leaves you a Jira comment with exactly what to do next.
Webhook → ingest
Jira label-added event is validated, normalized, dispatched.
Routing resolved
QA repo selected (auto or via ticket field). On failure: Jira comment with guidance, event dropped.
Agent task queued
A run row appears in the Wakeel dashboard — visible immediately.
Before hooks deterministic
React on PR (if any), clone QA repo, create branch
qa/{KEY}-test-scenarios, fetch Jira + Confluence + (refine) PR comments.
Agent run AI (Claude Opus)
Discover repo conventions → AC × axes → draft TCs → coverage matrix → write Markdown → push branch → open / update PR → comment on Jira.
After hooks deterministic
Feedback step on the PR. On refinement runs: removes the
wakeel-refine-test-scenarios
label.
Observability
Run streams live to the dashboard. The Jira comment links the run + PR.
The deterministic hooks sandwich the AI step — so cloning, branching, PR creation, and Jira posting are predictable and idempotent.
The agent encodes Almosafer QA philosophy — synthesized from
qa-frontend-cypress, Appium automation, and
qaBackend_CrossProduct.
Multiplies each AC by axes that matter — platform, channel, locale, currency, auth state, device. Each cell can become a TC.
Equivalence Partitioning (EP), Boundary Value Analysis (BVA), Decision Tables (DT), State Transitions (STT), Error Guessing (EG), Use Cases (UC), Pairwise (PT), Cause-Effect (CE).
Functional, data, error/edge, integration, locale, accessibility, performance, security/privacy — walked every run, plus trigger-based extras.
Overall confidence is capped by the weakest covered dimension — no hand-wavy "HIGH" if any dimension is LOW.
Source priority: Acceptance Criteria → ticket description → linked Confluence / Sheets → Figma (UI detail only — never used to expand scope). If the AC is silent on something, the agent writes a clarification question — it doesn't invent.
Title
FLT-1234 | Test scenarios — Add sort chips to flight results
Branch
qa/FLT-1234-test-scenarios
File
test-scenarios/FLT-1234/sort-chips.md
Label
wakeel-test-scenariosCanonical sections in every scenario doc
UI
Observable product state (no selectors in prose)
API
Endpoint, status, payload — or explicit "no API call expected"
Success
Happy-path outcome
Error / edge
Negative — or explicit "no error path applicable"
Stable IDs: TC-01, TC-02, … — never renumbered across refinements.
Reference them downstream like
// FLT-1234 | TC-07.
A short triage that beats reading the file top-to-bottom.
If the agent flagged ambiguity, resolve it on the Jira ticket first — re-running on a fixed AC produces a much stronger doc.
Every AC should map to ≥ 1 TC. Empty rows mean the AC isn't covered yet.
The agent admits what it didn't cover and why — read this before approving.
If overall confidence is LOW, find the dimension dragging it down and decide if it's acceptable for this ticket.
Spot-check that UI, API, Success, Error/edge are each addressed (or explicitly waived).
The 3 audit prompts at the bottom show how the agent challenged its own draft — useful sanity check.
1
You review
Leave GitHub review comments on the scenarios PR — line-anchored or general.
2
Add label
wakeel-refine-test-scenarios
on the PR.
3
Agent re-runs
Reads your comments + current diff, amends TCs or adds new ones at the next free TC ID — never renumbers.
4
Revision log
Appends
## Revision N — date,
updates PR body, posts a Jira revision comment.
5
Loop until satisfied
Label is auto-removed after each run — add it again for another pass.
| Label | Where you add it | What happens |
|---|---|---|
| wakeel-qa-scenarios | Jira ticket | Starts initial generation — once routing resolves to one QA repo. |
| wakeel-refine-test-scenarios | Scenarios PR (QA repo) | Re-runs the agent on your review comments. Removed automatically after the run. |
| wakeel-test-scenarios | Scenarios PR (auto) | Wakeel sets this on every PR it creates — handy for filtering in GitHub. |
Jira field — only when needed
Wakeel QA Target Repo ·
text · value:
tajawal/qa-frontend-cypress. Only required when 2+ QA repos are linked to your Jira project.
Branch convention
The agent always uses
qa/{KEY}-test-scenarios
— same branch is reused across refinements so the PR stays the
same.
Set expectations now — fewer surprises later.
One PR per run
Never two QA repos in one execution. Need both? File two tickets (one per QA repo).
Refinement failures = no Jira comment
If routing fails on a PR-label refinement, the event drops silently. Check the dashboard run log.
Confluence is capped
Max 8 pages and 64k characters per run. Link only the pages that matter.
No test code
Scenarios only. Automation script generation is the next agent on the roadmap.
Today
Routing + Jira field shipped. Agent seed lives in repo but
enabled: false.
Dogfood
Pilot project (e.g. WAK →
tajawal/wakeel) with a
small QA cohort.
Per-project enable
Flights, Hotels, Activities, Mobile — each turned on once QA leads have ack'd the workflow.
Open to all
Default-on after the automation-script agent lands and we've burned in the refinement loop.
Pilot QAs
Label tickets, refine PRs, share what surprised you.
QA leads
Maintain your project's QA skills — conventions, coverage rules, and technique defaults.
Wakeel team
Iterate on the skill, link new repos, tune defaults from your feedback.
Pick a ticket from your backlog with decent AC, add
wakeel-qa-scenarios, and walk through the PR together.
Wakeel — وكيل — Our AI Representative