From dev-tasks
Create a new Monday.com task with duplicate checking and Ready-to-Start gate enforcement
How this skill is triggered — by the user, by Claude, or both
Slash command
/dev-tasks:create-taskThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read `.claude/project-config.json`. Extract `monday.productId` — the Products-board item ID this task belongs to. Missing → STOP and tell user to set it.
Read .claude/project-config.json. Extract monday.productId — the Products-board item ID this task belongs to. Missing → STOP and tell user to set it.
/dev-tasks:investigate-request)Before any createTask write, run /dev-tasks:investigate-request --mode=dedup with the raw input. This finds related existing tasks (active + recently-shipped), in-flight agents on the same scope, recent merges that may have shipped the work, and surfaces ambiguity as BLOCKING/OPTIONAL questions.
Skip case (deterministic): if the caller arg explicitly cites a Monday task/PR/retro ID (regex /#\d{7,10}\b|PR\s*#\d+|retro\s*#\d+/i), skip — the dedup work is done. Otherwise the invocation is the default.
Handle the recommendation:
SKIP (duplicate / already covered) → abort. Surface the report to the user. Do NOT call createTask. Post a comment on the existing task if context-additive.REFINE #N → redirect: invoke /dev-tasks:refine-task <N> with the report's findings. Do NOT call createTask.ROUTE → Bug | Feedback | Retro → wrong surface; redirect: createBug / createFeedback / /dev-tasks:file-retro per the report's suggestion. Do NOT call createTask.DECLINE (request superseded) → confirm with AskUserQuestion, then act.NEW task → proceed to step 1+ using the report's "Recommendation" scope as the default (priority, epic, subtask shape).BLOCKING questions in the report MUST be resolved via AskUserQuestion before any createTask call. OPTIONAL questions are mentioned in the proceed-message but don't gate action. See the skill for the BLOCKING vs OPTIONAL heuristic.
The legacy cross-surface check (this should be a bug / retro / feedback, not a task) is subsumed by the investigation — the report's "Recommendation" line says so explicitly when relevant.
Cross-surface fallback (only when Phase 0 was skipped via the explicit-ID skip case): would this produce wrong output for a real user? → createBug instead. Workflow/tooling friction? → /dev-tasks:file-retro. Stakeholder feedback? → createFeedback + let /triage-feedback route.
Epic assignment (MANDATORY — no orphaned tasks):
listEpics(productId: $productId). Auto-match by keyword. If confident, use; else ask user.Type & priority:
type: Feature / Fix / Improvement / To Dopriority: Critical / High / Medium / Low. Do NOT leave Missing unless genuinely uninferable — Ready to Start gate rejects it.Description + acceptance criteria (both REQUIRED for the gate):
description: WHAT and WHY (1–3 paragraphs)acceptanceCriteria: bullet list of definition-of-done items an external party can verifyPlan subtasks (REQUIRED — at least one, fully refined):
name + description + type + estimatedHourstask-lifecycle.md)Waiting for UAT + UAT doc on column doc_mm3adfdg (auto-generated by /ship-pr Phase 4.5).Optional dependency: dependencyIds: [<task-id>, ...] (column dependency_mm0pwbxn). claimTask refuses to start until these are Done.
Create: createTask with:
status: "Ready to Start" — MCP rejects if any prereq missing; treat rejection as checklist.agentId: "Claude Code CLI" (or creating agent)owner: <whoami>epicId, type, priority, description, acceptanceCriteriasubitems: typed+estimated listsprintId: <active> if claimTask follows (else /pickup-task Phase 7 auto-assigns)dependencyIds if step 6 produced anyOutput: task ID, epic name, final status (should be Ready to Start if gate passed), Monday link.
Ready to Start gate (server-side)MCP rejects unless ALL present:
type (not "Not Set")priority (not "Missing")epicIddescriptionacceptanceCriterianame + description + type + estimatedHourscreateTask runs this gate at creation when status: "Ready to Start". Failed gate → task created at Needs Refinement; missing fields in response. Populate via updateTask / manageSubtasks, then flip status.
In Progress gateclaimTask refuses unless:
Ready to Start/pickup-task Phase 7 auto-assigns)dependencyIds are DoneReady to Start → /pickup-task claims → In ProgressIn Progress → all subtasks Done + /ship-pr generates UAT doc → Waiting for UATWaiting for UAT → human UAT signoff → Pending Deploy to ProdPending Deploy to Prod → /release-version → DoneSee CLAUDE.md "Task Management Lifecycle" for the full table.
npx claudepluginhub step-network/dev-tasks --plugin dev-tasksGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.