GCC Build OSv0
/api

AssumptionAssumption

retention: operational

A RAID Assumption: a stated belief whose validity is required for downstream decisions or capabilities to hold. Stale assumptions are auto-promoted to Issues past their review_date.

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/assumption.json",
  "title": "Assumption",
  "description": "A RAID Assumption: a stated belief whose validity is required for downstream decisions or capabilities to hold. Stale assumptions are auto-promoted to Issues past their review_date.",
  "type": "object",
  "x-node-type": "Assumption",
  "x-lifecycle-state-machine": null,
  "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": "Assumption"
    },
    "tenant_id": {
      "type": "string",
      "format": "uuid"
    },
    "state": {
      "type": "string",
      "enum": [
        "Open",
        "Validated",
        "Invalidated"
      ],
      "description": "Assumption status. No formal state machine; AssumptionInvalidated is a first-class event used by Programme Memory and Programme Confidence."
    },
    "attributes": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "statement",
        "validation_path",
        "fallback_if_invalidated",
        "owner_id_ref",
        "review_date"
      ],
      "properties": {
        "statement": {
          "type": "string",
          "minLength": 1,
          "description": "The assumption being stated (e.g., 'Riyadh entity will be incorporated by July 1')."
        },
        "validation_path": {
          "type": "string",
          "minLength": 1,
          "description": "How and by whom the assumption will be validated."
        },
        "validated_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "Timestamp at which the assumption was validated; null while Open or Invalidated."
        },
        "fallback_if_invalidated": {
          "type": "string",
          "minLength": 1,
          "description": "Plan of action if the assumption proves false."
        },
        "owner_id_ref": {
          "type": "string",
          "format": "uuid",
          "description": "Stakeholder UUID accountable for validating this assumption."
        },
        "review_date": {
          "type": "string",
          "format": "date",
          "description": "Next scheduled review date. Past this date with state == Open, the auto-promote job converts this assumption to an Issue (1A.5.6)."
        },
        "linked_object_refs": {
          "type": "array",
          "description": "Convenience denormalisation of objects this assumption underpins. Authoritative links live on edges.",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "object_type",
              "object_id"
            ],
            "properties": {
              "object_type": {
                "type": "string",
                "enum": [
                  "Decision",
                  "Capability",
                  "Milestone",
                  "Gate",
                  "TransitionWave"
                ]
              },
              "object_id": {
                "type": "string",
                "format": "uuid"
              }
            }
          }
        }
      }
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "created_by": {
      "type": "string",
      "format": "uuid"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    }
  }
}