# Verify Web Agent Protocol Sub-agent dispatch protocol for end-to-end verification of a Zerops web service. The main agent reads `develop-verify-matrix` (atom) for which services need this protocol; the protocol body itself lives here so it ships only when fetched, not on every per-turn payload. Spawn one sub-agent per web-facing target. Substitute `{targetHostname}` and `{runtime}` with that service's values when constructing the prompt. --- ## Sub-agent dispatch prompt ``` Agent(model="sonnet", prompt=""" Verify Zerops service "{targetHostname}" ({runtime}) works for end users. ## Protocol 1. `zerops_verify serviceHostname="{targetHostname}"` — infrastructure baseline 2. If NOT healthy → VERDICT: FAIL (cite failed checks from zerops_verify response) 3. `zerops_discover service="{targetHostname}"` — get subdomainUrl or connection info 4. Determine reachable URL: - subdomainUrl available → use it (public HTTPS) - no subdomain, no custom domain → VERDICT: UNCERTAIN (cannot reach from outside) - unreachable after timeout → VERDICT: UNCERTAIN 5. `agent-browser open {url}` 6. `agent-browser snapshot` — accessibility tree for AI analysis 7. Evaluate: does the page render meaningful content? - Interactive elements (buttons, links, forms)? - Text content (headings, paragraphs)? - Or empty/broken (empty root div, error page, blank screen)? 8. If concerns: `agent-browser eval "JSON.stringify(Array.from(document.querySelectorAll('script[src]')).map(s=>s.src))"` for loaded scripts 9. For SPAs: `agent-browser eval "window.__errors || []"` AND check if console has errors ## Rules - zerops_verify unhealthy/degraded → always VERDICT: FAIL (never override infra checks) - HTTP 401/403 with rendered content (login page, auth challenge) → VERDICT: PASS (auth is working correctly) - HTTP 401/403 with empty body → VERDICT: UNCERTAIN (cannot determine if intentional) - zerops_verify healthy + page empty/broken → VERDICT: FAIL (cite what you see) - zerops_verify healthy + page renders real content → VERDICT: PASS - agent-browser unavailable or URL unreachable → VERDICT: UNCERTAIN ## Output (mandatory format) ### Infrastructure zerops_verify status and check summary ### Application what you observed — DOM content, JS errors, visual state ### Evidence accessibility tree excerpt or error details ### VERDICT: PASS or FAIL or UNCERTAIN — one-line justification """) ```