From auro-release-process
Cuts a Production release in ClickUp for the Auro engineering ecosystem: creates the release task, finds all Done sprint tasks without a Release set, links them after user confirmation, generates the engineering description and deploy notes, and posts a customer-facing release notes draft as a comment on the release task for CS review. Triggers: "cut a release", "create a release", "build a release", "new release", "package a release", "time to release", "we're cutting v...", "release for [date]", "do a release", "sweep up done tasks for release", "build the release task". Do NOT trigger for: viewing existing releases, rewriting an already-created release's description (do that via direct ClickUp MCP calls), feedback intake (use prod-feedback-to-clickup), QA sessions, smoke tests, or non-release ClickUp work.
How this skill is triggered — by the user, by Claude, or both
Slash command
/auro-release-process:prod-release-builderThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<!-- VERSION: 1.1 | UPDATED: 2026-05-07 | OWNER: Jano van Rensburg, Product -->
You build a Production release in ClickUp for the Auro engineering ecosystem. End-to-end: gather inputs, discover and confirm candidates, create the release task, link them, generate the engineering Description and Deploy Notes, and post a customer-facing release notes draft as a comment for the CS team.
Supporting files (read at start of named phase):
CLICKUP-REFERENCE.md (Phase 2) — list IDs, custom field IDs, status names, version logic, drift warning, comments-plain-text constraint.DESCRIPTION-PATTERNS.md (Phase 6) — engineering theme grouping, scaffold, deploy notes, vague-name flagging.CUSTOMER-NOTES-PATTERNS.md (Phase 7) — customer-facing classification, plain-text format, scaffold, maintenance fallback.Always ask Question 1 — even if you think you know from memory or context. The deploy date is critical and cannot be assumed.
Ask Q1 in chat (it's a date, not a button choice), then call ask_user_input_v0 with Q2 and Q3.
YYYY-MM-DD)If the user provided a version override in their initial message (e.g. "cut v2.1.0 for May 12"), capture it and skip auto-increment in Phase 4.
Read CLICKUP-REFERENCE.md now.
Call clickup_get_workspace_hierarchy scoped to the Engineering Sprints folder ID (in reference). Extract every list ID inside. Do not hardcode Sprint 1–5; use what's discovered.
For each Sprint list, call clickup_filter_tasks with statuses: ["done"], subtasks: true, include_closed: false. Aggregate the unique tasks across all Sprint lists.
For each task, check the Release relationship custom field. Keep only tasks where Release is empty. Tasks already linked to any release are excluded.
Filter candidate tasks to those where task.list.id matches the Phase 1 project's home list (see CLICKUP-REFERENCE.md → Project → home list mapping). Sprint lists display tasks but every task is homed in exactly one engineering list.
Project boundary rule: projects never cross-combine. Auro releases pull only Auro 2.0 tasks; Argonaut releases pull only Argonaut 2.0. Apply this filter even in single-project usage — it's the defence against an Argonaut task accidentally appearing in an Auro release later.
If no candidates found, tell the user explicitly: "No Done tasks without a Release found in any active sprint. Want to proceed with an empty release, or abort?" Wait for choice. Never proceed silently.
Show the candidate list as a table: task ID (linked), title, sprint name, assignee.
Ask: "I found N candidate tasks ready for this release. Proceed with all, exclude specific tasks, or abort?"
Hard gate — do not proceed without explicit confirmation. If the user says "exclude X, Y, Z", remove those task IDs from the candidate list and confirm the revised list. If they abort, report "Aborted — no changes made" and stop.
If user provided a version override in Phase 1, use it. Otherwise auto-increment per CLICKUP-REFERENCE.md → Version increment logic.
If parsing the previous version fails, ask the user to specify the version explicitly. Do not guess.
Two-step is more reliable than a bundled single call (lessons learned from prod-feedback-to-clickup).
2a: clickup_create_task with only list_id (Releases), name ([Project] vX.Y.Z — YYYY-MM-DD), description ("Creating..."), status ("Planned").
2b: clickup_update_task on the new task ID with markdown_description (scaffolded; full rewrite in Phase 6) and custom_fields: AURO DEPARTMENT = ENGINEERING; Project (if field exists); Release Type; Target Deploy Date; Release Manager = current user (resolve via clickup_resolve_assignees with "me").
Call clickup_get_task (detail_level: summary) to confirm fields landed. If any are empty unexpectedly, retry the update once. If still failing, surface to user with what's missing.
For each confirmed candidate, call clickup_update_task with the Release relationship field set to { "add": ["<release_task_id>"] }.
Track failures. Retry once on failure — transient ClickUp API errors are common (we've seen them in this skill's predecessor work). If still failing after retry, surface the failed task IDs to the user and ask whether to continue with description generation or abort.
Never silently drop a link — the user must know what was/wasn't linked.
Read DESCRIPTION-PATTERNS.md now.
Most task names are descriptive enough on their own. Only call clickup_get_task for a task if the name is vague (e.g. "Frontend bugs", "Misc") or theme classification is genuinely ambiguous. Avoids fetching every task — keeps tool calls proportional.
Apply the theme grouping rules in DESCRIPTION-PATTERNS.md. Assign each task to one theme. Don't force tasks into themes that don't fit — if a task is genuinely a one-off, it goes in the "Bug Fixes" or "Other" bucket.
Use the structure in DESCRIPTION-PATTERNS.md: Scope / Highlights (themed) / Sign-off Gates / Lifecycle / Rollback. Write Deploy Notes as a one-line summary.
Call clickup_update_task with the final markdown_description and Deploy Notes custom field.
In the Phase 8 close-out response, list any task names you flagged as vague — the user may want to expand those manually.
Read CUSTOMER-NOTES-PATTERNS.md now.
Classify as customer-facing or internal per the rules in patterns file. Default: generous inclusion — include unless clearly internal. Better Alina trims one bullet than misses a feature. If genuinely ambiguous, include + flag [review] in Phase 8.
If zero or one customer-facing tasks survive classification, skip Steps 3–4. Post the maintenance fallback comment from the patterns file instead. Silence is ambiguous; an explicit "nothing customer-facing this round" note is clearer.
Use the area-of-platform headers from the patterns file (e.g. FASTER, MORE FLEXIBLE DATA TABLES). Headers describe user benefit, not engineering area. Lead with the section that has biggest user impact.
ClickUp comments do not support markdown. Use plain-text formatting per the patterns file: ALL CAPS headers, hyphen bullets, blank-line spacing, em-dash separator. No **bold**, *italic*, or --- rules — they render literally.
Write in customer-benefit voice ("you can now..."). Avoid jargon (URQL, CASL, etc.) — translate to user-visible impact.
Call clickup_create_task_comment with the release task ID, the plain-text customer notes as comment_text, notify_all: false, no assignee. Verify the returned comment_id. Retry once on failure; surface in Phase 8 if still failing.
Report:
[review] for Alina (ambiguous classification)Offer one follow-up: "Want me to draft an intro message for Travis/Angus, ping Alina about the customer notes, or move the release status to In Progress?"
[Project] vX.Y.Z — YYYY-MM-DD[review] for Alinanpx claudepluginhub harmonysmarttechnology/auro-engineering-marketplace --plugin auro-release-processProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.