GCC Build OSv0
/api

CapabilityCapability

retention: operational state machine: capability

A discrete business capability (e.g., 'L2 helpdesk operations', 'AP invoice processing', 'GST filing'). Capabilities move through the capability lifecycle, group into TransitionWaves, and mature along MaturityDimensions.

RACI requirements

decision_maker
required
approver
optional
reviewer
optional
contributor
optional
informed
optional

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://gcc.bootminds.com/ontology/node-types/capability.json",
  "title": "Capability",
  "description": "A discrete business capability (e.g., 'L2 helpdesk operations', 'AP invoice processing', 'GST filing'). Capabilities move through the capability lifecycle, group into TransitionWaves, and mature along MaturityDimensions.",
  "type": "object",
  "x-node-type": "Capability",
  "x-lifecycle-state-machine": "capability",
  "x-raci-requirements": {
    "decision_maker": "required",
    "approver": "optional",
    "reviewer": "optional",
    "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": "Capability"
    },
    "tenant_id": {
      "type": "string",
      "format": "uuid"
    },
    "state": {
      "type": "string",
      "enum": [
        "Identified",
        "Designed",
        "Built",
        "InDualRun",
        "Cutover",
        "InService"
      ],
      "description": "Capability lifecycle state. Transitions governed by the 'capability' state machine."
    },
    "attributes": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name",
        "description",
        "target_maturity_level"
      ],
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "description": "Capability name (e.g., 'L2 helpdesk operations')."
        },
        "description": {
          "type": "string",
          "minLength": 1,
          "description": "Functional description of the capability and its boundary."
        },
        "workstream_id_ref": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid",
          "description": "Reference to the parent Workstream node. Nullable for cross-workstream capabilities, though typical capabilities live under one workstream."
        },
        "target_maturity_level": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5,
          "description": "Target maturity rating on the canonical 5-level rubric (Ad-hoc/Repeatable/Defined/Managed/Optimised)."
        },
        "current_maturity_level": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 1,
          "maximum": 5,
          "description": "Current maturity rating; null until first assessment."
        },
        "owner_id_ref": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid",
          "description": "Stakeholder UUID accountable for this capability (RACI Decision-maker, denormalised for convenience). Authoritative ownership lives on edges."
        }
      }
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "created_by": {
      "type": "string",
      "format": "uuid"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    }
  }
}