const scan = await sitelyns.scan({ url, depth: 3 });
for (const page of scan.pages) {
report.push(audit(page, { wcag: '2.2', level: 'AA' }));
}
return report.summary();
monitor.uptime(site, { interval: 60, regions: ['ap-south', 'eu-west'] });
headers.require(['content-security-policy', 'strict-transport-security']);
if (vitals.lcp > 2500) queue.optimize(page.assets);
seo.check(page).titles().meta().canonical();
EXPORT signals.accessibility
violations->group(rule_id)
contrast_ratio < 4.5 ? flag(node)
aria_label == null ? flag(control)
EXPORT signals.performance
ttfb, fcp, lcp, cls, inp
score = weights.a11y * a11y
+ weights.perf * perf
+ weights.seo * seo
+ weights.sec * security;
alert.when(score.delta < -5).notify(team);
tls.expiry(site) < 14d ? warn('certificate')
dns.resolve(site).ok() || incident.open()
crawl.links(page).filter(broken).report()
uptime.history(site, '30d').sla()
ok 200
ok 200
ok 301
ok 200
warn 3.1s
ok 200
ok 200
err 503
ok 200
ok 200