Record containing an agent skill published over ATProto. Follows the Agent Skills open standard (agentskills.io).
tid
Timestamp-based ID
Properties
compatibility
string
Optional
Environment requirements (e.g. 'Requires Python 3.8+').
maxLength: 2000 bytesmaxGraphemes: 500 graphemescreatedAt
string
datetime
Required
Client-declared creation timestamp.
description
string
Required
What this skill does and when to use it. Agents use this for automatic activation matching.
maxLength: 10000 bytesmaxGraphemes: 1024 graphemesfacets
array
of
ref
lex:app.bsky.richtext.facet
Optional
Rich text annotations in the description.
labels
union
Optional
Self-label values. Content warnings.
langs
array
of
string
language
Optional
Human languages of the skill content.
maxLength: 3 itemslicense
string
Optional
SPDX license identifier (e.g. MIT, CC-BY-4.0).
maxLength: 256 bytesmaxGraphemes: 64 graphemesname
string
Required
Skill name. Becomes the /slash-command. Lowercase letters, numbers, hyphens only. No leading hyphen, no consecutive hyphens.
maxLength: 256 bytesmaxGraphemes: 64 graphemesrecap
ref
lex:org.v-it.skill#recapRef
Optional
Reference to the skill this was derived/forked from.
resources
array
of
ref
lex:org.v-it.skill#resource
Optional
Supporting files bundled with the skill (templates, scripts, reference docs). Stored as blobs.
maxLength: 16 itemstags
array
of
string
Optional
Discovery tags for categorization and search.
maxLength: 8 itemstext
string
Required
The complete SKILL.md file content — frontmatter and body, verbatim. This is the source of truth. On learn, this is written directly as SKILL.md with no reconstruction. The other fields (name, description, version, license, compatibility) are copies extracted for discovery and indexing.
maxLength: 50000 bytesmaxGraphemes: 15000 graphemesversion
string
Optional
Semantic version string (e.g. 1.0.0). Author-declared.
maxLength: 64 bytesmaxGraphemes: 32 graphemesView raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"description",
"text",
"createdAt"
],
"properties": {
"name": {
"type": "string",
"maxLength": 256,
"description": "Skill name. Becomes the /slash-command. Lowercase letters, numbers, hyphens only. No leading hyphen, no consecutive hyphens.",
"maxGraphemes": 64
},
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 640,
"maxGraphemes": 64
},
"maxLength": 8,
"description": "Discovery tags for categorization and search."
},
"text": {
"type": "string",
"maxLength": 50000,
"description": "The complete SKILL.md file content — frontmatter and body, verbatim. This is the source of truth. On learn, this is written directly as SKILL.md with no reconstruction. The other fields (name, description, version, license, compatibility) are copies extracted for discovery and indexing.",
"maxGraphemes": 15000
},
"langs": {
"type": "array",
"items": {
"type": "string",
"format": "language"
},
"maxLength": 3,
"description": "Human languages of the skill content."
},
"recap": {
"ref": "lex:org.v-it.skill#recapRef",
"type": "ref",
"description": "Reference to the skill this was derived/forked from."
},
"facets": {
"type": "array",
"items": {
"ref": "lex:app.bsky.richtext.facet",
"type": "ref"
},
"description": "Rich text annotations in the description."
},
"labels": {
"refs": [
"lex:com.atproto.label.defs#selfLabels"
],
"type": "union",
"description": "Self-label values. Content warnings."
},
"license": {
"type": "string",
"maxLength": 256,
"description": "SPDX license identifier (e.g. MIT, CC-BY-4.0).",
"maxGraphemes": 64
},
"version": {
"type": "string",
"maxLength": 64,
"description": "Semantic version string (e.g. 1.0.0). Author-declared.",
"maxGraphemes": 32
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared creation timestamp."
},
"resources": {
"type": "array",
"items": {
"ref": "lex:org.v-it.skill#resource",
"type": "ref"
},
"maxLength": 16,
"description": "Supporting files bundled with the skill (templates, scripts, reference docs). Stored as blobs."
},
"description": {
"type": "string",
"maxLength": 10000,
"description": "What this skill does and when to use it. Agents use this for automatic activation matching.",
"maxGraphemes": 1024
},
"compatibility": {
"type": "string",
"maxLength": 2000,
"description": "Environment requirements (e.g. 'Requires Python 3.8+').",
"maxGraphemes": 500
}
}
},
"description": "Record containing an agent skill published over ATProto. Follows the Agent Skills open standard (agentskills.io)."
}