{"shareToken":"87b6x3xs86r9","shareUrl":"http://www.whosbest.org/check/87b6x3xs86r9","markdownUrl":"http://www.whosbest.org/api/v1/readiness/scan/87b6x3xs86r9.md","jsonUrl":"http://www.whosbest.org/api/v1/readiness/scan/87b6x3xs86r9","badgeUrl":"http://www.whosbest.org/api/badge/johnlacorte.com.svg","checkedAt":"2026-08-24T18:22:42.0753756","isPrivate":false,"report":{"rootUrl":"https://johnlacorte.com/","normalizedHost":"johnlacorte.com","startedAt":"2026-08-24T18:22:41.2200961Z","completedAt":"2026-08-24T18:22:42.0753756Z","pagesDiscovered":1,"pagesScanned":1,"engineVersion":"2.0","siteChecks":[{"id":"S1","name":"llms.txt exists","group":"site","tier":"required","status":"fail","message":"No llms.txt found at /llms.txt, /.well-known/llms.txt, /docs/llms.txt or /llms-full.txt","howToFix":"# johnlacorte.com\n\n> One-paragraph summary of what the site offers.\n\n## Docs\n\n- [About](https://johnlacorte.com/about.md): What we do\n","fixPrompt":"You are editing the website at johnlacorte.com. The site has no llms.txt file. Publish https://johnlacorte.com/llms.txt as UTF-8 text/plain following the llmstxt.org format: an H1 with the site name, a > blockquote summary, then ## sections containing - [Title](https://johnlacorte.com/page.md): description link lists. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms.txt","url":"https://johnlacorte.com/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480\"></meta></head></html>","outcome":"positive","durationMs":72},{"action":"fetch","label":"Probe /.well-known/llms.txt","url":"https://johnlacorte.com/.well-known/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529\"></meta></head></html>","outcome":"positive","durationMs":45},{"action":"fetch","label":"Probe /docs/llms.txt","url":"https://johnlacorte.com/docs/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562\"></meta></head></html>","outcome":"positive","durationMs":31},{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593\"></meta></head></html>","outcome":"positive","durationMs":31},{"action":"parse","label":"None of the 4 candidate locations returned a 2xx llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No llms.txt found at /llms.txt, /.well-known/llms.txt, /docs/llms.txt or /llms-full.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"S2","name":"llms.txt served as text/plain","group":"site","tier":"required","status":"fail","message":"llms.txt not found","howToFix":"# johnlacorte.com\n\n> One-paragraph summary of what the site offers.\n\n## Docs\n\n- [About](https://johnlacorte.com/about.md): What we do\n","fixPrompt":"You are editing the website at johnlacorte.com. The site has no llms.txt file. Publish https://johnlacorte.com/llms.txt as UTF-8 text/plain following the llmstxt.org format: an H1 with the site name, a > blockquote summary, then ## sections containing - [Title](https://johnlacorte.com/page.md): description link lists. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms.txt","url":"https://johnlacorte.com/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480\"></meta></head></html>","outcome":"negative","durationMs":72},{"action":"fetch","label":"Probe /.well-known/llms.txt","url":"https://johnlacorte.com/.well-known/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529\"></meta></head></html>","outcome":"negative","durationMs":45},{"action":"fetch","label":"Probe /docs/llms.txt","url":"https://johnlacorte.com/docs/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"parse","label":"None of the 4 candidate locations returned a 2xx llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"llms.txt not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"S3","name":"llms.txt is non-empty","group":"site","tier":"required","status":"fail","message":"llms.txt not found","howToFix":"# johnlacorte.com\n\n> One-paragraph summary of what the site offers.\n\n## Docs\n\n- [About](https://johnlacorte.com/about.md): What we do\n","fixPrompt":"You are editing the website at johnlacorte.com. The site has no llms.txt file. Publish https://johnlacorte.com/llms.txt as UTF-8 text/plain following the llmstxt.org format: an H1 with the site name, a > blockquote summary, then ## sections containing - [Title](https://johnlacorte.com/page.md): description link lists. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms.txt","url":"https://johnlacorte.com/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480\"></meta></head></html>","outcome":"negative","durationMs":72},{"action":"fetch","label":"Probe /.well-known/llms.txt","url":"https://johnlacorte.com/.well-known/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529\"></meta></head></html>","outcome":"negative","durationMs":45},{"action":"fetch","label":"Probe /docs/llms.txt","url":"https://johnlacorte.com/docs/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"parse","label":"None of the 4 candidate locations returned a 2xx llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"llms.txt not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"S4","name":"llms.txt links do not point at .html files","group":"site","tier":"recommended","status":"fail","message":"llms.txt not found","howToFix":"# johnlacorte.com\n\n> One-paragraph summary of what the site offers.\n\n## Docs\n\n- [About](https://johnlacorte.com/about.md): What we do\n","fixPrompt":"You are editing the website at johnlacorte.com. The site has no llms.txt file. Publish https://johnlacorte.com/llms.txt as UTF-8 text/plain following the llmstxt.org format: an H1 with the site name, a > blockquote summary, then ## sections containing - [Title](https://johnlacorte.com/page.md): description link lists. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms.txt","url":"https://johnlacorte.com/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480\"></meta></head></html>","outcome":"negative","durationMs":72},{"action":"fetch","label":"Probe /.well-known/llms.txt","url":"https://johnlacorte.com/.well-known/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529\"></meta></head></html>","outcome":"negative","durationMs":45},{"action":"fetch","label":"Probe /docs/llms.txt","url":"https://johnlacorte.com/docs/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"parse","label":"None of the 4 candidate locations returned a 2xx llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"llms.txt not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"S5","name":"robots.txt allows AI crawlers","group":"site","tier":"required","status":"pass","message":"No robots.txt — all crawlers allowed by default","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /robots.txt","url":"https://johnlacorte.com/robots.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Frobots.txt&y=ipc:54.167.72.249:1787595761.411\"></meta></head></html>","outcome":"negative","durationMs":33},{"action":"parse","label":"robots.txt not available (HTTP 202); nothing restricts AI crawlers","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null},{"action":"conclude","label":"No robots.txt — all crawlers allowed by default","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null}]},{"id":"S6","name":"/llms.txt is not blocked by robots.txt","group":"site","tier":"required","status":"pass","message":"No robots.txt — /llms.txt is reachable","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /robots.txt","url":"https://johnlacorte.com/robots.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Frobots.txt&y=ipc:54.167.72.249:1787595761.411\"></meta></head></html>","outcome":"negative","durationMs":33},{"action":"parse","label":"robots.txt not available (HTTP 202); nothing can block /llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null},{"action":"conclude","label":"No robots.txt — /llms.txt is reachable","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null}]},{"id":"S7","name":"robots.txt exists","group":"site","tier":"required","status":"fail","message":"robots.txt returned HTTP 202","howToFix":"User-agent: *\nAllow: /\n\nSitemap: https://johnlacorte.com/sitemap.xml\n","fixPrompt":"You are editing the website at johnlacorte.com. The site has no robots.txt. Publish https://johnlacorte.com/robots.txt with a User-agent: * group and a Sitemap: https://johnlacorte.com/sitemap.xml line. Spec: https://www.rfc-editor.org/rfc/rfc9309","specUrl":"https://www.rfc-editor.org/rfc/rfc9309","evidence":[{"action":"fetch","label":"GET /robots.txt","url":"https://johnlacorte.com/robots.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Frobots.txt&y=ipc:54.167.72.249:1787595761.411\"></meta></head></html>","outcome":"negative","durationMs":33},{"action":"parse","label":"robots.txt not available (HTTP 202)","url":"https://johnlacorte.com/robots.txt","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"robots.txt returned HTTP 202","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"S8","name":"sitemap.xml is valid","group":"site","tier":"required","status":"fail","message":"sitemap.xml is not valid XML: '=' is an unexpected token. The expected token is ';'. Line 1, position 130.","howToFix":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n  <url><loc>https://johnlacorte.com/</loc><lastmod>2026-01-01</lastmod></url>\n</urlset>","fixPrompt":"You are editing the website at johnlacorte.com. sitemap.xml is missing or invalid. Publish a valid https://johnlacorte.com/sitemap.xml (urlset with <url><loc>…</loc><lastmod>…</lastmod></url> entries) and reference it from robots.txt. Spec: https://www.sitemaps.org/protocol.html","specUrl":"https://www.sitemaps.org/protocol.html","evidence":[{"action":"fetch","label":"GET /sitemap.xml","url":"https://johnlacorte.com/sitemap.xml","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fsitemap.xml&y=ipc:54.167.72.249:1787595761.445\"></meta></head></html>","outcome":"positive","durationMs":34},{"action":"fetch","label":"GET /sitemap_index.xml","url":"https://johnlacorte.com/sitemap_index.xml","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fsitemap_index.xml&y=ipc:54.167.72.249:1787595761.526\"></meta></head></html>","outcome":"positive","durationMs":79},{"action":"parse","label":"Parsed /sitemap_index.xml: not well-formed XML ('=' is an unexpected token. The expected token is ';'. Line 1, position 130.)","url":"https://johnlacorte.com/sitemap_index.xml","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":"'=' is an unexpected token. The expected token is ';'. Line 1, position 130.","outcome":"negative","durationMs":null},{"action":"conclude","label":"sitemap.xml is not valid XML: '=' is an unexpected token. The expected token is ';'. Line 1, position 130.","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"S9","name":"sitemap entries have lastmod","group":"site","tier":"recommended","status":"fail","message":"No sitemap entries to evaluate","howToFix":"<lastmod>2026-01-15</lastmod>","fixPrompt":"You are editing the website at johnlacorte.com. sitemap.xml entries lack <lastmod>. Add an accurate <lastmod> (ISO 8601 date) to every <url> entry in sitemap.xml — use the real content modification date, not the current time. Spec: https://www.sitemaps.org/protocol.html","specUrl":"https://www.sitemaps.org/protocol.html","evidence":[{"action":"fetch","label":"GET /sitemap.xml","url":"https://johnlacorte.com/sitemap.xml","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fsitemap.xml&y=ipc:54.167.72.249:1787595761.445\"></meta></head></html>","outcome":"positive","durationMs":34},{"action":"fetch","label":"GET /sitemap_index.xml","url":"https://johnlacorte.com/sitemap_index.xml","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fsitemap_index.xml&y=ipc:54.167.72.249:1787595761.526\"></meta></head></html>","outcome":"positive","durationMs":79},{"action":"parse","label":"Parsed /sitemap_index.xml: not well-formed XML ('=' is an unexpected token. The expected token is ';'. Line 1, position 130.)","url":"https://johnlacorte.com/sitemap_index.xml","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No sitemap entries to evaluate","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"S10","name":"sitemap.md exists","group":"site","tier":"recommended","status":"fail","message":"No sitemap.md at /sitemap.md, /docs/sitemap.md or /.well-known/sitemap.md","howToFix":"# Sitemap\n\n## Pages\n\n- [Home](https://johnlacorte.com/)\n- [About](https://johnlacorte.com/about)\n","fixPrompt":"You are editing the website at johnlacorte.com. The site has no markdown sitemap. Publish https://johnlacorte.com/sitemap.md (text/markdown) listing every page as a markdown link under ## headings. Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"Probe /sitemap.md","url":"https://johnlacorte.com/sitemap.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fsitemap.md&y=ipc:54.167.72.249:1787595761.517\"></meta></head></html>","outcome":"negative","durationMs":105},{"action":"fetch","label":"Probe /docs/sitemap.md","url":"https://johnlacorte.com/docs/sitemap.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fsitemap.md&y=ipc:54.167.72.249:1787595761.551\"></meta></head></html>","outcome":"negative","durationMs":33},{"action":"fetch","label":"Probe /.well-known/sitemap.md","url":"https://johnlacorte.com/.well-known/sitemap.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fsitemap.md&y=ipc:54.167.72.249:1787595761.585\"></meta></head></html>","outcome":"negative","durationMs":33},{"action":"parse","label":"None of the 3 candidate locations returned a 2xx text/markdown document","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No sitemap.md at /sitemap.md, /docs/sitemap.md or /.well-known/sitemap.md","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"S11","name":"sitemap.md has headings and links","group":"site","tier":"recommended","status":"fail","message":"sitemap.md not found","howToFix":"## Pages\n\n- [Home](https://johnlacorte.com/)","fixPrompt":"You are editing the website at johnlacorte.com. sitemap.md lacks headings and/or links. Structure sitemap.md with at least one # or ## heading and a bullet list of markdown links to pages. Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"Probe /sitemap.md","url":"https://johnlacorte.com/sitemap.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fsitemap.md&y=ipc:54.167.72.249:1787595761.517\"></meta></head></html>","outcome":"negative","durationMs":105},{"action":"fetch","label":"Probe /docs/sitemap.md","url":"https://johnlacorte.com/docs/sitemap.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fsitemap.md&y=ipc:54.167.72.249:1787595761.551\"></meta></head></html>","outcome":"negative","durationMs":33},{"action":"fetch","label":"Probe /.well-known/sitemap.md","url":"https://johnlacorte.com/.well-known/sitemap.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fsitemap.md&y=ipc:54.167.72.249:1787595761.585\"></meta></head></html>","outcome":"negative","durationMs":33},{"action":"parse","label":"No sitemap.md to inspect (see S10)","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"sitemap.md not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"S12","name":"AGENTS.md exists","group":"site","tier":"recommended","status":"fail","message":"No AGENTS.md at /AGENTS.md, /agents.md, /.well-known/agents.md, /docs/AGENTS.md, /CLAUDE.md or /.cursorrules","howToFix":"# AGENTS.md\n\n## Getting started\n\n…\n\n## Configuration\n\n…\n\n## Usage\n\n…\n","fixPrompt":"You are editing the website at johnlacorte.com. The site has no AGENTS.md. Publish https://johnlacorte.com/AGENTS.md (text/markdown) with ## Getting started, ## Configuration and ## Usage sections explaining how agents should use the site and its APIs. Spec: https://agents.md/","specUrl":"https://agents.md/","evidence":[{"action":"fetch","label":"Probe /AGENTS.md","url":"https://johnlacorte.com/AGENTS.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2FAGENTS.md&y=ipc:54.167.72.249:1787595761.519\"></meta></head></html>","outcome":"negative","durationMs":107},{"action":"fetch","label":"Probe /agents.md","url":"https://johnlacorte.com/agents.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fagents.md&y=ipc:54.167.72.249:1787595761.552\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /.well-known/agents.md","url":"https://johnlacorte.com/.well-known/agents.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fagents.md&y=ipc:54.167.72.249:1787595761.584\"></meta></head></html>","outcome":"negative","durationMs":40},{"action":"fetch","label":"Probe /docs/AGENTS.md","url":"https://johnlacorte.com/docs/AGENTS.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2FAGENTS.md&y=ipc:54.167.72.249:1787595761.624\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /CLAUDE.md","url":"https://johnlacorte.com/CLAUDE.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2FCLAUDE.md&y=ipc:54.167.72.249:1787595761.655\"></meta></head></html>","outcome":"negative","durationMs":34},{"action":"fetch","label":"Probe /.cursorrules","url":"https://johnlacorte.com/.cursorrules","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.cursorrules&y=ipc:54.167.72.249:1787595761.689\"></meta></head></html>","outcome":"negative","durationMs":35},{"action":"parse","label":"None of the 6 candidate locations returned a 2xx text document","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No AGENTS.md at /AGENTS.md, /agents.md, /.well-known/agents.md, /docs/AGENTS.md, /CLAUDE.md or /.cursorrules","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"S13","name":"AGENTS.md has required sections","group":"site","tier":"recommended","status":"fail","message":"AGENTS.md not found","howToFix":"## Getting started\n\n## Configuration\n\n## Usage\n","fixPrompt":"You are editing the website at johnlacorte.com. AGENTS.md is missing required sections. Add at least two of these headings to AGENTS.md: Installation/Setup/Getting started, Configuration, Usage/Examples. Spec: https://agents.md/","specUrl":"https://agents.md/","evidence":[{"action":"fetch","label":"Probe /AGENTS.md","url":"https://johnlacorte.com/AGENTS.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2FAGENTS.md&y=ipc:54.167.72.249:1787595761.519\"></meta></head></html>","outcome":"negative","durationMs":107},{"action":"fetch","label":"Probe /agents.md","url":"https://johnlacorte.com/agents.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fagents.md&y=ipc:54.167.72.249:1787595761.552\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /.well-known/agents.md","url":"https://johnlacorte.com/.well-known/agents.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fagents.md&y=ipc:54.167.72.249:1787595761.584\"></meta></head></html>","outcome":"negative","durationMs":40},{"action":"fetch","label":"Probe /docs/AGENTS.md","url":"https://johnlacorte.com/docs/AGENTS.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2FAGENTS.md&y=ipc:54.167.72.249:1787595761.624\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /CLAUDE.md","url":"https://johnlacorte.com/CLAUDE.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2FCLAUDE.md&y=ipc:54.167.72.249:1787595761.655\"></meta></head></html>","outcome":"negative","durationMs":34},{"action":"fetch","label":"Probe /.cursorrules","url":"https://johnlacorte.com/.cursorrules","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.cursorrules&y=ipc:54.167.72.249:1787595761.689\"></meta></head></html>","outcome":"negative","durationMs":35},{"action":"parse","label":"No AGENTS.md to inspect (see S12)","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"AGENTS.md not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"S14","name":"Site is served over HTTPS","group":"site","tier":"required","status":"pass","message":"Root URL is HTTPS","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Root scheme: https; homepage final URL: https://johnlacorte.com/","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null},{"action":"conclude","label":"Root URL is HTTPS","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null}]},{"id":"S15","name":"Root OpenAPI document (API-first sites)","group":"site","tier":"optional","status":"notApplicable","message":"Site does not look API-first (no OpenAPI/Swagger links or /api paths found)","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"API-first heuristic: inspected 0 sitemap URL(s) and the homepage links for /api, openapi or swagger — no match","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"Site does not look API-first (no OpenAPI/Swagger links or /api paths found)","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]}],"llmsTxtChecks":[{"id":"L1","name":"llms.txt returns HTTP 200","group":"llmstxt","tier":"required","status":"fail","message":"llms.txt not found","howToFix":"# johnlacorte.com\n\n> Summary of the site.\n\n## Docs\n\n- [About](https://johnlacorte.com/about.md): what we do\n","fixPrompt":"You are editing the website at johnlacorte.com. llms.txt is missing. Publish https://johnlacorte.com/llms.txt (text/plain) in llmstxt.org format. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms.txt","url":"https://johnlacorte.com/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480\"></meta></head></html>","outcome":"negative","durationMs":72},{"action":"fetch","label":"Probe /.well-known/llms.txt","url":"https://johnlacorte.com/.well-known/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529\"></meta></head></html>","outcome":"negative","durationMs":45},{"action":"fetch","label":"Probe /docs/llms.txt","url":"https://johnlacorte.com/docs/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"parse","label":"None of the 4 candidate locations returned HTTP 200 with a text body","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"llms.txt not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"L2","name":"First line is an H1 title","group":"llmstxt","tier":"required","status":"fail","message":"llms.txt not found","howToFix":"# johnlacorte.com\n\n> Summary of the site.\n\n## Docs\n\n- [About](https://johnlacorte.com/about.md): what we do\n","fixPrompt":"You are editing the website at johnlacorte.com. llms.txt is missing. Publish https://johnlacorte.com/llms.txt (text/plain) in llmstxt.org format. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms.txt","url":"https://johnlacorte.com/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480\"></meta></head></html>","outcome":"negative","durationMs":72},{"action":"fetch","label":"Probe /.well-known/llms.txt","url":"https://johnlacorte.com/.well-known/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529\"></meta></head></html>","outcome":"negative","durationMs":45},{"action":"fetch","label":"Probe /docs/llms.txt","url":"https://johnlacorte.com/docs/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"parse","label":"None of the 4 candidate locations returned a 2xx llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"llms.txt not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"L3","name":"Content is parseable markdown (not an HTML shell)","group":"llmstxt","tier":"required","status":"fail","message":"llms.txt not found","howToFix":"# johnlacorte.com\n\n> Summary of the site.\n\n## Docs\n\n- [About](https://johnlacorte.com/about.md): what we do\n","fixPrompt":"You are editing the website at johnlacorte.com. llms.txt is missing. Publish https://johnlacorte.com/llms.txt (text/plain) in llmstxt.org format. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms.txt","url":"https://johnlacorte.com/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480\"></meta></head></html>","outcome":"negative","durationMs":72},{"action":"fetch","label":"Probe /.well-known/llms.txt","url":"https://johnlacorte.com/.well-known/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529\"></meta></head></html>","outcome":"negative","durationMs":45},{"action":"fetch","label":"Probe /docs/llms.txt","url":"https://johnlacorte.com/docs/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"parse","label":"None of the 4 candidate locations returned a 2xx llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"llms.txt not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"L4","name":"Blockquote summary follows the H1","group":"llmstxt","tier":"recommended","status":"fail","message":"llms.txt not found","howToFix":"# johnlacorte.com\n\n> Summary of the site.\n\n## Docs\n\n- [About](https://johnlacorte.com/about.md): what we do\n","fixPrompt":"You are editing the website at johnlacorte.com. llms.txt is missing. Publish https://johnlacorte.com/llms.txt (text/plain) in llmstxt.org format. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms.txt","url":"https://johnlacorte.com/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480\"></meta></head></html>","outcome":"negative","durationMs":72},{"action":"fetch","label":"Probe /.well-known/llms.txt","url":"https://johnlacorte.com/.well-known/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529\"></meta></head></html>","outcome":"negative","durationMs":45},{"action":"fetch","label":"Probe /docs/llms.txt","url":"https://johnlacorte.com/docs/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"parse","label":"None of the 4 candidate locations returned a 2xx llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"llms.txt not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"L5","name":"At least one H2 section with a link list","group":"llmstxt","tier":"recommended","status":"fail","message":"llms.txt not found","howToFix":"# johnlacorte.com\n\n> Summary of the site.\n\n## Docs\n\n- [About](https://johnlacorte.com/about.md): what we do\n","fixPrompt":"You are editing the website at johnlacorte.com. llms.txt is missing. Publish https://johnlacorte.com/llms.txt (text/plain) in llmstxt.org format. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms.txt","url":"https://johnlacorte.com/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480\"></meta></head></html>","outcome":"negative","durationMs":72},{"action":"fetch","label":"Probe /.well-known/llms.txt","url":"https://johnlacorte.com/.well-known/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529\"></meta></head></html>","outcome":"negative","durationMs":45},{"action":"fetch","label":"Probe /docs/llms.txt","url":"https://johnlacorte.com/docs/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"parse","label":"None of the 4 candidate locations returned a 2xx llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"llms.txt not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"L6","name":"Link lines use - [name](url): notes format","group":"llmstxt","tier":"recommended","status":"fail","message":"llms.txt not found","howToFix":"# johnlacorte.com\n\n> Summary of the site.\n\n## Docs\n\n- [About](https://johnlacorte.com/about.md): what we do\n","fixPrompt":"You are editing the website at johnlacorte.com. llms.txt is missing. Publish https://johnlacorte.com/llms.txt (text/plain) in llmstxt.org format. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms.txt","url":"https://johnlacorte.com/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480\"></meta></head></html>","outcome":"negative","durationMs":72},{"action":"fetch","label":"Probe /.well-known/llms.txt","url":"https://johnlacorte.com/.well-known/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529\"></meta></head></html>","outcome":"negative","durationMs":45},{"action":"fetch","label":"Probe /docs/llms.txt","url":"https://johnlacorte.com/docs/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"parse","label":"None of the 4 candidate locations returned a 2xx llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"llms.txt not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"L7","name":"Sampled links resolve (2xx)","group":"llmstxt","tier":"recommended","status":"fail","message":"llms.txt not found","howToFix":"# johnlacorte.com\n\n> Summary of the site.\n\n## Docs\n\n- [About](https://johnlacorte.com/about.md): what we do\n","fixPrompt":"You are editing the website at johnlacorte.com. llms.txt is missing. Publish https://johnlacorte.com/llms.txt (text/plain) in llmstxt.org format. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms.txt","url":"https://johnlacorte.com/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480\"></meta></head></html>","outcome":"negative","durationMs":72},{"action":"fetch","label":"Probe /.well-known/llms.txt","url":"https://johnlacorte.com/.well-known/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529\"></meta></head></html>","outcome":"negative","durationMs":45},{"action":"fetch","label":"Probe /docs/llms.txt","url":"https://johnlacorte.com/docs/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"parse","label":"None of the 4 candidate locations returned a 2xx llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"llms.txt not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"L8","name":"## Optional section used correctly","group":"llmstxt","tier":"optional","status":"fail","message":"llms.txt not found","howToFix":"# johnlacorte.com\n\n> Summary of the site.\n\n## Docs\n\n- [About](https://johnlacorte.com/about.md): what we do\n","fixPrompt":"You are editing the website at johnlacorte.com. llms.txt is missing. Publish https://johnlacorte.com/llms.txt (text/plain) in llmstxt.org format. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms.txt","url":"https://johnlacorte.com/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480\"></meta></head></html>","outcome":"negative","durationMs":72},{"action":"fetch","label":"Probe /.well-known/llms.txt","url":"https://johnlacorte.com/.well-known/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529\"></meta></head></html>","outcome":"negative","durationMs":45},{"action":"fetch","label":"Probe /docs/llms.txt","url":"https://johnlacorte.com/docs/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"parse","label":"None of the 4 candidate locations returned a 2xx llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"llms.txt not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"L9","name":"Served as text/plain","group":"llmstxt","tier":"recommended","status":"fail","message":"llms.txt not found","howToFix":"# johnlacorte.com\n\n> Summary of the site.\n\n## Docs\n\n- [About](https://johnlacorte.com/about.md): what we do\n","fixPrompt":"You are editing the website at johnlacorte.com. llms.txt is missing. Publish https://johnlacorte.com/llms.txt (text/plain) in llmstxt.org format. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms.txt","url":"https://johnlacorte.com/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480\"></meta></head></html>","outcome":"negative","durationMs":72},{"action":"fetch","label":"Probe /.well-known/llms.txt","url":"https://johnlacorte.com/.well-known/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529\"></meta></head></html>","outcome":"negative","durationMs":45},{"action":"fetch","label":"Probe /docs/llms.txt","url":"https://johnlacorte.com/docs/llms.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"parse","label":"None of the 4 candidate locations returned a 2xx llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"llms.txt not found","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"L10","name":"llms-full.txt exists","group":"llmstxt","tier":"optional","status":"fail","message":"No /llms-full.txt or /llms-ctx-full.txt","howToFix":"https://johnlacorte.com/llms-full.txt","fixPrompt":"You are editing the website at johnlacorte.com. The site has no llms-full.txt. Publish https://johnlacorte.com/llms-full.txt containing the full concatenated markdown of the site's key pages. Spec: https://llmstxt.org/","specUrl":"https://llmstxt.org/","evidence":[{"action":"fetch","label":"Probe /llms-full.txt","url":"https://johnlacorte.com/llms-full.txt","method":"HEAD","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":null,"outcome":"negative","durationMs":31},{"action":"fetch","label":"Probe /llms-ctx-full.txt","url":"https://johnlacorte.com/llms-ctx-full.txt","method":"HEAD","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":null,"outcome":"negative","durationMs":31},{"action":"parse","label":"Neither /llms-full.txt nor /llms-ctx-full.txt answered 2xx with a text body","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No /llms-full.txt or /llms-ctx-full.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]}],"pageResults":[{"url":"https://johnlacorte.com/","finalUrl":"https://johnlacorte.com/","status":202,"checks":[{"id":"P1","name":"Returns HTTP 200","group":"page","tier":"required","status":"fail","message":"HTTP 202","howToFix":"Make the page return HTTP 200 directly (fix broken links in the sitemap or remove dead URLs)","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ does not return HTTP 200. Make the page return HTTP 200 directly (fix broken links in the sitemap or remove dead URLs). Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Final status HTTP 202 after 0 redirect(s), 131 ms","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"HTTP 202","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P2","name":"At most one redirect","group":"page","tier":"required","status":"pass","message":"No redirects","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Redirect chain: none (served directly)","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null},{"action":"conclude","label":"No redirects","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null}]},{"id":"P3","name":"Content-Type is text/html","group":"page","tier":"required","status":"pass","message":"Content-Type: text/html","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Content-Type header: text/html → media type 'text/html'","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null},{"action":"conclude","label":"Content-Type: text/html","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null}]},{"id":"P4","name":"No noindex / noai X-Robots-Tag","group":"page","tier":"required","status":"fail","message":"X-Robots-Tag contains noindex","howToFix":"Remove noindex / noai / noimageai from the X-Robots-Tag header for public pages","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ sends X-Robots-Tag: noindex. Remove noindex / noai / noimageai from the X-Robots-Tag header for public pages. Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"X-Robots-Tag header: noindex; <meta name=\"robots\">: (none)","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"X-Robots-Tag contains noindex","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P5","name":"Canonical link","group":"page","tier":"required","status":"fail","message":"No <link rel=\"canonical\">","howToFix":"<link rel=\"canonical\" href=\"https://johnlacorte.com/\">","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ has no canonical link. Add <link rel=\"canonical\" href=\"https://johnlacorte.com/\"> to the <head>. Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Looked for <link rel=\"canonical\"> in <head>: none","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No <link rel=\"canonical\">","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P6","name":"Meta description (≥ 50 chars)","group":"page","tier":"required","status":"fail","message":"No <meta name=\"description\">","howToFix":"<meta name=\"description\" content=\"A specific 50–160 character summary of this page.\">","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ has no meta description of at least 50 characters. Add <meta name=\"description\" content=\"…\"> with a specific 50–160 character summary of the page. Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Looked for <meta name=\"description\">: none","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No <meta name=\"description\">","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P7","name":"og:title","group":"page","tier":"recommended","status":"fail","message":"No og:title","howToFix":"<meta property=\"og:title\" content=\"Page title\">","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ has no og:title. Add <meta property=\"og:title\" content=\"…\"> to the <head>. Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Looked for <meta property=\"og:title\">: none","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No og:title","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P8","name":"og:description","group":"page","tier":"recommended","status":"fail","message":"No og:description","howToFix":"<meta property=\"og:description\" content=\"Summary of the page\">","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ has no og:description. Add <meta property=\"og:description\" content=\"…\"> to the <head>. Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Looked for <meta property=\"og:description\">: none","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No og:description","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P9","name":"html lang attribute","group":"page","tier":"required","status":"fail","message":"<html> has no lang attribute","howToFix":"<html lang=\"en\">","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ has no lang attribute on <html>. Add lang=\"en\" (or the page language) to the <html> element. Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Read the lang attribute on <html>: absent","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"<html> has no lang attribute","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P10","name":"JSON-LD structured data present","group":"page","tier":"required","status":"fail","message":"No <script type=\"application/ld+json\"> blocks","howToFix":"<script type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https://johnlacorte.com/\",\"url\":\"https://johnlacorte.com/\",\"name\":\"…\",\"description\":\"…\",\"dateModified\":\"2026-01-01\"},{\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://johnlacorte.com/\"}]}]}</script>","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ has no JSON-LD structured data. Add a <script type=\"application/ld+json\"> block with schema.org data (WebPage/Article + BreadcrumbList) to the page. Spec: https://json-ld.org/","specUrl":"https://json-ld.org/","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Looked for <script type=\"application/ld+json\">: 0 blocks","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No <script type=\"application/ld+json\"> blocks","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P11","name":"JSON-LD has required fields","group":"page","tier":"required","status":"fail","message":"No JSON-LD to validate","howToFix":"{\"@type\":\"WebPage\",\"name\":\"…\",\"description\":\"…\",\"url\":\"https://johnlacorte.com/\",\"dateModified\":\"2026-01-01\"}, {\"@type\":\"BreadcrumbList\",\"itemListElement\":[…]}","fixPrompt":"You are editing the website at johnlacorte.com. JSON-LD on https://johnlacorte.com/ is missing required fields. Ensure the JSON-LD graph contains a node with headline/name, description, url/@id and dateModified, plus a BreadcrumbList node. Spec: https://schema.org/","specUrl":"https://schema.org/","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"JSON-LD nodes available: 0 (0 block(s)); nothing to validate","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No JSON-LD to validate","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P12","name":"At least 3 headings (h1–h3)","group":"page","tier":"recommended","status":"fail","message":"Only 0 h1–h3 heading(s)","howToFix":"<h1>Page title</h1>\n<h2>Section</h2>\n<h3>Sub-section</h3>","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ has fewer than 3 h1–h3 headings. Structure the page content with a single h1 and descriptive h2/h3 section headings (at least 3 headings total). Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Counted h1–h3 elements: 0 (h1: 0, h2: 0, h3: 0)","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"Only 0 h1–h3 heading(s)","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P13","name":"Text-to-HTML ratio","group":"page","tier":"recommended","status":"fail","message":"Text-to-HTML ratio 0% (0 text chars / 168 HTML chars)","howToFix":"Reduce markup/script weight relative to visible text: trim inline scripts and styles, remove boilerplate wrappers and serve more substantive text","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ has a low text-to-HTML ratio (0%). Reduce markup/script weight relative to visible text: trim inline scripts and styles, remove boilerplate wrappers and serve more substantive text. Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Extracted visible body text: 0 chars from 168 chars of HTML → 0% (pass > 15%, warn ≥ 10%)","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"Text-to-HTML ratio 0% (0 text chars / 168 HTML chars)","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P14","name":"Links to a glossary","group":"page","tier":"optional","status":"fail","message":"No link to /glossary, /terminology or /definitions","howToFix":"<a href=\"https://johnlacorte.com/glossary\">Glossary</a>","fixPrompt":"You are editing the website at johnlacorte.com. The site has no glossary link. Publish a glossary at https://johnlacorte.com/glossary and link to it from page navigation or footer. Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Inspected 0 <a href> link(s) for /glossary, /terminology or /definitions: no match","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No link to /glossary, /terminology or /definitions","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P15","name":"Markdown mirror ({path}.md)","group":"page","tier":"required","status":"fail","message":"https://johnlacorte.com/index.md → HTTP 202 text/html","howToFix":"https://johnlacorte.com/index.md → 200 text/markdown","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ has no markdown mirror. Serve a markdown version of the page at https://johnlacorte.com/index.md with Content-Type: text/markdown; charset=utf-8. Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"fetch","label":"GET https://johnlacorte.com/index.md","url":"https://johnlacorte.com/index.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Findex.md&y…","outcome":"negative","durationMs":31},{"action":"parse","label":"Mirror URL derived from the page path; response: HTTP 202, text/html","url":"https://johnlacorte.com/index.md","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"https://johnlacorte.com/index.md → HTTP 202 text/html","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P16","name":"Markdown frontmatter (title, description, last_updated)","group":"page","tier":"recommended","status":"fail","message":"No markdown version available to inspect","howToFix":"---\ntitle: Page title\ndescription: One-sentence summary\nlast_updated: 2026-01-01\n---","fixPrompt":"You are editing the website at johnlacorte.com. The markdown for https://johnlacorte.com/ has no frontmatter. Start the markdown document with YAML frontmatter containing title, description and last_updated. Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"fetch","label":"GET https://johnlacorte.com/index.md","url":"https://johnlacorte.com/index.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Findex.md&y…","outcome":"negative","durationMs":31},{"action":"fetch","label":"GET https://johnlacorte.com/ (Accept: text/markdown)","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.…","outcome":"negative","durationMs":32},{"action":"parse","label":"Neither the markdown mirror nor Accept: text/markdown produced a text/markdown body; no frontmatter to inspect","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No markdown version available to inspect","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P17","name":"link rel=alternate type=text/markdown","group":"page","tier":"required","status":"fail","message":"No alternate markdown link in <head> or Link header","howToFix":"<link rel=\"alternate\" type=\"text/markdown\" href=\"https://johnlacorte.com/index.md\">","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ does not advertise its markdown alternate. Add <link rel=\"alternate\" type=\"text/markdown\" href=\"https://johnlacorte.com/index.md\"> to the <head> (or send Link: <https://johnlacorte.com/index.md>; rel=\"alternate\"; type=\"text/markdown\"). Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Link header: (none); <link rel=\"alternate\" type=\"text/markdown\"> in <head>: none","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No alternate markdown link in <head> or Link header","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P18","name":"Markdown endpoint sends Link rel=canonical","group":"page","tier":"recommended","status":"fail","message":"No markdown version available","howToFix":"Link: <https://johnlacorte.com/>; rel=\"canonical\"","fixPrompt":"You are editing the website at johnlacorte.com. The markdown endpoint does not point back at its HTML canonical. Send Link: <https://johnlacorte.com/>; rel=\"canonical\" on the markdown response for https://johnlacorte.com/. Spec: https://www.rfc-editor.org/rfc/rfc8288","specUrl":"https://www.rfc-editor.org/rfc/rfc8288","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"fetch","label":"GET https://johnlacorte.com/index.md","url":"https://johnlacorte.com/index.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Findex.md&y…","outcome":"negative","durationMs":31},{"action":"fetch","label":"GET https://johnlacorte.com/ (Accept: text/markdown)","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.…","outcome":"negative","durationMs":32},{"action":"parse","label":"No text/markdown response to inspect for a Link: rel=\"canonical\" header","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No markdown version available","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P19","name":"Accept: text/markdown negotiation","group":"page","tier":"required","status":"fail","message":"Accept: text/markdown → HTTP 202 text/html","howToFix":"Accept: text/markdown → 200 Content-Type: text/markdown; Vary: Accept","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ ignores Accept: text/markdown. Implement content negotiation: when the request has Accept: text/markdown, return the markdown representation with Content-Type: text/markdown and Vary: Accept. Spec: https://acceptmarkdown.com/","specUrl":"https://acceptmarkdown.com/","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"fetch","label":"GET https://johnlacorte.com/ (Accept: text/markdown)","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.…","outcome":"negative","durationMs":32},{"action":"parse","label":"Response to Accept: text/markdown: HTTP 202, Content-Type text/html, Vary (none)","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"Accept: text/markdown → HTTP 202 text/html","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P20","name":"Markdown has a ## Sitemap section","group":"page","tier":"optional","status":"fail","message":"No markdown version available","howToFix":"## Sitemap\n\n- [Home](https://johnlacorte.com/)\n- [Full sitemap](https://johnlacorte.com/sitemap.md)","fixPrompt":"You are editing the website at johnlacorte.com. The markdown for https://johnlacorte.com/ has no ## Sitemap section. Append a '## Sitemap' section to the markdown listing key pages as links (e.g. - [Sitemap](https://johnlacorte.com/sitemap.md)). Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"fetch","label":"GET https://johnlacorte.com/index.md","url":"https://johnlacorte.com/index.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Findex.md&y…","outcome":"negative","durationMs":31},{"action":"fetch","label":"GET https://johnlacorte.com/ (Accept: text/markdown)","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.…","outcome":"negative","durationMs":32},{"action":"parse","label":"No text/markdown body to scan for a ## Sitemap heading","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No markdown version available","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"P21","name":"Code blocks declare a language","group":"page","tier":"optional","status":"notApplicable","message":"No code blocks on the page","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Markdown code blocks: no markdown; <pre><code> elements in HTML: 0","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No code blocks on the page","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"P22","name":"API pages link an API schema","group":"page","tier":"optional","status":"notApplicable","message":"Not an API documentation page","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Path / does not match /api or /docs/api; check only applies to API documentation pages","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"Not an API documentation page","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"P23","name":"Content does not depend on JavaScript rendering","group":"page","tier":"required","status":"pass","message":"0 chars of server-rendered text","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Extracted 0 chars of visible text from 168 chars of HTML; client-side framework shell markers not detected","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null},{"action":"conclude","label":"0 chars of server-rendered text","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null}]},{"id":"P24","name":"llms.txt describedby link","group":"page","tier":"recommended","status":"fail","message":"No rel=\"describedby\" link to llms.txt","howToFix":"<link rel=\"describedby\" href=\"https://johnlacorte.com/llms.txt\">","fixPrompt":"You are editing the website at johnlacorte.com. https://johnlacorte.com/ does not point agents at llms.txt. Add <link rel=\"describedby\" href=\"https://johnlacorte.com/llms.txt\"> to the <head> (or send Link: <https://johnlacorte.com/llms.txt>; rel=\"describedby\"). Spec: https://vercel.com/kb/guide/agent-readability-spec","specUrl":"https://vercel.com/kb/guide/agent-readability-spec","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.…","outcome":"positive","durationMs":131},{"action":"parse","label":"Link header: (none); <link rel=\"describedby\"> to llms.txt in <head>: none","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No rel=\"describedby\" link to llms.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]}],"passed":3,"graded":22}],"markdownChecks":[{"id":"M1","name":"Serves markdown for Accept: text/markdown","group":"markdown","tier":"required","status":"fail","message":"Accept: text/markdown → HTTP 202 text/html","howToFix":"GET / HTTP/1.1\nAccept: text/markdown\n\n-> HTTP/1.1 200 OK\n   Content-Type: text/markdown; charset=utf-8\n   Vary: Accept","fixPrompt":"You are editing the website at johnlacorte.com. The site returns HTML even when the client asks for Accept: text/markdown. Implement server-side content negotiation so that requests with Accept: text/markdown receive the page as text/markdown (same URL), and add Vary: Accept to those responses. Spec: https://acceptmarkdown.com/","specUrl":"https://acceptmarkdown.com/","evidence":[{"action":"fetch","label":"GET / with Accept: text/markdown","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.167.72.249:1787595761.821\"></meta></head></html>","outcome":"negative","durationMs":32},{"action":"parse","label":"Response to Accept: text/markdown: HTTP 202, Content-Type text/html, Vary (none) → not a text/markdown 2xx","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"Accept: text/markdown → HTTP 202 text/html","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"M2","name":"Responds with Vary: Accept","group":"markdown","tier":"required","status":"fail","message":"No Vary header","howToFix":"Vary: Accept","fixPrompt":"You are editing the website at johnlacorte.com. Negotiated responses do not include Vary: Accept. Add the response header 'Vary: Accept' to every URL that serves different representations by Accept, so caches keep HTML and markdown apart. Spec: https://www.rfc-editor.org/rfc/rfc9110#name-vary","specUrl":"https://www.rfc-editor.org/rfc/rfc9110#name-vary","evidence":[{"action":"fetch","label":"GET / with Accept: text/markdown","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.167.72.249:1787595761.821\"></meta></head></html>","outcome":"negative","durationMs":32},{"action":"parse","label":"Vary header on the negotiated response: (none) → does not list Accept or *","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No Vary header","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"M3","name":"Returns 406 for an unsatisfiable Accept","group":"markdown","tier":"recommended","status":"notApplicable","message":"Skipped — the site does not negotiate markdown (M1 failed)","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET / with Accept: text/markdown","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.167.72.249:1787595761.821\"></meta></head></html>","outcome":"negative","durationMs":32},{"action":"parse","label":"Accept: text/markdown → HTTP 202, Content-Type text/html, Vary (none); a 406 test only makes sense once markdown negotiation works","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"Skipped — the site does not negotiate markdown (M1 failed)","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"M4","name":"Honours Accept q-values","group":"markdown","tier":"recommended","status":"fail","message":"q-values ignored (markdown-preferred → text/html, html-preferred → text/html)","howToFix":"Accept: text/html;q=0.5, text/markdown;q=1.0 -> text/markdown\nAccept: text/markdown;q=0.1, text/html;q=1.0 -> text/html","fixPrompt":"You are editing the website at johnlacorte.com. Accept q-values are not honoured when choosing between HTML and markdown. Parse Accept q-values and serve the highest-weighted representation the server offers (markdown when text/markdown;q=1.0 outranks text/html, HTML otherwise). Spec: https://www.rfc-editor.org/rfc/rfc9110#name-accept","specUrl":"https://www.rfc-editor.org/rfc/rfc9110#name-accept","evidence":[{"action":"fetch","label":"GET / Accept: text/html;q=0.5, text/markdown;q=1.0","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.167.72.249:1787595761.854\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"fetch","label":"GET / Accept: text/markdown;q=0.1, text/html;q=1.0","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.167.72.249:1787595761.886\"></meta></head></html>","outcome":"positive","durationMs":38},{"action":"parse","label":"markdown-preferred → text/html (expected text/markdown); html-preferred → text/html (ok)","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"q-values ignored (markdown-preferred → text/html, html-preferred → text/html)","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]}],"botAccessChecks":[{"id":"B1","name":"robots.txt has explicit AI-bot rules","group":"bots","tier":"required","status":"fail","message":"No robots.txt","howToFix":"User-agent: GPTBot\nAllow: /\n\nUser-agent: ClaudeBot\nAllow: /\n\nUser-agent: Google-Extended\nAllow: /\n","fixPrompt":"You are editing the website at johnlacorte.com. robots.txt has no explicit rules for AI crawlers. Add explicit User-agent groups for AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot …) to robots.txt stating what they may access. Spec: https://www.rfc-editor.org/rfc/rfc9309","specUrl":"https://www.rfc-editor.org/rfc/rfc9309","evidence":[{"action":"fetch","label":"GET /robots.txt","url":"https://johnlacorte.com/robots.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Frobots.txt&y=ipc:54.167.72.249:1787595761.411\"></meta></head></html>","outcome":"negative","durationMs":33},{"action":"parse","label":"robots.txt not available (HTTP 202)","url":"https://johnlacorte.com/robots.txt","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No robots.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"B2","name":"robots.txt declares Content-Signal","group":"bots","tier":"required","status":"fail","message":"No robots.txt","howToFix":"Content-Signal: search=yes, ai-input=yes, ai-train=no","fixPrompt":"You are editing the website at johnlacorte.com. robots.txt does not declare content signals. Add a Content-Signal line to robots.txt declaring how AI may use the content (e.g. Content-Signal: search=yes, ai-input=yes, ai-train=no). Spec: https://contentsignals.org/","specUrl":"https://contentsignals.org/","evidence":[{"action":"fetch","label":"GET /robots.txt","url":"https://johnlacorte.com/robots.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Frobots.txt&y=ipc:54.167.72.249:1787595761.411\"></meta></head></html>","outcome":"negative","durationMs":33},{"action":"parse","label":"robots.txt not available (HTTP 202)","url":"https://johnlacorte.com/robots.txt","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No robots.txt","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"B3","name":"Homepage sends Link headers","group":"bots","tier":"recommended","status":"fail","message":"No Link header on the homepage","howToFix":"Link: <https://johnlacorte.com/index.md>; rel=\"alternate\"; type=\"text/markdown\", <https://johnlacorte.com/llms.txt>; rel=\"describedby\"","fixPrompt":"You are editing the website at johnlacorte.com. The homepage response has no Link header. Send an HTTP Link header on HTML pages advertising machine-readable alternates, e.g. Link: <https://johnlacorte.com/index.md>; rel=\"alternate\"; type=\"text/markdown\", <https://johnlacorte.com/llms.txt>; rel=\"describedby\". Spec: https://www.rfc-editor.org/rfc/rfc8288","specUrl":"https://www.rfc-editor.org/rfc/rfc8288","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Link response header on the homepage: (none)","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No Link header on the homepage","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"B4","name":"DNS-AID agent discovery records","group":"bots","tier":"optional","status":"notApplicable","message":"DNS-AID lookups disabled for this scan","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"parse","label":"Scan options exclude DNS lookups; no queries issued","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"DNS-AID lookups disabled for this scan","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"B5","name":"Web Bot Auth signature directory","group":"bots","tier":"optional","status":"info","message":"Directory present but is not valid JSON","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /.well-known/http-message-signatures-directory","url":"https://johnlacorte.com/.well-known/http-message-signatures-directory","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fhttp-message-signatures-directory&y=ipc:54.167.72.249:1787595761.924\"></meta></head></html>","outcome":"neutral","durationMs":37},{"action":"parse","label":"Body is not valid JSON: '<' is an invalid start of a value. LineNumber: 0 | BytePositionInLine: 0.","url":"https://johnlacorte.com/.well-known/http-message-signatures-directory","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"Directory present but is not valid JSON","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]}],"protocolChecks":[{"id":"C1","name":"MCP server card","group":"protocols","tier":"optional","status":"fail","message":"/.well-known/mcp.json exists but is not valid JSON","howToFix":"Serve a valid JSON document at https://johnlacorte.com/.well-known/mcp.json","fixPrompt":"You are editing the website at johnlacorte.com. /.well-known/mcp.json is not valid JSON. Serve a valid JSON document at https://johnlacorte.com/.well-known/mcp.json. Spec: https://modelcontextprotocol.io/","specUrl":"https://modelcontextprotocol.io/","evidence":[{"action":"fetch","label":"GET /.well-known/mcp.json","url":"https://johnlacorte.com/.well-known/mcp.json","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fmcp.json&y=ipc:54.167.72.249:1787595761.962\"></meta></head></html>","outcome":"negative","durationMs":31},{"action":"parse","label":"/.well-known/mcp.json → HTTP 202, text/html, body is not valid JSON","url":"https://johnlacorte.com/.well-known/mcp.json","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"/.well-known/mcp.json exists but is not valid JSON","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"C2","name":"MCP server card is well-formed","group":"protocols","tier":"optional","status":"notApplicable","message":"No MCP server card to validate","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /.well-known/mcp.json","url":"https://johnlacorte.com/.well-known/mcp.json","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fmcp.json&y=ipc:54.167.72.249:1787595761.962\"></meta></head></html>","outcome":"neutral","durationMs":31},{"action":"fetch","label":"GET /.well-known/mcp/server-card.json","url":"https://johnlacorte.com/.well-known/mcp/server-card.json","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fmcp%2Fserver-card.json&y=ipc:54.167.72.249:1787595762.054\"></meta></head></html>","outcome":"neutral","durationMs":95},{"action":"parse","label":"No MCP server card JSON was found at either location (see C1); nothing to validate","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No MCP server card to validate","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"C3","name":"OAuth protected resource metadata","group":"protocols","tier":"optional","status":"fail","message":"/.well-known/oauth-protected-resource exists but is not valid JSON","howToFix":"Serve a valid JSON document at https://johnlacorte.com/.well-known/oauth-protected-resource","fixPrompt":"You are editing the website at johnlacorte.com. /.well-known/oauth-protected-resource is not valid JSON. Serve a valid JSON document at https://johnlacorte.com/.well-known/oauth-protected-resource. Spec: https://www.rfc-editor.org/rfc/rfc9728","specUrl":"https://www.rfc-editor.org/rfc/rfc9728","evidence":[{"action":"fetch","label":"GET /.well-known/oauth-protected-resource","url":"https://johnlacorte.com/.well-known/oauth-protected-resource","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Foauth-protected-resource&y=ipc:54.167.72.249:1787595761.963\"></meta></head></html>","outcome":"negative","durationMs":33},{"action":"parse","label":"/.well-known/oauth-protected-resource → HTTP 202, text/html, body is not valid JSON","url":"https://johnlacorte.com/.well-known/oauth-protected-resource","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"/.well-known/oauth-protected-resource exists but is not valid JSON","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"C4","name":"A2A agent card","group":"protocols","tier":"optional","status":"fail","message":"/.well-known/agent-card.json exists but is not valid JSON","howToFix":"Serve a valid JSON document at https://johnlacorte.com/.well-known/agent-card.json","fixPrompt":"You are editing the website at johnlacorte.com. /.well-known/agent-card.json is not valid JSON. Serve a valid JSON document at https://johnlacorte.com/.well-known/agent-card.json. Spec: https://a2a-protocol.org/latest/specification/","specUrl":"https://a2a-protocol.org/latest/specification/","evidence":[{"action":"fetch","label":"GET /.well-known/agent-card.json","url":"https://johnlacorte.com/.well-known/agent-card.json","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fagent-card.json&y=ipc:54.167.72.249:1787595761.963\"></meta></head></html>","outcome":"negative","durationMs":33},{"action":"parse","label":"/.well-known/agent-card.json → HTTP 202, text/html, body is not valid JSON","url":"https://johnlacorte.com/.well-known/agent-card.json","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"/.well-known/agent-card.json exists but is not valid JSON","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"C5","name":"A2A agent card is well-formed","group":"protocols","tier":"optional","status":"notApplicable","message":"No A2A agent card to validate","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /.well-known/agent-card.json","url":"https://johnlacorte.com/.well-known/agent-card.json","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fagent-card.json&y=ipc:54.167.72.249:1787595761.963\"></meta></head></html>","outcome":"neutral","durationMs":33},{"action":"fetch","label":"GET /.well-known/agent.json","url":"https://johnlacorte.com/.well-known/agent.json","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fagent.json&y=ipc:54.167.72.249:1787595762.057\"></meta></head></html>","outcome":"neutral","durationMs":93},{"action":"parse","label":"No A2A agent card JSON was found at either location (see C4); nothing to validate","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No A2A agent card to validate","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"C6","name":"Agent Skills index","group":"protocols","tier":"optional","status":"fail","message":"/.well-known/agent-skills/index.json exists but is not valid JSON","howToFix":"Serve a valid JSON document at https://johnlacorte.com/.well-known/agent-skills/index.json","fixPrompt":"You are editing the website at johnlacorte.com. /.well-known/agent-skills/index.json is not valid JSON. Serve a valid JSON document at https://johnlacorte.com/.well-known/agent-skills/index.json. Spec: https://agentskills.io/","specUrl":"https://agentskills.io/","evidence":[{"action":"fetch","label":"GET /.well-known/agent-skills/index.json","url":"https://johnlacorte.com/.well-known/agent-skills/index.json","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fagent-skills%2Findex.json&y=ipc:54.167.72.249:1787595761.963\"></meta></head></html>","outcome":"negative","durationMs":33},{"action":"parse","label":"/.well-known/agent-skills/index.json → HTTP 202, text/html, body is not valid JSON","url":"https://johnlacorte.com/.well-known/agent-skills/index.json","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"/.well-known/agent-skills/index.json exists but is not valid JSON","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"C7","name":"API catalog (/.well-known/api-catalog)","group":"protocols","tier":"optional","status":"pass","message":"API catalog found at /.well-known/api-catalog","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /.well-known/api-catalog","url":"https://johnlacorte.com/.well-known/api-catalog","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fapi-catalog&y=ipc:54.167.72.249:1787595761.994\"></meta></head></html>","outcome":"positive","durationMs":63},{"action":"parse","label":"/.well-known/api-catalog → HTTP 202, text/html, body is not valid JSON (JSON not required)","url":"https://johnlacorte.com/.well-known/api-catalog","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null},{"action":"conclude","label":"API catalog found at /.well-known/api-catalog","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null}]},{"id":"C8","name":"OAuth / OpenID server metadata","group":"protocols","tier":"optional","status":"fail","message":"/.well-known/oauth-authorization-server exists but is not valid JSON","howToFix":"Serve a valid JSON document at https://johnlacorte.com/.well-known/oauth-authorization-server","fixPrompt":"You are editing the website at johnlacorte.com. /.well-known/oauth-authorization-server is not valid JSON. Serve a valid JSON document at https://johnlacorte.com/.well-known/oauth-authorization-server. Spec: https://www.rfc-editor.org/rfc/rfc8414","specUrl":"https://www.rfc-editor.org/rfc/rfc8414","evidence":[{"action":"fetch","label":"GET /.well-known/oauth-authorization-server","url":"https://johnlacorte.com/.well-known/oauth-authorization-server","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Foauth-authorization-server&y=ipc:54.167.72.249:1787595761.995\"></meta></head></html>","outcome":"negative","durationMs":63},{"action":"parse","label":"/.well-known/oauth-authorization-server → HTTP 202, text/html, body is not valid JSON","url":"https://johnlacorte.com/.well-known/oauth-authorization-server","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"/.well-known/oauth-authorization-server exists but is not valid JSON","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"C9","name":"security.txt","group":"protocols","tier":"optional","status":"fail","message":"/.well-known/security.txt exists but has no Contact: line","howToFix":"Contact: mailto:security@johnlacorte.com\nExpires: 2027-01-01T00:00:00.000Z","fixPrompt":"You are editing the website at johnlacorte.com. security.txt lacks the mandatory Contact field. Add 'Contact: mailto:security@johnlacorte.com' and 'Expires: <date>' to security.txt. Spec: https://www.rfc-editor.org/rfc/rfc9116","specUrl":"https://www.rfc-editor.org/rfc/rfc9116","evidence":[{"action":"fetch","label":"GET /.well-known/security.txt","url":"https://johnlacorte.com/.well-known/security.txt","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fsecurity.txt&y=ipc:54.167.72.249:1787595761.996\"></meta></head></html>","outcome":"negative","durationMs":64},{"action":"parse","label":"Parsed /.well-known/security.txt: fields <html><head><link rel=\"icon\" href=\"data; Contact missing","url":"https://johnlacorte.com/.well-known/security.txt","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"/.well-known/security.txt exists but has no Contact: line","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"C10","name":"OpenAPI document","group":"protocols","tier":"optional","status":"pass","message":"OpenAPI document found at /openapi.json","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /openapi.json","url":"https://johnlacorte.com/openapi.json","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fopenapi.json&y=ipc:54.167.72.249:1787595761.997\"></meta></head></html>","outcome":"positive","durationMs":67},{"action":"parse","label":"/openapi.json → HTTP 202, text/html, body is not valid JSON (JSON not required)","url":"https://johnlacorte.com/openapi.json","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null},{"action":"conclude","label":"OpenAPI document found at /openapi.json","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null}]},{"id":"C11","name":"/auth.md agent auth instructions","group":"protocols","tier":"optional","status":"info","message":"No /auth.md (optional: markdown instructions telling agents how to authenticate)","howToFix":null,"fixPrompt":null,"specUrl":"https://isitagentready.com/","evidence":[{"action":"fetch","label":"GET /auth.md","url":"https://johnlacorte.com/auth.md","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2Fauth.md&y=ipc:54.167.72.249:1787595762.026\"></meta></head></html>","outcome":"neutral","durationMs":94},{"action":"parse","label":"/auth.md → HTTP 202 but text/html (HTML, not markdown)","url":"https://johnlacorte.com/auth.md","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No /auth.md (optional: markdown instructions telling agents how to authenticate)","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"C12","name":"UCP manifest","group":"protocols","tier":"optional","status":"pass","message":"UCP manifest found at /.well-known/ucp","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /.well-known/ucp","url":"https://johnlacorte.com/.well-known/ucp","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fucp&y=ipc:54.167.72.249:1787595762.028\"></meta></head></html>","outcome":"positive","durationMs":96},{"action":"parse","label":"/.well-known/ucp → HTTP 202, text/html, body is not valid JSON (JSON not required)","url":"https://johnlacorte.com/.well-known/ucp","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null},{"action":"conclude","label":"UCP manifest found at /.well-known/ucp","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null}]},{"id":"C13","name":"ACP manifest","group":"protocols","tier":"optional","status":"fail","message":"/.well-known/acp.json exists but is not valid JSON","howToFix":"Serve a valid JSON document at https://johnlacorte.com/.well-known/acp.json","fixPrompt":"You are editing the website at johnlacorte.com. /.well-known/acp.json is not valid JSON. Serve a valid JSON document at https://johnlacorte.com/.well-known/acp.json. Spec: https://agentcommerceprotocol.com/","specUrl":"https://agentcommerceprotocol.com/","evidence":[{"action":"fetch","label":"GET /.well-known/acp.json","url":"https://johnlacorte.com/.well-known/acp.json","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F.well-known%2Facp.json&y=ipc:54.167.72.249:1787595762.028\"></meta></head></html>","outcome":"negative","durationMs":102},{"action":"parse","label":"/.well-known/acp.json → HTTP 202, text/html, body is not valid JSON","url":"https://johnlacorte.com/.well-known/acp.json","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"/.well-known/acp.json exists but is not valid JSON","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"C14","name":"x402 payment-required endpoints","group":"protocols","tier":"optional","status":"info","message":"No x402 (HTTP 402 + accepts[]) endpoints observed among probed URLs","howToFix":null,"fixPrompt":null,"specUrl":"https://www.x402.org/","evidence":[{"action":"parse","label":"Inspected 24 response(s) recorded so far in this scan: 0 returned HTTP 402, none with an accepts[] body","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No x402 (HTTP 402 + accepts[]) endpoints observed among probed URLs","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"C15","name":"Advertised endpoints not blocked by robots.txt","group":"protocols","tier":"optional","status":"notApplicable","message":"No same-host endpoints advertised in llms.txt / AGENTS.md","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"parse","label":"Collected same-host links from llms.txt (absent) and AGENTS.md (absent): 0 endpoints to evaluate","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No same-host endpoints advertised in llms.txt / AGENTS.md","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"C16","name":"Content parity for AI crawlers (GPTBot vs browser UA)","group":"protocols","tier":"required","status":"pass","message":"Baseline text 0 chars vs GPTBot 0 chars (0% difference)","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET / (baseline UA)","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"neutral","durationMs":131},{"action":"fetch","label":"GET / (GPTBot UA)","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.167.72.249:1787595762.031\"></meta></head></html>","outcome":"positive","durationMs":100},{"action":"parse","label":"Extracted visible text from both responses: baseline 0 chars vs GPTBot 0 chars → 0% difference (allowed ≤ 15%, or ≤ 25% when both exceed 500 chars)","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null},{"action":"conclude","label":"Baseline text 0 chars vs GPTBot 0 chars (0% difference)","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null}]}],"accessibilityChecks":[{"id":"A1","name":"Images have alt text","group":"accessibility","tier":"required","status":"notApplicable","message":"No <img> elements","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for image(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No <img> elements","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A2","name":"Form controls have labels","group":"accessibility","tier":"required","status":"notApplicable","message":"No form controls","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for form control(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No form controls","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A3","name":"Links and buttons have accessible names","group":"accessibility","tier":"required","status":"notApplicable","message":"No links or buttons","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for link(s)/button(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No links or buttons","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A4","name":"Media elements declare width and height","group":"accessibility","tier":"recommended","status":"notApplicable","message":"No img/video/iframe elements","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for media element(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No img/video/iframe elements","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A5","name":"ARIA/label id references resolve and ids are unique","group":"accessibility","tier":"required","status":"notApplicable","message":"No ids or id references","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for id(s)/reference(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No ids or id references","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A6","name":"iframes have a title","group":"accessibility","tier":"required","status":"notApplicable","message":"No iframes","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for iframe(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No iframes","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A7","name":"One h1 and no skipped heading levels","group":"accessibility","tier":"recommended","status":"notApplicable","message":"No headings","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for h1–h6: none found","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No headings","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A8","name":"No positive tabindex","group":"accessibility","tier":"recommended","status":"notApplicable","message":"No tabindex attributes","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for tabindex attribute(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No tabindex attributes","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A9","name":"Viewport allows zoom","group":"accessibility","tier":"required","status":"notApplicable","message":"No viewport meta tag","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Looked for <meta name=\"viewport\">: none","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No viewport meta tag","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A10","name":"Document has a non-empty title","group":"accessibility","tier":"required","status":"fail","message":"Missing or empty <title>","howToFix":"<title>Site name — what it does</title>","fixPrompt":"You are editing the website at johnlacorte.com. The homepage has no <title>. Add a descriptive <title> element to the <head>. Spec: https://www.w3.org/WAI/WCAG22/quickref/","specUrl":"https://www.w3.org/WAI/WCAG22/quickref/","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Read <title>: missing or empty","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"Missing or empty <title>","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"A11","name":"aria-label includes the visible text","group":"accessibility","tier":"recommended","status":"notApplicable","message":"No controls with both aria-label and visible text","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for labelled control(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No controls with both aria-label and visible text","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A12","name":"Landmark main or skip link","group":"accessibility","tier":"recommended","status":"fail","message":"No <main> landmark, role=\"main\" or skip link","howToFix":"<a href=\"#content\" class=\"skip-link\">Skip to content</a>\n<main id=\"content\">…</main>","fixPrompt":"You are editing the website at johnlacorte.com. The page has no main landmark or skip link. Wrap the primary content in <main> (or role=\"main\") and/or add a 'Skip to content' link at the top of the page. Spec: https://www.w3.org/WAI/WCAG22/quickref/","specUrl":"https://www.w3.org/WAI/WCAG22/quickref/","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Looked for <main>/role=\"main\": none; in-page 'skip' link: none","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"No <main> landmark, role=\"main\" or skip link","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"A13","name":"Valid BCP-47 lang","group":"accessibility","tier":"required","status":"fail","message":"<html> has no lang attribute","howToFix":"<html lang=\"en\">","fixPrompt":"You are editing the website at johnlacorte.com. <html lang=\"\"> is not a valid BCP-47 tag. Set lang on <html> to a valid BCP-47 tag such as en, en-US or fr. Spec: https://www.rfc-editor.org/rfc/rfc5646","specUrl":"https://www.rfc-editor.org/rfc/rfc5646","evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Read the lang attribute on <html>: absent","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null},{"action":"conclude","label":"<html> has no lang attribute","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"negative","durationMs":null}]},{"id":"A14","name":"No focusable content inside aria-hidden","group":"accessibility","tier":"required","status":"notApplicable","message":"No aria-hidden regions","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for aria-hidden region(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No aria-hidden regions","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A15","name":"No nested interactive controls","group":"accessibility","tier":"required","status":"notApplicable","message":"No interactive controls","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for interactive control(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No interactive controls","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A16","name":"No empty headings","group":"accessibility","tier":"recommended","status":"notApplicable","message":"No headings","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for heading(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No headings","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A17","name":"No timed meta refresh","group":"accessibility","tier":"required","status":"pass","message":"Meta refresh has no delay","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Found <meta http-equiv=\"refresh\"> with delay 0s","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376","outcome":"positive","durationMs":null},{"action":"conclude","label":"Meta refresh has no delay","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"positive","durationMs":null}]},{"id":"A18","name":"Valid autocomplete tokens","group":"accessibility","tier":"recommended","status":"notApplicable","message":"No autocomplete attributes","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for autocomplete attribute(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No autocomplete attributes","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A19","name":"Data tables have headers","group":"accessibility","tier":"recommended","status":"notApplicable","message":"No tables","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for table(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No tables","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A20","name":"SVG role=img has an accessible name","group":"accessibility","tier":"recommended","status":"notApplicable","message":"No svg role=img elements","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for svg(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No svg role=img elements","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A21","name":"Audio/video have captions track","group":"accessibility","tier":"recommended","status":"notApplicable","message":"No audio/video elements","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for media element(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No audio/video elements","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A22","name":"Lists contain only list items","group":"accessibility","tier":"recommended","status":"notApplicable","message":"No lists","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for list(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No lists","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]},{"id":"A23","name":"ARIA roles and attributes are valid","group":"accessibility","tier":"required","status":"notApplicable","message":"No ARIA roles or attributes","howToFix":null,"fixPrompt":null,"specUrl":null,"evidence":[{"action":"fetch","label":"GET /","url":"https://johnlacorte.com/","method":"GET","statusCode":202,"headersSubset":{"Content-Type":"text/html","X-Robots-Tag":"noindex"},"bodyPreview":"<html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=\"refresh\" content=\"0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376\"></meta></head></html>","outcome":"positive","durationMs":131},{"action":"parse","label":"Searched the homepage DOM for ARIA role(s)/attribute(s): none found, nothing to audit","url":"https://johnlacorte.com/","method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null},{"action":"conclude","label":"No ARIA roles or attributes","url":null,"method":null,"statusCode":null,"headersSubset":null,"bodyPreview":null,"outcome":"neutral","durationMs":null}]}],"scores":{"vercelScore":17,"vercelRating":"Needs Improvement","llmsTxtScore":0,"accessibilityScore":25,"markdownScore":0,"markdownLevel":"No Markdown","level":0,"levelName":"Not Agent Ready","legacyOverallScore":17,"legacyGrade":"F"},"nextLevel":{"target":1,"name":"Basic Crawlability","requirements":[{"checkId":"S7","title":"Publish robots.txt","instruction":"Add /robots.txt with a User-agent: * group and a Sitemap: line (any 2 of 3 missing basics)"},{"checkId":"S8","title":"Publish a valid sitemap.xml","instruction":"Serve /sitemap.xml as a valid urlset with <loc> and <lastmod> per page (any 2 of 3 missing basics)"},{"checkId":"B3","title":"Send Link headers on the homepage","instruction":"Send an HTTP Link header on / advertising the markdown alternate and llms.txt (rel=alternate/describedby) (any 2 of 3 missing basics)"}]},"summary":{"passed":11,"warned":0,"failed":56,"notApplicable":27,"unreliable":0,"errors":0,"info":3},"errors":[]},"percentile":0,"corpusTotal":7}