GCC Build OSv0
/api

QuestionQuestion

retention: operational state machine: question

A discovery item that produces evidence in support of one or more Decisions. Questions are typically templated from a WorkstreamPack and instantiated per tenant.

RACI requirements

decision_maker
n/a
approver
optional
reviewer
required
contributor
required
informed
optional

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://gcc.bootminds.com/ontology/node-types/question.json",
  "title": "Question",
  "description": "A discovery item that produces evidence in support of one or more Decisions. Questions are typically templated from a WorkstreamPack and instantiated per tenant.",
  "type": "object",
  "x-node-type": "Question",
  "x-lifecycle-state-machine": "question",
  "x-raci-requirements": {
    "decision_maker": "n/a",
    "approver": "optional",
    "reviewer": "required",
    "contributor": "required",
    "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": "Question"
    },
    "tenant_id": {
      "type": "string",
      "format": "uuid"
    },
    "state": {
      "type": "string",
      "enum": [
        "Open",
        "InProgress",
        "Answered",
        "Reviewed",
        "Locked"
      ],
      "description": "Question lifecycle state. Transitions governed by the 'question' state machine."
    },
    "attributes": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "prompt",
        "scope",
        "category",
        "priority",
        "artefact_type"
      ],
      "properties": {
        "prompt": {
          "type": "string",
          "minLength": 1,
          "description": "The question text presented to the respondent."
        },
        "rationale_skeleton": {
          "type": "string",
          "description": "Pack-provided skeleton text explaining why this question matters and how it feeds downstream decisions."
        },
        "scope": {
          "type": "string",
          "enum": [
            "G",
            "S",
            "GCC"
          ],
          "description": "Scope tag: G = Group/Enterprise-wide; S = Subsidiary / business unit; GCC = specific to the GCC build."
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "description": "Broad category for grouping (typically aligned to function/workstream taxonomy)."
        },
        "subcategory": {
          "type": "string",
          "description": "Optional finer-grained grouping within a category."
        },
        "priority": {
          "type": "string",
          "enum": [
            "P0",
            "P1",
            "P2",
            "P3"
          ],
          "description": "Question priority. P0 questions are programme blockers."
        },
        "artefact_type": {
          "type": "string",
          "enum": [
            "text",
            "number",
            "table",
            "file",
            "checklist",
            "entity-row",
            "date",
            "currency"
          ],
          "description": "Canonical artefact type expected as the Answer payload."
        },
        "workstream_id_ref": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid",
          "description": "Reference to the parent Workstream node."
        },
        "default_raci_contributors": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "BootmindsStaff",
              "ClientAdmin",
              "ClientStakeholder",
              "ClientExecutive"
            ]
          },
          "description": "Pack-default stakeholder-kind tags suggested as Contributors. Used to seed RACI; effective RACI lives on edges."
        }
      }
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "created_by": {
      "type": "string",
      "format": "uuid"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    }
  }
}