From yux-linear
Sprint planning with capacity calculation and scope suggestion. Triggers on "pm plan", "plan sprint", "sprint planning", "capacity planning", "排期".
npx claudepluginhub wuyuxiangx/yux-claude-hub --plugin yux-linearThis skill is limited to using the following tools:
Usage: `/yux-pm-plan [next|current|cycle-name]`
Recommends sprint scope by pulling backlog from Jira/Linear MCP or manual input, calculating team capacity from velocity and availability, and suggesting committed work, stretch goals, and deferred items.
Plans sprints in Scrum/agile projects: refines backlog items, defines sprint goal, calculates team capacity, selects items, decomposes into tasks, outputs SPRINT-PLAN.md. Use for new sprints or re-planning.
Plans sprints by estimating capacity (PTO/meetings), prioritizing backlog, setting goals, identifying risks, and generating markdown plans. For kickoffs, sizing against availability, P0 decisions, carryover.
Share bugs, ideas, or general feedback.
Usage: /yux-pm-plan [next|current|cycle-name]
Prerequisite: .claude/linear-config.json must exist. If missing, show:
"Please run /yux-linear-init first."
Read .claude/linear-config.json. Extract team.id and project.id.
mcp__linear__list_cycles(teamId: "<team.id>", type: "next")
mcp__linear__list_cycles(teamId: "<team.id>", type: "current")
mcp__linear__list_issues(
project: "<project.id>",
state: "Backlog,Todo",
limit: 50,
orderBy: "priority"
)
If arg is current, focus on the current cycle for review/adjustment.
cycle_days = (cycle_end - cycle_start).business_days
buffer = 0.2
effective_days = cycle_days * (1 - buffer)
effort_map = {
"XS": 0.25, # 2 hours
"S": 0.5, # 4 hours
"M": 2, # 2 days
"L": 5, # 5 days
"XL": 10 # 10 days
}
Score each issue using the algorithm in ../../references/issue-scoring.md (base score + pm-plan additional bonuses). Sort all backlog issues by score descending.
Assign issues to three categories by filling capacity top-down:
Display the categorized plan with per-issue effort, total days used vs. capacity.
Example output:
=== Sprint Plan: Sprint 24 (Mar 17 - Mar 28) ===
Capacity: 8 effective days (10 business days, 20% buffer)
Must Complete (4.75 days / 60% cap):
WYX-101 [M] Fix auth token refresh score: 190
WYX-98 [S] Update error messages score: 150
WYX-105 [L] Search API endpoint score: 140
Should Complete (2.5 days):
WYX-110 [M] Dashboard filters score: 95
WYX-112 [S] Extension icon update score: 80
Stretch Goals:
WYX-115 [M] Analytics event tracking score: 60
On user confirmation, assign issues to the cycle:
For each issue in accepted scope:
mcp__linear__update_issue(
id: "<issue_id>",
cycle: "<cycle_id>",
assignee: "me"
)
If user requests edits before applying, adjust the scope and recalculate totals.
If the current cycle has incomplete issues, list them with remaining effort estimates. Use AskUserQuestion to offer: auto-carry all to next sprint, review individually, or move all back to backlog.
If the team has no cycles configured, offer time-boxed planning (default 2 weeks) using the same scoring and capacity logic but without cycle assignment in Linear.