{"ok":true,"meta":{"generatedAt":"2026-06-30T13:16:33.114Z"},"data":{"version":"tzv3-performance-budget-v1","budget":{"webVitals":[{"metric":"LCP","target":"<= 2.5s","gate":"Lighthouse mobile and CrUX/Web Vitals after production deploy"},{"metric":"INP","target":"<= 200ms","gate":"Lighthouse user flow and field monitoring"},{"metric":"CLS","target":"<= 0.10","gate":"Lighthouse mobile"},{"metric":"TTFB","target":"<= 800ms","gate":"production edge response check"}],"routeResponse":[{"metric":"home","target":"<= 1500ms local smoke / <= 800ms production edge","gate":"/"},{"metric":"profile","target":"<= 1500ms local smoke / <= 800ms production edge","gate":"/profiles/sofia"},{"metric":"api health","target":"<= 500ms local smoke / <= 300ms production edge","gate":"/api/health"},{"metric":"light load smoke","target":"36 read-only requests at concurrency 6 with p95 <= 1800ms","gate":"npm run load:smoke"},{"metric":"technical SEO audit","target":"robots, sitemap, canonical, JSON-LD, and X-Robots checks pass locally and on production domain","gate":"npm run seo:audit"}],"assets":[{"metric":"image formats","target":"AVIF/WebP enabled through next/image","gate":"next.config.js images.formats"},{"metric":"above-the-fold media","target":"Use optimized image assets and avoid autoplay video on initial viewport","gate":"manual browser QA"},{"metric":"video visit cards","target":"<= 500KB per video, lazy source loading, muted viewport playback","gate":"/api/media/video-policy"},{"metric":"PWA shell","target":"Offline fallback and static/media runtime cache without blocking first paint","gate":"/api/pwa/policy"},{"metric":"initial client JS","target":"Keep interactive islands scoped to catalog/admin controls","gate":"next build route output"}],"fieldMonitoring":[{"metric":"browser Web Vitals reporter","target":"Collect validated Web Vitals payloads without blocking UX","gate":"/api/performance/vitals"},{"metric":"query privacy","target":"Strip query params from reported paths","gate":"WebVitalsReporter pathname payload"}],"requiredChecks":["npm run env:check","npm run typecheck","npm test","npm run lint","npm run build","npm audit --omit=dev","npm run cloudflare:audit","npm run readiness","npm run seo:audit","npm run load:smoke"]},"webVitalsPolicy":{"version":"tzv3-web-vitals-v3","endpoint":"/api/performance/vitals","auditCommand":"npm run vitals:audit","provider":"local-validated-no-store","clientReporter":"next/web-vitals useReportWebVitals","productionTarget":{"externalEndpoint":"WEB_VITALS_ENDPOINT_URL","secret":"WEB_VITALS_ENDPOINT_TOKEN","storage":"provider analytics or approved internal metrics store","timeoutMs":1000},"acceptedMetrics":["CLS","FCP","INP","LCP","TTFB","Next.js custom metrics"],"privacy":{"storesIpAddressInLocalMode":false,"storesProfileSlugInLocalMode":false,"stripsQueryFromPath":true,"forwardsHref":false,"forwardsUserAgent":false,"forwardsOnlyAfterProductionApproval":true},"payloadContract":{"requiredFields":["id","name","value","pathname"],"optionalFields":["label","rating","delta","navigationType","href","userAgent"],"forwardedFields":["id","name","label","value","rating","delta","navigationType","pathname"],"droppedBeforeForwarding":["href","userAgent","query","hash"]}},"notes":["Local smoke checks prove route availability and rough response bounds.","The browser reporter posts validated Web Vitals payloads to /api/performance/vitals in production.","Final production readiness still requires Lighthouse/mobile checks against the deployed domain."]}}