qa-check
Deployed URL to test
QA Check — Run Quality Assurance on a Deployed Venture
Run a comprehensive QA check on a deployed venture site and generate a report.
Input
- Venture:
$ARGUMENTS.venture - URL:
$ARGUMENTS.url
Step 1: Prepare
-
Read the venture's
CLAUDE.mdto understand:- What the site does
- Expected pages and routes
- API endpoints
- Known issues or limitations
-
Read
docs/in the venture repo for feature specs and expected behavior. -
Create the report directory if it doesn't exist:
mkdir -p $PROJECTS_DIR/$ARGUMENTS.venture/qa/reports
Step 2: Site Availability
-
Start a preview of the deployed URL:
- Use
mcp__Claude_Preview__preview_startwith the venture URL - Take a screenshot of the homepage with
mcp__Claude_Preview__preview_screenshot
- Use
-
Check HTTP status:
curl -s -o /dev/null -w "%{http_code}" $ARGUMENTS.url -
Check for redirects and verify final URL is correct.
Step 3: Page-by-Page Review
For each major page/route on the site:
- Navigate to the page using
mcp__Claude_Preview__preview_clickor direct URL - Take a screenshot with
mcp__Claude_Preview__preview_screenshot - Get the DOM snapshot with
mcp__Claude_Preview__preview_snapshot - Check console logs with
mcp__Claude_Preview__preview_console_logs— flag any errors or warnings - Check network requests with
mcp__Claude_Preview__preview_network— flag any failed requests (4xx, 5xx)
Step 4: Link Validation
- From the DOM snapshot, extract all links (
<a href="...">) - Categorize them:
- Internal navigation links
- External links
- Anchor links
- CTA buttons
- Click each internal link and verify it loads correctly
- Flag any
href="#"placeholders - For external links, verify they resolve:
curl -s -o /dev/null -w "%{http_code}" {external_url}
Step 5: Form Testing
For each form on the site:
- Identify all form fields from the DOM snapshot
- Fill the form with valid test data using
mcp__Claude_Preview__preview_fill:- Use realistic but clearly test data (e.g., "QA Test User", "[email protected]")
- Submit the form using
mcp__Claude_Preview__preview_click - Check for:
- Success feedback (toast, redirect, thank you message)
- Network request to API endpoint (should be 200)
- No console errors
- Test with invalid data:
- Empty required fields
- Invalid email format
- Very long strings (500+ characters)
- Verify validation messages appear
Step 6: Content Scan
Using the DOM snapshots collected, scan for:
- Placeholder text — Search for:
- "Lorem ipsum"
- "TODO", "FIXME", "HACK"
- "[Name]", "[Company]", "{placeholder}"
- "example.com" in visible text (not code)
- Fabricated content — Flag anything that looks fake:
- Testimonials with stock photo avatars
- Statistics without sources
- Company logos that don't match real companies
- Spelling and grammar — Note obvious errors
Step 7: Responsive Testing
-
Test at mobile width (375px):
mcp__Claude_Preview__preview_resize with width=375- Take screenshot
- Check for horizontal overflow
- Verify navigation works (hamburger menu if applicable)
-
Test at tablet width (768px):
- Take screenshot
- Check layout transitions
-
Test at desktop width (1024px):
- Take screenshot
- Verify full layout
Step 8: Performance Check
-
Check page load metrics using
mcp__Claude_Preview__preview_eval:JSON.stringify(performance.getEntriesByType('navigation')[0]) -
Check for large resources:
performance.getEntriesByType('resource') .filter(r => r.transferSize > 500000) .map(r => ({ name: r.name, size: r.transferSize })) -
Flag any resources over 500KB.
Step 9: Generate Report
-
Compile all findings into a QA report
-
Write the report to
qa/reports/YYYY-MM-DD.mdin the venture repo using the QA agent's output format -
Set overall status:
- PASS — No critical issues, 0-2 minor warnings
- WARN — No critical issues but 3+ warnings
- FAIL — Any critical issue (broken pages, form failures, console errors, placeholder text)
-
If FAIL: Log critical issues so the builder agent can address them in the next cycle
-
If PASS: Note in the venture's changelog that QA passed
Step 10: Cleanup
- Stop the preview session
- Commit and push the QA report:
cd $PROJECTS_DIR/$ARGUMENTS.venture git add qa/reports/ git commit -m "QA report: $(date +%Y-%m-%d) — {PASS/WARN/FAIL}" git push