Files
magnus919_agent-skills/schemas/bundle-manifest-v1.schema.json
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 65fcae6cda docs(flatten): update repo docs for the flat layout
Rewrite README.md Installation prose and references/skill-triggers.md to
drop the bundles/ depth and --full-depth guidance, relabel the architecture
diagram bundle node, and correct bundle-manifest-design.md to place manifests
at <skill>/manifest.yaml with the 8-umbrella count. Fix the example manifest
and schema descriptions, plus the production-excellence AGENTS.md depth note.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-14 16:48:49 -04:00

181 lines
4.1 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/magnus919/agent-skills/schemas/bundle-manifest-v1.schema.json",
"title": "agent-skills bundle manifest v1",
"description": "Machine-readable composition contract for a canonical bundle under a top-level bundle directory: purpose, audience, lifecycle stages, included skills, prerequisites, outputs, handoffs, conflicts, and eval-suite references. This is a metadata contract for discovery and composition — it is NOT a second skill format and does not alter the SKILL.md contract.",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"bundle_name",
"purpose",
"audience",
"stages",
"included_skills",
"prerequisites",
"outputs",
"handoffs",
"conflicts",
"eval_suite"
],
"properties": {
"schema_version": {
"type": "integer",
"const": 1
},
"bundle_name": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
},
"purpose": {
"type": "string",
"minLength": 1,
"pattern": "\\S"
},
"audience": {
"type": "string",
"minLength": 1,
"pattern": "\\S"
},
"stages": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/stage"
}
},
"included_skills": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/relative_path"
}
},
"prerequisites": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/prerequisite"
}
},
"outputs": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"pattern": "\\S"
}
},
"handoffs": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/handoff"
}
},
"conflicts": {
"type": "array",
"items": {
"$ref": "#/$defs/conflict"
}
},
"eval_suite": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/relative_path"
}
}
},
"$defs": {
"relative_path": {
"type": "string",
"minLength": 1,
"pattern": "^(?![\\s\\S]*[\\u0000-\\u001F\\u007F])(?=.*\\S)(?!/)(?!\\./)(?!.*//)(?!.*\\\\\\\\)(?!.*/$).+$"
},
"stage": {
"type": "object",
"additionalProperties": false,
"required": ["name", "skills"],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"pattern": "\\S"
},
"skills": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/relative_path"
}
}
}
},
"prerequisite": {
"type": "object",
"additionalProperties": false,
"required": ["artifact"],
"properties": {
"artifact": {
"type": "string",
"minLength": 1,
"pattern": "\\S"
},
"skill": {
"$ref": "#/$defs/relative_path"
}
}
},
"handoff": {
"type": "object",
"additionalProperties": false,
"required": ["to", "artifact"],
"properties": {
"to": {
"type": "string",
"minLength": 1,
"pattern": "\\S"
},
"artifact": {
"type": "string",
"minLength": 1,
"pattern": "\\S"
},
"note": {
"type": "string",
"minLength": 1,
"pattern": "\\S"
}
}
},
"conflict": {
"type": "object",
"additionalProperties": false,
"required": ["skill", "with", "guidance"],
"properties": {
"skill": {
"$ref": "#/$defs/relative_path"
},
"with": {
"type": "string",
"minLength": 1,
"pattern": "\\S"
},
"guidance": {
"type": "string",
"minLength": 1,
"pattern": "\\S"
}
}
}
}
}