This skill enables the QA Engineer to run all test suites, parse the output, and produce a structured verification report with evidence for the audit trail. The QA Engineer personally executes tests rather than trusting reports from others.
/plugin marketplace add marcel-Ngan/ai-dev-team/plugin install marcel-ngan-ai-dev-team@marcel-Ngan/ai-dev-teamThis skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill enables the QA Engineer to run all test suites, parse the output, and produce a structured verification report with evidence for the audit trail. The QA Engineer personally executes tests rather than trusting reports from others.
| Input | Required | Description |
|---|---|---|
story_key | Yes | Jira story key (e.g., PROJECT-123) |
test_commands | Yes | Commands to run each test type |
gate_id | No | Gate to evaluate (default: qa-gate from skills/quality/gate-definitions/gates.json) |
acceptance_criteria | Yes | List of acceptance criteria to verify manually |
Thresholds are defined in: skills/quality/gate-definitions/gates.json
Do NOT hardcode values like "80%" or "100%". Always reference the gate definitions:
Gate: qa-gate
├── test_pass_rate: {{thresholds.test_pass_rate.value}}% (currently 100%)
├── code_coverage: {{thresholds.code_coverage.value}}% (currently 80%)
└── max_iterations: {{thresholds.max_qa_iterations.value}} (currently 3)
This ensures consistency across all agents and allows threshold changes in one place.
QA Engineer executes each test suite and captures output:
# Unit tests (example - adapt to project)
npm run test:unit 2>&1 | tee unit-test-output.txt
# Integration tests
npm run test:integration 2>&1 | tee integration-test-output.txt
# E2E tests
npm run test:e2e 2>&1 | tee e2e-test-output.txt
# Coverage report
npm run test:coverage 2>&1 | tee coverage-output.txt
Extract from each test output:
Extract from coverage output:
QA Engineer manually verifies each acceptance criterion:
Document findings for each criterion:
Perform exploratory testing beyond acceptance criteria:
Produce structured report with all evidence.
🤖 **QA Engineer** - {{timestamp}}
## Test Verification Report
**Story:** [{{story_key}}] {{story_title}}
**Verified By:** QA Engineer
**Environment:** {{environment}}
**Gate:** `qa-gate` (thresholds from `skills/quality/gate-definitions/gates.json`)
---
### Automated Test Results
| Test Suite | Total | Passed | Failed | Skipped | Duration |
|------------|-------|--------|--------|---------|----------|
| Unit | {{unit_total}} | {{unit_passed}} | {{unit_failed}} | {{unit_skipped}} | {{unit_duration}} |
| Integration| {{int_total}} | {{int_passed}} | {{int_failed}} | {{int_skipped}} | {{int_duration}} |
| E2E | {{e2e_total}} | {{e2e_passed}} | {{e2e_failed}} | {{e2e_skipped}} | {{e2e_duration}} |
**Overall Pass Rate:** {{pass_rate}}% (threshold: {{gates.qa-gate.thresholds.test_pass_rate}}%)
### Code Coverage
| Metric | Value | Threshold | Status |
|--------|-------|-----------|--------|
| Line Coverage | {{line_cov}}% | {{gates.qa-gate.thresholds.code_coverage}}% | {{status}} |
| Branch Coverage | {{branch_cov}}% | {{gates.qa-gate.thresholds.code_coverage}}% | {{status}} |
| Function Coverage | {{func_cov}}% | {{gates.qa-gate.thresholds.code_coverage}}% | {{status}} |
### Gate Requirements Evaluation
| Requirement | Threshold | Actual | Status |
|-------------|-----------|--------|--------|
| Unit Test Pass Rate | {{gates.qa-gate.thresholds.test_pass_rate}}% | {{unit_pass_rate}}% | ✅ / ❌ |
| Integration Test Pass Rate | {{gates.qa-gate.thresholds.test_pass_rate}}% | {{int_pass_rate}}% | ✅ / ❌ |
| E2E Test Pass Rate | {{gates.qa-gate.thresholds.test_pass_rate}}% | {{e2e_pass_rate}}% | ✅ / ❌ |
| Code Coverage | ≥{{gates.qa-gate.thresholds.code_coverage}}% | {{coverage}}% | ✅ / ❌ |
| Exploratory Testing | Required | {{exploratory_status}} | ✅ / ❌ |
| No Critical Bugs | Required | {{critical_bugs_status}} | ✅ / ❌ |
| Acceptance Criteria | Required | {{ac_status}} | ✅ / ❌ |
### Acceptance Criteria Verification
| # | Criterion | Status | Notes |
|---|-----------|--------|-------|
| 1 | {{criterion_1}} | ✅ / ❌ | {{notes_1}} |
| 2 | {{criterion_2}} | ✅ / ❌ | {{notes_2}} |
| ... | ... | ... | ... |
### Exploratory Testing
**Areas Tested:**
- {{area_1}}
- {{area_2}}
**Findings:**
- {{finding_1}}
- {{finding_2}}
**Concerns/Observations:**
- {{concern_1}} (severity: low/medium/high)
---
### Gate History (This Story)
| Gate | Attempt | Result | Failed Requirements | Date |
|------|---------|--------|---------------------|------|
| Code Review | 1 | ❌ | Coverage 72% (below {{gates.code-review-gate.thresholds.code_coverage}}%) | {{date_1}} |
| Code Review | 2 | ✅ | - | {{date_2}} |
| QA Gate | 1 | {{current_result}} | {{failed_reqs}} | {{current_date}} |
**Iterations at this gate:** {{iteration_count}} of {{gates.qa-gate.on_failure.max_iterations}} max
---
### QA Gate Decision
{{#if all_passed}}
✅ **QA GATE: PASSED**
All requirements met per `qa-gate` definition:
- All tests pass ({{pass_rate}}% = {{gates.qa-gate.thresholds.test_pass_rate}}% threshold)
- Coverage meets threshold ({{coverage}}% ≥ {{gates.qa-gate.thresholds.code_coverage}}%)
- All acceptance criteria verified
- Exploratory testing complete with no blocking issues
**Ready for:** Deployment Approval
{{else}}
❌ **QA GATE: FAILED** (Attempt {{iteration_count}} of {{gates.qa-gate.on_failure.max_iterations}})
**Failed Requirements:**
{{#each failed_requirements}}
- {{this.name}}: {{this.actual}} (required: {{this.threshold}})
{{/each}}
**Required Actions:**
{{#each required_actions}}
- {{this}}
{{/each}}
**Returning to:** {{gates.qa-gate.on_failure.return_to}}
{{#if max_iterations_exceeded}}
⚠️ **Max iterations exceeded** - Escalating to: {{gates.qa-gate.on_failure.escalate_to}}
{{/if}}
{{/if}}
Before signing off, QA Engineer confirms:
Code merged → QA runs this skill → Gate decision → Next step
│
┌───────────┴───────────┐
▼ ▼
PASSED FAILED
│ │
▼ ▼
Deployment Approval Return to Step 3
(TDD fix cycle)
Fix deployed to test → QA runs this skill → Gate decision
│
┌───────────┴───────────┐
▼ ▼
PASSED FAILED
│ │
▼ ▼
Deployment Approval Return to TDD
Bug Fix Loop
| Failure Type | Action |
|---|---|
| Test suite won't run | Document error, escalate to Senior Dev |
| Tests fail | Create bug ticket, return to dev for TDD fix |
| Coverage below threshold | Return to dev to add tests |
| Acceptance criterion fails | Create bug ticket with reproduction steps |
| Critical issue in exploratory | Create P2 bug ticket, block deployment |
All verification reports are stored as:
This ensures:
skills/quality/gate-definitions/ - Gate thresholds (reference this, don't hardcode)skills/testing/test-execution/ - Running specific test typesskills/jira/comment-logging/ - Posting structured commentsskills/testing/add-tests/ - When coverage needs improvementAtlassian:addCommentToJiraIssue - Post verification reportAtlassian:getJiraIssue - Get acceptance criteriaAtlassian:transitionJiraIssue - Update story statusThis skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.