extensions/specrew-speckit/knowledge/work-kinds.schema.json
|
{
"$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://specrew.dev/schemas/work-kinds.schema.json", "title": "Work-Kind Catalog + Declaration", "description": "Validates the shipped work-kinds.yml catalog and the per-work-item .specrew/work-kind.yml declaration (via $defs.declaration).", "type": "object", "required": ["schema_version", "work_kinds"], "additionalProperties": false, "properties": { "schema_version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+$" }, "work_kinds": { "type": "array", "minItems": 4, "items": { "$ref": "#/$defs/workKind" } }, "global_allowlist": { "type": "array", "items": { "type": "string" }, "description": "Glob patterns for repository-global/generated files exempt from changed-file classification." } }, "$defs": { "workKindId": { "type": "string", "enum": ["software-feature", "bug-bash", "docs-only", "devops"] }, "workKind": { "type": "object", "required": ["id", "lifecycle_weight", "lifecycle_template", "required_evidence", "allowed_scope"], "additionalProperties": false, "properties": { "id": { "$ref": "#/$defs/workKindId" }, "title": { "type": "string" }, "lifecycle_weight": { "type": "string", "enum": ["full", "focused", "lightweight", "operational"] }, "description": { "type": "string" }, "required_evidence": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "allowed_scope": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "branch_prefix_hint": { "type": "string" }, "lifecycle_template": { "type": "string", "pattern": "^templates/lifecycle/[a-z-]+-lifecycle\\.md$", "description": "Path (repo-relative) to this work kind's lifecycle template, resolved at intake/start/refocus so a selected work_kind points the crew to its lifecycle contract (FR-023 / SC-016)." }, "closes_before_merge": { "type": "boolean" }, "produces_release": { "type": "boolean" } } }, "declaration": { "type": "object", "description": "The per-work-item .specrew/work-kind.yml declaration.", "required": ["work_kind", "schema_version"], "additionalProperties": false, "properties": { "work_kind": { "$ref": "#/$defs/workKindId" }, "schema_version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+$" }, "notes": { "type": "string" } } } } } |