addedInput schema / properties / visualCritique
Added value: +{
+ "additionalProperties": false,
+ "description": "Opt-in bounded visual critique of one explicit TOP and 1-6 numeric constant parameters. Preview-only unless autoApply=true; every apply still requires native Apply/Keep approval.",
+ "properties": {
+ "confirmationTimeoutMs": {
+ "default": 30000,
+ "maximum": 120000,
+ "minimum": 5000,
+ "type": "integer"
+ },
+ "fixtureReceiptId": {
+ "const": "wave14_td_fixture_2026-07-15.3_qwen3-vl-8b-q4km",
+ "default": "wave14_td_fixture_2026-07-15.3_qwen3-vl-8b-q4km",
+ "type": "string"
+ },
+ "idempotencyKey": {
+ "maxLength": 128,
+ "minLength": 16,
+ "pattern": "^[A-Za-z0-9._:-]+$",
+ "type": "string"
+ },
+ "maxChanges": {
+ "default": 3,
+ "maximum": 3,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "maxIterations": {
+ "default": 1,
+ "maximum": 2,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "outputTopPath": {
+ "maxLength": 240,
+ "minLength": 1,
+ "type": "string"
+ },
+ "regressionThreshold": {
+ "default": 5,
+ "maximum": 20,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "targets": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "maximum": {
+ "maximum": 1000000,
+ "type": "number"
+ },
+ "minimum": {
+ "minimum": -1000000,
+ "type": "number"
+ },
+ "nodePath": {
+ "maxLength": 240,
+ "minLength": 1,
+ "type": "string"
+ },
+ "parameter": {
+ "pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nodePath",
+ "parameter",
+ "minimum",
+ "maximum"
+ ],
+ "type": "object"
+ },
+ "maxItems": 6,
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "outputTopPath",
+ "targets"
+ ],
+ "type": "object"
+}
addedOutput schema / properties / visualCritique
Added value: +{
+ "additionalProperties": false,
+ "properties": {
+ "iterations": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "after": {
+ "additionalProperties": false,
+ "properties": {
+ "preview_sha256": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "technical": {
+ "additionalProperties": false,
+ "properties": {
+ "error_count": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "perf_score": {
+ "type": "number"
+ },
+ "preview_readable": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "error_count",
+ "preview_readable"
+ ],
+ "type": "object"
+ },
+ "visual_score": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "preview_sha256",
+ "technical",
+ "visual_score"
+ ],
+ "type": "object"
+ },
+ "apply": {
+ "additionalProperties": false,
+ "properties": {
+ "applied": {
+ "type": "boolean"
+ },
+ "final_fingerprint": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "undo_label": {
+ "maxLength": 256,
+ "type": "string"
+ },
+ "verified": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "applied",
+ "verified"
+ ],
+ "type": "object"
+ },
+ "before": {
+ "additionalProperties": false,
+ "properties": {
+ "preview_sha256": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "target_fingerprint": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "technical": {
+ "additionalProperties": false,
+ "properties": {
+ "error_count": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "perf_score": {
+ "type": "number"
+ },
+ "preview_readable": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "error_count",
+ "preview_readable"
+ ],
+ "type": "object"
+ },
+ "visual_score": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "target_fingerprint",
+ "preview_sha256",
+ "technical",
+ "visual_score"
+ ],
+ "type": "object"
+ },
+ "decision": {
+ "additionalProperties": false,
+ "properties": {
+ "choice": {
+ "enum": [
+ "Apply",
+ "Keep"
+ ],
+ "type": "string"
+ },
+ "request_id": {
+ "maxLength": 128,
+ "type": "string"
+ },
+ "state": {
+ "enum": [
+ "pending",
+ "resolved",
+ "expired",
+ "cancelled",
+ "failed"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "state",
+ "choice"
+ ],
+ "type": "object"
+ },
+ "index": {
+ "anyOf": [
+ {
+ "const": 1,
+ "type": "number"
+ },
+ {
+ "const": 2,
+ "type": "number"
+ }
+ ]
+ },
+ "proposal": {
+ "additionalProperties": false,
+ "properties": {
+ "change_count": {
+ "maximum": 3,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "changes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "before": {
+ "type": "number"
+ },
+ "parameter": {
+ "maxLength": 64,
+ "minLength": 1,
+ "type": "string"
+ },
+ "path": {
+ "maxLength": 240,
+ "minLength": 1,
+ "type": "string"
+ },
+ "proposed": {
+ "type": "number"
+ },
+ "risk": {
+ "enum": [
+ "low",
+ "medium"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "path",
+ "parameter",
+ "before",
+ "proposed",
+ "risk"
+ ],
+ "type": "object"
+ },
+ "maxItems": 3,
+ "minItems": 1,
+ "type": "array"
+ },
+ "digest": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "digest",
+ "change_count",
+ "changes"
+ ],
+ "type": "object"
+ },
+ "rollback": {
+ "additionalProperties": false,
+ "properties": {
+ "attempted": {
+ "type": "boolean"
+ },
+ "reason": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "restored": {
+ "type": "boolean"
+ },
+ "undo_label": {
+ "maxLength": 256,
+ "type": "string"
+ },
+ "verified": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "attempted",
+ "restored",
+ "verified"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "enum": [
+ "PASS",
+ "FAIL",
+ "UNVERIFIED"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "index",
+ "status",
+ "before"
+ ],
+ "type": "object"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "model": {
+ "additionalProperties": false,
+ "properties": {
+ "digest": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "fingerprint": {
+ "pattern": "^sha256:[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "model": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "provider": {
+ "maxLength": 64,
+ "minLength": 1,
+ "type": "string"
+ },
+ "quantization": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "provider",
+ "model",
+ "digest",
+ "fingerprint"
+ ],
+ "type": "object"
+ },
+ "output_top_path": {
+ "maxLength": 240,
+ "minLength": 1,
+ "type": "string"
+ },
+ "rubric": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "const": "tdmcp.visual.basic.v1",
+ "type": "string"
+ },
+ "weights": {
+ "additionalProperties": false,
+ "properties": {
+ "composition_hierarchy": {
+ "const": 0.3,
+ "type": "number"
+ },
+ "contrast_legibility": {
+ "const": 0.25,
+ "type": "number"
+ },
+ "palette_coherence": {
+ "const": 0.25,
+ "type": "number"
+ },
+ "spatial_balance": {
+ "const": 0.2,
+ "type": "number"
+ }
+ },
+ "required": [
+ "composition_hierarchy",
+ "palette_coherence",
+ "contrast_legibility",
+ "spatial_balance"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "weights"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "enum": [
+ "PASS",
+ "FAIL",
+ "UNVERIFIED"
+ ],
+ "type": "string"
+ },
+ "warnings": {
+ "items": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "maxItems": 8,
+ "type": "array"
+ }
+ },
+ "required": [
+ "status",
+ "rubric",
+ "output_top_path",
+ "iterations",
+ "warnings"
+ ],
+ "type": "object"
+}