From product-management
Plan a sprint — scope work, estimate capacity, set goals, and draft a sprint plan. Use when kicking off a new sprint, sizing a backlog against team availability (accounting for PTO and meetings), deciding what's P0 vs. stretch, or handling carryover from the last sprint.
How this skill is triggered — by the user, by Claude, or both
Slash command
/product-management:sprint-planning [sprint name or date range][sprint name or date range]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md).
If you see unfamiliar placeholders or need to check which tools are connected, see CONNECTORS.md.
Plan a sprint by scoping work, estimating capacity, and setting clear goals.
Lark-native execution (depth core: LARK-PATTERNS, LARK-RECIPES, LARK-FUSION). The backlog/sprint board is a Lark Base (P5): read with
lark_base_search(REQUIRESsearch_fields, nojq— narrow withselect_fields/limit), write sprint assignments + priority withlark_base_record_upsert(dry_runfirst, P2). Estimate real capacity from the calendar —lark_calendar_freebusy/lark_calendar_agendaper engineer to subtract PTO/meeting load. Resolve every owner toopen_idvialark_contact_search(P1). Sprint backlog items become assigned tasks vialark_task_create. Share the final plan as an interactive card (lark_im_card_send, P4) and land it in Wiki (lark_wiki_node_create, P8). For the sprint retro, delegate to thesprint-retroskill.
/sprint-planning $ARGUMENTS
┌─────────────────────────────────────────────────────────────────┐
│ SPRINT PLANNING │
├─────────────────────────────────────────────────────────────────┤
│ STANDALONE (always works) │
│ ✓ Define sprint goals and success criteria │
│ ✓ Estimate team capacity (accounting for PTO, meetings) │
│ ✓ Scope and prioritize backlog items │
│ ✓ Identify dependencies and risks │
│ ✓ Generate sprint plan document │
├─────────────────────────────────────────────────────────────────┤
│ SUPERCHARGED (Lark-native) │
│ + Base (P5): pull backlog (lark_base_search), write sprint │
│ + priority (lark_base_record_upsert, dry_run first) │
│ + Calendar: real capacity via lark_calendar_freebusy/agenda │
│ per engineer (subtract PTO + meeting load) │
│ + Task: assign committed items (lark_task_create) │
│ + IM: share plan as an interactive card (lark_im_card_send) │
│ + Wiki: land the sprint plan (lark_wiki_node_create) │
└─────────────────────────────────────────────────────────────────┘
open_id via lark_contact_search and check lark_calendar_freebusy for real PTO/meeting load.)lark_base_search —
it REQUIRES search_fields; I'll discover field names via
lark_api GET /open-apis/bitable/v1/apps/{base}/tables/{table}/fields if needed, narrow with
select_fields/limit, no jq — or you can paste/describe.)lark_task_my for open items.)## Sprint Plan: [Sprint Name]
**Dates:** [Start] — [End] | **Team:** [X] engineers
**Sprint Goal:** [One clear sentence about what success looks like]
### Capacity
| Person | Available Days | Allocation | Notes |
|--------|---------------|------------|-------|
| [Name] | [X] of [Y] | [X] points/hours | [PTO, on-call, etc.] |
| **Total** | **[X]** | **[X] points** | |
### Sprint Backlog
| Priority | Item | Estimate | Owner | Dependencies |
|----------|------|----------|-------|--------------|
| P0 | [Must ship] | [X] pts | [Person] | [None / Blocked by X] |
| P1 | [Should ship] | [X] pts | [Person] | [None] |
| P2 | [Stretch] | [X] pts | [Person] | [None] |
### Planned Capacity: [X] points | Sprint Load: [X] points ([X]% of capacity)
### Risks
| Risk | Impact | Mitigation |
|------|--------|------------|
| [Risk] | [What happens] | [What to do] |
### Definition of Done
- [ ] Code reviewed and merged
- [ ] Tests passing
- [ ] Documentation updated (if applicable)
- [ ] Product sign-off
### Key Dates
| Date | Event |
|------|-------|
| [Date] | Sprint start |
| [Date] | Mid-sprint check-in |
| [Date] | Sprint end / Demo |
| [Date] | Retro |
Once the plan is agreed:
lark_base_record_upsert
(base_token, table_id, fields) — dry_run: true first, show the planned writes, then commit (P2).lark_task_create with the owner's open_id
(from lark_contact_search) and a due matching the sprint end.lark_im_card_send
(header = sprint goal; item rows per P0/P1; actions footer). Validate with
print_json: true, then dry_run: true, then send (P4).lark_wiki_node_create (P8).lark_calendar_freebusy, not assumed full availability.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub larkcowork/lark-cowork-plugins --plugin product-management