{%- set test_cfg = testing if testing else {} -%}
{%- set pqa = test_cfg.get('product_qa', {}) -%}
{%- set qa_cfg = quick_acceptance if quick_acceptance else {} -%}
## 4.7 QA Acceptance Protocol (important)

> **After each feature is completed, QA test cases must be updated simultaneously for acceptance**

**QA Test Case Elements**:
- Test ID ({{ pqa.get('case_id_pattern', 'TC-{module}-{seq}') }})
- Related Feature (TASK-ID)
- Preconditions
- Test Steps (reproducible operation sequence)
- Expected Results (clear, verifiable)
- Test Status

**Developer Responsibilities**:
1. When a feature is complete, add test cases to `{{ pqa.get('test_case_file', 'docs/QA_TEST_CASES.md') }}`
2. Provide clear operation steps and expected behavior
3. Note known limitations or edge cases

**QA Responsibilities**:
1. Execute acceptance tests per test cases
2. Record actual results and issues
3. Update test status (pass/partial/fail)
4. **On acceptance failure**: Attach logs/screenshots
5. Submit bugs to the known issues table

## 4.8 Quick Acceptance Reply Template

After feature development, the AI must provide a **quick acceptance checklist** that users can directly copy and reply:

```markdown
## Quick Acceptance

**Start**: `{{ qa_cfg.get('start_command', 'npm run dev') }}`

**Acceptance Items**:
- [ ] Feature A: {operation} -> {expected}
- [ ] Feature B: {operation} -> {expected}
- [ ] Feature C: {operation} -> {expected}

**Quick Reply** (copy and modify before sending):
[PASS] All passed
or
[ISSUE] Problem: {describe the issue}
```

**User Reply Format**:
- `[PASS]` or `pass` - All acceptance passed, proceed to next step
- `[ISSUE] Problem: xxx` - Issue found, needs fixing
- `skip` - Skip acceptance for now, continue

