原始内容
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:
- Create a task
- List tasks
- 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:
- Understand the requested work.
- Generate a concise title.
- Generate a clear description.
- Determine the priority.
- Set
kindtotask. - Read
memberReferenceIdfrom configuration. - Resolve the API base URL using
OMADEUS_ENV. - Send the request.
- 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
- Resolve the API base URL using
OMADEUS_ENV. - Send the request.
- Parse the response.
- 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:
temporaryIdlinks- 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:
- Read
OMADEUS_ENV. - Read the configured URL map.
- Find the URL matching
OMADEUS_ENV. - Use that URL as the API base URL.
- 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:
- Read the error response.
- Identify the invalid or missing field.
- Explain the problem clearly.
- 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
ApiTokenheader - 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"
}