changedInput schema / properties / contract / anyOf
Previous value: -[
- {
- "description": "A new turn's goal and criteria, without permission or ownership changes.",
- "properties": {
- "acceptance": {
- "items": {
- "maxLength": 2000,
- "pattern": "\\S",
- "type": "string"
- },
- "maxItems": 50,
- "type": "array"
- },
- "artifact_ids": {
- "items": {
- "type": "string"
- },
- "maxItems": 32,
- "type": "array"
- },
- "constraints": {
- "items": {
- "maxLength": 2000,
- "pattern": "\\S",
- "type": "string"
- },
- "maxItems": 50,
- "type": "array"
- },
- "context": {
- "default": "",
- "maxLength": 60000,
- "type": "string"
- },
- "context_options": {
- "description": "Presentation of pinned product data, never a reduction of required policy.",
- "properties": {
- "advisory_rule_ids": {
- "items": {
- "maxLength": 100,
- "pattern": "\\S",
- "type": "string"
- },
- "maxItems": 50,
- "type": "array"
- },
- "decision_ids": {
- "items": {
- "maxLength": 100,
- "pattern": "\\S",
- "type": "string"
- },
- "maxItems": 100,
- "type": "array"
- },
- "delivery": {
- "default": "capsule",
- "enum": [
- "capsule",
- "full"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "goal": {
- "maxLength": 8000,
- "pattern": "\\S",
- "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"
- },
- "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": [
- "goal"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "description": "A new turn's goal and criteria, without permission or ownership changes.",
+ "properties": {
+ "acceptance": {
+ "items": {
+ "maxLength": 2000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "maxItems": 50,
+ "type": "array"
+ },
+ "acceptance_set": {
+ "anyOf": [
+ {
+ "description": "The declared denominator. Its revision is its content, not a version number.",
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "id": {
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._\\-]{0,99}$",
+ "type": "string"
+ },
+ "obligations": {
+ "description": "Declared clauses. Naming none keeps the criterion one undecomposed unit; naming some means a mapping of the parent covers none of them.",
+ "items": {
+ "description": "One clause of a criterion, with the exact environment it is owed in.",
+ "properties": {
+ "environment": {
+ "patternProperties": {
+ "\\S": {
+ "maxLength": 200,
+ "type": "string"
+ }
+ },
+ "propertyNames": {
+ "maxLength": 60
+ },
+ "type": "object"
+ },
+ "id": {
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._\\-]{0,99}$",
+ "type": "string"
+ },
+ "text": {
+ "maxLength": 16000,
+ "pattern": "\\S",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "text"
+ ],
+ "type": "object"
+ },
+ "maxItems": 100,
+ "type": "array"
+ },
+ "text": {
+ "maxLength": 16000,
+ "pattern": "\\S",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "text"
+ ],
+ "type": "object"
+ },
+ "maxItems": 100,
+ "type": "array"
+ },
+ "revision": {
+ "pattern": "^[0-9a-f]{64}$",
+ "type": "string"
+ },
+ "schema_version": {
+ "const": 1,
+ "default": 1,
+ "type": "integer"
+ },
+ "set_id": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "set_id",
+ "revision"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Optional structured form of the same acceptance list: its texts must repeat acceptance exactly, so there is never a second source of truth."
+ },
+ "artifact_ids": {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 32,
+ "type": "array"
+ },
+ "constraints": {
+ "items": {
+ "maxLength": 2000,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "maxItems": 50,
+ "type": "array"
+ },
+ "context": {
+ "default": "",
+ "maxLength": 60000,
+ "type": "string"
+ },
+ "context_options": {
+ "description": "Presentation of pinned product data, never a reduction of required policy.",
+ "properties": {
+ "advisory_rule_ids": {
+ "items": {
+ "maxLength": 100,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "maxItems": 50,
+ "type": "array"
+ },
+ "decision_ids": {
+ "items": {
+ "maxLength": 100,
+ "pattern": "\\S",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "type": "array"
+ },
+ "delivery": {
+ "default": "capsule",
+ "enum": [
+ "capsule",
+ "full"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "goal": {
+ "maxLength": 8000,
+ "pattern": "\\S",
+ "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"
+ },
+ "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": [
+ "goal"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+]