Help us improve
Share bugs, ideas, or general feedback.
Use when the user asks about sprint planning, syncing plan docs to ClickUp, managing stories/tasks in bulk, or checking sprint status. Triggers on mentions of sprint, sync, stories, ClickUp bulk operations, or epic planning.
npx claudepluginhub infraspecdev/tesseract --plugin clickup-sprint-plannerHow this skill is triggered — by the user, by Claude, or both
Slash command
/clickup-sprint-planner:sprint-planningThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Orchestrate ClickUp sprint operations through the sprint-planner MCP server — sync plan documents, create story cards in bulk, and track sprint progress.
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
Orchestrate ClickUp sprint operations through the sprint-planner MCP server — sync plan documents, create story cards in bulk, and track sprint progress.
Core principle: Always sync before mutating. Show the user the diff, get confirmation, then execute.
dev-workflow:plan-docs skill| Tool | Purpose |
|---|---|
sprint_sync | Diff plan docs against ClickUp state (read-only) |
sprint_bulk_create | Create multiple tasks + set EPIC relationships |
sprint_set_relationship | Set list_relationship custom fields directly |
sprint_bulk_update | Batch update status/assignee/priority |
sprint_bulk_rename | Preview/apply [EpicID] prefix to non-compliant task names |
sprint_status | Get epic overview with stats |
sprint_action_log | Query past operations |
sprint_sync first. Present the diff and get confirmation.sprint_bulk_create with set_relationships: true.sprint-planner.json (path via SPRINT_PLANNER_CONFIG env var). Never hardcode ClickUp IDs.clickup_create_task, clickup_update_task, clickup_create_task_comment bypass the action log, skip relationship linking, and ignore naming conventions. Always use sprint_bulk_create, sprint_bulk_update, and sprint_set_relationship instead.1. sprint_sync(epic="P1a") → see what exists vs plan doc
2. Present diff table to user → match / to_create / to_update / to_link
3. User confirms which to create
4. sprint_bulk_create(list_id=config.lists.backlog.id, stories=[...], set_relationships=true)
- Names auto-formatted as "{epic_id} - {name}" (e.g. "P3 - Install Istio")
- Include orderindex with sequence * 1000 gaps
- Include full card descriptions with all required sections
5. Show results table → created tasks with IDs and URLs
6. If sprint_sync flagged "to_link" items:
sprint_sync(apply_links=true) → auto-set relationship fields + log action
1. sprint_sync(epic="P1") → identify stale stories
2. Present diff to user
3. User confirms which to update
4. sprint_bulk_update(updates=[{ "task_id": "...", "description": "...", "orderindex": "1000" }])
5. Show results table → success/failure per task
The description field accepts full markdown — include all required card sections. See card-format.md for card content requirements, examples, and ordering rules.
1. sprint_status(group_by="epic"|"status"|"assignee")
2. Present summary table
3. User drills into specific epic for story-level detail
Task naming: [Project Name] {EpicID}-S{StoryIndex}: {StoryName}
Every card MUST include: Summary, Tasks checklist, Context/Notes, Acceptance Criteria. See card-format.md for full requirements, example card, ordering rules, and custom field reference.
| Mistake | Fix |
|---|---|
| Creating tasks one-by-one | Use sprint_bulk_create for all stories in one call |
| Not syncing before creating | Always sprint_sync first — avoids duplicating existing tasks |
| One-line card descriptions | Include all 4 required sections (see card-format.md) |
| Hardcoding ClickUp IDs | Read from sprint-planner.json config |
| Setting orderindex without gaps | Use sequence * 1000 to leave room for inserts |
Using raw ClickUp MCP tools (clickup_create_task, etc.) for sprint ops | Always use sprint_bulk_create / sprint_bulk_update / sprint_set_relationship — raw tools bypass the action log and skip naming/relationship logic |