Files
skill-template/assets/schemas/skill-grid-presentation.schema.json
chendelian a70da6a076
All checks were successful
技能自动化发布 / release (push) Successful in 9s
feat: precipitate grid presentation (row/column/region) into skill contract
2026-09-20 21:08:23 +08:00

94 lines
3.4 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://openclaw.local/skill-template/skill-grid-presentation.schema.json",
"title": "SkillGridPresentationDocument",
"description": "匠厂数据管理「Grid Presentation」文档(schemaVersion 1)。技能按业务规则为 rows×columns 声明语义 tone(整行、整列、区域或单格);禁止 all×all。非任意 CSS。与 skill-cell-presentation.schema.json(v1 cells[])并存,同一 cellPresentation.enabled。详见 references/CELL_PRESENTATION.md。",
"type": "object",
"required": ["schemaVersion", "skill", "table", "rowKey", "rules"],
"additionalProperties": false,
"properties": {
"schemaVersion": {
"type": "integer",
"const": 1
},
"skill": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"minLength": 1,
"description": "与 SKILL.md metadata.openclaw.slug / actions.json skill 一致"
},
"table": {
"type": "string",
"minLength": 1,
"pattern": "^[a-z][a-z0-9_]*$",
"description": "业务表物理名(snake_case)"
},
"rowKey": {
"type": "string",
"minLength": 1,
"pattern": "^[a-z][a-z0-9_]*$",
"description": "用于匹配行的业务表列名(如 id);rules[].rows 的 id 取自该列"
},
"generatedAt": {
"type": "string",
"minLength": 1,
"description": "可选。ISO-8601 或技能约定的生成时间,便于排障"
},
"rules": {
"type": "array",
"description": "当前应对该表生效的 grid 规则;空数组 = 该表无 grid 呈现(清除旧行/列/区域样式)。同 ruleKey 由 UNIQUE 约束覆盖。",
"items": { "$ref": "#/$defs/ruleItem" }
}
},
"$defs": {
"tone": {
"type": "string",
"enum": ["danger", "warning", "info", "success", "muted"],
"description": "语义色板(闭集)。宿主映射到底色/字色/左边线等;禁止技能下发原始 CSS 或任意 hex。"
},
"axisTarget": {
"description": "\"all\" = 该轴全部;非空字符串数组 = 有限集合(行 id 或列名)",
"oneOf": [
{ "type": "string", "const": "all" },
{
"type": "array",
"minItems": 1,
"items": { "type": "string", "minLength": 1 }
}
]
},
"ruleItem": {
"type": "object",
"required": ["ruleKey", "rows", "columns", "tone"],
"additionalProperties": false,
"not": {
"properties": {
"rows": { "const": "all" },
"columns": { "const": "all" }
},
"required": ["rows", "columns"]
},
"properties": {
"ruleKey": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "本表内唯一。建议稳定业务键(重算时覆盖同一条)"
},
"rows": { "$ref": "#/$defs/axisTarget" },
"columns": { "$ref": "#/$defs/axisTarget" },
"tone": { "$ref": "#/$defs/tone" },
"message": {
"type": "string",
"maxLength": 500,
"description": "可选。悬停/无障碍说明(短文案);不要塞长报告"
},
"alert": {
"type": "boolean",
"description": "可选,默认 false。true = 按本条规则计入进页/同步提醒(不按命中格子数)"
}
}
}
}
}