webapp-server-runner
Installation
SKILL.md
webapp-server-runner
Core Rules
- Atomic Socket Readiness Polling: Never launch end-to-end tests using fixed sleep timers. Always poll server port sockets via
with_server.pybefore beginning test execution. - Multi-Server Lifecycle Coordination: Manage backend APIs, frontend dev servers, and mock services concurrently via repeatable
--serverand--portCLI arguments. - Guaranteed Process Termination: All background server processes must be launched in isolated process groups (
os.setsid) and terminated cleanly viaatexithandlers (SIGTERMfollowed bySIGKILL). Zero orphan processes are tolerated. - Exit Code Propagation: The runner must strictly exit with the exact return code emitted by the executed test command, preserving CI test pass/fail semantics.
- Tripartite Evidence Collection on Failure: On test failure, capture screenshot, DOM snapshot, and browser console logs via
playwright-evidence-qa.