Verify Bug Skill
[!IMPORTANT]
Post-merge UAT verification workflow. Walks JIRA reproduce steps, performs comparative audits (Before/After), attaches evidence to JIRA, and transitions status on PASS.
Optional args: slug=, ticket=<id/url>, mode=interactive|autonomous|channel, channel=, auto_continue=true|false, profile=business|hybrid|technical.
Instructions
When the user asks to perform this workflow, execute the following steps:
Verify-Bug — UAT Audit
Goal: Prove a bug fix works in the UAT environment via comparative Before/After evidence, then transition ticket status.
Input
/verify-bug <jira-url-or-key> [--baseline-image <url>]
Workflow
Step 0: Pre-flight & Data Gathering
[!TIP]
Sub-Agent Delegation: If your platform supports sub-agents (e.g., Claude, OpenCode, Gemini, Kiro), delegate steps 1-3 below to your JIRA Analyst sub-agent (e.g., @specialist-jira-analyst). If sub-agents are NOT supported (e.g., Antigravity, Windsurf), you must execute these steps yourself.
- Parse JIRA: Extract
Market, Reproduce steps, and Expected Result.
- Resolve Markets: If multiple markets, prompt for scope (Full/Sample/Custom).
- Fetch Test Data: Call Confluence for
Test data - <MARKET> UAT. Parse credentials and module-specific data (e.g., customer codes).
- Credential Check: Rule out expired accounts before starting sessions.
- Fallback: If Jira/Confluence MCPs are unavailable, request exported ticket/test-data text and continue with local evidence.
Step 1: Comparative Audit (Execution Phase)
For each market in scope:
- Environment Setup: Run the DNS probe from
<SKILLS>/common/common-web-visual-testing/references/diagnostic-decoder.md; if it indicates VPN is required, connect VPN and retry.
- Named Session: Run the driver skill's
scripts/preflight.sh, then start playwright-cli -s={TICKET}-{MARKET} (Playwright MCP with --output-dir .playwright-cli/{TICKET}-{MARKET} on no-shell runtimes) or an Appium MCP session. Evidence lands in that session dir; a missing driver with no exported evidence is BLOCKED (driver: <name>).
- Walk Steps: Execute reproduction steps.
- Hover Discipline: Always
hover the target element (warning, button, price) before screenshotting.
- Stability: Disable animations and mask dynamic fields (clocks, balances).
- Verdict Determination:
- PASS: End-state matches
Expected Result.
- FAIL: End-state matches
Actual Result or original bug screenshot.
- NEEDS-HUMAN: Deviates from both.
Step 2: Automated Failure Diagnostic
If the verdict is NOT PASS:
- Run Decoder: Load
common-web-visual-testing; if synced references are available, consult <SKILLS>/common/common-web-visual-testing/references/diagnostic-decoder.md.
- Categorize: Is it a
VPN NOT CONNECTED error? ACCOUNT BLOCKED? Or a genuine CODE REGRESSION?
- Label: Add the diagnostic label to the JIRA comment.
Step 3: Evidence & JIRA Sync
- Upload: Push screenshots from the session evidence dir as attachments to the JIRA ticket.
- Wiki Comment: Post a verdict comment using JIRA Wiki Markup (orientation-aware widths).
- Use
🟢 PASS / 🔴 FAIL badges.
- Embed the most diagnostic screenshot inline.
- Status Transition:
- If PASS:
Ready for UAT → Ready for Production.
- If FAIL: →
Reopened.
- Walkthrough:
- Use the Walkthrough Template below.
- Update project-local
docs/srs/srs-walkthrough.md.
Runtime Contract
- Use for post-merge UAT verification of a bug fix against JIRA reproduce steps.
- Required inputs: JIRA URL/key or exported ticket text with reproduce steps and expected result.
- Return NEEDS-HUMAN only when the end-state deviates from both expected and original-bug behavior.
Handoff Payload
slug, operator_profile (carried, not re-inferred), verdict (PASS/FAIL/NEEDS-HUMAN), walkthrough path, diagnostic label, outcome report, next workflow.
Blocking Questions
- Ask max 3 at a time with a recommended default and 2-3 options.
Artifact Templates
Walkthrough Template
# Walkthrough: [Name]
## Scope
## Acceptance Criteria
## Evidence
| Check | Result | Evidence |
| ------- | ------------------- | ---------- |
| [check] | [PASS/FAIL/BLOCKED] | [evidence] |
## Risks
## Outcome Report
feature_status: implemented | blocked
requirement_trace: BRD-OBJ-* -> REQ-* -> AC-* -> SRS-* -> evidence
completed_evidence: []; missing_evidence: []; decision_needed: []; recommended_next_workflow: deploy-release | dev-fix
## Next Workflow
deploy-release | dev-fix
Cost Report
Call get_session_cost(workflow="verify-bug") before final handoff.
Anti-Patterns
- No Sequential Runs: Verify all markets in parallel.
- No Unnamed Sessions: Traceability depends on
-s={TICKET}.
- No Mystery Failures: Always include the Diagnostic Decoder result in FAIL comments.
- No Orphan Comments: Clean up "temp media" comments after posting the final verdict.
1---2name: verify-bug-23description: Post-merge UAT verification workflow. Walks JIRA reproduce steps, performs comparative audits (Before/After), attaches evidence to JIRA, and transitions status on PASS.4---5# Verify Bug Skill67> [!IMPORTANT]8> Post-merge UAT verification workflow. Walks JIRA reproduce steps, performs comparative audits (Before/After), attaches evidence to JIRA, and transitions status on PASS.910Optional args: slug=<feature>, ticket=<id/url>, mode=interactive|autonomous|channel, channel=<id>, auto_continue=true|false, profile=business|hybrid|technical.1112## Instructions1314When the user asks to perform this workflow, execute the following steps:151617# Verify-Bug — UAT Audit1819Goal: Prove a bug fix works in the UAT environment via comparative Before/After evidence, then transition ticket status.2021## Input2223`/verify-bug <jira-url-or-key> [--baseline-image <url>]`2425## Workflow2627### Step 0: Pre-flight & Data Gathering2829> [!TIP]30> **Sub-Agent Delegation**: If your platform supports sub-agents (e.g., Claude, OpenCode, Gemini, Kiro), delegate steps 1-3 below to your JIRA Analyst sub-agent (e.g., `@specialist-jira-analyst`). If sub-agents are NOT supported (e.g., Antigravity, Windsurf), you must execute these steps yourself.31321. **Parse JIRA**: Extract `Market`, `Reproduce steps`, and `Expected Result`.332. **Resolve Markets**: If multiple markets, prompt for scope (Full/Sample/Custom).343. **Fetch Test Data**: Call Confluence for `Test data - <MARKET> UAT`. Parse credentials and module-specific data (e.g., customer codes).354. **Credential Check**: Rule out expired accounts before starting sessions.365. **Fallback**: If Jira/Confluence MCPs are unavailable, request exported ticket/test-data text and continue with local evidence.3738### Step 1: Comparative Audit (Execution Phase)3940For each market in scope:41421. **Environment Setup**: Run the DNS probe from `<SKILLS>/common/common-web-visual-testing/references/diagnostic-decoder.md`; if it indicates VPN is required, connect VPN and retry.432. **Named Session**: Run the driver skill's `scripts/preflight.sh`, then start `playwright-cli -s={TICKET}-{MARKET}` (Playwright MCP with `--output-dir .playwright-cli/{TICKET}-{MARKET}` on no-shell runtimes) or an Appium MCP session. Evidence lands in that session dir; a missing driver with no exported evidence is `BLOCKED (driver: <name>)`.443. **Walk Steps**: Execute reproduction steps.45 - **Hover Discipline**: Always `hover` the target element (warning, button, price) before screenshotting.46 - **Stability**: Disable animations and mask dynamic fields (clocks, balances).474. **Verdict Determination**:48 - **PASS**: End-state matches `Expected Result`.49 - **FAIL**: End-state matches `Actual Result` or original bug screenshot.50 - **NEEDS-HUMAN**: Deviates from both.5152### Step 2: Automated Failure Diagnostic5354If the verdict is NOT PASS:55561. **Run Decoder**: Load `common-web-visual-testing`; if synced references are available, consult `<SKILLS>/common/common-web-visual-testing/references/diagnostic-decoder.md`.572. **Categorize**: Is it a `VPN NOT CONNECTED` error? `ACCOUNT BLOCKED`? Or a genuine `CODE REGRESSION`?583. **Label**: Add the diagnostic label to the JIRA comment.5960### Step 3: Evidence & JIRA Sync61621. **Upload**: Push screenshots from the session evidence dir as attachments to the JIRA ticket.632. **Wiki Comment**: Post a verdict comment using JIRA Wiki Markup (orientation-aware widths).64 - Use `🟢 PASS` / `🔴 FAIL` badges.65 - Embed the most diagnostic screenshot inline.663. **Status Transition**:67 - If **PASS**: `Ready for UAT` → `Ready for Production`.68 - If **FAIL**: → `Reopened`.694. **Walkthrough**:70 - Use the **Walkthrough Template** below.71 - Update project-local `docs/srs/srs-walkthrough.md`.7273## Runtime Contract74- Use for post-merge UAT verification of a bug fix against JIRA reproduce steps.75- Required inputs: JIRA URL/key or exported ticket text with reproduce steps and expected result.76- Return NEEDS-HUMAN only when the end-state deviates from both expected and original-bug behavior.7778## Handoff Payload79- `slug`, `operator_profile` (carried, not re-inferred), verdict (PASS/FAIL/NEEDS-HUMAN), walkthrough path, diagnostic label, outcome report, next workflow.8081## Blocking Questions82- Ask max 3 at a time with a recommended default and 2-3 options.8384## Artifact Templates8586### Walkthrough Template8788```md89# Walkthrough: [Name]9091## Scope9293## Acceptance Criteria9495## Evidence9697| Check | Result | Evidence |98| ------- | ------------------- | ---------- |99| [check] | [PASS/FAIL/BLOCKED] | [evidence] |100101## Risks102103## Outcome Report104feature_status: implemented | blocked105requirement_trace: BRD-OBJ-* -> REQ-* -> AC-* -> SRS-* -> evidence106completed_evidence: []; missing_evidence: []; decision_needed: []; recommended_next_workflow: deploy-release | dev-fix107108## Next Workflow109deploy-release | dev-fix110```111112## Cost Report113114Call `get_session_cost(workflow="verify-bug")` before final handoff.115116## Anti-Patterns117118- **No Sequential Runs**: Verify all markets in parallel.119- **No Unnamed Sessions**: Traceability depends on `-s={TICKET}`.120- **No Mystery Failures**: Always include the Diagnostic Decoder result in FAIL comments.121- **No Orphan Comments**: Clean up "temp media" comments after posting the final verdict.122