skills/clickup-backfill/SKILL.md
Ensure every .orchestra/work/ item has a corresponding ClickUp ticket. Creates missing tickets and writes the ID back into the PRD frontmatter. Use when backfilling a repo's work items into ClickUp.
npx skillsauth add mpazaryna/agentic-factory clickup-backfillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Scan all work items in .orchestra/work/ and ensure each has a corresponding ClickUp ticket. Create missing tickets and write the ID back into the PRD frontmatter. Do not modify ticket status.
Read the ClickUp API key:
grep 'api_key:' ~/.config/workspace/bench/config.yaml | awk '{print $2}'
If not found, check CLICKUP_API_KEY env var. If neither exists, stop and tell the user.
Find the clickupListId for this repo:
$ARGUMENTS if provided, otherwise infer from the current directory nameconfig/projects/<repo-name>.json (relative to BENCH_ROOT, typically ../.. from apps/web/ or the monorepo root)clickupListId from the JSONIf no clickupListId is configured for this repo, stop and tell the user which field to add to config/projects/<repo-name>.json.
Use Glob to find all work item folders:
.orchestra/work/*/
Skip TEMPLATES and any folder starting with ..
For each folder, find the primary document in this order: prd.md, spec.md, README.md, first .md file found.
Read the frontmatter of the primary document and extract:
ticket — existing ClickUp ID (if present, skip this item)title — work item title (or extract from the first # Heading in the file)status — current statusBuild two lists:
ticket field in frontmatterticket field, or where the ticket field is emptyReport the count of each before proceeding.
For each work item in the Missing list:
curl -s -X POST "https://api.clickup.com/api/v2/list/<LIST_ID>/task" \
-H "Authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "<title>",
"description": "<description>"
}'
id field from the responseticket: lineticket, status, and created_onPrint a summary table:
| Work Item | Action | Ticket ID | |-----------|--------|-----------| | folder-name | already linked | 86eXXXXXX | | folder-name | created | 86eYYYYYY | | folder-name | created | 86eZZZZZZ |
State how many tickets were created and how many were already linked. Do not modify ClickUp status.
development
Comprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), feature flags (Flagship), networking (Tunnel, Spectrum), security (WAF, DDoS), and infrastructure-as-code (Terraform, Pulumi). Use for any Cloudflare development task. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.
tools
Send and receive transactional emails with Cloudflare Email Service (Email Sending + Email Routing). Use when building email sending (Workers binding or REST API), email routing, Agents SDK email handling, or integrating email into any app — Workers, Node.js, Python, Go, etc. Also use for email deliverability, SPF/DKIM/DMARC, wrangler email setup, MCP email tools, or when a coding agent needs to send emails. Even for simple requests like "add email to my Worker" — this skill has critical config details.
tools
Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, chat applications, voice agents, or browser automation. Covers Agent class, state management, callable RPC, Workflows, durable execution, queues, retries, observability, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.
tools
Planning conductor — runs the full PRD → Spec → Gherkin loop in a single interactive session with human approval gates.