mirror of
https://github.com/mukul975/Anthropic-Cybersecurity-Skills.git
synced 2026-08-03 09:20:18 +03:00
The standard requires only name+description; additional top-level keys are permitted metadata. Fixes: - validator no longer counts extra top-level keys as violations (reports them as informational only). - angle-bracket check now ignores YAML block-scalar indicators (`>`, `>-`, `|`), which were false-positiving on multi-line descriptions; no skill has genuine angle-bracket content. - schema additionalProperties false -> true to match. Audit result: 817/817 compliant.
47 lines
2.3 KiB
JSON
47 lines
2.3 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://agentskills.io/schema/skill-frontmatter.json",
|
|
"title": "agentskills.io SKILL.md frontmatter",
|
|
"description": "JSON Schema for the YAML frontmatter of a SKILL.md file per the agentskills.io open standard (Anthropic, 2025-12-18). Only `name` and `description` are required; `license`, `compatibility`, `metadata`, and `allowed-tools` are recognized optional fields. Additional top-level keys are PERMITTED as extra metadata (this repo uses domain/subdomain/tags/version/author and framework-mapping keys), so `additionalProperties` is true. Constraints JSON Schema cannot express (name must equal the parent directory; no angle-bracket content in frontmatter) are enforced by tools/validate-agentskills.py.",
|
|
"type": "object",
|
|
"additionalProperties": true,
|
|
"required": ["name", "description"],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 64,
|
|
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
|
|
"description": "1-64 chars, lowercase alphanumeric and single hyphens only; no leading/trailing/consecutive hyphens; must match the parent directory name; must not be a reserved word."
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 1024,
|
|
"description": "1-1024 chars. Must state BOTH what the skill does and when to use it."
|
|
},
|
|
"license": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"description": "SPDX license identifier or license text."
|
|
},
|
|
"compatibility": {
|
|
"type": "string",
|
|
"maxLength": 500,
|
|
"description": "Free-text compatibility notes (<=500 chars)."
|
|
},
|
|
"metadata": {
|
|
"type": "object",
|
|
"description": "Arbitrary key/value map for non-standard fields. This is where domain, subdomain, tags, version, author, and framework mappings (mitre_attack, nist_csf, atlas_techniques, d3fend_techniques, nist_ai_rmf, mitre_f3) belong under strict compliance.",
|
|
"additionalProperties": true
|
|
},
|
|
"allowed-tools": {
|
|
"description": "EXPERIMENTAL. Tools the skill is permitted to use; string or array of strings.",
|
|
"oneOf": [
|
|
{ "type": "string" },
|
|
{ "type": "array", "items": { "type": "string" } }
|
|
]
|
|
}
|
|
}
|
|
}
|