GateGate
retention: operational
A Go/No-Go checkpoint with required approvals and exit criteria. Gates govern milestone progression and cutover events. Multi-step approval chains per Q2.
RACI requirements
decision_maker- required
approver- chain
reviewer- required
contributor- optional
informed- optional
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://gcc.bootminds.com/ontology/node-types/gate.json",
"title": "Gate",
"description": "A Go/No-Go checkpoint with required approvals and exit criteria. Gates govern milestone progression and cutover events. Multi-step approval chains per Q2.",
"type": "object",
"x-node-type": "Gate",
"x-lifecycle-state-machine": null,
"x-raci-requirements": {
"decision_maker": "required",
"approver": "chain",
"reviewer": "required",
"contributor": "optional",
"informed": "optional"
},
"x-retention-class": "operational",
"required": [
"node_id",
"node_type",
"tenant_id",
"attributes",
"state",
"created_at",
"created_by"
],
"properties": {
"node_id": {
"type": "string",
"format": "uuid"
},
"node_type": {
"const": "Gate"
},
"tenant_id": {
"type": "string",
"format": "uuid"
},
"state": {
"type": "string",
"enum": [
"Pending",
"InReview",
"Go",
"NoGo",
"Conditional"
],
"description": "Gate go/no-go state. A formal gate state machine may be authored separately in Phase 1B; for now the enum is the authoritative status."
},
"attributes": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"exit_criteria_checklist",
"required_approvals_chain",
"go_no_go_state"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "Gate name (e.g., 'Wave 1 Cutover Go/No-Go')."
},
"description": {
"type": "string",
"description": "Optional description of what this gate governs."
},
"exit_criteria_checklist": {
"type": "array",
"description": "Checklist of exit criteria with satisfaction state and evidence pointers.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"criterion",
"satisfied"
],
"properties": {
"criterion": {
"type": "string",
"minLength": 1,
"description": "Free-text criterion (e.g., 'All P0 decisions locked')."
},
"satisfied": {
"type": "boolean",
"description": "Whether this criterion is currently satisfied."
},
"evidence_refs": {
"type": "array",
"description": "References to evidence supporting satisfaction. Typically Document or Answer UUIDs.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"object_type",
"object_id"
],
"properties": {
"object_type": {
"type": "string",
"enum": [
"Document",
"Answer",
"Decision",
"Milestone",
"Capability"
]
},
"object_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}
}
},
"required_approvals_chain": {
"type": "array",
"minItems": 1,
"description": "Q2: ordered list of Stakeholder UUIDs that must approve in sequence to issue a Go.",
"items": {
"type": "string",
"format": "uuid"
}
},
"current_approval_step": {
"type": "integer",
"minimum": 0,
"description": "Zero-based index into required_approvals_chain pointing at the next required approver."
},
"go_no_go_state": {
"type": "string",
"enum": [
"Pending",
"Go",
"NoGo",
"Conditional"
],
"description": "Final adjudicated go/no-go state. 'Pending' until all approvals are in; 'Conditional' allows progression subject to noted caveats."
},
"conditions": {
"type": "array",
"description": "If go_no_go_state == 'Conditional', the noted caveats.",
"items": {
"type": "string"
}
}
}
},
"created_at": {
"type": "string",
"format": "date-time"
},
"created_by": {
"type": "string",
"format": "uuid"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
}