How I Build Cypress Automation & AI Agent QA.
Overview
I build two layers of protection for every client project: Cypress E2E Automation, automated browser tests that click, type, and verify your app like a real user, and AI Agent QA, an intelligent agent that reviews code, spots security gaps, and writes tests using context about your product. Both work together to catch bugs before your users do.
What to Verify
Two layers of protection for every client project:
- Cypress E2E. Full CRUD for every data operation, API error scenarios (users never see a blank screen), and auth flows (no unauthorized access slips through).
- AI Agent QA. Verifies that generated tests cover the acceptance criteria from day one, follow the rules (id selectors, one spec per page, happy path + error + edge cases), and pass 100% before a ticket is closed.
- Beyond the functional layer. Endpoint gaps (e.g. returning 200 instead of 400 for negative input) and missing data-testid attributes are also caught and communicated back.
How to Verify
- Cypress: stable id selectors, a single source of truth in app-constants.json, tests run headed, and three reports (feature coverage, pass/fail history, spec registry) updated on every run.
- AI Tester Agent (built on Claude):
- Reads the PRD, GitHub issue, backend routes, frontend components, and fixtures first
- Writes a test plan in the issue as a contract
- Writes tests following the conventions
- Runs until 100% pass, diagnosing test bug vs app bug
- Updates the QA report.
- Before the Tester starts, read-only Code Reviewer and Security Reviewer agents produce severity-graded reports (CRITICAL/WARNING/SUGGESTION); the Tester only begins once all CRITICALs are resolved.
- Inter-agent communication flows through a structured inbox, pending-signals.md, where each signal moves from PENDING to RESOLVED.