Agent Skills: Astro Testing Skill

Testing and QA gate for Astro lead gen sites. Manual + E2E + A11y + Performance. FAIL = no deploy.

UncategorizedID: Soborbo/claudeskills/astro-testing

Install this agent skill to your local

pnpm dlx add-skill https://github.com/Soborbo/claudeskills/tree/HEAD/astro-testing

Skill Files

Browse the full folder contents for astro-testing.

Download Skill

Loading file tree…

astro-testing/SKILL.md

Skill Metadata

Name
astro-testing
Description
Testing and QA gate for Astro lead gen sites. Manual + E2E + A11y + Performance. FAIL = no deploy.

Astro Testing Skill

No testing = No deploy. Period.

Purpose

QA gate before deployment. Blocking tests must pass.

Output

test_verdict: PASS | WARN | FAIL
blocking_issues: []
warnings: []

Blocking vs Non-Blocking Tests

Blocking (FAIL if any fails)

| Test | Category | |------|----------| | Form submits successfully | Critical | | Thank you page displays | Critical | | Email received (business) | Data | | Confirmation email sent | Data | | Lead saved in system | Data | | Mobile menu works | UX | | Phone link works | UX | | Homepage loads | Core | | 404 page exists | Core | | Lighthouse ≥90 | Performance |

Non-Blocking (WARN only)

| Test | Category | |------|----------| | Animation smoothness | Polish | | Minor CLS (<0.1) | Performance | | Desktop hover states | UX | | Print stylesheet | Accessibility |

Data Integrity Tests (Critical)

data_integrity:
  - form_submitted: true
  - lead_saved: true
  - business_email_sent: true
  - customer_email_sent: true
  - analytics_event_fired: true

Form shows success but data missing = FAIL.

Negative Tests (False Positive Guard)

| Test | Expected | |------|----------| | Submit empty form | Error, no submit | | Invalid email format | Validation error | | Honeypot filled | Silent reject | | Missing privacy consent | Blocked | | SQL injection attempt | Sanitized |

Negative test passes incorrectly = FAIL.

Browser Coverage

browser_matrix:
  required: [mobile_safari, mobile_chrome, desktop_chrome, desktop_safari]
  optional: [firefox, edge, samsung_internet]

Missing required browser = FAIL.

Accessibility Thresholds

| Severity | Max Allowed | Result | |----------|-------------|--------| | Critical | 0 | FAIL | | Serious | 0 | FAIL | | Moderate | 2 | WARN | | Minor | 5 | WARN |

Performance Thresholds

| Metric | Threshold | Result | |--------|-----------|--------| | Lighthouse (all) | ≥90 | FAIL if below | | LCP | <2.5s | WARN if above | | CLS | <0.1 | WARN if above | | Total JS | <100KB | WARN if above |

Critical Path Tests (All 10 Required)

| # | Test | |---|------| | 1 | Homepage loads | | 2 | Primary CTA works | | 3 | Form visible | | 4 | Form submits | | 5 | Thank you displays | | 6 | Business email received | | 7 | Customer email sent | | 8 | Phone link works | | 9 | Mobile menu works | | 10 | 404 page exists |

Any fail = FAIL.

Manual Testing Summary

| Device | Key Checks | |--------|------------| | Mobile (375px) | Menu, form, keyboard, validation, 44px buttons, no h-scroll | | Desktop (1440px) | Header, grid, hover, focus, tab order |

Full checklists → references/checklists.md

Test Verdict

| Condition | Verdict | |-----------|---------| | Any blocking test fails | FAIL | | Data integrity fail | FAIL | | Required browser missing | FAIL | | Lighthouse <90 | FAIL | | Critical/serious a11y | FAIL | | Negative test passes incorrectly | FAIL | | Non-blocking issue | WARN | | Moderate a11y (≤2) | WARN | | All pass | PASS |

Deployment Gate

deployment_gate:
  block_on_fail: true
  require_manual_confirm: true

FAIL → deploy blocked. No exceptions.

FAIL States

| Condition | |-----------| | Any critical path fails | | Form success but no data | | Email not received | | Required browser not tested | | Lighthouse <90 | | Critical/serious a11y |

WARN States

| Condition | |-----------| | Non-blocking test fails | | Moderate a11y ≤2 | | LCP >2.5s | | CLS >0.1 |

References

Definition of Done

  • [ ] 10 critical paths pass
  • [ ] Data integrity verified
  • [ ] Negative tests verified
  • [ ] Required browsers tested
  • [ ] Lighthouse ≥90 all
  • [ ] A11y thresholds met
  • [ ] Mobile manual test done
  • [ ] Desktop manual test done
  • [ ] test_verdict = PASS