Skillshub clickup-core-workflow-a
install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/jeremylongshore/claude-code-plugins-plus-skills/clickup-core-workflow-a" ~/.claude/skills/comeonoliver-skillshub-clickup-core-workflow-a && rm -rf "$T"
manifest:
skills/jeremylongshore/claude-code-plugins-plus-skills/clickup-core-workflow-a/SKILL.mdsource content
ClickUp Core Workflow A — Task Management
Overview
CRUD operations on ClickUp tasks via API v2. Tasks live in Lists and support assignees, priorities (1-4), statuses, due dates, tags, checklists, and custom fields.
Endpoints
| Operation | Method | Endpoint |
|---|---|---|
| Create task | POST | |
| Get task | GET | |
| Update task | PUT | |
| Delete task | DELETE | |
| Get tasks in list | GET | |
| Add task to list | POST | |
| Create subtask | POST | (with field) |
Create Task
interface CreateTaskBody { name: string; // Required description?: string; // Plain text markdown_description?: string; // Markdown (use instead of description) assignees?: number[]; // Array of user IDs tags?: string[]; // Tag names status?: string; // Status name (e.g., "to do", "in progress") priority?: 1 | 2 | 3 | 4 | null; // 1=Urgent, 2=High, 3=Normal, 4=Low due_date?: number; // Unix timestamp in milliseconds due_date_time?: boolean; // true = show time, false = date only start_date?: number; // Unix ms start_date_time?: boolean; time_estimate?: number; // Time estimate in milliseconds notify_all?: boolean; // Notify assignees parent?: string; // Parent task ID (creates subtask) links_to?: string; // Task ID to link to custom_fields?: Array<{ id: string; // Custom field UUID value: any; // Type-dependent value }>; } async function createTask(listId: string, task: CreateTaskBody) { return clickupRequest(`/list/${listId}/task`, { method: 'POST', body: JSON.stringify(task), }); } // Example: Create an urgent task with assignee await createTask('900100200300', { name: 'Fix production bug in auth module', markdown_description: '## Bug\nLogin fails for SSO users\n\n## Steps\n1. Go to /login\n2. Click SSO', assignees: [183], priority: 1, status: 'in progress', due_date: Date.now() + 3600000, due_date_time: true, tags: ['bug', 'production'], });
Get Tasks (with Filtering)
async function getTasks(listId: string, params: Record<string, string> = {}) { const query = new URLSearchParams({ archived: 'false', include_closed: 'false', subtasks: 'true', ...params, }); return clickupRequest(`/list/${listId}/task?${query}`); } // Filter by assignee and status const tasks = await getTasks('900100200300', { 'assignees[]': '183', 'statuses[]': 'in progress', order_by: 'due_date', reverse: 'true', page: '0', // Pagination: 100 tasks per page }); // Response: { tasks: [...] }
Update Task
// Only include fields you want to change async function updateTask(taskId: string, updates: Partial<CreateTaskBody>) { return clickupRequest(`/task/${taskId}`, { method: 'PUT', body: JSON.stringify(updates), }); } // Change status and add assignee await updateTask('abc123', { status: 'complete', assignees: { add: [456], rem: [] }, // Add/remove pattern for assignees on update });
Create Subtask
await createTask('900100200300', { name: 'Write unit tests for auth fix', parent: 'abc123', // Parent task ID makes this a subtask assignees: [183], priority: 3, });
Bulk Operations
// Get all tasks across workspace with team-level endpoint async function searchTasks(teamId: string, query: string) { return clickupRequest(`/team/${teamId}/task?${new URLSearchParams({ page: '0', order_by: 'updated', reverse: 'true', include_closed: 'true', subtasks: 'true', })}`); }
Error Handling
| Status | Cause | Solution |
|---|---|---|
| 400 | Missing field | Task name is required |
| 401 | Invalid token | Re-authenticate |
| 404 | Invalid list_id or task_id | Verify IDs via GET endpoints |
| 403 | No permission on this list | Check workspace membership |
Resources
Next Steps
For spaces, folders, and lists management see
clickup-core-workflow-b.