원클릭으로
astro-testing
Testing and QA gate for Astro lead gen sites. Manual + E2E + A11y + Performance. FAIL = no deploy.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Testing and QA gate for Astro lead gen sites. Manual + E2E + A11y + Performance. FAIL = no deploy.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Canonical lead-gen tracking for Astro.js on Cloudflare Workers (v6, Run 6 contract). Drop-in components: <Tracking/>, <TrackedForm/>, <PhoneLink/>, <CallbackButton/>. Two channels with a SHARED event_id: browser (GTM → GA4 / Meta Pixel / Google Ads) + server-side via the Soborbo event-gateway worker. Model 2: the browser OWNS on-site GA4 + Google Ads; the server sends Meta CAPI on-site (+ TikTok/LinkedIn/Microsoft click-ID forwarders, event_id-deduped) and Google Ads ONLY offline (CRM lead lifecycle, Google Data Manager API); the server sends NO GA4. Two gateway ingress paths: tokenless browser path for low-risk clicks (Origin allow-list + rate limit), authenticated server path (per-site token, service binding) for form/lead/purchase conversions dispatched by the site BACKEND. No Turnstile. Daily synthetic smoke-lead cron + digest guard. Consent Mode v2 + CookieYes, gclid/gbraid/wbraid/fbclid + full UTM capture, calculator funnel, form abandonment, phone dedup, first/last touch attribution. Bilingual / multi-
DEPRECATED (legacy, in old/) — use the `soborbo-tracking` skill instead for GA4 + Meta + Google Ads tracking on Astro. Kept for reference only.
Audit and strengthen visible E-E-A-T signals and AI-search (GEO) readiness on Astro lead-gen sites. Use when a page or site needs Experience/Expertise/Authoritativeness/Trust signals, author credibility, first-hand-experience proof, trust pages (about/contact/privacy/returns), NAP + company registration display, review/trust-mark surfacing, AI-crawler access in robots.txt, or answer-first content for ChatGPT/Gemini/Perplexity/AI Overviews. Also triggers on "EEAT", "E-E-A-T", "GEO", "AEO", "AI search visibility", "get cited by AI", "trust signals", "author bio", "local trust", or making a small/niche business outrank larger competitors. Runs a deterministic auditor with runnable tests. Delegates JSON-LD generation to schema-entity-graph and JSON-LD validation to schema-audit; delegates copy voice to humanise-copy.
Width-based responsive image patterns for Astro. Local build-time processing, per-format quality (AVIF/WebP/JPG/PNG), alpha-aware fallback, art direction, face-focus, OG generation, image SEO. Picture, ArtPicture, FixedImage components.
Per-site client tracker and Astro endpoint for the centralised soborbo-error-pipeline workers. Captures client JS errors via sendBeacon, forwards via console.error → Tail Worker. Server-side uncaught exceptions are captured automatically. ~1.5KB client bundle, no external deps. Email throttled to 1 per (site, code) per 4 hours by the notifier worker.
Form infrastructure for Astro projects. Contact forms, booking forms, quote requests. Zod validation, email delivery (Resend/Brevo), rate limiting, Google Sheets, postcode lookup, spam protection.
| name | astro-testing |
| description | Testing and QA gate for Astro lead gen sites. Manual + E2E + A11y + Performance. FAIL = no deploy. |
No testing = No deploy. Period.
QA gate before deployment. Blocking tests must pass.
test_verdict: PASS | WARN | FAIL
blocking_issues: []
warnings: []
| 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 |
| Test | Category |
|---|---|
| Animation smoothness | Polish |
| Minor CLS (<0.1) | Performance |
| Desktop hover states | UX |
| Print stylesheet | Accessibility |
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.
| 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_matrix:
required: [mobile_safari, mobile_chrome, desktop_chrome, desktop_safari]
optional: [firefox, edge, samsung_internet]
Missing required browser = FAIL.
| Severity | Max Allowed | Result |
|---|---|---|
| Critical | 0 | FAIL |
| Serious | 0 | FAIL |
| Moderate | 2 | WARN |
| Minor | 5 | WARN |
| 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 |
| # | 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.
| 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
| 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:
block_on_fail: true
require_manual_confirm: true
FAIL → deploy blocked. No exceptions.
| Condition |
|---|
| Any critical path fails |
| Form success but no data |
| Email not received |
| Required browser not tested |
| Lighthouse <90 |
| Critical/serious a11y |
| Condition |
|---|
| Non-blocking test fails |
| Moderate a11y ≤2 |
| LCP >2.5s |
| CLS >0.1 |