STATE-WP-0092-T01: flavor is a closed bucket on workplans and tasks; residuals are a flavor, not a kind, and are omitted from default open views until demand or risk promotes them. depends_on is the workplan frontmatter edge.
52 lines
1.8 KiB
JSON
52 lines
1.8 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://canon.coulomb.social/schemas/work-records/spine.schema.json",
|
|
"title": "Work Record Spine (shared definitions)",
|
|
"description": "Shared spine per canon/standards/work-record-types_v0.1.md. Kind schemas $ref these definitions. additionalProperties stays open: kind-specific fields extend the spine, never replace it.",
|
|
"$defs": {
|
|
"lane": {
|
|
"enum": ["green", "blue", "yellow", "orange", "red"]
|
|
},
|
|
"uuid": {
|
|
"type": "string",
|
|
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
|
|
},
|
|
"date": {
|
|
"type": "string",
|
|
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": { "type": "string", "pattern": "^[a-z0-9-]+$" }
|
|
},
|
|
"flavor": {
|
|
"enum": ["planning", "implementation", "refactoring", "extension", "residual"]
|
|
},
|
|
"flavor_promotion_reason": {
|
|
"enum": ["demand", "risk"]
|
|
},
|
|
"owner": {
|
|
"type": "string",
|
|
"minLength": 2
|
|
},
|
|
"spineOpen": {
|
|
"type": "object",
|
|
"description": "Spine requirements for records in a non-terminal status.",
|
|
"required": ["id", "lane"],
|
|
"properties": {
|
|
"lane": { "$ref": "#/$defs/lane" },
|
|
"owner": { "$ref": "#/$defs/owner" },
|
|
"tags": { "$ref": "#/$defs/tags" },
|
|
"uuid": { "$ref": "#/$defs/uuid" },
|
|
"created_at": { "$ref": "#/$defs/date" },
|
|
"flavor": { "$ref": "#/$defs/flavor" },
|
|
"flavor_promotion_reason": { "$ref": "#/$defs/flavor_promotion_reason" },
|
|
"flavor_promoted_from": { "$ref": "#/$defs/flavor" },
|
|
"depends_on": {
|
|
"type": "array",
|
|
"items": { "type": "string", "minLength": 3 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|