{"decision":"BLOCK","safe_for_agent":false,"risk_score":92,"breaking_changes":1,"requires_migration":true,"evidence_quality":"HIGH","patterns":["TOOL_RESULT_SHAPE_DRIFT"],"coderifts_version":"1.0","coderifts_governance":{"mcp_config":{"url":"https://app.coderifts.com/mcp","transport":"streamable-http"},"add_to_agent":"https://coderifts.com/for-agents","registry":"io.github.coderifts/api-governance","manifest":"https://coderifts.com/mcp.json"},"timestamp":"2026-10-22T21:30:41.880Z","scenario":{"name":"Order Status Field Removed","description":"The order_status field was renamed to status. This breaks any agent that reads order_status.","change_type":"RESPONSE_FIELD_REMOVED"},"execution_trace":[{"step":1,"agent":"RefundWorkflow","action":"GET /orders/{id}","status":"executed","result":"ok"},{"step":2,"agent":"CodeRifts","action":"preflight_check","status":"BLOCK","reason":"TOOL_RESULT_SHAPE_DRIFT — order_status field removed","decision":"BLOCK","risk_score":92},{"step":3,"agent":"RefundWorkflow","action":"POST /refunds","status":"aborted","reason":"CodeRifts BLOCK — execution halted before unsafe API call"}],"enforcement":{"agent_aborted":true,"abort_reason":"CodeRifts decision: BLOCK","cascade_stopped":true,"steps_prevented":1,"framework":"generic"},"reproduce":{"curl":"curl -s -X POST https://app.coderifts.com/api/v1/agent-abort-demo -H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' -d '{...}'","github":"https://github.com/coderifts/example-minimal-python"},"correlation_id":"f57ab303-2c2e-47d8-95d1-4a51d6554b9d"}