CheddahBot/skills/create-task-set.md

136 lines
5.6 KiB
Markdown

---
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`