{
"version": 2,
"aliases": [
{ "alias": "ac", "canonical": "acceptance_criteria" },
{ "alias": "alt", "canonical": "alternatives" },
{ "alias": "desc", "canonical": "description" },
{ "alias": "pro", "canonical": "pros" },
{ "alias": "con", "canonical": "cons" },
{ "alias": "reason", "canonical": "rejection_reason" }
],
"legacy_prefixes": [
{
"prefix": "content",
"allowed_fields": [
"context",
"decision",
"consequences",
"description",
"alternatives",
"acceptance_criteria",
"journal",
"notes"
]
},
{
"prefix": "govctl",
"allowed_fields": [
"id",
"status",
"title",
"date",
"refs",
"tags",
"superseded_by",
"started",
"completed",
"created",
"phase",
"version",
"owners"
]
}
],
"simple_rules": [
{
"artifact": "clause",
"name": "text",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "clause",
"name": "title",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "clause",
"name": "status",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "clause",
"name": "kind",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "clause",
"name": "superseded_by",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "clause",
"name": "since",
"kind": "scalar",
"verbs": ["get"]
},
{
"artifact": "clause",
"name": "anchors",
"kind": "list",
"verbs": ["add", "remove"]
},
{
"artifact": "clause",
"name": "tags",
"kind": "list",
"verbs": ["add", "remove", "get"]
},
{
"artifact": "rfc",
"name": "status",
"kind": "scalar",
"verbs": ["get"]
},
{
"artifact": "rfc",
"name": "phase",
"kind": "scalar",
"verbs": ["get"]
},
{
"artifact": "rfc",
"name": "title",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "rfc",
"name": "version",
"kind": "scalar",
"verbs": ["get"]
},
{
"artifact": "rfc",
"name": "owners",
"kind": "list",
"verbs": ["get", "add", "remove"]
},
{
"artifact": "rfc",
"name": "refs",
"kind": "list",
"verbs": ["get", "add", "remove"]
},
{
"artifact": "rfc",
"name": "tags",
"kind": "list",
"verbs": ["add", "remove", "get"]
},
{
"artifact": "rfc",
"name": "supersedes",
"kind": "scalar",
"verbs": ["get"]
},
{
"artifact": "rfc",
"name": "created",
"kind": "scalar",
"verbs": ["get"]
},
{
"artifact": "rfc",
"name": "updated",
"kind": "scalar",
"verbs": ["get"]
},
{
"artifact": "adr",
"name": "status",
"kind": "scalar",
"verbs": ["get"]
},
{
"artifact": "adr",
"name": "title",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "adr",
"name": "date",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "adr",
"name": "superseded_by",
"kind": "scalar",
"verbs": ["get"]
},
{
"artifact": "adr",
"name": "refs",
"kind": "list",
"verbs": ["get", "add", "remove"]
},
{
"artifact": "adr",
"name": "tags",
"kind": "list",
"verbs": ["add", "remove", "get"]
},
{
"artifact": "adr",
"name": "context",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "adr",
"name": "decision",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "adr",
"name": "consequences",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "adr",
"name": "alternatives",
"kind": "list",
"verbs": ["get", "add", "remove", "tick"]
},
{
"artifact": "work",
"name": "status",
"kind": "scalar",
"verbs": ["get"]
},
{
"artifact": "work",
"name": "title",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "work",
"name": "started",
"kind": "scalar",
"verbs": ["get"]
},
{
"artifact": "work",
"name": "completed",
"kind": "scalar",
"verbs": ["get"]
},
{
"artifact": "work",
"name": "refs",
"kind": "list",
"verbs": ["get", "add", "remove"]
},
{
"artifact": "work",
"name": "tags",
"kind": "list",
"verbs": ["add", "remove", "get"]
},
{
"artifact": "work",
"name": "description",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "work",
"name": "acceptance_criteria",
"kind": "list",
"verbs": ["get", "add", "remove", "tick"]
},
{ "artifact": "work", "name": "journal", "kind": "list", "verbs": ["add"] },
{
"artifact": "work",
"name": "notes",
"kind": "list",
"verbs": ["get", "add", "remove"]
},
{
"artifact": "guard",
"name": "title",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "guard",
"name": "refs",
"kind": "list",
"verbs": ["get", "add", "remove"]
},
{
"artifact": "guard",
"name": "tags",
"kind": "list",
"verbs": ["add", "remove", "get"]
},
{
"artifact": "guard",
"name": "command",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "guard",
"name": "timeout_secs",
"kind": "scalar",
"verbs": ["get", "set"]
},
{
"artifact": "guard",
"name": "pattern",
"kind": "scalar",
"verbs": ["get", "set"]
}
],
"runtime_fields": [
{
"artifact": "rfc",
"name": "status",
"get": { "path": ["status"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "rfc",
"name": "phase",
"get": { "path": ["phase"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "rfc",
"name": "title",
"get": { "path": ["title"], "render": "scalar" },
"set": { "path": ["title"], "mode": { "type": "string" } },
"list_path": null
},
{
"artifact": "rfc",
"name": "version",
"get": { "path": ["version"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "rfc",
"name": "owners",
"get": { "path": ["owners"], "render": "csv_strings" },
"set": null,
"list_path": ["owners"]
},
{
"artifact": "rfc",
"name": "refs",
"get": { "path": ["refs"], "render": "csv_strings" },
"set": null,
"list_path": ["refs"]
},
{
"artifact": "rfc",
"name": "tags",
"get": { "path": ["tags"], "render": "csv_strings" },
"set": null,
"list_path": ["tags"]
},
{
"artifact": "rfc",
"name": "supersedes",
"get": { "path": ["supersedes"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "rfc",
"name": "created",
"get": { "path": ["created"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "rfc",
"name": "updated",
"get": { "path": ["updated"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "clause",
"name": "text",
"get": { "path": ["text"], "render": "scalar" },
"set": { "path": ["text"], "mode": { "type": "string" } },
"list_path": null
},
{
"artifact": "clause",
"name": "title",
"get": { "path": ["title"], "render": "scalar" },
"set": { "path": ["title"], "mode": { "type": "string" } },
"list_path": null
},
{
"artifact": "clause",
"name": "status",
"get": { "path": ["status"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "clause",
"name": "kind",
"get": { "path": ["kind"], "render": "scalar" },
"set": {
"path": ["kind"],
"mode": {
"type": "enum",
"allowed": ["normative", "informative"],
"invalid_msg": "Invalid kind value",
"code": "E0201ClauseSchemaInvalid"
}
},
"list_path": null
},
{
"artifact": "clause",
"name": "superseded_by",
"get": { "path": ["superseded_by"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "clause",
"name": "since",
"get": { "path": ["since"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "clause",
"name": "anchors",
"get": null,
"set": null,
"list_path": ["anchors"]
},
{
"artifact": "clause",
"name": "tags",
"get": { "path": ["tags"], "render": "csv_strings" },
"set": null,
"list_path": ["tags"]
},
{
"artifact": "adr",
"name": "status",
"get": { "path": ["govctl", "status"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "adr",
"name": "title",
"get": { "path": ["govctl", "title"], "render": "scalar" },
"set": { "path": ["govctl", "title"], "mode": { "type": "string" } },
"list_path": null
},
{
"artifact": "adr",
"name": "date",
"get": { "path": ["govctl", "date"], "render": "scalar" },
"set": { "path": ["govctl", "date"], "mode": { "type": "string" } },
"list_path": null
},
{
"artifact": "adr",
"name": "superseded_by",
"get": { "path": ["govctl", "superseded_by"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "adr",
"name": "refs",
"get": { "path": ["govctl", "refs"], "render": "csv_strings" },
"set": null,
"list_path": ["govctl", "refs"]
},
{
"artifact": "adr",
"name": "tags",
"get": { "path": ["govctl", "tags"], "render": "csv_strings" },
"set": null,
"list_path": ["govctl", "tags"]
},
{
"artifact": "adr",
"name": "context",
"get": { "path": ["content", "context"], "render": "scalar" },
"set": { "path": ["content", "context"], "mode": { "type": "string" } },
"list_path": null
},
{
"artifact": "adr",
"name": "decision",
"get": { "path": ["content", "decision"], "render": "scalar" },
"set": { "path": ["content", "decision"], "mode": { "type": "string" } },
"list_path": null
},
{
"artifact": "adr",
"name": "consequences",
"get": { "path": ["content", "consequences"], "render": "scalar" },
"set": {
"path": ["content", "consequences"],
"mode": { "type": "string" }
},
"list_path": null
},
{
"artifact": "adr",
"name": "alternatives",
"get": {
"path": ["content", "alternatives"],
"render": "status_lines",
"status_key": "status",
"text_key": "text"
},
"set": null,
"list_path": null
},
{
"artifact": "work",
"name": "status",
"get": { "path": ["govctl", "status"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "work",
"name": "title",
"get": { "path": ["govctl", "title"], "render": "scalar" },
"set": { "path": ["govctl", "title"], "mode": { "type": "string" } },
"list_path": null
},
{
"artifact": "work",
"name": "started",
"get": { "path": ["govctl", "started"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "work",
"name": "completed",
"get": { "path": ["govctl", "completed"], "render": "scalar" },
"set": null,
"list_path": null
},
{
"artifact": "work",
"name": "refs",
"get": { "path": ["govctl", "refs"], "render": "csv_strings" },
"set": null,
"list_path": ["govctl", "refs"]
},
{
"artifact": "work",
"name": "tags",
"get": { "path": ["govctl", "tags"], "render": "csv_strings" },
"set": null,
"list_path": ["govctl", "tags"]
},
{
"artifact": "work",
"name": "description",
"get": { "path": ["content", "description"], "render": "scalar" },
"set": {
"path": ["content", "description"],
"mode": { "type": "string" }
},
"list_path": null
},
{
"artifact": "work",
"name": "acceptance_criteria",
"get": {
"path": ["content", "acceptance_criteria"],
"render": "status_lines",
"status_key": "status",
"text_key": "text"
},
"set": null,
"list_path": null
},
{
"artifact": "work",
"name": "notes",
"get": { "path": ["content", "notes"], "render": "line_strings" },
"set": null,
"list_path": ["content", "notes"]
},
{
"artifact": "guard",
"name": "title",
"get": { "path": ["govctl", "title"], "render": "scalar" },
"set": { "path": ["govctl", "title"], "mode": { "type": "string" } },
"list_path": null
},
{
"artifact": "guard",
"name": "refs",
"get": { "path": ["govctl", "refs"], "render": "csv_strings" },
"set": null,
"list_path": ["govctl", "refs"]
},
{
"artifact": "guard",
"name": "tags",
"get": { "path": ["govctl", "tags"], "render": "csv_strings" },
"set": null,
"list_path": ["govctl", "tags"]
},
{
"artifact": "guard",
"name": "command",
"get": { "path": ["check", "command"], "render": "scalar" },
"set": { "path": ["check", "command"], "mode": { "type": "string" } },
"list_path": null
},
{
"artifact": "guard",
"name": "timeout_secs",
"get": { "path": ["check", "timeout_secs"], "render": "scalar" },
"set": {
"path": ["check", "timeout_secs"],
"mode": { "type": "integer" }
},
"list_path": null
},
{
"artifact": "guard",
"name": "pattern",
"get": { "path": ["check", "pattern"], "render": "scalar" },
"set": { "path": ["check", "pattern"], "mode": { "type": "string" } },
"list_path": null
}
],
"nested_rules": [
{
"artifact": "adr",
"root": "alternatives",
"content_path": ["content", "alternatives"],
"node": {
"kind": "list",
"verbs": ["get", "add", "remove", "tick"],
"text_key": "text",
"item": {
"kind": "object",
"verbs": ["get"],
"fields": [
{
"name": "text",
"node": {
"kind": "scalar",
"verbs": ["get", "set"],
"set_mode": { "type": "string" }
}
},
{
"name": "status",
"node": {
"kind": "scalar",
"verbs": ["get"],
"set_mode": {
"type": "enum",
"allowed": ["considered", "accepted", "rejected"],
"invalid_msg": "invalid status",
"code": "E0820InvalidFieldValue"
}
}
},
{
"name": "rejection_reason",
"node": {
"kind": "scalar",
"verbs": ["get", "set"],
"set_mode": { "type": "string" }
}
},
{
"name": "pros",
"node": {
"kind": "list",
"verbs": ["get", "set", "add", "remove"],
"text_key": null,
"item": {
"kind": "scalar",
"verbs": ["get", "set"],
"set_mode": { "type": "string" }
}
}
},
{
"name": "cons",
"node": {
"kind": "list",
"verbs": ["get", "set", "add", "remove"],
"text_key": null,
"item": {
"kind": "scalar",
"verbs": ["get", "set"],
"set_mode": { "type": "string" }
}
}
}
]
}
}
},
{
"artifact": "work",
"root": "journal",
"content_path": ["content", "journal"],
"node": {
"kind": "list",
"verbs": ["get", "add", "remove"],
"text_key": "content",
"item": {
"kind": "object",
"verbs": ["get"],
"fields": [
{
"name": "content",
"node": {
"kind": "scalar",
"verbs": ["get", "set"],
"set_mode": { "type": "string" }
}
},
{
"name": "date",
"node": {
"kind": "scalar",
"verbs": ["get", "set"],
"set_mode": { "type": "string" }
}
},
{
"name": "scope",
"node": {
"kind": "scalar",
"verbs": ["get", "set"],
"set_mode": { "type": "string" }
}
}
]
}
}
},
{
"artifact": "work",
"root": "acceptance_criteria",
"content_path": ["content", "acceptance_criteria"],
"node": {
"kind": "list",
"verbs": ["get", "add", "remove", "tick"],
"text_key": "text",
"item": {
"kind": "object",
"verbs": ["get"],
"fields": [
{
"name": "text",
"node": {
"kind": "scalar",
"verbs": ["get", "set"],
"set_mode": { "type": "string" }
}
},
{
"name": "status",
"node": {
"kind": "scalar",
"verbs": ["get"],
"set_mode": null
}
},
{
"name": "category",
"node": {
"kind": "scalar",
"verbs": ["get", "set"],
"set_mode": { "type": "string" }
}
}
]
}
}
},
{
"artifact": "work",
"root": "notes",
"content_path": ["content", "notes"],
"node": {
"kind": "list",
"verbs": ["get", "add", "remove"],
"text_key": null,
"item": {
"kind": "scalar",
"verbs": ["get", "set"],
"set_mode": { "type": "string" }
}
}
},
{
"artifact": "guard",
"root": "check",
"content_path": ["check"],
"node": {
"kind": "object",
"verbs": ["get"],
"fields": [
{
"name": "command",
"node": {
"kind": "scalar",
"verbs": ["get", "set"],
"set_mode": { "type": "string" }
}
},
{
"name": "timeout_secs",
"node": {
"kind": "scalar",
"verbs": ["get", "set"],
"set_mode": { "type": "integer" }
}
},
{
"name": "pattern",
"node": {
"kind": "scalar",
"verbs": ["get", "set"],
"set_mode": { "type": "string" }
}
}
]
}
}
],
"validation_rules": [
{ "artifact": "clause", "field": "since", "rule": "semver" },
{
"artifact": "clause",
"field": "superseded_by",
"rule": "clause_superseded_by"
},
{ "artifact": "clause", "field": "status", "rule": "enum_value" },
{ "artifact": "clause", "field": "kind", "rule": "enum_value" },
{ "artifact": "rfc", "field": "version", "rule": "semver" },
{ "artifact": "rfc", "field": "status", "rule": "enum_value" },
{ "artifact": "rfc", "field": "phase", "rule": "enum_value" },
{ "artifact": "adr", "field": "status", "rule": "enum_value" },
{ "artifact": "adr", "field": "superseded_by", "rule": "artifact_ref" },
{ "artifact": "work", "field": "status", "rule": "enum_value" }
]
}