{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "allOf": [ { "if": { "properties": { "decision": { "const": "block" } }, "required": [ "decision" ] }, "then": { "properties": { "reason": { "pattern": ".*\\S.*", "type": "string" } }, "required": [ "reason" ] } } ], "definitions": { "BlockDecisionWire": { "enum": [ "block" ], "type": "string" } }, "properties": { "continue": { "default": true, "type": "boolean" }, "decision": { "anyOf": [ { "$ref": "#/definitions/BlockDecisionWire" }, { "type": "null" } ], "default": null }, "reason": { "default": null, "description": "Claude requires `reason` when `decision` is `block`; we enforce that semantic rule during output parsing rather than in the JSON schema.", "type": [ "string", "null" ] }, "stopReason": { "default": null, "type": [ "string", "null" ] }, "suppressOutput": { "default": false, "type": "boolean" }, "systemMessage": { "default": null, "type": [ "string", "null" ] } }, "title": "stop.command.output", "type": "object" }