agentsclimarketplace

Sprint planning

Skill HsuanYuLee/polaris/.claude/skills/sprint-planning

A Claude Code workspace template with AI skills for JIRA, PRs, code review, estimation, and daily standups

Install
npx -y skills add HsuanYuLee/polaris --skill sprint-planning

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when the user wants to conduct or prepare for a Sprint planning session — organizing ticket candidates, reviewing capacity, or preparing a release page. Trigger: 'sprint planning', 'sprint 規劃', '下個 sprint', '排 sprint', 'release page'.

SKILL.md

8.6 KB, as published. Nobody here has run it

Sprint Planning — Sprint 規劃討論引導

引導 Sprint Planning 討論:從 JIRA 拉取候選 tickets,計算 capacity,偵測 carry-over,建議優先排序,來回討論後產出最終 sprint backlog。可選推送 Confluence Release page。

定位:自動化確定性部分(拉 JIRA、算點數、排依賴),討論決策留給使用者。這不是一鍵產出工具,而是互動式的規劃助手。 它可以產 planning / release page artifact,但不得把 planning artifact 當成 author-side release authority;是否 release_eligible / release_completed 仍必須由 shared gates 決定。

前置:讀取 workspace config

讀取 workspace config(參考 references/workspace-config-reader.md)。 本步驟需要的值:jira.instancejira.projects(取得 project keys 用於 JQL)、confluence.spacescrum.sprint_capacity。 若 config 不存在,使用 references/shared-defaults.md 的 fallback 值。

Defaults

參數預設值說明
Sprint capacity20 pts (config: scrum.sprint_capacity使用者的個人容量
Sprint duration10 working days2 weeks
Projects(config: jira.projects[].key從 workspace-config.yaml 讀取
Confluence space(config: confluence.spaceRelease page 所在空間

Workflow

1. Collect inputs

兩種方式取得候選 tickets:

方式 A — 使用者提供 ticket keys: 使用者直接給一組 ticket keys(如 PROJ-500 PROJ-501 TEAM-3300),從 JIRA 拉取每張的資訊。

方式 B — 從 JIRA board 自動拉取: 搜尋使用者可能的候選:

mcp__claude_ai_Atlassian__searchJiraIssuesUsingJql
  cloudId: {config: jira.instance}  # fallback: your-domain.atlassian.net
  jql: assignee = currentUser() AND status not in ("已釋出", "已關閉", "完成", "PENDING") AND project in ({config: jira.projects[].key}) ORDER BY priority DESC, updated DESC
  fields: ["summary", "status", "issuetype", "priority", "story_points", "sprint"]
  maxResults: 30

詢問使用者要用哪種方式,或者兩者結合(自動拉 + 使用者補充)。

2. Fetch ticket details

對每張候選 ticket 拉取完整資訊:

mcp__claude_ai_Atlassian__getJiraIssue
  cloudId: {config: jira.instance}  # fallback: your-domain.atlassian.net
  issueIdOrKey: <TICKET-KEY>

收集:

  • Key + 標題
  • Issue type(Epic / Story / Task / Bug / Sub-task)
  • Status(判斷 carry-over vs 新單)
  • Priority
  • Story points(如果已估點)
  • Sprint(判斷是否已在某個 sprint 中)
  • Links(判斷依賴關係:blocks / is blocked by)
  • Epic link(歸屬哪個 Epic)

3. Detect carry-overs

Carry-over = 上個 sprint 未完成的單。判定條件:

  • 在前一個 sprint 中(sprint 欄位)
  • 狀態不是 已釋出 / 完成 / 已關閉

Carry-over 在排序時有更高優先權(已經開始的工作應該先完成)。

標記每張 carry-over ticket 的當前進度:

  • IN DEVELOPMENT → 開發中,需繼續
  • CODE REVIEW → PR 等待 review
  • WAITING FOR QA → 等 QA
  • 其他 → 標註狀態

4. Sort & suggest

用以下規則產出建議排序:

  1. Carry-over 最優先(已投入成本,sunk cost 最小化)
  2. P0 / Highest priority 次之
  3. 有依賴關係的 tickets 考慮順序:被 block 的排在 blocker 之後
  4. 已估點的 優先於未估點的(未估點的需要先估)
  5. 同優先級按 Epic 分組(同 Epic 的單盡量排一起)

5. Present planning table

以表格呈現,讓使用者快速掌握全局:

## Sprint Planning — Sprint YYYY.MM.DD

**Capacity**: 20 pts | **候選總點數**: XX pts | **差額**: ±Y pts

### Carry-over(上個 sprint 未完成)

| # | Ticket | Title | Type | Status | Points | Priority | Notes |
|---|--------|-------|------|--------|--------|----------|-------|
| 1 | PROJ-100 | feature title A | Story | CODE REVIEW | 3 | Medium | PR 等 review |
| 2 | PROJ-200 | bug title B | Bug | WAITING FOR QA | 2 | High | 等 QA |

小計:5 pts

### 新增候選

| # | Ticket | Title | Type | Points | Priority | Epic | Dependency | Notes |
|---|--------|-------|------|--------|----------|------|------------|-------|
| 3 | PROJ-500 | xxx | Story | 5 | High | PROJ-400 | — | |
| 4 | PROJ-501 | yyy | Task | 3 | Medium | PROJ-400 | blocked by PROJ-500 | |
| 5 | TEAM-3400 | zzz | Bug | ? | High | — | — | 未估點 |

小計:8+ pts

### 總計

| 項目 | 點數 |
|------|------|
| Carry-over | 5 |
| 新增候選 | 8+ |
| **合計** | **13+** |
| Capacity | 20 |
| **剩餘** | **7-** |

附加提示:

  • 未估點的 tickets 用 ? 標示,提醒需要先估點
  • 超過 capacity 時標紅警告
  • 依賴關係用箭頭標示(blocked by PROJ-500

6. Interactive discussion

呈現表格後進入討論模式:

使用者可能的操作

  • 「移除 #5」→ 從候選中移除
  • 「加入 PROJ-600」→ 新增到候選,拉 JIRA 資訊後更新表格
  • 「PROJ-500 改 3 點」→ 調整估點
  • 「PROJ-501 排到 PROJ-500 後面」→ 調整順序
  • 「這個 sprint 我有 2 天請假」→ 調整 capacity(20 → 16 pts)
  • 「OK」/ 「確定」→ 鎖定最終版本

每次調整後重新計算總點數和差額,更新表格呈現。

Guardrails

  • 總點數超過 capacity 10% 以上時主動提醒
  • 有未估點的 tickets 時提醒需要先估點(可觸發 breakdown
  • 有依賴衝突時(如 A blocks B 但 B 排在 A 前面)主動提醒

7. Generate Release page draft (optional)

使用者確認最終 sprint backlog 後,詢問是否產出 Confluence Release page。

如果使用者同意:

Step 7a — 計算 Release 日期: Sprint 結束日 = Sprint 開始日 + 10 working days。Release page 標題格式:Release YYYYMMDD。 詢問使用者確認日期(可能因假期調整)。

Step 7b — 格式化 Release page

依照現有 Release page 格式(markdown bullet list,按團隊分組):

* Team A

    * [PROJ-100 ticket title](https://{config: jira.instance}/browse/PROJ-100) — Code Review
    * [PROJ-101 ticket title](https://{config: jira.instance}/browse/PROJ-101) — 開放

* Team B

    * [PROJ-200 ticket title](https://{config: jira.instance}/browse/PROJ-200) — Waiting for QA

每張 ticket 附上當前狀態。已關閉的用 ~~刪除線~~

Release page 是 planning / communication artifact,不是 release gate。頁面出現某張 ticket, 不代表該 ticket 已達 release_eligible,更不代表 release_completed

Step 7c — 推送 Confluence

Workspace language policy gate(blocking):完整規則見 references/workspace-language-policy.md。Release page / planning summary 寫入 Confluence 前,先把最終內容落成 temp markdown,執行:

bash scripts/validate-language-policy.sh --blocking --mode artifact <sprint-planning-release-page.md>

exit ≠ 0 → 修正頁面主敘述語言後重跑;不可把未通過 gate 的 release page 寫入 Confluence。

references/confluence-page-update.md 的簡化模式:搜尋 Release page(CQL title = "Release YYYYMMDD"),已存在則更新,不存在則建立。更新完成後附上 Confluence 頁面連結。

Do

  • 優先排 carry-over(已投入成本的工作)
  • 即時重算點數和差額,每次調整後更新
  • 依賴關係衝突時主動提醒
  • 未估點 tickets 提醒需要先估
  • Release page 格式嚴格遵循現有頁面風格
  • 支持多輪來回討論,不急著鎖定

Don't

  • 不要自動決定 sprint 內容 — 排序是建議,決定權在使用者
  • 不要未經確認就推 Confluence
  • 不要把不屬於使用者的 tickets 加進來(除非使用者指定)
  • 不要忽略 capacity 超標 — 必須明確提醒
  • 不要在討論中途跳到其他 skill(如使用者說「PROJ-500 估幾點」可以建議觸發估點 skill,但不要自動觸發)

Prerequisites

  • Atlassian MCP 已連線(JIRA + Confluence)
  • 使用者了解當前 sprint 狀態(或從 JIRA board 拉取)

Post-Task Reflection (required)

Non-optional. Execute before reporting task completion.

Run the checklist in post-task-reflection-checkpoint.md.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.