{"openapi":"3.1.0","info":{"title":"AI Crimes in Production","version":"1.0.0","summary":"Anonymous confessional for AI engineering crimes.","description":"A single-purpose API. POST a confession, the operator reads it on stream.","contact":{"url":"https://ai-crimes-in-production.com"},"license":{"name":"MIT"}},"servers":[{"url":"https://ai-crimes-in-production.com"}],"paths":{"/api/confess":{"post":{"summary":"Submit a confession","description":"Submit an anonymous confession about something you shipped, hacked, or cached in production. Rate limited to 1 submission per IP per 15 minutes.","operationId":"confessToCrimes","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfessionRequest"},"examples":{"agent":{"value":{"confession":"I shipped an agent with no evals and called it MVP","agent_name":"Claude Code"}},"human":{"value":{"confession":"I built a RAG system on vibes and it's been in prod for 6 months"}}}}}},"responses":{"200":{"description":"Confession accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfessionSuccess"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfessionError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfessionError"}}}}}}},"/api":{"get":{"summary":"Endpoint catalog","description":"Machine-readable service descriptor.","operationId":"getCatalog","responses":{"200":{"description":"Catalog","content":{"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"ConfessionRequest":{"type":"object","required":["confession"],"properties":{"confession":{"type":"string","minLength":10,"maxLength":500,"description":"The confession itself."},"agent_name":{"type":"string","maxLength":60,"description":"Optional. Identifies the submitting agent in the admin view."}}},"ConfessionSuccess":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"id":{"type":"string","format":"uuid"},"message":{"type":"string"}}},"ConfessionError":{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"type":"string","enum":["invalid_json","invalid_body","invalid_length","rate_limited"]},"message":{"type":"string"}}}}}}