ClickUp Automation via Rube MCP
Automate ClickUp project management workflows including task creation and updates, workspace hierarchy navigation, comments, and team member management through Composio's ClickUp toolkit.
Toolkit docs: composio.dev/toolkits/clickup
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active ClickUp connection via
RUBE_MANAGE_CONNECTIONS with toolkit clickup
- Always call
RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit clickup
- If connection is not ACTIVE, follow the returned auth link to complete ClickUp OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Create and Manage Tasks
When to use: User wants to create tasks, subtasks, update task properties, or list tasks in a ClickUp list.
Tool sequence:
CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES - Get workspace/team IDs [Prerequisite]
CLICKUP_GET_SPACES - List spaces in the workspace [Prerequisite]
CLICKUP_GET_FOLDERS - List folders in a space [Prerequisite]
CLICKUP_GET_FOLDERLESS_LISTS - Get lists not inside folders [Optional]
CLICKUP_GET_LIST - Validate list and check available statuses [Prerequisite]
CLICKUP_CREATE_TASK - Create a task in the target list [Required]
CLICKUP_CREATE_TASK (with parent) - Create subtask under a parent task [Optional]
CLICKUP_UPDATE_TASK - Modify task status, assignees, dates, priority [Optional]
CLICKUP_GET_TASK - Retrieve full task details [Optional]
CLICKUP_GET_TASKS - List all tasks in a list with filters [Optional]
CLICKUP_DELETE_TASK - Permanently remove a task [Optional]
Key parameters for CLICKUP_CREATE_TASK:
list_id: Target list ID (integer, required)
name: Task name (string, required)
description: Detailed task description
status: Must exactly match (case-sensitive) a status name configured in the target list
priority: 1 (Urgent), 2 (High), 3 (Normal), 4 (Low)
assignees: Array of user IDs (integers)
due_date: Unix timestamp in milliseconds
parent: Parent task ID string for creating subtasks
tags: Array of tag name strings
time_estimate: Estimated time in milliseconds
Pitfalls:
status is case-sensitive and must match an existing status in the list; use CLICKUP_GET_LIST to check available statuses
due_date and start_date are Unix timestamps in milliseconds, not seconds
- Subtask
parent must be a task (not another subtask) in the same list
notify_all triggers watcher notifications; set to false for bulk operations
- Retries can create duplicates; track created task IDs to avoid re-creation
custom_item_id for milestones (ID 1) is subject to workspace plan quotas
2. Navigate Workspace Hierarchy
When to use: User wants to browse or manage the ClickUp workspace structure (Workspaces > Spaces > Folders > Lists).
Tool sequence:
CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES - List all accessible workspaces [Required]
CLICKUP_GET_SPACES - List spaces within a workspace [Required]
CLICKUP_GET_SPACE - Get details for a specific space [Optional]
CLICKUP_GET_FOLDERS - List folders in a space [Required]
CLICKUP_GET_FOLDER - Get details for a specific folder [Optional]
CLICKUP_CREATE_FOLDER - Create a new folder in a space [Optional]
CLICKUP_GET_FOLDERLESS_LISTS - List lists not inside any folder [Required]
CLICKUP_GET_LIST - Get list details including statuses and custom fields [Optional]
Key parameters:
team_id: Workspace ID from GET_AUTHORIZED_TEAMS_WORKSPACES (required for spaces)
space_id: Space ID (required for folders and folderless lists)
folder_id: Folder ID (required for GET_FOLDER)
list_id: List ID (required for GET_LIST)
archived: Boolean filter for archived/active items
Pitfalls:
- ClickUp hierarchy is: Workspace (Team) > Space > Folder > List > Task
- Lists can exist directly under Spaces (folderless) or inside Folders
- Must use
CLICKUP_GET_FOLDERLESS_LISTS to find lists not inside folders; CLICKUP_GET_FOLDERS only returns folders
team_id in ClickUp API refers to the Workspace ID, not a user group
3. Add Comments to Tasks
When to use: User wants to add comments, review existing comments, or manage comment threads on tasks.
Tool sequence:
CLICKUP_GET_TASK - Verify task exists and get task_id [Prerequisite]
CLICKUP_CREATE_TASK_COMMENT - Add a new comment to the task [Required]
CLICKUP_GET_TASK_COMMENTS - List existing comments on the task [Optional]
CLICKUP_UPDATE_COMMENT - Edit comment text, assignee, or resolution status [Optional]
Key parameters for CLICKUP_CREATE_TASK_COMMENT:
task_id: Task ID string (required)
comment_text: Comment content with ClickUp formatting support (required)
assignee: User ID to assign the comment to (required)
notify_all: true/false for watcher notifications (required)
Key parameters for CLICKUP_GET_TASK_COMMENTS:
task_id: Task ID string (required)
start / start_id: Pagination for older comments (max 25 per page)
Pitfalls:
CLICKUP_CREATE_TASK_COMMENT requires all four fields: task_id, comment_text, assignee, and notify_all
assignee on a comment assigns the comment (not the task) to that user
- Comments are paginated at 25 per page; use
start (Unix ms) and start_id for older pages
CLICKUP_UPDATE_COMMENT requires all four fields: comment_id, comment_text, assignee, resolved
4. Manage Team Members and Assignments
When to use: User wants to view workspace members, check seat utilization, or look up user details.
Tool sequence:
CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES - List workspaces and get team_id [Required]
CLICKUP_GET_WORKSPACE_SEATS - Check seat utilization (members vs guests) [Required]
CLICKUP_GET_TEAMS - List user groups within the workspace [Optional]
CLICKUP_GET_USER - Get details for a specific user (Enterprise only) [Optional]
CLICKUP_GET_CUSTOM_ROLES - List custom permission roles [Optional]
Key parameters:
team_id: Workspace ID (required for all team operations)
user_id: Specific user ID for GET_USER
group_ids: Comma-separated group IDs to filter teams
Pitfalls:
CLICKUP_GET_WORKSPACE_SEATS returns seat counts, not member details; distinguish members from guests
CLICKUP_GET_TEAMS returns user groups, not workspace members; empty groups does not mean no members
CLICKUP_GET_USER is only available on ClickUp Enterprise Plan
- Must repeat workspace seat queries for each workspace in multi-workspace setups
5. Filter and Query Tasks
When to use: User wants to find tasks with specific filters (status, assignee, dates, tags, custom fields).
Tool sequence:
CLICKUP_GET_TASKS - Filter tasks in a list with multiple criteria [Required]
CLICKUP_GET_TASK - Get full details for individual tasks [Optional]
Key parameters for CLICKUP_GET_TASKS:
list_id: List ID (integer, required)
statuses: Array of status strings to filter by
assignees: Array of user ID strings
tags: Array of tag name strings
due_date_gt / due_date_lt: Unix timestamp in ms for date range
include_closed: Boolean to include closed tasks
subtasks: Boolean to include subtasks
order_by: "id", "created", "updated", or "due_date"
page: Page number starting at 0 (max 100 tasks per page)
Pitfalls:
- Only tasks whose home list matches
list_id are returned; tasks in sublists are not included
- Date filters use Unix timestamps in milliseconds
- Status strings must match exactly; use URL encoding for spaces (e.g., "to%20do")
- Page numbering starts at 0; each page returns up to 100 tasks
custom_fields filter accepts an array of JSON strings, not objects
Common Patterns
ID Resolution
Always resolve names to IDs through the hierarchy:
- Workspace name -> team_id:
CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES and match by name
- Space name -> space_id:
CLICKUP_GET_SPACES with team_id
- Folder name -> folder_id:
CLICKUP_GET_FOLDERS with space_id
- List name -> list_id: Navigate folders or use
CLICKUP_GET_FOLDERLESS_LISTS
- Task name -> task_id:
CLICKUP_GET_TASKS with list_id and match by name
Pagination
CLICKUP_GET_TASKS: Page-based with page starting at 0, max 100 tasks per page
CLICKUP_GET_TASK_COMMENTS: Uses start (Unix ms) and start_id for cursor-based paging, max 25 per page
- Continue fetching until response returns fewer items than the page size
Known Pitfalls
ID Formats
- Workspace/Team IDs are large integers
- Space, folder, and list IDs are integers
- Task IDs are alphanumeric strings (e.g., "9hz", "abc123")
- User IDs are integers
- Comment IDs are integers
Rate Limits
- ClickUp enforces rate limits; bulk task creation can trigger 429 responses
- Honor
Retry-After header when present
- Set
notify_all=false for bulk operations to reduce notification load
Parameter Quirks
team_id in the API means Workspace ID, not a user group
status on tasks is case-sensitive and list-specific
- Dates are Unix timestamps in milliseconds (multiply seconds by 1000)
priority is an integer 1-4 (1=Urgent, 4=Low), not a string
CLICKUP_CREATE_TASK_COMMENT marks assignee and notify_all as required
- To clear a task description, pass a single space
" " to CLICKUP_UPDATE_TASK
Hierarchy Rules
- Subtask parent must not itself be a subtask
- Subtask parent must be in the same list
- Lists can be folderless (directly in a Space) or inside a Folder
- Subitem boards are not supported by CLICKUP_CREATE_TASK
Quick Reference
| Task |
Tool Slug |
Key Params |
| List workspaces |
CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES |
(none) |
| List spaces |
CLICKUP_GET_SPACES |
team_id |
| Get space details |
CLICKUP_GET_SPACE |
space_id |
| List folders |
CLICKUP_GET_FOLDERS |
space_id |
| Get folder details |
CLICKUP_GET_FOLDER |
folder_id |
| Create folder |
CLICKUP_CREATE_FOLDER |
space_id, name |
| Folderless lists |
CLICKUP_GET_FOLDERLESS_LISTS |
space_id |
| Get list details |
CLICKUP_GET_LIST |
list_id |
| Create task |
CLICKUP_CREATE_TASK |
list_id, name, status, assignees |
| Update task |
CLICKUP_UPDATE_TASK |
task_id, status, priority |
| Get task |
CLICKUP_GET_TASK |
task_id, include_subtasks |
| List tasks |
CLICKUP_GET_TASKS |
list_id, statuses, page |
| Delete task |
CLICKUP_DELETE_TASK |
task_id |
| Add comment |
CLICKUP_CREATE_TASK_COMMENT |
task_id, comment_text, assignee |
| List comments |
CLICKUP_GET_TASK_COMMENTS |
task_id, start, start_id |
| Update comment |
CLICKUP_UPDATE_COMMENT |
comment_id, comment_text, resolved |
| Workspace seats |
CLICKUP_GET_WORKSPACE_SEATS |
team_id |
| List user groups |
CLICKUP_GET_TEAMS |
team_id |
| Get user details |
CLICKUP_GET_USER |
team_id, user_id |
| Custom roles |
CLICKUP_GET_CUSTOM_ROLES |
team_id |
Powered by Composio
Source: davepoon/buildwithclaude → plugins/all-skills/skills/clickup-automation/SKILL.md
1---2name: clickup-automation-23description: Automate ClickUp project management including tasks, spaces, folders, lists, comments, and team operations via Rube MCP (Composio). Always search tools first for current schemas.4---567# ClickUp Automation via Rube MCP89Automate ClickUp project management workflows including task creation and updates, workspace hierarchy navigation, comments, and team member management through Composio's ClickUp toolkit.1011**Toolkit docs**: [composio.dev/toolkits/clickup](https://composio.dev/toolkits/clickup)1213## Prerequisites1415- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)16- Active ClickUp connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `clickup`17- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas1819## Setup2021**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.2223241. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds252. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `clickup`263. If connection is not ACTIVE, follow the returned auth link to complete ClickUp OAuth274. Confirm connection status shows ACTIVE before running any workflows2829## Core Workflows3031### 1. Create and Manage Tasks3233**When to use**: User wants to create tasks, subtasks, update task properties, or list tasks in a ClickUp list.3435**Tool sequence**:361. `CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES` - Get workspace/team IDs [Prerequisite]372. `CLICKUP_GET_SPACES` - List spaces in the workspace [Prerequisite]383. `CLICKUP_GET_FOLDERS` - List folders in a space [Prerequisite]394. `CLICKUP_GET_FOLDERLESS_LISTS` - Get lists not inside folders [Optional]405. `CLICKUP_GET_LIST` - Validate list and check available statuses [Prerequisite]416. `CLICKUP_CREATE_TASK` - Create a task in the target list [Required]427. `CLICKUP_CREATE_TASK` (with `parent`) - Create subtask under a parent task [Optional]438. `CLICKUP_UPDATE_TASK` - Modify task status, assignees, dates, priority [Optional]449. `CLICKUP_GET_TASK` - Retrieve full task details [Optional]4510. `CLICKUP_GET_TASKS` - List all tasks in a list with filters [Optional]4611. `CLICKUP_DELETE_TASK` - Permanently remove a task [Optional]4748**Key parameters for CLICKUP_CREATE_TASK**:49- `list_id`: Target list ID (integer, required)50- `name`: Task name (string, required)51- `description`: Detailed task description52- `status`: Must exactly match (case-sensitive) a status name configured in the target list53- `priority`: 1 (Urgent), 2 (High), 3 (Normal), 4 (Low)54- `assignees`: Array of user IDs (integers)55- `due_date`: Unix timestamp in milliseconds56- `parent`: Parent task ID string for creating subtasks57- `tags`: Array of tag name strings58- `time_estimate`: Estimated time in milliseconds5960**Pitfalls**:61- `status` is case-sensitive and must match an existing status in the list; use `CLICKUP_GET_LIST` to check available statuses62- `due_date` and `start_date` are Unix timestamps in **milliseconds**, not seconds63- Subtask `parent` must be a task (not another subtask) in the same list64- `notify_all` triggers watcher notifications; set to false for bulk operations65- Retries can create duplicates; track created task IDs to avoid re-creation66- `custom_item_id` for milestones (ID 1) is subject to workspace plan quotas6768### 2. Navigate Workspace Hierarchy6970**When to use**: User wants to browse or manage the ClickUp workspace structure (Workspaces > Spaces > Folders > Lists).7172**Tool sequence**:731. `CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES` - List all accessible workspaces [Required]742. `CLICKUP_GET_SPACES` - List spaces within a workspace [Required]753. `CLICKUP_GET_SPACE` - Get details for a specific space [Optional]764. `CLICKUP_GET_FOLDERS` - List folders in a space [Required]775. `CLICKUP_GET_FOLDER` - Get details for a specific folder [Optional]786. `CLICKUP_CREATE_FOLDER` - Create a new folder in a space [Optional]797. `CLICKUP_GET_FOLDERLESS_LISTS` - List lists not inside any folder [Required]808. `CLICKUP_GET_LIST` - Get list details including statuses and custom fields [Optional]8182**Key parameters**:83- `team_id`: Workspace ID from GET_AUTHORIZED_TEAMS_WORKSPACES (required for spaces)84- `space_id`: Space ID (required for folders and folderless lists)85- `folder_id`: Folder ID (required for GET_FOLDER)86- `list_id`: List ID (required for GET_LIST)87- `archived`: Boolean filter for archived/active items8889**Pitfalls**:90- ClickUp hierarchy is: Workspace (Team) > Space > Folder > List > Task91- Lists can exist directly under Spaces (folderless) or inside Folders92- Must use `CLICKUP_GET_FOLDERLESS_LISTS` to find lists not inside folders; `CLICKUP_GET_FOLDERS` only returns folders93- `team_id` in ClickUp API refers to the Workspace ID, not a user group9495### 3. Add Comments to Tasks9697**When to use**: User wants to add comments, review existing comments, or manage comment threads on tasks.9899**Tool sequence**:1001. `CLICKUP_GET_TASK` - Verify task exists and get task_id [Prerequisite]1012. `CLICKUP_CREATE_TASK_COMMENT` - Add a new comment to the task [Required]1023. `CLICKUP_GET_TASK_COMMENTS` - List existing comments on the task [Optional]1034. `CLICKUP_UPDATE_COMMENT` - Edit comment text, assignee, or resolution status [Optional]104105**Key parameters for CLICKUP_CREATE_TASK_COMMENT**:106- `task_id`: Task ID string (required)107- `comment_text`: Comment content with ClickUp formatting support (required)108- `assignee`: User ID to assign the comment to (required)109- `notify_all`: true/false for watcher notifications (required)110111**Key parameters for CLICKUP_GET_TASK_COMMENTS**:112- `task_id`: Task ID string (required)113- `start` / `start_id`: Pagination for older comments (max 25 per page)114115**Pitfalls**:116- `CLICKUP_CREATE_TASK_COMMENT` requires all four fields: `task_id`, `comment_text`, `assignee`, and `notify_all`117- `assignee` on a comment assigns the comment (not the task) to that user118- Comments are paginated at 25 per page; use `start` (Unix ms) and `start_id` for older pages119- `CLICKUP_UPDATE_COMMENT` requires all four fields: `comment_id`, `comment_text`, `assignee`, `resolved`120121### 4. Manage Team Members and Assignments122123**When to use**: User wants to view workspace members, check seat utilization, or look up user details.124125**Tool sequence**:1261. `CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES` - List workspaces and get team_id [Required]1272. `CLICKUP_GET_WORKSPACE_SEATS` - Check seat utilization (members vs guests) [Required]1283. `CLICKUP_GET_TEAMS` - List user groups within the workspace [Optional]1294. `CLICKUP_GET_USER` - Get details for a specific user (Enterprise only) [Optional]1305. `CLICKUP_GET_CUSTOM_ROLES` - List custom permission roles [Optional]131132**Key parameters**:133- `team_id`: Workspace ID (required for all team operations)134- `user_id`: Specific user ID for GET_USER135- `group_ids`: Comma-separated group IDs to filter teams136137**Pitfalls**:138- `CLICKUP_GET_WORKSPACE_SEATS` returns seat counts, not member details; distinguish members from guests139- `CLICKUP_GET_TEAMS` returns user groups, not workspace members; empty groups does not mean no members140- `CLICKUP_GET_USER` is only available on ClickUp Enterprise Plan141- Must repeat workspace seat queries for each workspace in multi-workspace setups142143### 5. Filter and Query Tasks144145**When to use**: User wants to find tasks with specific filters (status, assignee, dates, tags, custom fields).146147**Tool sequence**:1481. `CLICKUP_GET_TASKS` - Filter tasks in a list with multiple criteria [Required]1492. `CLICKUP_GET_TASK` - Get full details for individual tasks [Optional]150151**Key parameters for CLICKUP_GET_TASKS**:152- `list_id`: List ID (integer, required)153- `statuses`: Array of status strings to filter by154- `assignees`: Array of user ID strings155- `tags`: Array of tag name strings156- `due_date_gt` / `due_date_lt`: Unix timestamp in ms for date range157- `include_closed`: Boolean to include closed tasks158- `subtasks`: Boolean to include subtasks159- `order_by`: "id", "created", "updated", or "due_date"160- `page`: Page number starting at 0 (max 100 tasks per page)161162**Pitfalls**:163- Only tasks whose home list matches `list_id` are returned; tasks in sublists are not included164- Date filters use Unix timestamps in milliseconds165- Status strings must match exactly; use URL encoding for spaces (e.g., "to%20do")166- Page numbering starts at 0; each page returns up to 100 tasks167- `custom_fields` filter accepts an array of JSON strings, not objects168169## Common Patterns170171### ID Resolution172Always resolve names to IDs through the hierarchy:173- **Workspace name -> team_id**: `CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES` and match by name174- **Space name -> space_id**: `CLICKUP_GET_SPACES` with `team_id`175- **Folder name -> folder_id**: `CLICKUP_GET_FOLDERS` with `space_id`176- **List name -> list_id**: Navigate folders or use `CLICKUP_GET_FOLDERLESS_LISTS`177- **Task name -> task_id**: `CLICKUP_GET_TASKS` with `list_id` and match by name178179### Pagination180- `CLICKUP_GET_TASKS`: Page-based with `page` starting at 0, max 100 tasks per page181- `CLICKUP_GET_TASK_COMMENTS`: Uses `start` (Unix ms) and `start_id` for cursor-based paging, max 25 per page182- Continue fetching until response returns fewer items than the page size183184## Known Pitfalls185186### ID Formats187- Workspace/Team IDs are large integers188- Space, folder, and list IDs are integers189- Task IDs are alphanumeric strings (e.g., "9hz", "abc123")190- User IDs are integers191- Comment IDs are integers192193### Rate Limits194- ClickUp enforces rate limits; bulk task creation can trigger 429 responses195- Honor `Retry-After` header when present196- Set `notify_all=false` for bulk operations to reduce notification load197198### Parameter Quirks199- `team_id` in the API means Workspace ID, not a user group200- `status` on tasks is case-sensitive and list-specific201- Dates are Unix timestamps in **milliseconds** (multiply seconds by 1000)202- `priority` is an integer 1-4 (1=Urgent, 4=Low), not a string203- `CLICKUP_CREATE_TASK_COMMENT` marks `assignee` and `notify_all` as required204- To clear a task description, pass a single space `" "` to `CLICKUP_UPDATE_TASK`205206### Hierarchy Rules207- Subtask parent must not itself be a subtask208- Subtask parent must be in the same list209- Lists can be folderless (directly in a Space) or inside a Folder210- Subitem boards are not supported by CLICKUP_CREATE_TASK211212## Quick Reference213214| Task | Tool Slug | Key Params |215|------|-----------|------------|216| List workspaces | `CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES` | (none) |217| List spaces | `CLICKUP_GET_SPACES` | `team_id` |218| Get space details | `CLICKUP_GET_SPACE` | `space_id` |219| List folders | `CLICKUP_GET_FOLDERS` | `space_id` |220| Get folder details | `CLICKUP_GET_FOLDER` | `folder_id` |221| Create folder | `CLICKUP_CREATE_FOLDER` | `space_id`, `name` |222| Folderless lists | `CLICKUP_GET_FOLDERLESS_LISTS` | `space_id` |223| Get list details | `CLICKUP_GET_LIST` | `list_id` |224| Create task | `CLICKUP_CREATE_TASK` | `list_id`, `name`, `status`, `assignees` |225| Update task | `CLICKUP_UPDATE_TASK` | `task_id`, `status`, `priority` |226| Get task | `CLICKUP_GET_TASK` | `task_id`, `include_subtasks` |227| List tasks | `CLICKUP_GET_TASKS` | `list_id`, `statuses`, `page` |228| Delete task | `CLICKUP_DELETE_TASK` | `task_id` |229| Add comment | `CLICKUP_CREATE_TASK_COMMENT` | `task_id`, `comment_text`, `assignee` |230| List comments | `CLICKUP_GET_TASK_COMMENTS` | `task_id`, `start`, `start_id` |231| Update comment | `CLICKUP_UPDATE_COMMENT` | `comment_id`, `comment_text`, `resolved` |232| Workspace seats | `CLICKUP_GET_WORKSPACE_SEATS` | `team_id` |233| List user groups | `CLICKUP_GET_TEAMS` | `team_id` |234| Get user details | `CLICKUP_GET_USER` | `team_id`, `user_id` |235| Custom roles | `CLICKUP_GET_CUSTOM_ROLES` | `team_id` |236237---238*Powered by [Composio](https://composio.dev)*239240---241242**Source:** [`davepoon/buildwithclaude`](https://github.com/davepoon/buildwithclaude) → `plugins/all-skills/skills/clickup-automation/SKILL.md`