dxos-skills

Create and integrate AI skill definitions within DXOS plugins using operation handlers.

518|49|Updated Apr 7, 2021
One-click install
npx skills add https://github.com/dxos/dxos --skill dxos-skills
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dxos-skills
Source: https://github.com/dxos/dxos/tree/main/.agents/skills/skills
Command: npx skills add https://github.com/dxos/dxos --skill dxos-skills

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Developers building on DXOS need a consistent way to expose domain capabilities (like markdown or kanban editing) as AI-callable tools, but wiring operation definitions, runtime handlers, and plugin capabilities together is error-prone without a clear pattern.

Core Features & Use Cases

  • Skill Definition Pattern: Shows how to structure a skill with a unique key, an OperationHandlerSet for runtime execution, and a make factory producing Skill instances with tool schemas and instructions.
  • Plugin Integration: Explains how to register skills via AppCapabilities.SkillDefinition capability modules and AppPlugin.addSkillDefinitionModule so Composer can discover them.
  • Testing Support: Demonstrates using AssistantTestLayer from @dxos/assistant/testing to test operations and AI flows, invoking operations with Operation.invoke instead of the deprecated FunctionInvocationService.
  • Use Case: You are adding a new markdown skill to a DXOS plugin and need to define Create/Open/Update operations, register the skill capability, and write tests that invoke those operations against ECHO types.

Quick Start

Ask the assistant to scaffold a new DXOS skill for your plugin with operation definitions, handlers, capability registration, and an AssistantTestLayer test.

Frequently Asked Questions about dxos-skills

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a skill in a DXOS plugin?

Define a skill with a globally unique key, an OperationHandlerSet for runtime handlers, and a make factory returning Skill.make with tool definitions and instructions. Place it in the plugin's src/skills directory alongside an operations folder containing definitions and handlers.

How do I register a skill so Composer can use it?

Create a capability module that contributes your skill to AppCapabilities.SkillDefinition, then register it in the plugin with AppPlugin.addSkillDefinitionModule. The plugin must also be listed in the Composer app's plugin-defs.tsx for the skill to be available.

How do I test DXOS skill operations with AssistantTestLayer?

Pass the skill's operations as operationHandlers and the required ECHO types to AssistantTestLayer from @dxos/assistant/testing. Then invoke operations directly with Operation.invoke from @dxos/operation inside an Effect generator.

What is the difference between operation definitions and handlers in DXOS skills?

Definitions provide the schemas exposed to the AI via Skill.toolDefinitions, while handlers form the OperationHandlerSet executed at runtime. Both are required: definitions go into the make factory, handlers go into the skill's operations field.

Can I use FunctionInvocationService to invoke DXOS operations?

No, FunctionInvocationService from @dxos/functions is deprecated. Use Operation.invoke from @dxos/operation instead, both in tests and inside other operation handlers.