{"$id":"https://cumulativewebinc.github.io/cwi-skill-sentinel/schema/findings.schema.json","$schema":"http://json-schema.org/draft-07/schema#","description":"Machine-readable output of a Skill Sentinel scan. For agents: fetch this shape via the page's Copy/Download JSON, or run scanner.js yourself — it is dependency-free.","properties":{"engine":{"const":"cwi-skill-sentinel","type":"string"},"engine_version":{"pattern":"^[0-9]+\\.[0-9]+\\.[0-9]+$","type":"string"},"filename":{"type":"string"},"findings":{"items":{"properties":{"category":{"enum":["prompt-injection","data-exfiltration","destructive","privilege","frontmatter","structure"],"type":"string"},"fix":{"type":"string"},"id":{"pattern":"^[A-Z]+-[A-Z]{2}-[0-9]{3}$","type":"string"},"line":{"minimum":1,"type":"integer"},"match":{"maxLength":120,"type":"string"},"message":{"type":"string"},"severity":{"enum":["critical","error","warning","info"],"type":"string"},"title":{"type":"string"}},"required":["id","category","severity","title","line","match","message","fix"],"type":"object"},"type":"array"},"grade":{"enum":["A","B","C","D","F"],"type":"string"},"scanned_at":{"format":"date-time","type":"string"},"score":{"maximum":100,"minimum":0,"type":"integer"},"summary":{"properties":{"critical":{"minimum":0,"type":"integer"},"error":{"minimum":0,"type":"integer"},"info":{"minimum":0,"type":"integer"},"warning":{"minimum":0,"type":"integer"}},"required":["critical","error","warning","info"],"type":"object"}},"required":["engine","engine_version","filename","scanned_at","score","grade","summary","findings"],"title":"CWI Skill Sentinel scan report","type":"object"}