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

47 lines
863 B
Markdown

# Dynamic Workplan Contract
```yaml 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]
```