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.
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 |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for enprojectnment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
1---2name: clickup-automation3description: 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---56# ClickUp Automation via Rube MCP78Automate ClickUp project management workflows including task creation and updates, workspace hierarchy navigation, comments, and team member management through Composio's ClickUp toolkit.910## Prerequisites1112- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)13- Active ClickUp connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `clickup`14- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas1516## Setup1718**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.19201. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds212. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `clickup`223. If connection is not ACTIVE, follow the returned auth link to complete ClickUp OAuth234. Confirm connection status shows ACTIVE before running any workflows2425## Core Workflows2627### 1. Create and Manage Tasks2829**When to use**: User wants to create tasks, subtasks, update task properties, or list tasks in a ClickUp list.3031**Tool sequence**:321. `CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES` - Get workspace/team IDs [Prerequisite]332. `CLICKUP_GET_SPACES` - List spaces in the workspace [Prerequisite]343. `CLICKUP_GET_FOLDERS` - List folders in a space [Prerequisite]354. `CLICKUP_GET_FOLDERLESS_LISTS` - Get lists not inside folders [Optional]365. `CLICKUP_GET_LIST` - Validate list and check available statuses [Prerequisite]376. `CLICKUP_CREATE_TASK` - Create a task in the target list [Required]387. `CLICKUP_CREATE_TASK` (with `parent`) - Create subtask under a parent task [Optional]398. `CLICKUP_UPDATE_TASK` - Modify task status, assignees, dates, priority [Optional]409. `CLICKUP_GET_TASK` - Retrieve full task details [Optional]4110. `CLICKUP_GET_TASKS` - List all tasks in a list with filters [Optional]4211. `CLICKUP_DELETE_TASK` - Permanently remove a task [Optional]4344**Key parameters for CLICKUP_CREATE_TASK**:45- `list_id`: Target list ID (integer, required)46- `name`: Task name (string, required)47- `description`: Detailed task description48- `status`: Must exactly match (case-sensitive) a status name configured in the target list49- `priority`: 1 (Urgent), 2 (High), 3 (Normal), 4 (Low)50- `assignees`: Array of user IDs (integers)51- `due_date`: Unix timestamp in milliseconds52- `parent`: Parent task ID string for creating subtasks53- `tags`: Array of tag name strings54- `time_estimate`: Estimated time in milliseconds5556**Pitfalls**:57- `status` is case-sensitive and must match an existing status in the list; use `CLICKUP_GET_LIST` to check available statuses58- `due_date` and `start_date` are Unix timestamps in **milliseconds**, not seconds59- Subtask `parent` must be a task (not another subtask) in the same list60- `notify_all` triggers watcher notifications; set to false for bulk operations61- Retries can create duplicates; track created task IDs to avoid re-creation62- `custom_item_id` for milestones (ID 1) is subject to workspace plan quotas6364### 2. Navigate Workspace Hierarchy6566**When to use**: User wants to browse or manage the ClickUp workspace structure (Workspaces > Spaces > Folders > Lists).6768**Tool sequence**:691. `CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES` - List all accessible workspaces [Required]702. `CLICKUP_GET_SPACES` - List spaces within a workspace [Required]713. `CLICKUP_GET_SPACE` - Get details for a specific space [Optional]724. `CLICKUP_GET_FOLDERS` - List folders in a space [Required]735. `CLICKUP_GET_FOLDER` - Get details for a specific folder [Optional]746. `CLICKUP_CREATE_FOLDER` - Create a new folder in a space [Optional]757. `CLICKUP_GET_FOLDERLESS_LISTS` - List lists not inside any folder [Required]768. `CLICKUP_GET_LIST` - Get list details including statuses and custom fields [Optional]7778**Key parameters**:79- `team_id`: Workspace ID from GET_AUTHORIZED_TEAMS_WORKSPACES (required for spaces)80- `space_id`: Space ID (required for folders and folderless lists)81- `folder_id`: Folder ID (required for GET_FOLDER)82- `list_id`: List ID (required for GET_LIST)83- `archived`: Boolean filter for archived/active items8485**Pitfalls**:86- ClickUp hierarchy is: Workspace (Team) > Space > Folder > List > Task87- Lists can exist directly under Spaces (folderless) or inside Folders88- Must use `CLICKUP_GET_FOLDERLESS_LISTS` to find lists not inside folders; `CLICKUP_GET_FOLDERS` only returns folders89- `team_id` in ClickUp API refers to the Workspace ID, not a user group9091### 3. Add Comments to Tasks9293**When to use**: User wants to add comments, review existing comments, or manage comment threads on tasks.9495**Tool sequence**:961. `CLICKUP_GET_TASK` - Verify task exists and get task_id [Prerequisite]972. `CLICKUP_CREATE_TASK_COMMENT` - Add a new comment to the task [Required]983. `CLICKUP_GET_TASK_COMMENTS` - List existing comments on the task [Optional]994. `CLICKUP_UPDATE_COMMENT` - Edit comment text, assignee, or resolution status [Optional]100101**Key parameters for CLICKUP_CREATE_TASK_COMMENT**:102- `task_id`: Task ID string (required)103- `comment_text`: Comment content with ClickUp formatting support (required)104- `assignee`: User ID to assign the comment to (required)105- `notify_all`: true/false for watcher notifications (required)106107**Key parameters for CLICKUP_GET_TASK_COMMENTS**:108- `task_id`: Task ID string (required)109- `start` / `start_id`: Pagination for older comments (max 25 per page)110111**Pitfalls**:112- `CLICKUP_CREATE_TASK_COMMENT` requires all four fields: `task_id`, `comment_text`, `assignee`, and `notify_all`113- `assignee` on a comment assigns the comment (not the task) to that user114- Comments are paginated at 25 per page; use `start` (Unix ms) and `start_id` for older pages115- `CLICKUP_UPDATE_COMMENT` requires all four fields: `comment_id`, `comment_text`, `assignee`, `resolved`116117### 4. Manage Team Members and Assignments118119**When to use**: User wants to view workspace members, check seat utilization, or look up user details.120121**Tool sequence**:1221. `CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES` - List workspaces and get team_id [Required]1232. `CLICKUP_GET_WORKSPACE_SEATS` - Check seat utilization (members vs guests) [Required]1243. `CLICKUP_GET_TEAMS` - List user groups within the workspace [Optional]1254. `CLICKUP_GET_USER` - Get details for a specific user (Enterprise only) [Optional]1265. `CLICKUP_GET_CUSTOM_ROLES` - List custom permission roles [Optional]127128**Key parameters**:129- `team_id`: Workspace ID (required for all team operations)130- `user_id`: Specific user ID for GET_USER131- `group_ids`: Comma-separated group IDs to filter teams132133**Pitfalls**:134- `CLICKUP_GET_WORKSPACE_SEATS` returns seat counts, not member details; distinguish members from guests135- `CLICKUP_GET_TEAMS` returns user groups, not workspace members; empty groups does not mean no members136- `CLICKUP_GET_USER` is only available on ClickUp Enterprise Plan137- Must repeat workspace seat queries for each workspace in multi-workspace setups138139### 5. Filter and Query Tasks140141**When to use**: User wants to find tasks with specific filters (status, assignee, dates, tags, custom fields).142143**Tool sequence**:1441. `CLICKUP_GET_TASKS` - Filter tasks in a list with multiple criteria [Required]1452. `CLICKUP_GET_TASK` - Get full details for individual tasks [Optional]146147**Key parameters for CLICKUP_GET_TASKS**:148- `list_id`: List ID (integer, required)149- `statuses`: Array of status strings to filter by150- `assignees`: Array of user ID strings151- `tags`: Array of tag name strings152- `due_date_gt` / `due_date_lt`: Unix timestamp in ms for date range153- `include_closed`: Boolean to include closed tasks154- `subtasks`: Boolean to include subtasks155- `order_by`: "id", "created", "updated", or "due_date"156- `page`: Page number starting at 0 (max 100 tasks per page)157158**Pitfalls**:159- Only tasks whose home list matches `list_id` are returned; tasks in sublists are not included160- Date filters use Unix timestamps in milliseconds161- Status strings must match exactly; use URL encoding for spaces (e.g., "to%20do")162- Page numbering starts at 0; each page returns up to 100 tasks163- `custom_fields` filter accepts an array of JSON strings, not objects164165## Common Patterns166167### ID Resolution168Always resolve names to IDs through the hierarchy:169- **Workspace name -> team_id**: `CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES` and match by name170- **Space name -> space_id**: `CLICKUP_GET_SPACES` with `team_id`171- **Folder name -> folder_id**: `CLICKUP_GET_FOLDERS` with `space_id`172- **List name -> list_id**: Navigate folders or use `CLICKUP_GET_FOLDERLESS_LISTS`173- **Task name -> task_id**: `CLICKUP_GET_TASKS` with `list_id` and match by name174175### Pagination176- `CLICKUP_GET_TASKS`: Page-based with `page` starting at 0, max 100 tasks per page177- `CLICKUP_GET_TASK_COMMENTS`: Uses `start` (Unix ms) and `start_id` for cursor-based paging, max 25 per page178- Continue fetching until response returns fewer items than the page size179180## Known Pitfalls181182### ID Formats183- Workspace/Team IDs are large integers184- Space, folder, and list IDs are integers185- Task IDs are alphanumeric strings (e.g., "9hz", "abc123")186- User IDs are integers187- Comment IDs are integers188189### Rate Limits190- ClickUp enforces rate limits; bulk task creation can trigger 429 responses191- Honor `Retry-After` header when present192- Set `notify_all=false` for bulk operations to reduce notification load193194### Parameter Quirks195- `team_id` in the API means Workspace ID, not a user group196- `status` on tasks is case-sensitive and list-specific197- Dates are Unix timestamps in **milliseconds** (multiply seconds by 1000)198- `priority` is an integer 1-4 (1=Urgent, 4=Low), not a string199- `CLICKUP_CREATE_TASK_COMMENT` marks `assignee` and `notify_all` as required200- To clear a task description, pass a single space `" "` to `CLICKUP_UPDATE_TASK`201202### Hierarchy Rules203- Subtask parent must not itself be a subtask204- Subtask parent must be in the same list205- Lists can be folderless (directly in a Space) or inside a Folder206- Subitem boards are not supported by CLICKUP_CREATE_TASK207208## Quick Reference209210| Task | Tool Slug | Key Params |211|------|-----------|------------|212| List workspaces | `CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES` | (none) |213| List spaces | `CLICKUP_GET_SPACES` | `team_id` |214| Get space details | `CLICKUP_GET_SPACE` | `space_id` |215| List folders | `CLICKUP_GET_FOLDERS` | `space_id` |216| Get folder details | `CLICKUP_GET_FOLDER` | `folder_id` |217| Create folder | `CLICKUP_CREATE_FOLDER` | `space_id`, `name` |218| Folderless lists | `CLICKUP_GET_FOLDERLESS_LISTS` | `space_id` |219| Get list details | `CLICKUP_GET_LIST` | `list_id` |220| Create task | `CLICKUP_CREATE_TASK` | `list_id`, `name`, `status`, `assignees` |221| Update task | `CLICKUP_UPDATE_TASK` | `task_id`, `status`, `priority` |222| Get task | `CLICKUP_GET_TASK` | `task_id`, `include_subtasks` |223| List tasks | `CLICKUP_GET_TASKS` | `list_id`, `statuses`, `page` |224| Delete task | `CLICKUP_DELETE_TASK` | `task_id` |225| Add comment | `CLICKUP_CREATE_TASK_COMMENT` | `task_id`, `comment_text`, `assignee` |226| List comments | `CLICKUP_GET_TASK_COMMENTS` | `task_id`, `start`, `start_id` |227| Update comment | `CLICKUP_UPDATE_COMMENT` | `comment_id`, `comment_text`, `resolved` |228| Workspace seats | `CLICKUP_GET_WORKSPACE_SEATS` | `team_id` |229| List user groups | `CLICKUP_GET_TEAMS` | `team_id` |230| Get user details | `CLICKUP_GET_USER` | `team_id`, `user_id` |231| Custom roles | `CLICKUP_GET_CUSTOM_ROLES` | `team_id` |232233## When to Use234This skill is applicable to execute the workflow or actions described in the overview.235236## Limitations237- Use this skill only when the task clearly matches the scope described above.238- Do not treat the output as a substitute for enprojectnment-specific validation, testing, or expert review.239- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.