
validate-e2e
by MarcelMichau
A slightly more-than-trivial full-stack application built with DDD & CQRS concepts
SKILL.md
name: validate-e2e description: Validates features end-to-end using Playwright MCP to navigate the UI and verify feature behavior. Use this skill to confirm that implemented features work correctly in the running application from a user's perspective. Supports feature-aware happy-path validation tailored to the specific feature requirements.
Validate E2E Skill
Use this skill to interactively validate that implemented features work correctly by navigating the UI and verifying expected behavior.
What This Skill Does
- Receives the UI endpoint URL from Aspire runtime (typically
https://localhost:3000) - Receives feature context/requirements from the user or implementation notes
- Uses Playwright MCP browser tools to navigate the UI
- Executes feature-specific validation flows tailored to the requirements
- Verifies UI state changes, element properties, API responses
- Reports validation results (pass/fail per step) with evidence
- Exits with failure if any assertions fail or expected behavior is not observed
When to Use
- After Aspire runtime is healthy and running
- After builds and tests all pass
- To validate feature behavior matches requirements (happy-path workflows)
- To verify UI state changes and interactions work correctly
- To confirm API integration from the user's perspective
How the Agent Should Use This Skill
Step 1: Understand Feature Context
Before starting E2E validation, understand what feature is being validated. Examples:
-
Feature: "Change survey creation button color to purple"
- Validation Flow: Navigate to survey list page → verify button color is purple
-
Feature: "Add user registration flow with Auth0"
- Validation Flow: Navigate to login → register new user → verify user is authenticated
-
Feature: "Create new survey with questions"
- Validation Flow: Login → navigate to create survey → add title and questions → verify survey appears in list
Step 2: Navigate to UI
Use Playwright MCP navigate tool to go to the UI endpoint:
Navigate to: https://localhost:3000
Step 3: Execute Feature-Specific Happy-Path
Based on the feature being validated, execute appropriate steps:
Generic Happy-Path Flows
User Registration Flow (if feature involves user management):
- Take page snapshot to see current UI
- Click "Register" or "Sign Up" button
- Fill in user registration form (email, name, etc.)
- Submit form
- Verify successful registration (redirect to home or dashboard, welcome message)
Survey Creation Flow (if feature involves survey creation):
- Navigate to/login to application
- Click "Create Survey" or "New Survey" button
- Fill in survey title and description
- Verify form validation works (try invalid inputs)
- Submit form
- Verify survey appears in survey list
- Verify survey details load correctly
Survey Completion Flow (if feature involves completing surveys):
- Navigate to available surveys
- Click "Take Survey" or "Complete" button
- Answer survey questions
- Submit responses
- Verify completion confirmation
- Verify survey results/summary displayed
Feature-Specific Validation:
- For "purple button" feature: verify specific element has correct CSS color property
- For "API integration" feature: use Network tab inspection to verify API calls were made
- For "form validation" feature: test invalid inputs and verify error messages appear
- For "sorting/filtering" feature: apply sort/filter and verify results are correct order
Step 4: Assert Expected State
For each validation step, use Playwright to verify:
- Element Presence: Element exists on page (
getByRole('button', { name: 'Create' })) - Element Properties: Check specific attributes (color, text content, disabled state)
- Page Navigation: Verify redirect/navigation happened (
currentURLcontains expected path) - Error Messages: Verify error or success messages appear
- List Content: Verify items in lists match expected values
Step 5: Report Results
Document findings:
- ✅ Pass: Step executed successfully, assertion verified
- ❌ Fail: Step failed, assertion not met (include details: expected vs. actual)
- ⚠️ Partial: Feature works but with caveats (e.g., layout issue but functionality OK)
Example E2E Validation Scenarios
Scenario 1: Change Button Color to Purple
Requirement: Make the "Create Survey" button purple
Validation:
1. Navigate to https://localhost:3000
2. Locate "Create Survey" button
3. Inspect button element for CSS color property
4. Verify color matches purple (e.g., rgb(128, 0, 128) or #800080)
Result: ✅ Button is purple OR ❌ Button is still blue
Scenario 2: User Registration
Requirement: Add Auth0-based user registration
Validation:
1. Navigate to https://localhost:3000
2. Click "Sign Up" link
3. Fill registration form (email: test@example.com, name: Test User)
4. Submit form
5. Verify redirect to dashboard or home page
6. Verify user name displayed in UI
Result: ✅ Registration successful, user authenticated OR ❌ Registration failed
Scenario 3: Create and List Surveys
Requirement: Allow users to create surveys and see them in list
Validation:
1. Navigate to https://localhost:3000 and authenticate
2. Click "Create Survey"
3. Fill form (title: "Test Survey", description: "Test Description")
4. Submit
5. Verify redirect to survey details or list page
6. Verify new survey appears in list with correct title
Result: ✅ Survey created and visible in list OR ❌ Survey not created/not visible
Using Playwright MCP Tools
Key Playwright MCP tools available for this skill:
-
Navigate: Go to URL
mcp_playwright_browser_navigate(url: "https://localhost:3000") -
Click: Click an element
mcp_playwright_browser_click(element: "Create Survey button", ref: "button[name='create']") -
Fill Form: Fill input fields
mcp_playwright_browser_fill_form(fields: [{name: "Email", type: "textbox", ref: "input[type='email']", value: "test@example.com"}]) -
Evaluate: Run JavaScript to inspect state
mcp_playwright_browser_evaluate(function: "() => document.querySelector('button').textContent") -
Take Snapshot: Capture accessibility snapshot of page
(Use activate_page_capture_tools to access screenshot tools) -
Wait For: Wait for text or UI to appear
mcp_playwright_browser_wait_for(text: "Survey created successfully")
Success Criteria
- All feature-specific validation steps execute without errors
- All assertions pass (elements exist, properties match, navigation works)
- No UI errors or broken state observed
- User can complete the intended workflow
Failure Indicators
- Any assertion fails (element missing, property mismatch, navigation broken)
- JavaScript errors in browser console
- Unexpected navigation or state
- Error messages appearing where success expected
- Timeout waiting for expected elements/text
Important Notes
- Feature Context: The specifics of what to validate depend on the feature requirements. Tailor the flow to the actual feature being implemented.
- Authentication: Some flows may require authentication. If starting from unauthenticated state, include login step if needed.
- Timing: Some operations take time (API calls, page loads). Use
wait_forto wait for UI updates. - Browser State: Each validation run starts fresh; previous state is not retained between runs.
- Developer Certificates: UI uses developer HTTPS certificates; browser will trust them (auto-configured).
Cleanup
After E2E validation completes, manually stop Aspire:
Press Ctrl+C in the terminal running `aspire run`
Next Steps
- If validation passes: Feature implementation is complete and validated ✅
- If validation fails: Report failures to user for debugging/fixing
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon

