一键导入
e2e-ui-execute
Implement UI E2E tests sequentially using Playwright MCP, stop on bug discovery. Use after e2e-ui-research to implement the planned test scenarios.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Implement UI E2E tests sequentially using Playwright MCP, stop on bug discovery. Use after e2e-ui-research to implement the planned test scenarios.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Transform verbose natural language requests into structured bilingual documentation (Korean for review + English for AI prompts). Use when you need to clarify and structure a complex request before implementation.
Review current git changes or latest commit using code-reviewer and architect-reviewer agents. Use after completing code changes to get comprehensive quality feedback.
Review comments and suggest cleanup (identify unnecessary comments, recommend improvements). Use to aggressively clean up comment debt in code.
Generate Conventional Commits-compliant messages (feat/fix/docs/chore) in Korean and English. Use when you need to create a well-structured commit message for staged changes.
Identify and safely remove dead code, deprecated code, and unused exports from codebase. Use when you need to clean up unused or obsolete code.
Generate business rule documentation from domain knowledge and requirements. Use when documenting complex business logic.
| name | e2e-ui-execute |
| description | Implement UI E2E tests sequentially using Playwright MCP, stop on bug discovery. Use after e2e-ui-research to implement the planned test scenarios. |
| context | fork |
| agent | general-purpose |
$ARGUMENTS
Extract test number (if specified) and consider any additional context from user input (if not empty).
Check Prerequisites:
docs/e2e-ui/test-targets.md exists (English version, for AI)Read Project Configuration:
playwright.config.ts (or .js):
testDir or testMatchwebServer.url or use.baseURLpackage.json (in same directory):
next, react, vue, svelte, etc.Load Test Targets:
Execute Tests Sequentially:
Generate Documentation:
docs/e2e-ui/summary-test-N.md for each completed testdocs/e2e-ui/bug-report-test-N.ko.md and bug-report-test-N.md for bugsReport Results:
Document and continue when these situations occur:
Page Load Failure:
Element Not Found:
Interaction Failure:
Console Errors:
Unexpected Behavior:
Bug Report Format (create both ko.md and md versions):
Files to create:
docs/e2e-ui/bug-report-test-N.ko.md (Korean)docs/e2e-ui/bug-report-test-N.md (English)## 🐛 Bug Found
**Test**: [Test N: name]
**Priority**: [Critical/High/Medium]
**What Was Being Tested**:
[description]
**Reproduction Steps**:
1. [step 1]
2. [step 2]
3. [bug occurs here]
**Expected Behavior**:
[what should happen]
**Actual Behavior**:
[what actually happened]
**Evidence**:
- Screenshot: [path]
- Console Errors: [if any]
- Page State: [snapshot info]
**Impact**:
[impact on users]
After creating bug report, continue to next test instead of stopping.
playwright.config.ts and package.json first to get project configuration
playwright.config.ts (it's the primary source of truth)For each test:
Manual Verification (using Playwright MCP):
- Navigate to page
- Interact with UI elements
- Take snapshots
- Verify expected behavior
- Check console messages
Bug Check:
Decision Point:
Write Test Code (only if passed):
// Create test file in directory from playwright.config.ts (testDir or testMatch)
// Follow project test patterns
// Include assertions and error handling
// Follow naming convention from testMatch pattern (e.g., *.spec.ts, *.e2e.ts)
Documentation:
File to create: docs/e2e-ui/summary-test-N.md
# Test N: [scenario name]
> **Created**: [YYYY-MM-DD HH:mm]
> **Related Plan**: `test-targets.md` > Test N
> **Status**: ✅ Pass / 🐛 Bug Found
---
## 🎯 Test Objective
[what this test verifies]
---
## 🧪 Manual Verification Results
**Test Steps Performed**:
1. [step 1] - ✅ Success
2. [step 2] - ✅ Success
3. [step 3] - ✅ Success
**Screenshots**:
- [screenshot 1]: `path/to/screenshot1.png`
- [screenshot 2]: `path/to/screenshot2.png`
**Console Output**:
- [relevant console messages]
**Observations**:
- [interesting findings]
---
## 📝 Generated Test Code
**File**: `[path/to/test/file.spec.ts]`
**Main Assertions**:
- [assertion 1]
- [assertion 2]
**Code Structure**:
```typescript
// Brief overview of test structure
test("scenario name", async ({ page }) => {
// test steps
});
```
Test Execution:
Edge Cases Tested:
What This Test Covers:
What It Doesn't Cover (future):
---
## Bug Report Template
**Create bilingual bug reports when bug found**:
Files to create:
- `docs/e2e-ui/bug-report-test-N.ko.md` (Korean version)
- `docs/e2e-ui/bug-report-test-N.md` (English version)
### Korean Version Template
```markdown
# 🐛 버그 리포트: Test N
> **발견일시**: [YYYY-MM-DD HH:mm]
> **테스트**: Test N: [시나리오 이름]
> **우선순위**: [Critical/High/Medium]
---
## 📋 버그 요약
[버그에 대한 한 문장 설명]
---
## 🔍 상세 내용
**테스트 대상**:
[테스트 시나리오 설명]
**재현 단계**:
1. [단계 1]
2. [단계 2]
3. [버그 발생 지점]
**예상 동작**:
[기대했던 동작]
**실제 동작**:
[실제 발생한 동작]
---
## 📸 증거
**스크린샷**:
- [스크린샷 1]: `path/to/screenshot.png`
**콘솔 에러**:
[콘솔 에러 메시지 붙여넣기]
**페이지 상태**:
```yaml
[페이지 스냅샷 또는 관련 HTML]
사용자 영향: [최종 사용자에게 미치는 영향]
심각도: [이 우선순위 레벨인 이유]
/e2e-ui:execute N으로 이 테스트부터 재개 가능
### English Version Template
```markdown
# 🐛 Bug Report: Test N
> **Discovered**: [YYYY-MM-DD HH:mm]
> **Test**: Test N: [scenario name]
> **Priority**: [Critical/High/Medium]
---
## 📋 Bug Summary
[one sentence description of bug]
---
## 🔍 Details
**What Was Being Tested**:
[test scenario description]
**Reproduction Steps**:
1. [step 1]
2. [step 2]
3. [bug occurs here]
**Expected Behavior**:
[what should happen]
**Actual Behavior**:
[what actually happened]
---
## 📸 Evidence
**Screenshots**:
- [screenshot 1]: `path/to/screenshot.png`
**Console Errors**:
[paste console error messages]
**Page State**:
```yaml
[page snapshot or relevant HTML]
User Impact: [impact on end users]
Severity: [why this priority level]
/e2e-ui:execute N to continue from this test
**Important**: After creating bug report, continue to next test instead of stopping.
---
## Execution Flow
### Initialization
1. **Read project configuration files**:
- `playwright.config.ts`: Extract test directory, base URL, naming convention from testMatch
- `package.json`: Detect framework from dependencies (next, react, vue, etc.)
- **Fallback**: If config not found, ask user for test directory and base URL
2. Load test targets document (docs/e2e-ui/test-targets.md - English version, for AI)
3. Determine which tests to run
4. Check existing summaries (resume capability)
### For Each Test
1. **Announce**: "Starting Test N: [name]"
2. **Manual Testing**:
- Use Playwright MCP tools
- Navigate, interact, verify
- Take screenshots
- Check console
3. **Evaluate**:
- Is behavior correct?
- Any errors?
4. **Decide**:
- If bug: Generate bilingual bug report (ko.md + md), continue to next
- If pass: Continue to code writing
5. **Write Code** (only if passed):
- Create test file in directory from playwright.config.ts
- Implement test logic
- Follow coding standards
- Follow naming convention from testMatch pattern
6. **Document**:
- Generate summary (if passed)
- Generate bug report (if bug found)
- Record findings
7. **Progress**: "Test N complete. Moving to Test N+1..."
### Completion
- Provide comprehensive summary:
- List of tests passed with generated code
- List of bugs found with report links
- Overall coverage achieved
- Recommendations for next steps
---
## Execute
Start working according to the guidelines above.