changedInput schema / properties / request / properties / plan / anyOf
Previous value: -[
- {
- "properties": {
- "acceptance": {
- "items": {
- "maxLength": 16000,
- "pattern": "\\S",
- "type": "string"
- },
- "maxItems": 100,
- "minItems": 1,
- "type": "array"
- },
- "constraints": {
- "items": {
- "maxLength": 16000,
- "pattern": "\\S",
- "type": "string"
- },
- "maxItems": 100,
- "type": "array"
- },
- "context": {
- "default": "",
- "maxLength": 64000,
- "type": "string"
- },
- "goal": {
- "maxLength": 16000,
- "pattern": "\\S",
- "type": "string"
- },
- "steps": {
- "description": "Acyclic checklist with exactly one final integration step that depends transitively on all other steps. A one-step plan is valid.",
- "items": {
- "properties": {
- "acceptance": {
- "items": {
- "maxLength": 16000,
- "pattern": "\\S",
- "type": "string"
- },
- "maxItems": 100,
- "minItems": 1,
- "type": "array"
- },
- "depends_on": {
- "description": "Prerequisite step IDs. One final integration step must depend, directly or transitively, on every other step, including investigation and verification steps.",
- "items": {
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,99}$",
- "type": "string"
- },
- "maxItems": 200,
- "type": "array"
- },
- "goal": {
- "maxLength": 16000,
- "pattern": "\\S",
- "type": "string"
- },
- "id": {
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,99}$",
- "type": "string"
- },
- "owned_files": {
- "items": {
- "maxLength": 16000,
- "pattern": "\\S",
- "type": "string"
- },
- "maxItems": 500,
- "type": "array"
- },
- "owner": {
- "enum": [
- "claude",
- "omp"
- ],
- "type": "string"
- },
- "requirements": {
- "description": "Declared execution needs; a live-path claim remains attributed evidence.",
- "properties": {
- "boundary_paths": {
- "items": {
- "type": "string"
- },
- "maxItems": 100,
- "type": "array"
- },
- "entry_paths": {
- "items": {
- "type": "string"
- },
- "maxItems": 100,
- "type": "array"
- },
- "live_path_evidence": {
- "items": {
- "type": "string"
- },
- "maxItems": 32,
- "type": "array"
- },
- "requires_shell": {
- "default": false,
- "type": "boolean"
- },
- "requires_write": {
- "default": false,
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "review_context_paths": {
- "description": "Exact additional read-only review paths from the submitted commit. Does not expand owned_files; new context requires a new agreed snapshot.",
- "items": {
- "maxLength": 16000,
- "pattern": "\\S",
- "type": "string"
- },
- "maxItems": 256,
- "type": "array"
- },
- "review_requirements": {
- "description": "Declared execution needs; a live-path claim remains attributed evidence.",
- "properties": {
- "boundary_paths": {
- "items": {
- "type": "string"
- },
- "maxItems": 100,
- "type": "array"
- },
- "entry_paths": {
- "items": {
- "type": "string"
- },
- "maxItems": 100,
- "type": "array"
- },
- "live_path_evidence": {
- "items": {
- "type": "string"
- },
- "maxItems": 32,
- "type": "array"
- },
- "requires_shell": {
- "default": false,
- "type": "boolean"
- },
- "requires_write": {
- "default": false,
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "review_verification": {
- "anyOf": [
- {
- "description": "Explicit check ladder; later phases include earlier required checks.",
- "properties": {
- "checks": {
- "items": {
- "properties": {
- "command": {
- "anyOf": [
- {
- "maxLength": 2000,
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "default": null
- },
- "criterion": {
- "maxLength": 2000,
- "pattern": "\\S",
- "type": "string"
- },
- "estimated_seconds": {
- "anyOf": [
- {
- "maximum": 7200,
- "minimum": 1,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null
- },
- "id": {
- "maxLength": 100,
- "pattern": "\\S",
- "type": "string"
- },
- "phase": {
- "default": "targeted",
- "enum": [
- "targeted",
- "candidate",
- "integration"
- ],
- "type": "string"
- },
- "requires_shell": {
- "default": false,
- "type": "boolean"
- },
- "scope": {
- "anyOf": [
- {
- "description": "Which bytes a run observed. Equal digests of the same kind are the same bytes.",
- "properties": {
- "boundaries": {
- "description": "What the run did not exercise (external services, other platforms, unselected files).",
- "items": {
- "maxLength": 2000,
- "pattern": "\\S",
- "type": "string"
- },
- "maxItems": 20,
- "type": "array"
- },
- "digest": {
- "pattern": "^[0-9a-f]{7,128}$",
- "type": "string"
- },
- "kind": {
- "enum": [
- "tree",
- "commit",
- "archive",
- "content"
- ],
- "type": "string"
- }
- },
- "required": [
- "kind",
- "digest"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Explicit current input identity. History from other bytes remains recorded but is not a current result; omitted scope keeps ambiguous failures unresolved."
- }
- },
- "required": [
- "id",
- "criterion"
- ],
- "type": "object"
- },
- "maxItems": 50,
- "type": "array"
- },
- "preparation_seconds": {
- "default": 0,
- "maximum": 7200,
- "minimum": 0,
- "type": "integer"
- },
- "stage": {
- "default": "targeted",
- "enum": [
- "targeted",
- "candidate",
- "integration"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "default": null
- },
- "reviewer": {
- "enum": [
- "claude",
- "omp"
- ],
- "type": "string"
- },
- "title": {
- "maxLength": 16000,
- "pattern": "\\S",
- "type": "string"
- },
- "verification": {
- "anyOf": [
- {
- "description": "Explicit check ladder; later phases include earlier required checks.",
- "properties": {
- "checks": {
- "items": {
- "properties": {
- "command": {
- "anyOf": [
- {
- "maxLength": 2000,
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "default": null
- },
- "criterion": {
- "maxLength": 2000,
- "pattern": "\\S",
- "type": "string"
- },
- "estimated_seconds": {
- "anyOf": [
- {
- "maximum": 7200,
- "minimum": 1,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null
- },
- "id": {
- "maxLength": 100,
- "pattern": "\\S",
- "type": "string"
- },
- "phase": {
- "default": "targeted",
- "enum": [
- "targeted",
- "candidate",
- "integration"
- ],
- "type": "string"
- },
- "requires_shell": {
- "default": false,
- "type": "boolean"
- },
- "scope": {
- "anyOf": [
- {
- "description": "Which bytes a run observed. Equal digests of the same kind are the same bytes.",
- "properties": {
- "boundaries": {
- "description": "What the run did not exercise (external services, other platforms, unselected files).",
- "items": {
- "maxLength": 2000,
- "pattern": "\\S",
- "type": "string"
- },
- "maxItems": 20,
- "type": "array"
- },
- "digest": {
- "pattern": "^[0-9a-f]{7,128}$",
- "type": "string"
- },
- "kind": {
- "enum": [
- "tree",
- "commit",
- "archive",
- "content"
- ],
- "type": "string"
- }
- },
- "required": [
- "kind",
- "digest"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Explicit current input identity. History from other bytes remains recorded but is not a current result; omitted scope keeps ambiguous failures unresolved."
- }
- },
- "required": [
- "id",
- "criterion"
- ],
- "type": "object"
- },
- "maxItems": 50,
- "type": "array"
- },
- "preparation_seconds": {
- "default": 0,
- "maximum": 7200,
- "minimum": 0,
- "type": "integer"
- },
- "stage": {
- "default": "targeted",
- "enum": [
- "targeted",
- "candidate",
- "integration"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "default": null
- }
- },
- "required": [
- "id",
- "title",
- "goal",
- "owner",
- "reviewer",
- "acceptance"
- ],
- "type": "object"
- },
- "maxItems": 200,
- "minItems": 1,
- "type": "array"
- },
- "title": {
- "maxLength": 16000,
- "pattern": "\\S",
- "type": "string"
- }
- },
- "required": [
- "title",
- "goal",
- "acceptance",
- "steps"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "properties": {
+ "acceptance": {
+ "items": {
+ "maxLength": 16000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "minItems": 1,
+ "type": "array"
+ },
+ "constraints": {
+ "items": {
+ "maxLength": 16000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "type": "array"
+ },
+ "context": {
+ "default": "",
+ "maxLength": 64000,
+ "type": "string"
+ },
+ "goal": {
+ "maxLength": 16000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "steps": {
+ "description": "Acyclic checklist with exactly one final integration step that depends transitively on all other steps. A one-step plan is valid.",
+ "items": {
+ "properties": {
+ "acceptance": {
+ "items": {
+ "maxLength": 16000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "minItems": 1,
+ "type": "array"
+ },
+ "depends_on": {
+ "description": "Prerequisite step IDs. One final integration step must depend, directly or transitively, on every other step, including investigation and verification steps.",
+ "items": {
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,99}$",
+ "type": "string"
+ },
+ "maxItems": 200,
+ "type": "array"
+ },
+ "goal": {
+ "maxLength": 16000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "id": {
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,99}$",
+ "type": "string"
+ },
+ "owned_files": {
+ "items": {
+ "maxLength": 16000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "maxItems": 500,
+ "type": "array"
+ },
+ "owner": {
+ "enum": [
+ "claude",
+ "omp"
+ ],
+ "type": "string"
+ },
+ "requirements": {
+ "description": "Declared execution needs; a live-path claim remains attributed evidence.",
+ "properties": {
+ "boundary_paths": {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 100,
+ "type": "array"
+ },
+ "entry_paths": {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 100,
+ "type": "array"
+ },
+ "live_path_evidence": {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 32,
+ "type": "array"
+ },
+ "requires_shell": {
+ "default": false,
+ "type": "boolean"
+ },
+ "requires_write": {
+ "default": false,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "review_context_paths": {
+ "description": "Exact additional read-only review paths from the submitted commit. Does not expand owned_files; new context requires a new agreed snapshot.",
+ "items": {
+ "maxLength": 16000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "maxItems": 256,
+ "type": "array"
+ },
+ "review_requirements": {
+ "description": "Declared execution needs; a live-path claim remains attributed evidence.",
+ "properties": {
+ "boundary_paths": {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 100,
+ "type": "array"
+ },
+ "entry_paths": {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 100,
+ "type": "array"
+ },
+ "live_path_evidence": {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 32,
+ "type": "array"
+ },
+ "requires_shell": {
+ "default": false,
+ "type": "boolean"
+ },
+ "requires_write": {
+ "default": false,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "review_verification": {
+ "anyOf": [
+ {
+ "description": "Explicit check ladder; later phases include earlier required checks.",
+ "properties": {
+ "acceptance_coverage": {
+ "default": "report_only",
+ "description": "report_only surfaces gaps and refuses nothing. require_current_evidence additionally refuses a success report while a declared evidence unit lacks applicable current passing evidence.",
+ "enum": [
+ "report_only",
+ "require_current_evidence"
+ ],
+ "type": "string"
+ },
+ "checks": {
+ "items": {
+ "properties": {
+ "acceptance_refs": {
+ "description": "Which declared criteria or obligations this check is intended to exercise. An assertion of intent, never of execution or sufficiency.",
+ "items": {
+ "description": "Points at one criterion or one of its obligations, at an exact revision.",
+ "properties": {
+ "criterion_id": {
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._\\-]{0,99}$",
+ "type": "string"
+ },
+ "obligation_id": {
+ "anyOf": [
+ {
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._\\-]{0,99}$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null
+ },
+ "revision": {
+ "pattern": "^[0-9a-f]{64}$",
+ "type": "string"
+ },
+ "set_id": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "set_id",
+ "revision",
+ "criterion_id"
+ ],
+ "type": "object"
+ },
+ "maxItems": 200,
+ "type": "array"
+ },
+ "command": {
+ "anyOf": [
+ {
+ "maxLength": 2000,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null
+ },
+ "criterion": {
+ "maxLength": 2000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "estimated_seconds": {
+ "anyOf": [
+ {
+ "maximum": 7200,
+ "minimum": 1,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null
+ },
+ "id": {
+ "maxLength": 100,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "phase": {
+ "default": "targeted",
+ "enum": [
+ "targeted",
+ "candidate",
+ "integration"
+ ],
+ "type": "string"
+ },
+ "requires_shell": {
+ "default": false,
+ "type": "boolean"
+ },
+ "scope": {
+ "anyOf": [
+ {
+ "description": "Which bytes a run observed. Equal digests of the same kind are the same bytes.",
+ "properties": {
+ "boundaries": {
+ "description": "What the run did not exercise (external services, other platforms, unselected files).",
+ "items": {
+ "maxLength": 2000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "digest": {
+ "pattern": "^[0-9a-f]{7,128}$",
+ "type": "string"
+ },
+ "kind": {
+ "enum": [
+ "tree",
+ "commit",
+ "archive",
+ "content"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "digest"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Explicit current input identity. History from other bytes remains recorded but is not a current result; omitted scope keeps ambiguous failures unresolved."
+ }
+ },
+ "required": [
+ "id",
+ "criterion"
+ ],
+ "type": "object"
+ },
+ "maxItems": 50,
+ "type": "array"
+ },
+ "coverage_scope": {
+ "anyOf": [
+ {
+ "description": "Which bytes a run observed. Equal digests of the same kind are the same bytes.",
+ "properties": {
+ "boundaries": {
+ "description": "What the run did not exercise (external services, other platforms, unselected files).",
+ "items": {
+ "maxLength": 2000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "digest": {
+ "pattern": "^[0-9a-f]{7,128}$",
+ "type": "string"
+ },
+ "kind": {
+ "enum": [
+ "tree",
+ "commit",
+ "archive",
+ "content"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "digest"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The output bytes this coverage assessment is about. A declaration, not an observation of the filesystem."
+ },
+ "preparation_seconds": {
+ "default": 0,
+ "maximum": 7200,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "stage": {
+ "default": "targeted",
+ "enum": [
+ "targeted",
+ "candidate",
+ "integration"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null
+ },
+ "reviewer": {
+ "enum": [
+ "claude",
+ "omp"
+ ],
+ "type": "string"
+ },
+ "title": {
+ "maxLength": 16000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "verification": {
+ "anyOf": [
+ {
+ "description": "Explicit check ladder; later phases include earlier required checks.",
+ "properties": {
+ "acceptance_coverage": {
+ "default": "report_only",
+ "description": "report_only surfaces gaps and refuses nothing. require_current_evidence additionally refuses a success report while a declared evidence unit lacks applicable current passing evidence.",
+ "enum": [
+ "report_only",
+ "require_current_evidence"
+ ],
+ "type": "string"
+ },
+ "checks": {
+ "items": {
+ "properties": {
+ "acceptance_refs": {
+ "description": "Which declared criteria or obligations this check is intended to exercise. An assertion of intent, never of execution or sufficiency.",
+ "items": {
+ "description": "Points at one criterion or one of its obligations, at an exact revision.",
+ "properties": {
+ "criterion_id": {
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._\\-]{0,99}$",
+ "type": "string"
+ },
+ "obligation_id": {
+ "anyOf": [
+ {
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._\\-]{0,99}$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null
+ },
+ "revision": {
+ "pattern": "^[0-9a-f]{64}$",
+ "type": "string"
+ },
+ "set_id": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "set_id",
+ "revision",
+ "criterion_id"
+ ],
+ "type": "object"
+ },
+ "maxItems": 200,
+ "type": "array"
+ },
+ "command": {
+ "anyOf": [
+ {
+ "maxLength": 2000,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null
+ },
+ "criterion": {
+ "maxLength": 2000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "estimated_seconds": {
+ "anyOf": [
+ {
+ "maximum": 7200,
+ "minimum": 1,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null
+ },
+ "id": {
+ "maxLength": 100,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "phase": {
+ "default": "targeted",
+ "enum": [
+ "targeted",
+ "candidate",
+ "integration"
+ ],
+ "type": "string"
+ },
+ "requires_shell": {
+ "default": false,
+ "type": "boolean"
+ },
+ "scope": {
+ "anyOf": [
+ {
+ "description": "Which bytes a run observed. Equal digests of the same kind are the same bytes.",
+ "properties": {
+ "boundaries": {
+ "description": "What the run did not exercise (external services, other platforms, unselected files).",
+ "items": {
+ "maxLength": 2000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "digest": {
+ "pattern": "^[0-9a-f]{7,128}$",
+ "type": "string"
+ },
+ "kind": {
+ "enum": [
+ "tree",
+ "commit",
+ "archive",
+ "content"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "digest"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Explicit current input identity. History from other bytes remains recorded but is not a current result; omitted scope keeps ambiguous failures unresolved."
+ }
+ },
+ "required": [
+ "id",
+ "criterion"
+ ],
+ "type": "object"
+ },
+ "maxItems": 50,
+ "type": "array"
+ },
+ "coverage_scope": {
+ "anyOf": [
+ {
+ "description": "Which bytes a run observed. Equal digests of the same kind are the same bytes.",
+ "properties": {
+ "boundaries": {
+ "description": "What the run did not exercise (external services, other platforms, unselected files).",
+ "items": {
+ "maxLength": 2000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "digest": {
+ "pattern": "^[0-9a-f]{7,128}$",
+ "type": "string"
+ },
+ "kind": {
+ "enum": [
+ "tree",
+ "commit",
+ "archive",
+ "content"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "digest"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The output bytes this coverage assessment is about. A declaration, not an observation of the filesystem."
+ },
+ "preparation_seconds": {
+ "default": 0,
+ "maximum": 7200,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "stage": {
+ "default": "targeted",
+ "enum": [
+ "targeted",
+ "candidate",
+ "integration"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null
+ }
+ },
+ "required": [
+ "id",
+ "title",
+ "goal",
+ "owner",
+ "reviewer",
+ "acceptance"
+ ],
+ "type": "object"
+ },
+ "maxItems": 200,
+ "minItems": 1,
+ "type": "array"
+ },
+ "title": {
+ "maxLength": 16000,
+ "pattern": "\\S",
+ "type": "string"
+ }
+ },
+ "required": [
+ "title",
+ "goal",
+ "acceptance",
+ "steps"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+]