Manage Tasks¶
Skill ID: manage-tasks
Server: RingEX Chat
Handles the full lifecycle of a Team Chat task — find, create, update, complete/reopen, and delete — resolving the chat and any assignees first, and verifying completion state afterward since that write returns nothing. The full skill source below is pulled directly from its SKILL.md file, so it always reflects the current version.
Manage Tasks¶
Goal¶
Give the user one skill for the full lifecycle of a RingCentral Team Chat task — find it, create it, update it, mark it complete or reopen it, or delete it — with every write built on a resolved chat and person, and every completion verified rather than assumed.
Trigger examples¶
- "Create a task in the launch channel to review the BRD, assign it to Priya."
- "What tasks are open in the product-updates chat?"
- "Mark the 'Fix auth bug' task done."
- "Reopen the deploy checklist task, I closed it too soon."
- "Push the due date on that task to next Friday."
- "Delete the old onboarding task in the sales channel."
Scope boundary¶
- RingCentral Team Chat tasks only, via
read_team_chat/manage_chat_item— not Jira, monday.com, or any other tracker (those have their own skills/tools). - This skill only manages the task item itself — notes and events use the same two tools but a different
resource, and are out of scope here. - Reuse a
chatId,taskId, or resolved person id already established earlier in the conversation. Re-resolving something already known wastes calls and risks landing on a different match the second time.
Workflow¶
-
Resolve the chat.
- A known
chatId→ use it directly. - A named channel/team →
read_team_chat(resource: "chat",action: "list"), matched by name, case-insensitively, preferring an exact match. If more than one plausibly matches, disambiguate rather than guess.
- A known
-
Resolve any people involved.
- "Me"/"myself" → the authenticated user's own Team Chat person id.
- A named assignee →
find_person. ApersonIdand anextensionIdare distinct fields — never substitute one for the other.
-
Find an existing task, if the request is about one.
read_team_chat(resource: "task",action: "list",chatId) to list a chat's tasks, oraction: "get"with a knowntaskIdfor one task's detail.- Match a task named by title case-insensitively, preferring an exact match. If several plausible tasks remain, ask which one before writing — never guess on an ambiguous title, especially before a delete.
-
Create, update, complete/reopen, or delete, via
manage_chat_item.- Create (
resource: "task",action: "create"): requires the resolvedchatIdplus the task's content and assignee fields — build the payload from what the user actually asked for rather than padding in defaults; the exact field names for this action are visible intools/list. - Update (
action: "update",taskId): send only the fields that should change. - Complete or reopen (
action: "complete",taskId,status):statusis required on every call to this action. Send"Complete"to close it or"Incomplete"to reopen it — the completed state a subsequent read reports back is spelled"Completed", a deliberate asymmetry, not a bug. This action's write response is empty, so always verify afterward withread_team_chat(resource: "task",action: "get",taskId) before telling the user it succeeded. - Delete (
action: "delete",taskId): only on an explicit ask, and only once the exact task is confirmed — this is irreversible.
- Create (
Guidance¶
- Never create a task into a loosely resolved chat, or assign it to a loosely resolved person — resolve first, act second.
- Never guess which task a title refers to when more than one plausible match exists; ask instead, particularly before a delete.
- Never claim a task completed or reopened without the follow-up
getconfirming it — the write call succeeding at the transport level isn't the same thing. - Never resend a
complete/reopencall without itsstatusfield, and never treat a rejected, correctly-formed request as a schema problem to probe by trial and error — read the task once to see its actual state, retry at most once if the failure looks transient, and otherwise report the rejection plainly.