End-to-End Testing
Purpose
Verify complete user workflows through the real frontend and backend integration.
Project Stack
Playwright, Next.js, FastAPI.
Operating Principles
- Test user-visible behavior rather than implementation details.
- Use stable selectors.
- Cover critical business workflows.
- Include important validation and failure states.
- Keep tests independent where practical.
- Do not use arbitrary sleeps when reliable waits are available.
- Clean up test data appropriately.
- Keep authentication setup reusable and secure.
- Do not claim an E2E workflow passes without actually executing it.
Required Workflow
- Identify the user journey.
- Define prerequisites and test data.
- Write the smallest useful test.
- Run it against the actual application.
- Investigate failures rather than weakening assertions.
- Check browser console/network evidence when useful.
- Keep the test deterministic.
- Record the verification result.
Evidence Rules
Use the strongest available evidence in this order:
- Runtime behavior
- Automated test results
- Type checking, linting, and build results
- Installed package/source behavior
- Official framework or library documentation
- Repository configuration
- Static code inspection
- General model knowledge
Never report an assumption as a verified result.
Tool Selection
- Use Filesystem MCP for repository exploration and file inspection.
- Use Context7 for current, version-specific library/framework documentation.
- Use Fetch when official documentation or public web resources need to be retrieved.
- Use Playwright for browser behavior, frontend interaction, forms, authentication flows, and UI verification.
- Use GitHub CLI for repository, branch, pull request, issue, workflow, and CI operations.
- Prefer the smallest tool set that establishes reliable evidence.
Failure Handling
When something fails:
- Reproduce the failure.
- Capture the exact error.
- Identify the failing layer.
- Check whether the failure is environmental, dependency-related, configuration-related, or caused by application code.
- Research uncertain behavior using authoritative sources.
- Apply the smallest appropriate fix.
- Reproduce the original failure again.
- Run regression checks.
- Inspect the final diff.
Do not hide failures by weakening tests, suppressing errors, deleting evidence, or claiming success without verification.
Security
- Never expose secrets.
- Never commit credentials.
- Treat all external input as untrusted.
- Preserve authentication and authorization boundaries.
- Avoid leaking internal implementation details through errors.
- Review security implications whenever the skill touches users, data, credentials, networking, or deployment.
Completion Criteria
A task using this skill is complete only when:
- The requested behavior is implemented.
- Existing project conventions are preserved.
- Relevant static checks pass.
- Relevant tests pass or their absence is explicitly reported.
- Browser verification is performed when the task affects user-facing behavior.
- Security implications have been considered.
- The final diff has been inspected.
- Verified facts are clearly distinguished from assumptions or remaining uncertainty.
1---2name: e2e-testing3description: End-to-End Testing4---5# End-to-End Testing67## Purpose89Verify complete user workflows through the real frontend and backend integration.1011## Project Stack1213Playwright, Next.js, FastAPI.1415## Operating Principles16171. Test user-visible behavior rather than implementation details.182. Use stable selectors.193. Cover critical business workflows.204. Include important validation and failure states.215. Keep tests independent where practical.226. Do not use arbitrary sleeps when reliable waits are available.237. Clean up test data appropriately.248. Keep authentication setup reusable and secure.259. Do not claim an E2E workflow passes without actually executing it.2627## Required Workflow28291. Identify the user journey.302. Define prerequisites and test data.313. Write the smallest useful test.324. Run it against the actual application.335. Investigate failures rather than weakening assertions.346. Check browser console/network evidence when useful.357. Keep the test deterministic.368. Record the verification result.3738## Evidence Rules3940Use the strongest available evidence in this order:41421. Runtime behavior432. Automated test results443. Type checking, linting, and build results454. Installed package/source behavior465. Official framework or library documentation476. Repository configuration487. Static code inspection498. General model knowledge5051Never report an assumption as a verified result.5253## Tool Selection5455- Use Filesystem MCP for repository exploration and file inspection.56- Use Context7 for current, version-specific library/framework documentation.57- Use Fetch when official documentation or public web resources need to be retrieved.58- Use Playwright for browser behavior, frontend interaction, forms, authentication flows, and UI verification.59- Use GitHub CLI for repository, branch, pull request, issue, workflow, and CI operations.60- Prefer the smallest tool set that establishes reliable evidence.6162## Failure Handling6364When something fails:65661. Reproduce the failure.672. Capture the exact error.683. Identify the failing layer.694. Check whether the failure is environmental, dependency-related, configuration-related, or caused by application code.705. Research uncertain behavior using authoritative sources.716. Apply the smallest appropriate fix.727. Reproduce the original failure again.738. Run regression checks.749. Inspect the final diff.7576Do not hide failures by weakening tests, suppressing errors, deleting evidence, or claiming success without verification.7778## Security7980- Never expose secrets.81- Never commit credentials.82- Treat all external input as untrusted.83- Preserve authentication and authorization boundaries.84- Avoid leaking internal implementation details through errors.85- Review security implications whenever the skill touches users, data, credentials, networking, or deployment.8687## Completion Criteria8889A task using this skill is complete only when:9091- The requested behavior is implemented.92- Existing project conventions are preserved.93- Relevant static checks pass.94- Relevant tests pass or their absence is explicitly reported.95- Browser verification is performed when the task affects user-facing behavior.96- Security implications have been considered.97- The final diff has been inspected.98- Verified facts are clearly distinguished from assumptions or remaining uncertainty.