---
description: Create a QA test plan for a feature
argument-hint: <feature-slug>
allowed-tools: Bash, Read, Write, Edit, Glob, Grep
---

Create a QA plan for feature: $ARGUMENTS

## Instructions

### 1. Load All Planning Artifacts

```bash
sdlc feature show $ARGUMENTS --json
```

Read all of:
- `.sdlc/features/$ARGUMENTS/spec.md` -- acceptance criteria drive tests
- `.sdlc/features/$ARGUMENTS/design.md` -- architecture informs integration tests
- `.sdlc/features/$ARGUMENTS/tasks.md` -- task scope informs unit tests

### 2. Derive Test Scenarios from Acceptance Criteria

For each acceptance criterion in the spec, create at least one test scenario. Group scenarios by type.

### 3. Write the QA Plan

Write to `.sdlc/features/$ARGUMENTS/qa-plan.md`:

```markdown
# QA Plan: [Feature Title]

## Test Scenarios

### Happy Path
| ID | Scenario | Input | Expected Output | Derived From |
|----|----------|-------|-----------------|--------------|
| HP-1 | [description] | [input] | [expected] | AC-N |

### Edge Cases
| ID | Scenario | Input | Expected Output | Derived From |
|----|----------|-------|-----------------|--------------|
| EC-1 | [description] | [input] | [expected] | AC-N |

### Error Cases
| ID | Scenario | Input | Expected Output | Derived From |
|----|----------|-------|-----------------|--------------|
| ER-1 | [description] | [input] | [expected] | AC-N |

## Test Data Requirements
[What test data must be set up, fixtures, mocks]

## Integration Test Plan
[How components interact, what to test end-to-end]

## Performance Considerations
[Load expectations, latency budgets, benchmarks to run]

## Manual Verification Steps
[Anything that cannot be automated]
```

### 4. Register the Artifact

```bash
sdlc artifact create $ARGUMENTS qa_plan
```

### 5. Report

Summarize scenario counts by category and flag any acceptance criteria that lack test coverage.

## Critical Rules

- ALWAYS derive test scenarios from acceptance criteria in the spec
- NEVER skip edge cases -- they catch the real bugs
- ALWAYS include integration scenarios that cross component boundaries
- ALWAYS include error cases for every external dependency
- NEVER leave an acceptance criterion without a corresponding test scenario
