{"ok":true,"kind":"crawlcheck-capability-registry-entry","v":1,"domain":"netlify.com","page":"https://crawlcheck.io/registry/capabilities/netlify.com","row":{"domain":"netlify.com","host":"www.netlify.com","report_id":"86lwl85mt8","scanned_at":"2026-10-04T20:21:35.847Z","manifest":"4bd9ccde8150518319da484c217b406fc4f4a66173196da160c9500d29bd33bc","declared":15,"protocols":["agent_skill","mcp"],"by_policy":{"metadata":15},"verified":0,"mismatches":0,"self_scan":false},"policy_classes":[{"id":"public_read_only","safety":"read_only_public","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},{"id":"authenticated_read_only","safety":"read_only_authenticated","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},{"id":"reversible_write","safety":"reversible_write","label":"Reversible write","automatic":false,"invoke":"Never invoked automatically. Needs the owner's written authorisation and a test account."},{"id":"irreversible_write","safety":"irreversible_write","label":"Irreversible write","automatic":false,"invoke":"Never invoked automatically. Deletes or changes something that cannot be undone."},{"id":"financial","safety":"financial","label":"Financial","automatic":false,"invoke":"Never invoked automatically. Moves money or creates a charge."},{"id":"external_communication","safety":"external_communication","label":"External communication","automatic":false,"invoke":"Never invoked automatically. Sends a message, email or notification to someone."},{"id":"identity","safety":"identity_or_account","label":"Identity and accounts","automatic":false,"invoke":"Never invoked automatically. Creates, signs in to or changes an account or credential."},{"id":"unknown","safety":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},{"id":"metadata","safety":"metadata_only","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."}],"items":[{"capability_id":"cap1:1234bb379428efd8915d","protocol":"mcp","operation":"server","method":null,"endpoint":"https://netlify-mcp.netlify.app/mcp","declared":{"by":"https://www.netlify.com/.well-known/mcp/server-card.json","declaration_sha256":"a8868088ae529f907b5c73f29e665f2abbb88619ffaa1776466f7a508c29522f","authentication":"unknown","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"a server declaration; its tools are listed only by the server itself (tools/list), which is not called"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (netlify-mcp.netlify.app): only the scanned origin is called"}},{"capability_id":"cap1:b42a1c6b50a81e5be14e","protocol":"agent_skill","operation":"netlify-agent-runner","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-agent-runner/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}},{"capability_id":"cap1:6f873c7d6117136a04b2","protocol":"agent_skill","operation":"netlify-ai-gateway","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-ai-gateway/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}},{"capability_id":"cap1:9987046111d2f8c9242e","protocol":"agent_skill","operation":"netlify-blobs","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-blobs/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}},{"capability_id":"cap1:f7a0ac2ec5aad66248be","protocol":"agent_skill","operation":"netlify-caching","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-caching/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}},{"capability_id":"cap1:c6c69d1cb9576e412d49","protocol":"agent_skill","operation":"netlify-cli-and-deploy","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-cli-and-deploy/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}},{"capability_id":"cap1:611bf302c56ee75fc3a7","protocol":"agent_skill","operation":"netlify-config","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-config/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}},{"capability_id":"cap1:1da0ba74488212214738","protocol":"agent_skill","operation":"netlify-database","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-database/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}},{"capability_id":"cap1:0512815c8c8de0cd208c","protocol":"agent_skill","operation":"netlify-deploy","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-deploy/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}},{"capability_id":"cap1:7c9300ee5c12f84cc02f","protocol":"agent_skill","operation":"netlify-edge-functions","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-edge-functions/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}},{"capability_id":"cap1:399be073293dd64269d6","protocol":"agent_skill","operation":"netlify-forms","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-forms/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}},{"capability_id":"cap1:b2563e7c51156c0116f8","protocol":"agent_skill","operation":"netlify-frameworks","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-frameworks/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}},{"capability_id":"cap1:29abe8983d335b08a6d6","protocol":"agent_skill","operation":"netlify-functions","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-functions/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}},{"capability_id":"cap1:a61e97e7aedf1d04358f","protocol":"agent_skill","operation":"netlify-identity","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-identity/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}},{"capability_id":"cap1:d825f398827554176a69","protocol":"agent_skill","operation":"netlify-image-cdn","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-image-cdn/SKILL.md","declared":{"by":"https://www.netlify.com/.well-known/agent-skills/index.json","declaration_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"on another origin (raw.githubusercontent.com): only the scanned origin is called"}}],"mismatches":[],"certificate":{"certificate_id":"ccap1:1c1a070829fab6a2e843f4e49d58bfcad27487c7e8fb7df6ec6073686a975f89","certificate":{"kind":"crawlcheck-capability-certificate","v":1,"subject":"www.netlify.com","domain":"netlify.com","record":"86lwl85mt8","report":"https://crawlcheck.io/r/86lwl85mt8","manifest_sha256":"4bd9ccde8150518319da484c217b406fc4f4a66173196da160c9500d29bd33bc","measured_at":"2026-10-04T20:21:35.847Z","verification_checked_at":"2026-10-04T20:21:37.649Z","verification_policy":"public GETs with no required input and one read-only MCP tool with no required input, on the scanned origin only; redirects recorded, not followed","invocation_rule":"capabilities are read from declarations only; nothing is invoked. Later verification may call read_only_public operations alone; every other class needs the site owner's authorisation and a test account, and unknown is never called","counts":{"declared":15,"verified":0,"mismatches":0},"items":[{"id":"cap1:1234bb379428efd8915d","protocol":"mcp","operation":"server","method":null,"endpoint":"https://netlify-mcp.netlify.app/mcp","declared_by_sha256":"a8868088ae529f907b5c73f29e665f2abbb88619ffaa1776466f7a508c29522f","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:b42a1c6b50a81e5be14e","protocol":"agent_skill","operation":"netlify-agent-runner","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-agent-runner/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:6f873c7d6117136a04b2","protocol":"agent_skill","operation":"netlify-ai-gateway","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-ai-gateway/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:9987046111d2f8c9242e","protocol":"agent_skill","operation":"netlify-blobs","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-blobs/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:f7a0ac2ec5aad66248be","protocol":"agent_skill","operation":"netlify-caching","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-caching/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:c6c69d1cb9576e412d49","protocol":"agent_skill","operation":"netlify-cli-and-deploy","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-cli-and-deploy/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:611bf302c56ee75fc3a7","protocol":"agent_skill","operation":"netlify-config","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-config/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:1da0ba74488212214738","protocol":"agent_skill","operation":"netlify-database","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-database/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:0512815c8c8de0cd208c","protocol":"agent_skill","operation":"netlify-deploy","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-deploy/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:7c9300ee5c12f84cc02f","protocol":"agent_skill","operation":"netlify-edge-functions","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-edge-functions/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:399be073293dd64269d6","protocol":"agent_skill","operation":"netlify-forms","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-forms/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:b2563e7c51156c0116f8","protocol":"agent_skill","operation":"netlify-frameworks","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-frameworks/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:29abe8983d335b08a6d6","protocol":"agent_skill","operation":"netlify-functions","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-functions/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:a61e97e7aedf1d04358f","protocol":"agent_skill","operation":"netlify-identity","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-identity/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d825f398827554176a69","protocol":"agent_skill","operation":"netlify-image-cdn","method":null,"endpoint":"https://raw.githubusercontent.com/netlify/context-and-tools/342a3f7b0f8ebf2355eb750936b75f73b6545cc9/codex/skills/netlify-image-cdn/SKILL.md","declared_by_sha256":"b003d9535f0234b315ae9b2a039f6bb595f85ed576dd3d28f47706e153c570db","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null}],"mismatches":[]},"signature":{"alg":"Ed25519","kid":"hcIAczGf-8EFBnkunmZlvFWnD2nHHeHeC9cM4BTiBVo","certificate_sha256":"1c1a070829fab6a2e843f4e49d58bfcad27487c7e8fb7df6ec6073686a975f89","message":"the UTF-8 bytes of \"crawlcheck-capability-certificate-v1\\n\" followed by certificate_sha256 (hex), where certificate_sha256 = SHA-256 of the certificate as canonical JSON (keys sorted, no whitespace)","sig":"i-4EDZjf9Mmz7H4MKurmgysXfHCa0V7W46pQf2vIQPb5Q4z_0Sllz8UxhWvFDOmBcZYtp7pTWWuFUoBwScLMBw"},"issuer":{"name":"CrawlCheck observer","key":{"jwk":{"kty":"OKP","crv":"Ed25519","x":"Ny5tAiGdpyVWTm64G1_0g_sTo4ocLL7kqjZ6cK7G5KM"},"directory":"https://crawlcheck.io/.well-known/http-message-signatures-directory"}}},"verify":"https://crawlcheck.io/api/registry/capabilities/verify?domain=netlify.com"}