omadeus-x-2

内容来源:clawhub · 原始地址 · 查看安装指南

原始内容


name: maestro description: Interact with the Maestro task management system. Use this skill to create tasks, list recent tasks, and send messages to Maestro rooms. metadata: openclaw: primaryEnv: MAESTRO_API_KEY

Maestro Skill

Use this skill to interact with the Maestro API.

The skill supports the following operations:

  1. Create a task
  2. List tasks
  3. Send a message to a room

Configuration

The skill requires:

1. API Key

The Maestro API key is provided by OpenClaw as:

MAESTRO_API_KEY

Use it in every API request:

ApiToken: <MAESTRO_API_KEY>

Do not use:

Authorization: Bearer <token>

Never hardcode, expose, print, or return the API key.


2. Environment

Read the current environment from:

OMADEUS_ENV

The value of OMADEUS_ENV must be used to select the API base URL from the configured URL map.

Never hardcode the API base URL.

If OMADEUS_ENV is missing, do not guess the environment.

If no URL is configured for the current environment, do not make the API request.


3. API URLs

The configured URL map contains an entry for each environment.

Example:

{
  "urls": {
    "dev": "https://dev-maestro.rouztech.com",
    "staging": "https://staging-maestro.rouztech.com",
    "production": "https://maestro.rouztech.com"
  }
}

Resolve the base URL as:

urls[OMADEUS_ENV]

For example:

OMADEUS_ENV=dev

resolves to:

urls.dev

The final API URL is:

<resolved-base-url><api-path>

4. Member Reference ID

The memberReferenceId must be read from the Skill configuration.

Never hardcode this value.

When creating a task, include the configured value in the request body.

If the value is missing, do not invent one and do not create the task.


Authentication

Every request must include:

Accept: application/json, text/plain, */*
ApiToken: <MAESTRO_API_KEY>

Never use a Bearer token.

Never expose the API key to the user.


Operation 1: Create a Task

Use this operation when the user asks to:

  • create a task
  • add a task
  • create a todo
  • track work
  • create a bug task
  • create a feature task
  • create an enhancement task
  • create a refactoring task
  • create a cleanup task
  • create a performance task

API

CREATE /dolphin/apiv1/nuggets

The final URL is:

<resolved-base-url>/dolphin/apiv1/nuggets

Headers

Accept: application/json, text/plain, */*
ApiToken: <MAESTRO_API_KEY>
Content-Type: application/json

Request Body

{
  "title": "<generated task title>",
  "description": "<generated task description>",
  "kind": "task",
  "priority": "<priority>",
  "memberReferenceId": "<configured memberReferenceId>"
}

Field Rules

title

Generate a concise and meaningful title based on the user's request.

The title should:

  • clearly describe the work
  • be concise
  • use action-oriented language when appropriate
  • avoid unnecessary details

description

Generate a clear description of the requested work.

The description should explain:

  • what needs to be done
  • relevant context provided by the user
  • the expected result

Do not invent technical details that the user did not provide.

kind

The value MUST always be:

task

Never ask the user to choose a kind.

Never infer a different value.

Never send another value.

priority

Use the priority specified by the user.

Supported values:

low
medium
high
urgent

If the user does not specify a priority, use:

low

memberReferenceId

Read the value from the Skill configuration.

Never hardcode it.

If it is missing, do not create the task.

stage

Do not send a stage field.


Create Task Behavior

When the user provides enough information:

  1. Understand the requested work.
  2. Generate a concise title.
  3. Generate a clear description.
  4. Determine the priority.
  5. Set kind to task.
  6. Read memberReferenceId from configuration.
  7. Resolve the API base URL using OMADEUS_ENV.
  8. Send the request.
  9. Return the result to the user.

Do not ask unnecessary questions.

If the request is too vague to create a useful task, ask only for the missing information.


Operation 2: List Tasks

Use this operation when the user asks to:

  • show tasks
  • list tasks
  • show my tasks
  • show recent tasks
  • show open tasks
  • find a task
  • check the task list

API

LIST /dolphin/apiv1/global/taskviews

The final URL is:

<resolved-base-url>/dolphin/apiv1/global/taskviews

Default Query Parameters

sort=-recentMessageAt
take=25
zone=tasklists-tasks

Default Request

LIST /dolphin/apiv1/global/taskviews?sort=-recentMessageAt&take=25&zone=tasklists-tasks

Headers

Accept: application/json, text/plain, */*
ApiToken: <MAESTRO_API_KEY>

Query Rules

take

Default:

25

If the user asks for a specific number of tasks, use that number.

sort

Always use:

-recentMessageAt

unless the API behavior is explicitly changed.

zone

Always use:

tasklists-tasks

unless the user explicitly asks for another zone.


List Task Behavior

  1. Resolve the API base URL using OMADEUS_ENV.
  2. Send the request.
  3. Parse the response.
  4. Present the tasks in a readable format.

When available, include:

  • title
  • description
  • status or stage
  • priority
  • last activity
  • task identifier

Do not expose the raw API response unless the user asks for it.

If no tasks are returned, tell the user that no tasks were found.


Operation 3: Send a Message

Use this operation when the user asks to:

  • send a message
  • send a message to a room
  • post a message
  • notify a room
  • send an update
  • communicate with a Maestro room

API

SEND /jaguar/apiv1/rooms/{room_id}/messages

The final URL is:

<resolved-base-url>/jaguar/apiv1/rooms/{room_id}/messages

Replace {room_id} with the target room ID.

Headers

Accept: application/json, text/plain, */*
ApiToken: <MAESTRO_API_KEY>
Content-Type: application/json;charset=UTF-8

Do not send:

Activity: true

Request Body

The body must contain only:

{
  "body": "<message>"
}

Do not add:

  • temporaryId
  • links
  • any other fields

Room ID Rules

Never invent a room ID.

If the user provides a room ID, use it.

If the current conversation context provides a room ID, use it.

If no room ID is available, ask the user to provide one.


Environment Resolution

Before every API request:

  1. Read OMADEUS_ENV.
  2. Read the configured URL map.
  3. Find the URL matching OMADEUS_ENV.
  4. Use that URL as the API base URL.
  5. Append the operation-specific API path.

Example:

OMADEUS_ENV=dev

Configuration:

{
  "urls": {
    "dev": "https://dev-maestro.rouztech.com"
  }
}

Result:

https://dev-maestro.rouztech.com

Then:

https://dev-maestro.rouztech.com/dolphin/apiv1/nuggets

Error Handling

Missing API Key

If the API key is not available, do not make the request.

Report that Maestro authentication is not configured.

Never ask the user to provide the API key in chat if it should be configured in OpenClaw.


Authentication Error

If the API returns an authentication or authorization error:

Maestro authentication failed. The configured API key may be missing, expired, or invalid.

Never expose the API key.


Missing Environment

If OMADEUS_ENV is missing:

The OMADEUS_ENV environment is not configured.

Do not guess the environment.


Missing URL

If no URL exists for the current environment:

No Maestro API URL is configured for the current OMADEUS_ENV.

Do not make the request.


Missing Member Reference ID

If memberReferenceId is missing while creating a task:

The Maestro member reference ID is not configured.

Do not create the task.


Validation Error

If the API returns a validation error:

  1. Read the error response.
  2. Identify the invalid or missing field.
  3. Explain the problem clearly.
  4. Ask only for information that is actually missing.

Network Error

If the Maestro API cannot be reached:

I could not connect to the Maestro API. Please try again later.

Security Rules

Never:

  • hardcode API keys
  • hardcode the API base URL
  • hardcode memberReferenceId
  • print API keys
  • expose API keys
  • log the ApiToken header
  • return credentials to the user
  • include credentials in task descriptions
  • include credentials in messages

Response Guidelines

After successfully creating a task:

Task created successfully.

Title: <task title>

Include the task identifier if the API returns one.

After successfully sending a message:

Message sent successfully.

After listing tasks:

  • use a concise readable list
  • include useful task information
  • do not dump the raw API response

Examples

Create a Task

User:

Create a task to fix the ingress deletion issue.

Request body:

{
  "title": "Fix ingress deletion issue",
  "description": "Investigate and fix the issue preventing ingress resources from being deleted correctly.",
  "kind": "task",
  "priority": "low",
  "memberReferenceId": 83
}

The memberReferenceId must come from configuration.


Create a High Priority Task

User:

Create a high priority task to fix the OpenClaw plugin authentication issue.

Request body:

{
  "title": "Fix OpenClaw plugin authentication issue",
  "description": "Investigate and resolve the authentication issue in the OpenClaw plugin.",
  "kind": "task",
  "priority": "high",
  "memberReferenceId": 83
}

List Recent Tasks

User:

Show me my recent tasks.

Request:

LIST /dolphin/apiv1/global/taskviews?sort=-recentMessageAt&take=25&zone=tasklists-tasks

List 10 Tasks

User:

Show my 10 most recent tasks.

Request:

LIST /dolphin/apiv1/global/taskviews?sort=-recentMessageAt&take=10&zone=tasklists-tasks

Send a Message

User:

Send "Deployment completed successfully" to room 46.

Request:

SEND /jaguar/apiv1/rooms/46/messages

Body:

{
  "body": "Deployment completed successfully"
}