--- name: create-task-set description: Create a bundled set of ClickUp tasks (LINKS, PR, NEW, OPT) for a client keyword. Use when the user asks to create a task set, task bundle, or multiple related SEO tasks at once. tools: [clickup_create_task, clickup_add_dependency] agents: [default] --- # Create Task Set Creates a coordinated set of ClickUp tasks for a client keyword. The user specifies which task types to create and you build them with the correct fields, time estimates, due dates, and dependencies. ## Task Types | Code | Task Name | Work Category | Time Estimate | |------|-----------|--------------|---------------| | LINKS | `LINKS - {keyword}` | Link Building | 2h 30m (9000000 ms) | | PR | `PR - {keyword}` | Press Release | 1h 30m (5400000 ms) | | NEW | `NEW - {keyword}` | Content Creation | 4h (14400000 ms) | | OPT | `OPT - {keyword}` | On Page Optimization | 2h (7200000 ms) | ## Required Information (ask if not provided) - **client**: Client/folder name (e.g. "RPM Rubber") - **keyword**: The SEO keyword (e.g. "rubber gaskets") - **types**: Which tasks to create -- any combination of LINKS, PR, NEW, OPT - **due_date**: Due date for the content task (YYYY-MM-DD) - **tag**: Month tag (e.g. "apr26") ## Conditionally Required - **pr_topic**: Required ONLY when PR is in the set. The press release topic (different from keyword). - **url**: The IMSURL. Required when OPT is in the set or when LINKS/PR are in the set WITHOUT a NEW task. If NEW is in the set and no URL is provided, LINKS and PR are blocked by the NEW task. ## Optional - **articles**: Number of tier-1 articles for LINKS task. Sets CLIFlags to `--tier1-count {N}`. - **anchors**: Custom anchor texts for LINKS task. Comma-delimited string goes into CustomAnchors field. - **priority**: Default is 2 (High). - **assignee**: Default is 10765627 (Bryan Bigari). ## Common Fields (set on ALL tasks) Every task gets these fields set after creation: - **Client**: Set to the client name (dropdown) - **Delegate to Claude**: Set to `true` (checkbox) - **Tag**: The month tag - **Priority**: High (2) unless overridden - **Assignee**: Bryan unless overridden ## Due Date Logic - The content task (NEW or OPT) gets the provided due date. - LINKS and PR get due date + 7 days (same day of week, one week later). - If there is no content task in the set, all tasks get the provided due date. ## Dependency Logic When NEW is in the set and no URL is provided: - Create the NEW task FIRST. - For each LINKS and PR task in the set, call `clickup_add_dependency` with `blocked_task_id` = the LINKS/PR task ID and `blocker_task_id` = the NEW task ID. - Do NOT set IMSURL on LINKS or PR since the URL does not exist yet. When a URL is provided (or OPT is used instead of NEW): - Set IMSURL on all tasks that have the field. - No dependencies needed. ## Field Reference Per Task Type ### LINKS (Link Building) - Work Category: "Link Building" - Stage: "run_cora" - LB Method: "Cora Backlinks" - BrandedPlusRatio: "0.80" - IMSURL: the url (if available) - CLIFlags: `--tier1-count {N}` (only if articles specified) - CustomAnchors: comma-delimited anchors (only if provided) - Time estimate: 9000000 ms ### PR (Press Release) - Work Category: "Press Release" - Stage: "draft" - PR Topic: the pr_topic value - IMSURL: the url (if available) - Time estimate: 5400000 ms ### NEW (Content Creation) - Work Category: "Content Creation" - Stage: "run_cora" - IMSURL: not set (URL does not exist yet) - Time estimate: 14400000 ms ### OPT (On Page Optimization) - Work Category: "On Page Optimization" - Stage: "run_cora" - IMSURL: the url (required) - Time estimate: 7200000 ms ## Execution Steps 1. Confirm you have all required info for the requested task types. Ask for anything missing. 2. Convert the due date to Unix milliseconds (noon UTC): parse YYYY-MM-DD, set to 12:00 UTC, multiply epoch seconds by 1000. 3. Calculate the +7 day due date for LINKS/PR if a content task is in the set. 4. If NEW is in the set, create it first (you need its task ID for dependencies). 5. Create each task using `clickup_create_task` with: - name: `{TYPE} - {keyword}` - client: the client name - work_category: per the table above - status: "to do" - due_date: the appropriate Unix ms value - tags: the tag value - priority: 2 (or override) - assignee: 10765627 (or override) - time_estimate_ms: per the table above - custom_fields_json: JSON object with all type-specific fields plus `{"Delegate to Claude": true}` 6. If NEW is in the set with no URL, call `clickup_add_dependency` for each LINKS/PR task. 7. Report back with a summary: task names, IDs, URLs, and any dependencies set. ## Examples User: "Create LINKS, PR, NEW for RPM Rubber, keyword rubber gaskets, due April 15, tag apr26, pr topic RPM Rubber launches new gasket product line" -> Create 3 tasks: 1. `NEW - rubber gaskets` (Content Creation, due 2026-04-15, 4h) 2. `LINKS - rubber gaskets` (Link Building, due 2026-04-22, 2.5h, blocked by NEW) 3. `PR - rubber gaskets` (Press Release, due 2026-04-22, 1.5h, blocked by NEW) User: "Create OPT, LINKS for RPM Rubber, keyword rubber seals, url https://rpmrubber.com/rubber-seals, due April 10, tag apr26" -> Create 2 tasks: 1. `OPT - rubber seals` (On Page Optimization, due 2026-04-10, 2h, IMSURL set) 2. `LINKS - rubber seals` (Link Building, due 2026-04-17, 2.5h, IMSURL set) User: "Create LINKS, PR, NEW for RPM Rubber, keyword rubber gaskets, due April 15, tag apr26, pr topic RPM launches gasket line, 4 articles, anchors rubber gaskets,custom rubber gaskets,industrial rubber gaskets" -> Same as first example but LINKS also gets CLIFlags=`--tier1-count 4` and CustomAnchors=`rubber gaskets,custom rubber gaskets,industrial rubber gaskets`