deer-flow/contracts/skill_review/review_facts.v1.schema.json
Ryker_Feng 41658c5ff4
feat(skills): add skill review quality gate (#4037)
* feat(skills): add skill review quality gate

* fix(skills): skip review eval fixtures in CI

* fix(skills): ignore review eval fixtures in bundled scans

* fix(skill-review): harden review gate boundaries

* fix(skills): address skill review gate feedback
2026-07-11 15:58:07 +08:00

67 lines
2.6 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://deerflow.dev/contracts/skill_review/review_facts.v1.schema.json",
"title": "DeerFlow Skill Review Facts v1",
"type": "object",
"required": ["schema_version", "subject", "profile", "completeness", "summary", "findings", "resources", "evals", "analyzer_errors"],
"properties": {
"schema_version": { "const": "deerflow.skill-review.facts.v1" },
"subject": {
"type": "object",
"required": ["display_ref", "source", "package_digest"],
"properties": {
"display_ref": { "type": ["string", "null"] },
"source": { "type": ["string", "null"] },
"category": { "type": ["string", "null"] },
"declared_name": { "type": ["string", "null"] },
"package_digest": { "type": "string" }
}
},
"profile": { "enum": ["deerflow", "agentskills"] },
"completeness": {
"type": "object",
"required": ["package_enumerated", "text_content_complete", "truncated", "not_assessed"],
"properties": {
"package_enumerated": { "type": "boolean" },
"text_content_complete": { "type": "boolean" },
"truncated": { "type": "boolean" },
"not_assessed": { "type": "array", "items": { "type": "string" } }
}
},
"summary": {
"type": "object",
"required": ["blockers", "errors", "warnings", "infos"],
"properties": {
"blockers": { "type": "integer", "minimum": 0 },
"errors": { "type": "integer", "minimum": 0 },
"warnings": { "type": "integer", "minimum": 0 },
"infos": { "type": "integer", "minimum": 0 }
}
},
"findings": {
"type": "array",
"items": {
"type": "object",
"required": ["rule_id", "source", "profile", "severity", "path", "line", "message", "remediation", "evidence"],
"properties": {
"rule_id": { "type": "string" },
"source": { "type": "string" },
"profile": { "type": "string" },
"severity": { "enum": ["blocker", "error", "warning", "info"] },
"path": { "type": ["string", "null"] },
"line": { "type": ["integer", "null"] },
"message": { "type": "string" },
"remediation": { "type": "string" },
"evidence": {}
},
"additionalProperties": true
}
},
"resources": { "type": "object" },
"evals": { "type": "object" },
"reader_errors": { "type": "array", "items": { "type": "object" } },
"analyzer_errors": { "type": "array", "items": { "type": "object" } }
},
"additionalProperties": true
}