Files
markitect-tool/examples/runtime/workplan-dynamic.contract.md

863 B

Dynamic Workplan Contract

id: dynamic-workplan-contract-v1
document:
  type: workplan
fields:
  id:
    type: string
    required: true
  status:
    type: string
    required: true
    enum: [proposed, active, done, deferred]
  owner:
    type: string
    source: context.workplan.owner
sections:
  - id: purpose
    title: Purpose
    presence: required
    level: 2
  - id: tasks
    title: Tasks
    presence: required
    level: 2
  - id: decision-point
    title: Decision Point
    presence: optional
    level: 2
rules:
  - id: require-decision-point-when-done
    if:
      path: fields.status.value
      equals: done
    then:
      sections:
        decision-point:
          presence: required
  - id: owner-needed-for-active-work
    if:
      path: fields.status.value
      equals: active
    then:
      required: [owner]