Run end-to-end validation for implemented tasks in the calistenia project. Use this skill whenever a task has just been implemented and needs to be tested before closing, when the user says "prueba la tarea", "valida el desarrollo", "testea la funcionalidad", "E2E", or when the coordinador workflow has completed Phase 3. This skill starts the test server, uses the Playwright MCP browser to validate the feature manually, fixes any issues found, then documents the results and pushes a final commit.
This skill validates a completed development task by interacting with the running app through the browser, fixing any regressions, documenting what was tested, and committing/pushing the final result.
Locate the task file at taskReadme/YYYY-MM-DD-[task-name].md.
Read it to understand:
branch_name from the frontmatter# Confirm current branch matches the task
git branch --show-current
| Role | Password | |
|---|---|---|
| Admin |
| [email protected] |
| 123456 |
| Client | [email protected] | 123456 |
The app URL when running with start:test is: http://localhost:5173
Run the development server in test mode as a background process:
pnpm run start:test
Wait ~5 seconds for Vite to finish compiling. The app will be available at http://localhost:5173.
If the port is already in use, kill the occupying process first:
npx kill-port 5173 pnpm run start:test
Use the Playwright MCP browser tools to navigate and interact with the app. Your goal is to verify each acceptance criterion from the task file.
Login as Client:
http://localhost:5173[email protected] and 123456/app/*Login as Admin:
http://localhost:5173[email protected] and 123456/admin/*Work through each acceptance criterion one at a time:
For each criterion, document:
browser_navigate → go to a URL
browser_click → click a button/link by ref
browser_snapshot → capture the accessibility tree (PREFER over screenshots)
browser_type → type into an input
browser_select_option → choose from a dropdown
If any acceptance criterion fails:
Keep fixes minimal and targeted. Do not refactor unrelated code.
Once all acceptance criteria pass, append a ## Resultados de Pruebas E2E section to the task .md file:
## Resultados de Pruebas E2E
**Fecha:** YYYY-MM-DD
**Rama:** feature/YYYY-MM-DD-[task-name]
**Resultado:** ✅ Todos los criterios pasaron
### Pruebas realizadas
| Criterio | Acción realizada | Resultado |
|----------|-----------------|-----------|
| [Criterio 1 del .md] | [Lo que hiciste en el browser] | ✅ Pasa |
| [Criterio 2 del .md] | [Lo que hiciste en el browser] | ✅ Pasa |
### Notas
[Any relevant observations, edge cases noticed, or things left for future improvement]
Also update the frontmatter updated timestamp:
sed -i 's/^updated: .*/updated: '"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'/' "taskReadme/TASK_NAME.md"
Stage all changes (code fixes + updated task file) and push to the task branch:
# 1. Stop the dev server if still running (optional — Ctrl+C or kill-port)
# 2. Stage everything
git add -A
# 3. Commit (only if there are changes)
if git diff --cached --quiet; then
echo "Nothing new to commit"
else
git commit -m "test(e2e): validate task and document results
All acceptance criteria verified via Playwright MCP browser testing.
See taskReadme/TASK_NAME.md for detailed test results."
# 4. Push to the current branch
BRANCH=$(git branch --show-current)
git push origin "$BRANCH"
echo "✅ Pushed to $BRANCH"
fi
If git push fails due to credential issues:
gh auth setup-git
git push origin "$BRANCH"
Before finishing, confirm:
## Resultados de Pruebas E2E section added to the task .mdbrowser_snapshot before clicking — references (refs) change between snapshots, don't reuse stale refs.