Readonly~@dxos/echo/Optional ReadonlyagentWhether an agent is allowed to auto-enable this skill in a conversation.
Optional ReadonlydescriptionDescription of the skill's purpose and functionality.
ReadonlyidReadonlyinstructionsInstructions that guide the AI assistant's behavior and responses. These are system prompts or guidelines that the AI should follow.
Optional Readonlyinputs?: readonly {NOTE: We use an array rather than map so that updating variable names in the template doesn't disconnect existing inputs.
Readonlysource: Ref<Text & OfKind<Object> & Unknown>ReadonlynameHuman-readable name of the skill.
ReadonlytoolsArray of tools that the AI assistant can use when this skill is active.
Static Readonly~@dxos/echo/Entity-kind brand of the type-entity value itself — always EntityKind.Type.
The kind of instance the type describes lives on [SchemaKindId]
(Object / Relation / Type). Lets Obj.isObject / Relation.isRelation
reject type entities by a single [KindId] check.
Static Readonly~@dxos/echo/Schema-kind brand (object).
Static Optional Readonly~@dxos/echo/Static Readonly~@dxos/echo/Source Effect Schema — used internally by Type.getSchema(self).
Static ReadonlyfieldsThe fields defined in the original struct schema. Allows accessing field definitions for introspection.
Static ReadonlyidObject id. Like all ECHO entities, type entities always carry an id —
stamped at construction for in-memory (static) declarations and assigned by
the database once persisted. The id does NOT determine the entity's URI:
static types resolve to their typename DXN, persisted types to echo:///<id>
(see getTypeURIFromSpecifier).
Static ReadonlyjsonStatic Optional Readonlyname
Skill schema defines the structure for AI assistant skills. Skills contain instructions, tools, and artifacts that guide the AI's behavior. Skills may use tools to create and read artifacts, which are managed by the assistant.
Follows the Agent Skills spec (https://agentskills.io/specification) as closely as it can, so a skill means the same here as in any other harness. Add a field the spec lacks only with a strong reason, and say what it is. Credentials and MCP servers do not belong here: a server is a connection, which the space owns and each conversation can turn off. Nor do hooks: a plugin contributes those beside its skills (
@dxos/compute/Hook).The registry
keyandversionare stored in the object meta — access them viaObj.getMeta(skill).keyandObj.getMeta(skill).version.