-
Notifications
You must be signed in to change notification settings - Fork 0
Branch main Contract RecoveryPlan
github-actions[bot] edited this page May 19, 2026
·
102 revisions
| Field | Value |
|---|---|
| Branch | main |
| Source | specs/contracts/RecoveryPlan.schema.json |
| Commit | a8bea152e7f9 |
| Synced (UTC) | 2026-05-19T05:45:26Z |
Contract pages define the machine-checkable object shape that crosses a lifecycle boundary.
flowchart LR
Producer["Lifecycle producer"] --> Contract["Contract schema"]
Contract --> Example["Schema example"]
Example --> Validator["Schema validator"]
Contract --> Fixture["Conformance fixture output"]
Fixture --> Gate["Base-design gate"]
| Question | Where to look |
|---|---|
| Which lifecycle boundary uses it? | Read description, required fields, and linked references. |
| What diagnostics are mandatory? | Inspect diagnostic reference fields and rule-reference links. |
| How is it validated? | Compare this schema with fixtures/schema_examples/ and conformance vectors. |
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "RecoveryPlan",
"description": "Recoverability-driven plan with no executable NO_OP step.",
"type": "object",
"properties": {
"recoveryPlanID": {
"type": "string"
},
"planDisposition": {
"type": "string",
"enum": [
"NO_ACTION",
"MUTATION_REQUIRED",
"ESCALATION_REQUIRED",
"TERMINAL"
]
},
"diagnosticReference": {
"$ref": "DiagnosticReference.schema.json"
},
"stateClass": {
"$ref": "SystemStateClass.schema.json"
},
"recoveryCategory": {
"$ref": "RecoveryCategory.schema.json"
},
"requiresPolicyGate": {
"type": "boolean"
},
"requiresBackup": {
"type": "boolean"
},
"recoverySteps": {
"type": "array",
"items": {
"$ref": "RecoveryStep.schema.json"
},
"minItems": 0
},
"planHash": {
"type": "string"
},
"createdAt": {
"type": "string"
}
},
"required": [
"recoveryPlanID",
"planDisposition",
"diagnosticReference",
"stateClass",
"recoveryCategory",
"requiresPolicyGate",
"requiresBackup",
"recoverySteps",
"planHash",
"createdAt"
],
"additionalProperties": false
}